// material-ui import { Button, Grid, TextField, Autocomplete, Typography } from '@mui/material'; import MainCard from "components/MainCard"; import { useForm } from "react-hook-form"; import * as React from "react"; import * as DateUtils from "utils/DateUtils"; import * as ComboData from "utils/ComboData"; import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; import {ThemeProvider} from "@emotion/react"; import {DatePicker} from "@mui/x-date-pickers/DatePicker"; import dayjs from "dayjs"; import {DemoItem} from "@mui/x-date-pickers/internals/demo"; import {LocalizationProvider} from "@mui/x-date-pickers/LocalizationProvider"; import {AdapterDayjs} from "@mui/x-date-pickers/AdapterDayjs"; // ==============================|| DASHBOARD - DEFAULT ||============================== // const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); const [maxDate, setMaxDate] = React.useState(searchCriteria.dateTo); const [status, setStatus] = React.useState(ComboData.paymentStatus[0]); const { reset, register, handleSubmit } = useForm() const marginBottom = 2.5; const [fromDateValue, setFromDateValue] = React.useState("dd / mm / yyyy"); const [toDateValue, setToDateValue] = React.useState("dd / mm / yyyy"); React.useEffect(() => { setFromDateValue(minDate); }, [minDate]); React.useEffect(() => { setToDateValue(maxDate); }, [maxDate]); const onSubmit = (data) => { let sentDateFrom = ""; let sentDateTo = ""; if (fromDateValue != "dd / mm / yyyy" && toDateValue != "dd / mm / yyyy") { sentDateFrom = DateUtils.dateValue(fromDateValue) sentDateTo = DateUtils.dateValue(toDateValue) } const temp = { code: data.code, transNo: data.transNo, dateFrom: sentDateFrom, dateTo: sentDateTo, status : (status?.type && status?.type != 'all') ? status?.type : "", }; applySearch(temp); }; function resetForm() { setStatus(ComboData.paymentStatus[0]); setMinDate(DateUtils.dateValue(new Date().setDate(new Date().getDate()-14))) setMaxDate(DateUtils.dateValue(new Date())) reset(); } return (
{/*row 1*/} Search {/*row 2*/} setReceiptFromError(newError)} slotProps={{ field: { readOnly: true, }, // textField: { // helperText: receiptFromErrorMessage, // }, }} format="DD/MM/YYYY" label="Transaction Date (From)" value={minDate === null ? null : dayjs(minDate)} maxDate={maxDate === null ? null : dayjs(maxDate)} onChange={(newValue) => { // console.log(newValue) if(newValue!=null){ setMinDate(newValue); } }} /> setReceiptFromError(newError)} slotProps={{ field: { readOnly: true, }, // textField: { // helperText: receiptFromErrorMessage, // }, }} format="DD/MM/YYYY" label="Transaction Date (To)" value={maxDate === null ? null : dayjs(maxDate)} minDate={minDate === null ? null : dayjs(minDate)} onChange={(newValue) => { // console.log(newValue) if(newValue!=null){ setMaxDate(newValue); } }} /> options} options={ComboData.paymentStatus} value={status} getOptionLabel={(option) => option.label} inputValue={status?.label ? status?.label : ""} onChange={(event, newValue) => { if(newValue==null){ setStatus(ComboData.paymentStatus[0]); }else{ setStatus(newValue); } }} renderInput={(params) => ( )} InputLabelProps={{ shrink: true }} /> {/*last row*/}
); }; export default SearchPublicNoticeForm;