Browse Source

dn add due dtae

master
Anna Ho 1 year ago
parent
commit
fbb78c5af7
4 changed files with 160 additions and 48 deletions
  1. +61
    -9
      src/pages/DemandNote/Create/SearchForm.js
  2. +8
    -7
      src/pages/DemandNote/Search/DataGrid.js
  3. +89
    -32
      src/pages/DemandNote/Search/SearchForm.js
  4. +2
    -0
      src/pages/DemandNote/Search/index.js

+ 61
- 9
src/pages/DemandNote/Create/SearchForm.js View File

@@ -26,6 +26,9 @@ const SearchPublicNoticeForm = ({ applySearch, issueComboData, _paymentCount, _p
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([]);
@@ -68,18 +71,26 @@ const SearchPublicNoticeForm = ({ applySearch, issueComboData, _paymentCount, _p
setIsFailPopUp(true);
return;
} else {
HttpUtils.post({
url: UrlUtils.DEMAND_NOTE_CREATE + "/" + issueSelected.id,
onSuccess: function (responseData) {
setResultCount(responseData.count);
setDnIdList(responseData.idList);
setIsSuccessPopUp(true);
}
});
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',
@@ -206,6 +217,47 @@ const SearchPublicNoticeForm = ({ applySearch, issueComboData, _paymentCount, _p
</DialogActions>
</Dialog>
</div>
<div>
<Dialog
open={confirmPopUp}
onClose={() => setConfirmPopUp(false)}
PaperProps={{
sx: {
minWidth: '40vw',
maxWidth: { xs: '90vw', s: '90vw', m: '70vw', lg: '70vw' },
maxHeight: { xs: '90vh', s: '70vh', m: '70vh', lg: '60vh' }
}
}}
>
<DialogTitle><Typography variant="h3">Create Confirm</Typography></DialogTitle>
<DialogContent style={{ display: 'flex', }}>
<Grid container alignItems={"center"}>
<Grid item md={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<Typography variant="h4" style={{ padding: '16px' }}>Due Date: </Typography>
</Grid>
<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<TextField
fullWidth
type="date"
defaultValue={dueDate}
InputProps={{ inputProps: { min: DateUtils.dateStr(new Date()) } }}
onChange={(newValue) => {
setDueDate(DateUtils.dateStr(newValue))
}}
InputLabelProps={{
shrink: true
}}
/>
</Grid>
</Grid>
</DialogContent>
<DialogActions>
<Button onClick={() => setConfirmPopUp(false)}><Typography variant="h5">Cancel</Typography></Button>
<Button onClick={() => doDnCreate()}><Typography variant="h5">Confirm</Typography></Button>
</DialogActions>
</Dialog>
</div>
<div>
<Dialog
open={isSuccessPopUp}


+ 8
- 7
src/pages/DemandNote/Search/DataGrid.js View File

@@ -227,15 +227,16 @@ export default function SearchDemandNote({ recordList, reloadFun, applySearch })
},
},
{
id: 'issueDate',
field: 'issueDate',
headerName: 'Due Date / Sent Date',
id: 'dueDate',
field: 'dueDate',
headerName: 'Issue / Due / Sent Date',
width: 300,
renderCell: (params) => {
return (<>
{DateUtils.dateStr(params?.value)}
{params.row.sentDate ? <><br /> {DateUtils.datetimeStr(params.row.sentDate)} - {params.row.sentBy} </>: <> / To be sent</>}
</>);
return (<table>
<tr><td>Issue:</td><td>{DateUtils.dateStr(params?.row.issueDate)}</td></tr>
<tr><td>Due:</td><td>{params?.value? DateUtils.dateStr(params?.value):"--"}</td></tr>
<tr><td>Sent:</td><td>{params.row.sentDate ? <> {DateUtils.datetimeStr(params.row.sentDate)} - {params.row.sentBy} </>: <> To be sent</>}</td></tr>
</table>);
}
},
{


+ 89
- 32
src/pages/DemandNote/Search/SearchForm.js View File

@@ -31,6 +31,9 @@ const SearchDemandNoteForm = ({ applySearch, orgComboData, searchCriteria, issue
const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom);
const [maxDate, setMaxDate] = React.useState(searchCriteria.dateTo);

const [minDueDate, setMinDueDate] = React.useState(searchCriteria.dueDateFrom);
const [maxDueDate, setMaxDueDate] = React.useState(searchCriteria.dueDateTo);

const { reset, register, handleSubmit } = useForm()
const onSubmit = (data) => {
data.status = selectedLabelsString
@@ -47,6 +50,8 @@ const SearchDemandNoteForm = ({ applySearch, orgComboData, searchCriteria, issue
dnNo: data.dnNo,
dateFrom: data.dateFrom,
dateTo: data.dateTo,
dueDateFrom: data.dueDateFrom,
dueDateTo: data.dueDateTo,
status: (data.status === '' || data.status.includes("all")) ? "" : data.status,
};
applySearch(temp);
@@ -181,40 +186,92 @@ const SearchDemandNoteForm = ({ applySearch, orgComboData, searchCriteria, issue
/>
</Grid>

<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<TextField
fullWidth
{...register("dateFrom")}
id="dateFrom"
type="date"
label={"Issue Date(From)"}
defaultValue={searchCriteria.dateFrom}
InputProps={{ inputProps: { max: maxDate } }}
onChange={(newValue) => {
setMinDate(DateUtils.dateStr(newValue));
}}
InputLabelProps={{
shrink: true
}}
/>
<Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
<Grid container>
<Grid item xs={5.25} s={5.25} md={5.25} lg={5.5}>
<TextField
fullWidth
{...register("dateFrom")}
id="dateFrom"
type="date"
label={"Issue Date(From)"}
defaultValue={searchCriteria.dateFrom}
InputProps={{ inputProps: { max: maxDate } }}
onChange={(newValue) => {
setMinDate(DateUtils.dateStr(newValue));
}}
InputLabelProps={{
shrink: true
}}
/>
</Grid>

<Grid item xs={1.5} s={1.5} md={1.5} lg={1} sx={{mt:0.8, display: 'flex', justifyContent:"center", alignItems: 'flex-start'}}>
To
</Grid>

<Grid item xs={5.25} s={5.25} md={5.25} lg={5.5}>
<TextField
fullWidth
InputLabelProps={{
shrink: true
}}
{...register("dateTo")}
InputProps={{ inputProps: { min: minDate } }}
onChange={(newValue) => {
setMaxDate(DateUtils.dateStr(newValue));
}}
id="dateTo"
type="date"
//label={"Submit Date(To)"}
defaultValue={searchCriteria.dateTo}
/>
</Grid>
</Grid>
</Grid>

<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<TextField
fullWidth
InputLabelProps={{
shrink: true
}}
{...register("dateTo")}
InputProps={{ inputProps: { min: minDate } }}
onChange={(newValue) => {
setMaxDate(DateUtils.dateStr(newValue));
}}
id="dateTo"
type="date"
label={"Issue Date(To)"}
defaultValue={searchCriteria.dateTo}
/>
<Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
<Grid container>
<Grid item xs={5.25} s={5.25} md={5.25} lg={5.5}>
<TextField
fullWidth
{...register("dueDateFrom")}
id="dueDateFrom"
type="date"
label={"Due Date(From)"}
defaultValue={searchCriteria.dueDateFrom}
InputProps={{ inputProps: { max: maxDueDate } }}
onChange={(newValue) => {
setMinDueDate(DateUtils.dateStr(newValue));
}}
InputLabelProps={{
shrink: true
}}
/>
</Grid>

<Grid item xs={1.5} s={1.5} md={1.5} lg={1} sx={{mt:0.8, display: 'flex', justifyContent:"center", alignItems: 'flex-start'}}>
To
</Grid>

<Grid item xs={5.25} s={5.25} md={5.25} lg={5.5}>
<TextField
fullWidth
InputLabelProps={{
shrink: true
}}
{...register("dueDateTo")}
InputProps={{ inputProps: { min: minDueDate } }}
onChange={(newValue) => {
setMaxDueDate(DateUtils.dateStr(newValue));
}}
id="dueDateTo"
type="date"
//label={"Submit Date(To)"}
defaultValue={searchCriteria.dueDateTo}
/>
</Grid>
</Grid>
</Grid>




+ 2
- 0
src/pages/DemandNote/Search/index.js View File

@@ -38,6 +38,8 @@ const UserSearchPage_Individual = () => {
const [searchCriteria, setSearchCriteria] = React.useState({
dateTo: DateUtils.dateStr(new Date()),
dateFrom: DateUtils.dateStr(new Date().setDate(new Date().getDate() - 14)),
dueDateTo: DateUtils.dateStr(new Date()),
dueDateFrom: DateUtils.dateStr(new Date().setDate(new Date().getDate() - 14)),
});
const [onReady, setOnReady] = React.useState(false);



Loading…
Cancel
Save