| @@ -361,7 +361,7 @@ function Header(props) { | |||
| alignItems="center" | |||
| spacing={0} | |||
| > | |||
| <Box sx={{ display: { xs: 'none', sm: 'none', md: 'block' } }}> | |||
| <Box mt={0.5} sx={{ display: { xs: 'none', sm: 'none', md: 'block' } }}> | |||
| <AdminLogo /> | |||
| </Box> | |||
| <IconButton | |||
| @@ -15,27 +15,24 @@ export default function EmailTemplateTable({ recordList }) { | |||
| // const navigate = useNavigate() | |||
| useEffect(() => { | |||
| console.log(recordList) | |||
| setRows(recordList); | |||
| }, [recordList]); | |||
| // const handleEditClick = (id) => () => { | |||
| // navigate('/emailTemplate/' + id); | |||
| // }; | |||
| const columns = [ | |||
| { | |||
| id: 'holiday_DAY', | |||
| field: 'holiday_DAY', | |||
| id: 'HOLIDAY_DAY', | |||
| field: 'HOLIDAY_DAY', | |||
| headerName: 'Date', | |||
| flex: 4, | |||
| renderCell: (params) => { | |||
| let holiday_DAY = params.row.holiday_DAY; | |||
| return <div style={{ margin: 4 }}>{dateStr(holiday_DAY)}</div> | |||
| let HOLIDAY_DAY = params.row.HOLIDAY_DAY; | |||
| return <div style={{ margin: 4 }}>{dateStr(HOLIDAY_DAY)}</div> | |||
| }, | |||
| }, | |||
| { | |||
| id: 'description', | |||
| field: 'description', | |||
| id: 'DESCRIPTION', | |||
| field: 'DESCRIPTION', | |||
| headerName: 'Description', | |||
| flex: 5, | |||
| }, | |||
| @@ -3,7 +3,7 @@ import { | |||
| Button, | |||
| Grid, | |||
| TextField, | |||
| // Autocomplete, | |||
| Autocomplete, | |||
| Typography | |||
| } from '@mui/material'; | |||
| import MainCard from "components/MainCard"; | |||
| @@ -16,25 +16,38 @@ import {ThemeProvider} from "@emotion/react"; | |||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | |||
| const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { | |||
| const SearchPublicNoticeForm = ({ applySearch, comboData}) => { | |||
| const [selectedYear, setSelectedYear] = React.useState([]); | |||
| // const [defaultYear, setDefaultYear] = React.useState(searchCriteria.year); | |||
| const [comboList, setComboList] = React.useState([]); | |||
| // const [onReady, setOnReady] = React.useState(false); | |||
| // const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); | |||
| const [maxDate] = React.useState(searchCriteria.dateFrom); | |||
| // const [status, setStatus] = React.useState(ComboData.paymentStatus[0]); | |||
| const { | |||
| // register, | |||
| handleSubmit } = useForm() | |||
| const { register, handleSubmit } = useForm() | |||
| const onSubmit = (data) => { | |||
| const temp = { | |||
| // code: data.code, | |||
| // transNo: data.transNo, | |||
| dateFrom: data.dateFrom, | |||
| dateTo: data.dateTo, | |||
| // status : (status?.type && status?.type != 'all') ? status?.type : "", | |||
| }; | |||
| applySearch(temp); | |||
| const onSubmit = () => { | |||
| if (selectedYear !=null){ | |||
| const temp = { | |||
| year: selectedYear.label, | |||
| }; | |||
| applySearch(temp); | |||
| } | |||
| }; | |||
| React.useEffect(() => { | |||
| if (comboData && comboData.length > 0) { | |||
| // console.log(comboData) | |||
| // const labelValue = comboData.find(obj => obj.label === searchCriteria.year); | |||
| // console.log(labelValue) | |||
| if(selectedYear.length == 0){ | |||
| setSelectedYear(comboData[0]) | |||
| } | |||
| setComboList(comboData) | |||
| // setSelectedYear(searchCriteria.dateFrom) | |||
| } | |||
| }, [comboData]); | |||
| return ( | |||
| <MainCard xs={12} md={12} lg={12} | |||
| @@ -45,29 +58,32 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { | |||
| <form onSubmit={handleSubmit(onSubmit)} > | |||
| <Grid container sx={{ backgroundColor: '#ffffff', ml: 2, mt: 1}} width="98%"> | |||
| {/*row 1*/} | |||
| <Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:2.5}}> | |||
| <Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:1}}> | |||
| <Typography variant="h5" > | |||
| Date | |||
| Year | |||
| </Typography> | |||
| </Grid> | |||
| {/*row 2*/} | |||
| <Grid container display="flex" alignItems={"center"}> | |||
| <Grid item xs={9} s={6} md={4} lg={4} sx={{ ml: 3, mr: 3, mb: 3 }}> | |||
| <TextField | |||
| fullWidth | |||
| {...register("dateFrom")} | |||
| id="dateFrom" | |||
| type="date" | |||
| label="Credit Date" | |||
| defaultValue={searchCriteria.dateFrom} | |||
| InputProps={{ inputProps: { max: maxDate } }} | |||
| // onChange={(newValue) => { | |||
| // setMinDate(DateUtils.dateStr(newValue)); | |||
| // }} | |||
| InputLabelProps={{ | |||
| shrink: true | |||
| <Autocomplete | |||
| disablePortal | |||
| id="year-combo" | |||
| value={selectedYear} | |||
| // defaultValue={selectedYear} | |||
| options={comboList} | |||
| // disabled={checkCountry} | |||
| getOptionLabel={(option) => option.label ? option.label : ""} | |||
| onChange={(event, newValue) => { | |||
| setSelectedYear(newValue); | |||
| }} | |||
| sx={{ | |||
| "& .MuiInputBase-root": { height: "41px" }, | |||
| "#year-combo": { padding: "0px 0px 0px 0px" }, | |||
| "& .MuiAutocomplete-endAdornment": { top: "auto" }, | |||
| }} | |||
| renderInput={(params) => <TextField {...params} placeholder={""}/>} | |||
| /> | |||
| </Grid> | |||
| @@ -38,10 +38,11 @@ import { notifySaveSuccess } from 'utils/CommonFunction'; | |||
| const Index = () => { | |||
| const [record, setRecord] = React.useState([]); | |||
| const [comboData, setComboData] = React.useState([]); | |||
| const [onReady, setOnReady] = React.useState(false); | |||
| // const navigate = useNavigate() | |||
| const [searchCriteria, setSearchCriteria] = React.useState({ | |||
| dateFrom: dateStr_Year(new Date()), | |||
| year: dateStr_Year(new Date()), | |||
| // dateFrom: DateUtils.dateStr(new Date().setDate(new Date().getDate()-14)), | |||
| }); | |||
| const [attachments, setAttachments] = React.useState([]); | |||
| @@ -49,20 +50,41 @@ const Index = () => { | |||
| const [isWarningPopUp, setIsWarningPopUp] = React.useState(false); | |||
| const [warningText, setWarningText] = React.useState(""); | |||
| React.useLayoutEffect(() => { | |||
| loadForm(); | |||
| }, []); | |||
| // React.useLayoutEffect(() => { | |||
| // loadForm(); | |||
| // }, []); | |||
| React.useLayoutEffect(() => { | |||
| setOnReady(true); | |||
| }, [record]); | |||
| if (comboData && comboData.length > 0) { | |||
| setOnReady(true); | |||
| } | |||
| }, [comboData]); | |||
| const loadForm = () => { | |||
| React.useEffect(() => { | |||
| // console.log(searchCriteria) | |||
| loadForm(); | |||
| }, [searchCriteria]); | |||
| function loadForm() { | |||
| HttpUtils.get({ | |||
| url: UrlUtils.GET_HOLIDAY, | |||
| params: searchCriteria, | |||
| onSuccess: (responseData) => { | |||
| console.log(dateStr_Year(new Date())) | |||
| console.log(comboData) | |||
| setRecord(responseData); | |||
| if (comboData.length == 0) { | |||
| loadCombo(); | |||
| } | |||
| } | |||
| }); | |||
| } | |||
| function loadCombo() { | |||
| HttpUtils.get({ | |||
| url: UrlUtils.GET_HOLIDAY_COMBO, | |||
| onSuccess: (responseData) => { | |||
| let combo = responseData; | |||
| setComboData(combo); | |||
| } | |||
| }); | |||
| } | |||
| @@ -72,11 +94,9 @@ const Index = () => { | |||
| } | |||
| React.useEffect(() => { | |||
| if (!attachments || attachments.length <= 0) { | |||
| setAttachments([]); | |||
| return; | |||
| if (attachments.length > 0) { | |||
| importHoliday(); | |||
| } | |||
| importHoliday(); | |||
| }, [attachments]); | |||
| const readFile = (event) => { | |||
| @@ -166,6 +186,7 @@ const Index = () => { | |||
| applySearch={applySearch} | |||
| // generateXML={generateXML} | |||
| searchCriteria={searchCriteria} | |||
| comboData={comboData} | |||
| /> | |||
| </Grid> | |||
| {/*row 2*/} | |||
| @@ -171,4 +171,5 @@ export const GEN_GFMIS_XML = apiPath+'/gfmis'; //GET | |||
| //Holiday | |||
| export const GET_HOLIDAY = apiPath+'/holiday/list'; //GET | |||
| export const POST_HOLIDAY = apiPath+'/holiday/import'; //POST | |||
| export const POST_HOLIDAY = apiPath+'/holiday/import'; //POST | |||
| export const GET_HOLIDAY_COMBO = apiPath+'/holiday/combo'; //GET | |||