// 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 {PNSPS_BUTTON_THEME} from "../../themes/buttonConst";
import {ThemeProvider} from "@emotion/react";
import * as ComboData from "utils/ComboData";
import * as DateUtils from "utils/DateUtils";
import Loadable from 'components/Loadable';
const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent')));
import { makeStyles } from '@mui/styles';
// ==============================|| DASHBOARD - DEFAULT ||============================== //
const useStyles = makeStyles(() => ({
root: {
position: "relative"
},
display: {
position: "absolute",
top: 2,
left: 12,
bottom: 2,
background: "white",
pointerEvents: "none",
right: 50,
display: "flex",
alignItems: "center",
width:"70%"
},
}));
const SearchPublicNoticeForm = ({ applySearch, generateReport, searchCriteria, onLoad }) => {
const [sysTxnMinDate, setSysTxnMinDate] = React.useState(searchCriteria.dateFrom);
const [sysTxnMaxDate, setsysTxnMaxDate] = React.useState(searchCriteria.dateTo);
const [txnMinDate, setTxnMinDate] = React.useState(searchCriteria.dateFrom);
const [txnMaxDate, setTxnMaxDate] = React.useState(searchCriteria.dateTo);
const [collMinDate, setCollMinDate] = React.useState(searchCriteria.dateFrom);
const [collMaxDate, setCollMaxDate] = React.useState(searchCriteria.dateTo);
const [sysTxnFromDateValue, setSysTxnFromDateValue] = React.useState("dd / mm / yyyy");
const [sysTxnToDateValue, setSysTxnToDateValue] = React.useState("dd / mm / yyyy");
const [txnFromDateValue, setTxnFromDateValue] = React.useState("dd / mm / yyyy");
const [txnToDateValue, setTxnToDateValue] = React.useState("dd / mm / yyyy");
const [collFromDateValue, setCollFromDateValue] = React.useState("dd / mm / yyyy");
const [collToDateValue, setCollToDateValue] = React.useState("dd / mm / yyyy");
const [status, setStatus] = React.useState(ComboData.paymentStatus[0]);
const [method, setMethod] = React.useState(ComboData.paymentMethod[0]);
const marginBottom = 2.5;
const { register, handleSubmit } = useForm()
React.useEffect(() => {
setSysTxnFromDateValue(sysTxnMinDate);
}, [sysTxnMinDate]);
React.useEffect(() => {
setSysTxnToDateValue(sysTxnMaxDate);
}, [sysTxnMaxDate]);
React.useEffect(() => {
setTxnFromDateValue(txnMinDate);
}, [txnMinDate]);
React.useEffect(() => {
setTxnToDateValue(txnMaxDate);
}, [txnMaxDate]);
React.useEffect(() => {
setCollFromDateValue(collMinDate);
}, [collMinDate]);
React.useEffect(() => {
setCollToDateValue(collMaxDate);
}, [collMaxDate]);
function SysTxnFormDateInputComponent({ inputRef, ...props }) {
const classes = useStyles();
return (
<>
{DateUtils.dateStr(sysTxnFromDateValue) == "Invalid Date" ?
sysTxnFromDateValue
:
DateUtils.dateStr(sysTxnFromDateValue)}
>
);
}
function SysTxnToDateInputComponent({ inputRef, ...props }) {
const classes = useStyles();
return (
<>
{DateUtils.dateStr(sysTxnToDateValue) == "Invalid Date" ?
sysTxnToDateValue
:
DateUtils.dateStr(sysTxnToDateValue)}
>
);
}
function TxnFormDateInputComponent({ inputRef, ...props }) {
const classes = useStyles();
return (
<>
{DateUtils.dateStr(txnFromDateValue) == "Invalid Date" ?
txnFromDateValue
:
DateUtils.dateStr(txnFromDateValue)}
>
);
}
function TxnToDateInputComponent({ inputRef, ...props }) {
const classes = useStyles();
return (
<>
{DateUtils.dateStr(txnToDateValue) == "Invalid Date" ?
txnToDateValue
:
DateUtils.dateStr(txnToDateValue)}
>
);
}
function CollFormDateInputComponent({ inputRef, ...props }) {
const classes = useStyles();
return (
<>
{DateUtils.dateStr(collFromDateValue) == "Invalid Date" ?
collFromDateValue
:
DateUtils.dateStr(collFromDateValue)}
>
);
}
function CollToDateInputComponent({ inputRef, ...props }) {
const classes = useStyles();
return (
<>
{DateUtils.dateStr(collToDateValue) == "Invalid Date" ?
collToDateValue
:
DateUtils.dateStr(collToDateValue)}
>
);
}
const onSubmit = () => {
let sentSysTxnDateFrom = "";
let sentSysTxnDateTo = "";
let sentTxnDateFrom = "";
let sentTxnDateTo = "";
let sentCollDateFrom = "";
let sentCollDateTo = "";
// Invalid Date
if (sysTxnFromDateValue != "dd / mm / yyyy" && sysTxnToDateValue != "dd / mm / yyyy" ) {
sentSysTxnDateFrom = DateUtils.dateValue(sysTxnFromDateValue)!="Invalid Date"?DateUtils.dateValue(sysTxnFromDateValue):""
sentSysTxnDateTo = DateUtils.dateValue(sysTxnToDateValue)!="Invalid Date"?DateUtils.dateValue(sysTxnToDateValue):""
}
if (txnFromDateValue != "dd / mm / yyyy" && txnToDateValue != "dd / mm / yyyy") {
sentTxnDateFrom = DateUtils.dateValue(txnFromDateValue)!="Invalid Date"?DateUtils.dateValue(txnFromDateValue):""
sentTxnDateTo = DateUtils.dateValue(txnToDateValue)!="Invalid Date"?DateUtils.dateValue(txnToDateValue):""
}
if (collFromDateValue != "dd / mm / yyyy" && collToDateValue != "dd / mm / yyyy") {
sentCollDateFrom = DateUtils.dateValue(collFromDateValue)!="Invalid Date"?DateUtils.dateValue(collFromDateValue):""
sentCollDateTo = DateUtils.dateValue(collToDateValue)!="Invalid Date"?DateUtils.dateValue(collToDateValue):""
}
const temp = {
PaymentMethod:(method?.type && method?.type != 'Please Select') ? method?.type : "",
PaymentStatus : (status?.type && status?.type != 'all') ? status?.type : "",
SysTxnDateFrom: sentSysTxnDateFrom,
SysTxnDateTo: sentSysTxnDateTo,
TxnDateFrom: sentTxnDateFrom,
TxnDateTo: sentTxnDateTo,
CollDateFrom: sentCollDateFrom,
CollDateTo: sentCollDateTo,
};
console.log(temp)
applySearch(temp);
};
const generateFileHandler = (fileFormart) => () => {
let sentSysTxnDateFrom = "";
let sentSysTxnDateTo = "";
let sentTxnDateFrom = "";
let sentTxnDateTo = "";
let sentCollDateFrom = "";
let sentCollDateTo = "";
if (sysTxnFromDateValue != "dd / mm / yyyy" && sysTxnToDateValue != "dd / mm / yyyy" ) {
sentSysTxnDateFrom = DateUtils.dateValue(sysTxnFromDateValue)!="Invalid Date"?DateUtils.dateValue(sysTxnFromDateValue):""
sentSysTxnDateTo = DateUtils.dateValue(sysTxnToDateValue)!="Invalid Date"?DateUtils.dateValue(sysTxnToDateValue):""
}
if (txnFromDateValue != "dd / mm / yyyy" && txnToDateValue != "dd / mm / yyyy") {
sentTxnDateFrom = DateUtils.dateValue(txnFromDateValue)!="Invalid Date"?DateUtils.dateValue(txnFromDateValue):""
sentTxnDateTo = DateUtils.dateValue(txnToDateValue)!="Invalid Date"?DateUtils.dateValue(txnToDateValue):""
}
if (collFromDateValue != "dd / mm / yyyy" && collToDateValue != "dd / mm / yyyy") {
sentCollDateFrom = DateUtils.dateValue(collFromDateValue)!="Invalid Date"?DateUtils.dateValue(collFromDateValue):""
sentCollDateTo = DateUtils.dateValue(collToDateValue)!="Invalid Date"?DateUtils.dateValue(collToDateValue):""
}
const temp = {
PaymentMethod:(method?.type && method?.type != 'Please Select') ? method?.type : "",
PaymentStatus : (status?.type && status?.type != 'all') ? status?.type : "",
SysTxnDateFrom: sentSysTxnDateFrom,
SysTxnDateTo: sentSysTxnDateTo,
TxnDateFrom: sentTxnDateFrom,
TxnDateTo: sentTxnDateTo,
CollDateFrom: sentCollDateFrom,
CollDateTo: sentCollDateTo,
ReportFormat:fileFormart
};
generateReport(temp);
}
return (
);
};
export default SearchPublicNoticeForm;