// material-ui import { Button, Grid, TextField, Autocomplete, Typography, Dialog, DialogTitle, DialogContent, DialogActions, } from '@mui/material'; import MainCard from "components/MainCard"; import * as React from "react"; import * as FormatUtils from "utils/FormatUtils"; import * as DateUtils from "utils/DateUtils"; import * as UrlUtils from "utils/ApiPathConst"; import * as HttpUtils from "utils/HttpUtils"; import { useNavigate } from "react-router-dom"; import { notifyDownloadSuccess } from 'utils/CommonFunction'; import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; import {ThemeProvider} from "@emotion/react"; // ==============================|| DASHBOARD - DEFAULT ||============================== // const SearchPublicNoticeForm = ({ applySearch, issueComboData, _paymentCount, _publishCount }) => { const [isFailPopUp, setIsFailPopUp] = React.useState(false); const [failText, setFailText] = React.useState(""); const [confirmPopUp, setConfirmPopUp] = React.useState(false); const [dueDate, setDueDate] = React.useState(DateUtils.dateStr(new Date())); const [isSuccessPopUp, setIsSuccessPopUp] = React.useState(false); const [resultCount, setResultCount] = React.useState(0); const [dnIdList, setDnIdList] = React.useState([]); const [issueSelected, setIssueSelected] = React.useState({}); const [paymentCount, setPaymentCount] = React.useState(0); const [publishCount, setPublishCount] = React.useState(0); const [issueCombo, setIssueCombo] = React.useState([]); const navigate = useNavigate() React.useEffect(() => { if (issueComboData && issueComboData.length > 0) { setIssueCombo(issueComboData); } }, [issueComboData]); React.useEffect(() => { setPaymentCount(_paymentCount); }, [_paymentCount]); React.useEffect(() => { setPublishCount(_publishCount); }, [_publishCount]); React.useEffect(() => { onPreView(); }, [issueSelected]); function getIssueLabel(data) { if (data == {}) return ""; return data.issueYear + " Vol. " + FormatUtils.zeroPad(data.volume, 3) + ", No. " + FormatUtils.zeroPad(data.issueNo, 2) + ", " + DateUtils.dateFormat(data.issueDate, "D MMM YYYY (ddd)"); } const onSubmit = () => { if (!issueSelected?.id) { setFailText("Fail Create: Please select Gazette Issue."); setIsFailPopUp(true); return; } else { setDueDate(DateUtils.dateStr(new Date())); setConfirmPopUp(true); } }; const doDnCreate=()=>{ setConfirmPopUp(false); HttpUtils.post({ url: UrlUtils.DEMAND_NOTE_CREATE + "/" + issueSelected.id, params:{ dueDate: dueDate }, onSuccess: function (responseData) { setResultCount(responseData.count); setDnIdList(responseData.idList); setIsSuccessPopUp(true); } }); } const fileDownload = () => { HttpUtils.fileDownload({ method:'post', url: UrlUtils.DEMAND_NOTE_EXPORT, params: { "dnIdList": dnIdList }, onSuccess: function () { notifyDownloadSuccess(); } }); } const onNavigate = () => { setIsSuccessPopUp(false); if(resultCount > 0) navigate('/paymentPage/demandNote'); }; const onPreView = () => { if (!issueSelected?.id) { return; } const temp = { issueId: issueSelected.id, }; applySearch(temp); }; return (
{/*row 1*/} {/*row 1*/} Please Select Gazette Issue : {/*row 2*/} getIssueLabel(option)} onChange={(event, newValue) => { if (newValue !== null) { setIssueSelected(newValue); } }} renderInput={(params) => ( )} /> {/* */} Pending Payment: {paymentCount} Pending Publish: {publishCount}
setIsFailPopUp(false)} PaperProps={{ sx: { minWidth: '40vw', maxWidth: { xs: '90vw', s: '90vw', m: '70vw', lg: '70vw' }, maxHeight: { xs: '90vh', s: '70vh', m: '70vh', lg: '60vh' } } }} > Action Fail {failText}
setConfirmPopUp(false)} PaperProps={{ sx: { minWidth: '40vw', maxWidth: { xs: '90vw', s: '90vw', m: '70vw', lg: '70vw' }, maxHeight: { xs: '90vh', s: '70vh', m: '70vh', lg: '60vh' } } }} > Create Confirm Due Date: { setDueDate(newValue.currentTarget.value) }} InputLabelProps={{ shrink: true }} />
setIsSuccessPopUp(false)} PaperProps={{ sx: { minWidth: '40vw', maxWidth: { xs: '90vw', s: '90vw', m: '70vw', lg: '70vw' }, maxHeight: { xs: '90vh', s: '70vh', m: '70vh', lg: '60vh' } } }} > Create Result Created DN record: {resultCount} {resultCount == 0 ? <> : }
); }; export default SearchPublicNoticeForm;