Просмотр исходного кода

update to GFMIS XML form

CR013B2
Jason Chuang 14 часов назад
Родитель
Сommit
11c5a3be3d
3 измененных файлов: 43 добавлений и 17 удалений
  1. +18
    -12
      src/pages/GFMIS/SearchForm.js
  2. +17
    -5
      src/pages/GFMIS/TransactionDataGrid.js
  3. +8
    -0
      src/pages/GFMIS/index.js

+ 18
- 12
src/pages/GFMIS/SearchForm.js Просмотреть файл

@@ -22,7 +22,7 @@ import {DemoItem} from "@mui/x-date-pickers/internals/demo";
import {LocalizationProvider} from "@mui/x-date-pickers/LocalizationProvider"; import {LocalizationProvider} from "@mui/x-date-pickers/LocalizationProvider";
import {AdapterDayjs} from "@mui/x-date-pickers/AdapterDayjs"; import {AdapterDayjs} from "@mui/x-date-pickers/AdapterDayjs";
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //
const SearchPublicNoticeForm = ({ applySearch, generateXML, searchCriteria, onGridReady,selectedIds=[] }) => {
const SearchPublicNoticeForm = ({ applySearch, generateXML, searchCriteria, onGridReady, selectedIds = [] }) => {


// const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); // const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom);
const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom);
@@ -67,7 +67,7 @@ const SearchPublicNoticeForm = ({ applySearch, generateXML, searchCriteria, onGr
// transNo: data.transNo, // transNo: data.transNo,
dateFrom: sentDateFrom, dateFrom: sentDateFrom,
dateTo: sentDateTo, dateTo: sentDateTo,
paymentId: selectedIds.join(','),
// paymentId: selectedIds.join(','),
payMethod : toPayMethodArray(payMethod), payMethod : toPayMethodArray(payMethod),
// status : (status?.type && status?.type != 'all') ? status?.type : "", // status : (status?.type && status?.type != 'all') ? status?.type : "",
}; };
@@ -75,25 +75,29 @@ const SearchPublicNoticeForm = ({ applySearch, generateXML, searchCriteria, onGr
}; };


const generateHandler = () => { const generateHandler = () => {
if (!selectedIds || selectedIds.length === 0) {
alert('No payment is selected.');
return;
}

let sentDateFrom = ""; let sentDateFrom = "";
let sentDateTo = ""; let sentDateTo = "";


if (fromDateValue != "dd / mm / yyyy") {
sentDateFrom = DateUtils.dateValue(fromDateValue)
if (fromDateValue !== "dd / mm / yyyy") {
sentDateFrom = DateUtils.dateValue(fromDateValue);
} }
if (toDateValue != "dd / mm / yyyy") {
sentDateTo = DateUtils.dateValue(toDateValue)
if (toDateValue !== "dd / mm / yyyy") {
sentDateTo = DateUtils.dateValue(toDateValue);
} }
// const dateTo = getValues("dateTo")
const temp = { const temp = {
// code: data.code,
// transNo: data.transNo,
dateFrom: sentDateFrom, dateFrom: sentDateFrom,
dateTo: sentDateTo, dateTo: sentDateTo,
// status : (status?.type && status?.type != 'all') ? status?.type : "",
}; };

generateXML(temp); generateXML(temp);
}
};





return ( return (
@@ -221,9 +225,11 @@ const SearchPublicNoticeForm = ({ applySearch, generateXML, searchCriteria, onGr
<Button <Button
variant="contained" variant="contained"
onClick={generateHandler} onClick={generateHandler}
>
disabled={!selectedIds || selectedIds.length === 0}
>
Generate Generate
</Button> </Button>

</Grid> </Grid>
</ThemeProvider> </ThemeProvider>
</Grid> </Grid>


+ 17
- 5
src/pages/GFMIS/TransactionDataGrid.js Просмотреть файл

@@ -42,6 +42,11 @@ export default function SearchPaymentTable({ searchCriteria, applyGridOnReady, a
set_searchCriteria(searchCriteria); set_searchCriteria(searchCriteria);
}, [searchCriteria]); }, [searchCriteria]);


const selectedIdsRef = React.useRef(selectedIds);
React.useEffect(() => {
selectedIdsRef.current = selectedIds;
}, [selectedIds]);

const columns = [ const columns = [
{ {
id: 'appNos', id: 'appNos',
@@ -115,12 +120,19 @@ export default function SearchPaymentTable({ searchCriteria, applyGridOnReady, a
url: PAYMENT_GFMIS_LIST, url: PAYMENT_GFMIS_LIST,
params: _searchCriteria, params: _searchCriteria,
callback: (responseData) => { callback: (responseData) => {
const newIds = responseData.records.map(r => r.id);
if (selectedIds.length === 0) {
onSelectionChange?.(newIds);
const newIds = (responseData?.records ?? []).map(r => r.id);
const currentSelected = selectedIdsRef.current;

if (newIds.length === 0) {
onSelectionChange?.([]);
return;
}

if (!currentSelected || currentSelected.length === 0) {
onSelectionChange?.(newIds);
} else { } else {
const stillValid = selectedIds.filter(id => newIds.includes(id));
onSelectionChange?.(stillValid);
const stillValid = currentSelected.filter(id => newIds.includes(id));
onSelectionChange?.(stillValid);
} }
} }
}), [_searchCriteria])} }), [_searchCriteria])}


+ 8
- 0
src/pages/GFMIS/index.js Просмотреть файл

@@ -85,6 +85,14 @@ const Index = () => {
setAutoPreviewPending(false); setAutoPreviewPending(false);
}, [autoPreviewPending, isTxLoading, selectedIds, searchCriteria]); }, [autoPreviewPending, isTxLoading, selectedIds, searchCriteria]);


React.useEffect(() => {
if (selectedIds.length === 0) {
setPreviewSearchCriteria({});
setPreviewToken(t => t + 1); // forces preview grid remount -> clears rows
}
}, [selectedIds]);


function downloadXML() { function downloadXML() {
console.log(selectedIds.join(',')) console.log(selectedIds.join(','))
setIsPopUp(false) setIsPopUp(false)


Загрузка…
Отмена
Сохранить