// material-ui import { Button, CardContent, 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 {FormattedMessage, useIntl} from "react-intl"; 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, onGridReady }) => { const intl = useIntl(); const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); const [maxDate, setMaxDate] = React.useState(searchCriteria.dateTo); const [status, setStatus] = React.useState(searchCriteria.status!=undefined?ComboData.paymentStatus.find(item => item.type === searchCriteria.status):ComboData.paymentStatus[0]); const [fromDateValue, setFromDateValue] = React.useState("dd / mm / yyyy"); const [toDateValue, setToDateValue] = React.useState("dd / mm / yyyy"); React.useEffect(() => { // console.log(minDate) setFromDateValue(minDate); }, [minDate]); React.useEffect(() => { setToDateValue(maxDate); }, [maxDate]); const _sx = { padding: "4 2 4 2", boxShadow: 1, border: 1, borderColor: '#DDD', '& .MuiDataGrid-cell': { borderTop: 1, borderBottom: 1, borderColor: "#EEE" }, '& .MuiDataGrid-footerContainer': { border: 1, borderColor: "#EEE" } } const { reset, register, handleSubmit } = useForm() 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({ code:"", transNo:"" }); localStorage.setItem('searchCriteria',"") } return (
{/*row 1*/} {/*row 2*/} setReceiptFromError(newError)} slotProps={{ field: { readOnly: true, }, // textField: { // helperText: receiptFromErrorMessage, // }, }} format="DD/MM/YYYY" label={intl.formatMessage({id: 'payDateFrom'})} // defaultValue={searchCriteria.dateFrom} 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={intl.formatMessage({id: 'payDateTo'})} // defaultValue={searchCriteria.dateTo} 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.type? intl.formatMessage({ id: option.i18nLabel }) : ""} inputValue={status? intl.formatMessage({ id: status.i18nLabel }) : ""} onChange={(event, newValue) => { if (newValue !== null) { setStatus(newValue); }else{ setStatus(ComboData.paymentStatus[0]); } }} renderInput={(params) => ( )} InputLabelProps={{ shrink: true }} /> {/*last row*/}
); }; export default SearchPublicNoticeForm;