ソースを参照

update to GFMIS XML form

CR013B2
Jason Chuang 4時間前
コミット
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 {AdapterDayjs} from "@mui/x-date-pickers/AdapterDayjs";
// ==============================|| 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);
@@ -67,7 +67,7 @@ const SearchPublicNoticeForm = ({ applySearch, generateXML, searchCriteria, onGr
// transNo: data.transNo,
dateFrom: sentDateFrom,
dateTo: sentDateTo,
paymentId: selectedIds.join(','),
// paymentId: selectedIds.join(','),
payMethod : toPayMethodArray(payMethod),
// status : (status?.type && status?.type != 'all') ? status?.type : "",
};
@@ -75,25 +75,29 @@ const SearchPublicNoticeForm = ({ applySearch, generateXML, searchCriteria, onGr
};

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

let sentDateFrom = "";
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 = {
// code: data.code,
// transNo: data.transNo,
dateFrom: sentDateFrom,
dateTo: sentDateTo,
// status : (status?.type && status?.type != 'all') ? status?.type : "",
};

generateXML(temp);
}
};



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

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


+ 17
- 5
src/pages/GFMIS/TransactionDataGrid.js ファイルの表示

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

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

const columns = [
{
id: 'appNos',
@@ -115,12 +120,19 @@ export default function SearchPaymentTable({ searchCriteria, applyGridOnReady, a
url: PAYMENT_GFMIS_LIST,
params: _searchCriteria,
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 {
const stillValid = selectedIds.filter(id => newIds.includes(id));
onSelectionChange?.(stillValid);
const stillValid = currentSelected.filter(id => newIds.includes(id));
onSelectionChange?.(stillValid);
}
}
}), [_searchCriteria])}


+ 8
- 0
src/pages/GFMIS/index.js ファイルの表示

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

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


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


読み込み中…
キャンセル
保存