diff --git a/src/layout/MainLayout/Header/index.js b/src/layout/MainLayout/Header/index.js index 1c93bed..c39c03a 100644 --- a/src/layout/MainLayout/Header/index.js +++ b/src/layout/MainLayout/Header/index.js @@ -83,7 +83,7 @@ function Header(props) { Proof
  • - Payment + Payment
  • Client diff --git a/src/pages/Payment/Details_GLD/DataGrid.js b/src/pages/Payment/Details_GLD/DataGrid.js new file mode 100644 index 0000000..b9458a8 --- /dev/null +++ b/src/pages/Payment/Details_GLD/DataGrid.js @@ -0,0 +1,64 @@ +// material-ui +import { + Typography, +} from '@mui/material'; + +import * as React from 'react'; +import * as FormatUtils from "utils/FormatUtils" +import { FiDataGrid } from "components/FiDataGrid"; +// ==============================|| EVENT TABLE ||============================== // + +export default function SearchPublicNoticeTable({ recordList }) { + const [rows, setRows] = React.useState(recordList); + const [total, setTotal] = React.useState(0); + + React.useEffect(() => { + setRows(recordList); + let countTotal = 0; + recordList.forEach(item => { + countTotal+=item.fee; + }); + + setTotal(countTotal) + }, [recordList]); + + const columns = [ + { + id: 'appNo', + field: 'appNo', + headerName: 'App No.', + flex: 1, + renderCell: (params) => { + let appNo = params.row.appNo; + return
    {appNo}
    {params.row.remarks}
    + }, + }, + { + id: 'fee', + field: 'fee', + headerName: 'Amount (HK$)', + width: 150, + valueGetter: (params) => { + return (params?.value) ? "$ " + FormatUtils.currencyFormat(params?.value) : ""; + } + }, + ]; + + return ( +
    + + + + Total Amount: HK$ {FormatUtils.currencyFormat(total)} +
    + ); +} diff --git a/src/pages/Payment/Details_GLD/PaymentDetails.js b/src/pages/Payment/Details_GLD/PaymentDetails.js new file mode 100644 index 0000000..0a4bbfe --- /dev/null +++ b/src/pages/Payment/Details_GLD/PaymentDetails.js @@ -0,0 +1,151 @@ +// material-ui +import { + Grid, + Typography, + FormLabel, +} from '@mui/material'; + +import * as React from "react"; +import * as FormatUtils from "utils/FormatUtils"; +import * as PaymentStatus from "utils/statusUtils/PaymentStatus"; +import Loadable from 'components/Loadable'; +const MainCard = Loadable(React.lazy(() => import('components/MainCard'))); +const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); +// ==============================|| DASHBOARD - DEFAULT ||============================== // +const PaymentDetails = ({ formData, }) => { + + const [data, setData] = React.useState({}); + const [onReady, setOnReady] = React.useState(false); + + React.useEffect(() => { + if (formData != null && formData != undefined && Object.keys(formData).length > 0) { + setData(formData); + } + }, [formData]); + + React.useEffect(() => { + if (formData != null && formData != undefined && Object.keys(formData).length > 0) { + setOnReady(data != {}); + } + }, [data]); + + + return ( + !onReady ? + + : + + + Payment Details + +
    + + + + + + Status: + + + + + {PaymentStatus.getStatus_Eng(data.status)} + + + + + + + + + Trans No.: + + + + + {data.payload?.transactionid} + + + + + + + + + Trans Date: + + + + + {data.transDateStr + " (DD/MM/YYYY)"} + + + + + + + + + Trans Time: + + + + + {data.transTimeStr + " (HH:MI:SS)"} + + + + + + + + + EGIS Ref No.: + + + + + {data.egisRefNo} + + + + + + + + + Payment Amount: + + + + + {"HK$ " + FormatUtils.currencyFormat(data.payload?.amount)} + + + + + + + + + Payment Method: + + + + + {data.payload?.paymentdetail?.subtype ?? (data.payload.paymentdetail.paymentmethod === "01" ? "PPS" : "")} + + + + + + +
    +
    + ); +}; + +export default PaymentDetails; diff --git a/src/pages/Payment/Details_GLD/index.js b/src/pages/Payment/Details_GLD/index.js new file mode 100644 index 0000000..b5fd143 --- /dev/null +++ b/src/pages/Payment/Details_GLD/index.js @@ -0,0 +1,114 @@ +// material-ui +import { + Grid, + Typography, + Stack, + Box +} from '@mui/material'; +import * as UrlUtils from "utils/ApiPathConst"; +import * as React from "react"; +import * as HttpUtils from "utils/HttpUtils"; +import * as DateUtils from "utils/DateUtils"; +import { useParams } from "react-router-dom"; +import { useNavigate } from "react-router-dom"; + +import Loadable from 'components/Loadable'; +const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); +const PaymentDetails = Loadable(React.lazy(() => import('./PaymentDetails'))); +const DataGrid = Loadable(React.lazy(() => import('./DataGrid'))); +import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' +const BackgroundHead = { + backgroundImage: `url(${titleBackgroundImg})`, + width: '100%', + height: '100%', + backgroundSize: 'contain', + backgroundRepeat: 'no-repeat', + backgroundColor: '#0C489E', + backgroundPosition: 'right' +} + +// ==============================|| DASHBOARD - DEFAULT ||============================== // + +const Index = () => { + const params = useParams(); + const navigate = useNavigate() + + const [record, setRecord] = React.useState(); + const [itemList, setItemList] = React.useState([]); + const [onReady, setOnReady] = React.useState(false); + + React.useEffect(() => { + loadForm(); + }, []); + + React.useEffect(() => { + setOnReady(true); + }, [record]); + + + const loadForm = () => { + if (params.id > 0) { + + HttpUtils.get({ + url: UrlUtils.PAYMENT_LOAD + "/" + params.id, + onSuccess: (responseData) => { + if (!responseData.data?.id) { + navigate("/paymentPage/search"); + } + responseData.data["transDateStr"] = DateUtils.dateFormat(responseData.data.transDateTime, "DD/MM/YYYY"); + responseData.data["transTimeStr"] = DateUtils.dateFormat(responseData.data.transDateTime, "HH:mm:ss"); + setItemList(responseData.paymentItemList) + setRecord(responseData.data); + } + }); + } + } + + return ( + !onReady ? + + : + ( + + +
    + + Payment Details + +
    +
    + {/*row 1*/} + + + + + + + + + + + + + + + {/*row 2*/} +
    + + + ) + + + ); +}; + +export default Index; diff --git a/src/pages/Payment/Search_GLD/DataGrid.js b/src/pages/Payment/Search_GLD/DataGrid.js new file mode 100644 index 0000000..e7bb4af --- /dev/null +++ b/src/pages/Payment/Search_GLD/DataGrid.js @@ -0,0 +1,106 @@ +// material-ui +import * as React from 'react'; +import { + Button +} from '@mui/material'; +import * as DateUtils from "utils/DateUtils"; +import * as FormatUtils from "utils/FormatUtils" +import * as PaymentStatus from "utils/statusUtils/PaymentStatus" +import { useNavigate } from "react-router-dom"; +import { FiDataGrid } from "components/FiDataGrid"; +// ==============================|| EVENT TABLE ||============================== // + +export default function SearchPublicNoticeTable({ recordList }) { + const [rows, setRows] = React.useState(recordList); + const navigate = useNavigate() + + const _sx = { + padding: "4 2 4 2", + boxShadow: 1, + border: 1, + borderColor: '#DDD', + '& .MuiDataGrid-cell': { + borderTop: 1, + borderBottom: 1, + borderColor: "#EEE" + }, + '& .MuiDataGrid-footerContainer': { + border: 1, + borderColor: "#EEE" + } + } + + React.useEffect(() => { + setRows(recordList); + }, [recordList]); + + const handleEditClick = (params) => () => { + navigate('/paymentPage/details/' + params.row.id); + }; + + const columns = [ + { + field: 'actions', + headerName: 'Trans. No.', + flex: 1, + cellClassName: 'actions', + renderCell: (params) => { + return ; + }, + }, + { + id: 'appNos', + field: 'appNos', + headerName: 'App No.', + flex: 1, + renderCell: (params) => { + let appNo = params.row.appNos; + return
    {appNo}
    + }, + }, + { + id: 'transDateTime', + field: 'transDateTime', + headerName: 'Trans. Date', + flex: 1, + valueGetter: (params) => { + return DateUtils.datetimeStr(params?.value); + } + }, + { + field: 'action', + headerName: 'Status', + width: 150, + renderCell: (params) => { + return PaymentStatus.getStatus_Cht(params); + } + }, + { + id: 'payAmount', + field: 'payAmount', + headerName: 'Amount', + width: 150, + valueGetter: (params) => { + return (params?.value) ? "$ " + FormatUtils.currencyFormat(params?.value) : ""; + } + }, + ]; + + return ( +
    + + +
    + ); +} diff --git a/src/pages/Payment/Search_GLD/SearchForm.js b/src/pages/Payment/Search_GLD/SearchForm.js new file mode 100644 index 0000000..d348365 --- /dev/null +++ b/src/pages/Payment/Search_GLD/SearchForm.js @@ -0,0 +1,156 @@ +// material-ui +import { + Button, + CardContent, + Grid, TextField, + Typography +} from '@mui/material'; +import MainCard from "components/MainCard"; +import { useForm } from "react-hook-form"; +import * as React from "react"; +import * as DateUtils from "utils/DateUtils"; +// ==============================|| DASHBOARD - DEFAULT ||============================== // + + +const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { + + const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); + const [maxDate, setMaxDate] = React.useState(searchCriteria.dateTo); + + const _sx = { + padding: "4 2 4 2", + boxShadow: 1, + border: 1, + borderColor: '#DDD', + '& .MuiDataGrid-cell': { + borderTop: 1, + borderBottom: 1, + borderColor: "#EEE" + }, + '& .MuiDataGrid-footerContainer': { + border: 1, + borderColor: "#EEE" + } + } + + const { reset, register, handleSubmit } = useForm() + + const onSubmit = (data) => { + const temp = { + code: data.code, + dateFrom: data.dateFrom, + dateTo: data.dateTo, + }; + applySearch(temp); + }; + + function resetForm() { + reset(); + } + + + return ( + + +
    + {/*row 1*/} + + + Search + + + + {/*row 2*/} + + + + + + + + { + setMinDate(DateUtils.dateStr(newValue)); + }} + InputLabelProps={{ + shrink: true + }} + /> + + + + { + setMaxDate(DateUtils.dateStr(newValue)); + }} + id="dateTo" + type="date" + label="Trans. Date To" + defaultValue={searchCriteria.dateTo} + /> + + + + + + {/*last row*/} + + + + + + + + + + +
    +
    + ); +}; + +export default SearchPublicNoticeForm; diff --git a/src/pages/Payment/Search_GLD/index.js b/src/pages/Payment/Search_GLD/index.js new file mode 100644 index 0000000..5364cfc --- /dev/null +++ b/src/pages/Payment/Search_GLD/index.js @@ -0,0 +1,97 @@ +// material-ui +import { + Grid, + Typography, + Stack +} from '@mui/material'; +import MainCard from "components/MainCard"; +import * as UrlUtils from "utils/ApiPathConst"; +import * as React from "react"; +import * as HttpUtils from "utils/HttpUtils"; +import * as DateUtils from "utils/DateUtils"; + +import Loadable from 'components/Loadable'; +const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); +const SearchForm = Loadable(React.lazy(() => import('./SearchForm'))); +const EventTable = Loadable(React.lazy(() => import('./DataGrid'))); +import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' + +const BackgroundHead = { + backgroundImage: `url(${titleBackgroundImg})`, + width: '100%', + height: '100%', + backgroundSize:'contain', + backgroundRepeat: 'no-repeat', + backgroundColor: '#0C489E', + backgroundPosition: 'right' +} + +// ==============================|| DASHBOARD - DEFAULT ||============================== // + +const Index = () => { + + const [record,setRecord] = React.useState([]); + const [searchCriteria, setSearchCriteria] = React.useState({ + dateTo: DateUtils.dateStr(new Date()), + dateFrom: DateUtils.dateStr(new Date().setDate(new Date().getDate()-14)), + }); + const [onReady, setOnReady] = React.useState(false); + + React.useEffect(() => { + setOnReady(true); + }, [record]); + + React.useEffect(() => { + loadGrid(); + }, [searchCriteria]); + + function loadGrid(){ + HttpUtils.get({ + url: UrlUtils.PAYMENT_LIST, + params: searchCriteria, + onSuccess: function(responseData){ + setRecord(responseData); + } + }); + } + + + function applySearch(input) { + setSearchCriteria(input); + } + + return ( + !onReady ? + + : + + +
    + + Payment Record + +
    +
    + {/*row 1*/} + + + + {/*row 2*/} + + + + + +
    + ); +}; + +export default Index; diff --git a/src/pages/PublicNotice/Details_GLD/index.js b/src/pages/PublicNotice/Details_GLD/index.js index 4af9ca5..c812e32 100644 --- a/src/pages/PublicNotice/Details_GLD/index.js +++ b/src/pages/PublicNotice/Details_GLD/index.js @@ -47,6 +47,7 @@ const PublicNoticeDetail_GLD = () => { const navigate = useNavigate() const [applicationDetailData, setApplicationDetailData] = useState({}); const [proofList, setProofList] = useState([]); + const [paymentList, setPaymentList] = useState([]); // const [refApplicationDetailData, setRefApplicationDetailData] = React.useState({}); const [isLoading, setLoading] = useState(false); const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent'))); @@ -115,6 +116,7 @@ const PublicNoticeDetail_GLD = () => { setIssueDate(DateUtils.dateFormat(gazetteIssueDetail.issueDate, "D MMM YYYY (ddd)")); setGroupNo(response.data.data.groupNo); setProofList(response.data.proofList); + setPaymentList(response.data.paymentList); setLoading(false); } }) @@ -371,6 +373,7 @@ const PublicNoticeDetail_GLD = () => {
    diff --git a/src/pages/PublicNotice/Details_GLD/tabTableDetail/BaseGrid.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/BaseGrid.js deleted file mode 100644 index d28a428..0000000 --- a/src/pages/PublicNotice/Details_GLD/tabTableDetail/BaseGrid.js +++ /dev/null @@ -1,84 +0,0 @@ -// material-ui -import * as React from 'react'; -import {FiDataGrid} from "components/FiDataGrid"; -import { - Button -} from '@mui/material'; -import * as DateUtils from "utils/DateUtils" -// ==============================|| EVENT TABLE ||============================== // - -export default function BaseGrid({rows}) { - const columns = [ - { - id: 'appNo', - field: 'appNo', - headerName: 'Application No.', - flex: 1, - }, - { - id: 'created', - field: 'created', - headerName: 'Created', - flex: 1, - valueGetter:(params)=>{ - return DateUtils.datetimeStr(params?.value); - } - }, - { - id: 'contactPerson', - field: 'contactPerson', - headerName: 'Contact Person', - flex: 2, - renderCell: (params) => { - let phone = JSON.parse(params.row.contactTelNo); - let faxNo = JSON.parse(params.row.contactFaxNo); - - let contact = ""; - if (phone) { - contact = "電話: " + phone?.countryCode + " " + phone?.phoneNumber - } - - if (faxNo) { - if (contact != "") - contact = contact + ", " - contact = contact + "傳真:" + faxNo?.countryCode + " " + faxNo?.faxNumber - } - - return (<> - {params?.value}
    - {contact} - ); - } - }, - { - id: 'remarks', - field: 'remarks', - headerName: 'remarks', - flex: 3, - }, - { - field: 'actions', - type: 'actions', - headerName: '', - width: 50, - cellClassName: 'actions', - renderCell: () => { - return ; - }, - } - ]; - - return ( -
    - -
    - ); -} diff --git a/src/pages/PublicNotice/Details_GLD/tabTableDetail/PaymentTab.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/PaymentTab.js new file mode 100644 index 0000000..d01779f --- /dev/null +++ b/src/pages/PublicNotice/Details_GLD/tabTableDetail/PaymentTab.js @@ -0,0 +1,79 @@ +// material-ui +import * as React from 'react'; +import { + Button +} from '@mui/material'; +import { useNavigate } from "react-router-dom"; +import {FiDataGrid} from "components/FiDataGrid"; +import * as FormatUtils from "utils/FormatUtils" +import * as DateUtils from "utils/DateUtils" +import * as PaymentStatus from "utils/statusUtils/PaymentStatus" +// import * as StatusUtils from "./PublicNoteStatusUtils"; +// ==============================|| EVENT TABLE ||============================== // + +export default function SubmittedTab({ rows }) { + + const navigate = useNavigate() + + const handleEditClick = (params) => () => { + navigate('/paymentPage/details/' + params.row.id); + }; + + const columns = [ + { + field: 'actions', + headerName: 'Trans. No.', + flex: 1, + cellClassName: 'actions', + renderCell: (params) => { + return ; + }, + }, + { + id: 'transDateTime', + field: 'transDateTime', + headerName: 'Trans. Date', + flex: 1, + valueGetter: (params) => { + return DateUtils.datetimeStr(params.value); + } + }, + { + id: 'status', + field: 'status', + headerName: 'Status', + flex: 1, + renderCell: (params) => { + return PaymentStatus.getStatus_Eng(params); + } + }, + { + id: 'payAmount', + field: 'payAmount', + headerName: 'Amount', + width: 150, + valueGetter: (params) => { + return (params?.value) ? "$ " + FormatUtils.currencyFormat(params?.value) : ""; + } + }, + ]; + + return ( + <> +
    + +
    + + ); + + + +} diff --git a/src/pages/PublicNotice/Details_GLD/tabTableDetail/PendingPaymentTab.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/PendingPaymentTab.js deleted file mode 100644 index 4722af2..0000000 --- a/src/pages/PublicNotice/Details_GLD/tabTableDetail/PendingPaymentTab.js +++ /dev/null @@ -1,135 +0,0 @@ -// material-ui -import * as React from 'react'; -import {FiDataGrid} from "components/FiDataGrid"; -import { - Stack, - Typography, - Button, - Dialog, DialogTitle, DialogContent, DialogActions -} from '@mui/material'; -import * as DateUtils from "utils/DateUtils" -// import * as StatusUtils from "./PublicNoteStatusUtils"; -// ==============================|| EVENT TABLE ||============================== // - -export default function SubmittedTab({ rows }) { - const [selectedRowItems, setSelectedRowItems] = React.useState([]); - const [isPopUp, setIsPopUp] = React.useState(false); - - - const columns = [ - { - id: 'appNo', - field: 'appNo', - headerName: '申請編號', - flex: 1, - }, - { - id: 'created', - field: 'created', - headerName: '提交日期', - flex: 1, - valueGetter: (params) => { - return DateUtils.datetimeStr(params.value); - } - }, - { - id: 'contactPerson', - field: 'contactPerson', - headerName: '聯絡人', - flex: 2, - renderCell: (params) => { - let phone = JSON.parse(params.row.contactTelNo); - let faxNo = JSON.parse(params.row.contactFaxNo); - - let contact = ""; - if (phone) { - contact = "電話: " + phone?.countryCode + " " + phone?.phoneNumber - } - - if (faxNo) { - if (contact != "") - contact = contact + ", " - contact = contact + "傳真:" + faxNo?.countryCode + " " + faxNo?.faxNumber - } - - return (<> - {params?.value}
    - {contact} - ); - } - }, - { - id: 'remarks', - field: 'remarks', - headerName: '我的備註', - flex: 3, - - }, - { - field: 'actions', - type: 'actions', - headerName: '', - width: 50, - cellClassName: 'actions', - renderCell: () => { - return ; - }, - } - ]; - - const getWindowContent = () => { - var content = []; - const datas = rows?.filter((row) => - selectedRowItems.includes(row.id) - ); - for (var i = 0; i < datas?.length; i++) { - content.push(<> - 申請編號: {datas[i].appNo}({DateUtils.datetimeStr(datas[i].created)}) - 備註: {datas[i].remarks} -

    - ); - } - return content; - } - - return ( - <> -
    - { - setSelectedRowItems(newSelection); - }} - /> - -
    - -
    - setIsPopUp(false)} > - - 確認付款 - - - {getWindowContent()} - - - - - - - -
    - - ); - - - -} diff --git a/src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js index d025ea8..d3ad0cf 100644 --- a/src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js +++ b/src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js @@ -1,21 +1,41 @@ // material-ui import * as React from 'react'; +import { + Button, +} from '@mui/material'; +import { useNavigate } from "react-router-dom"; import * as DateUtils from "utils/DateUtils"; +import * as ProofStatus from "utils/statusUtils/ProofStatus"; import {FiDataGrid} from "components/FiDataGrid"; import * as FormatUtils from "utils/FormatUtils" // ==============================|| EVENT TABLE ||============================== // export default function ProofTab({rows}) { + const navigate = useNavigate() + const handleEditClick = (params) => () => { + navigate('/proof/reply/' + params.row.id); + }; const columns = [ { - id: 'refNo', - field: 'refNo', + field: 'actions', headerName: 'Proof No.', + width: 200, + cellClassName: 'actions', + renderCell: (params) => { + return ; + }, + }, + { + id: 'actions', + headerName: 'Status', flex: 1, + renderCell: (params) => { + return ProofStatus.getStatus_Eng(params); + }, }, { id: 'created', diff --git a/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js index b5f40e1..3dc6277 100644 --- a/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js +++ b/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js @@ -13,17 +13,17 @@ import * as React from "react"; import Loadable from 'components/Loadable'; import { lazy } from 'react'; -const BaseGrid = Loadable(lazy(() => import('./BaseGrid'))); const StatusHistoryTab = Loadable(lazy(() => import('./StatusHistoryTab'))); const LoadingComponent = Loadable(lazy(() => import('../../../extra-pages/LoadingComponent'))); const ProofTab = Loadable(lazy(() => import('./ProofTab'))); +const PaymentTab = Loadable(lazy(() => import('./PaymentTab'))); // ==============================|| DASHBOARD - DEFAULT ||============================== // -const PublicNotice = ({ applicationDetailData, proofList }) => { +const PublicNotice = ({ applicationDetailData, proofList, paymentList }) => { const [_proofList, setProofList] = React.useState([]); - const [inProgressList,] = React.useState([]); + const [_paymentList, setPaymentList] = React.useState([]); const [onReady, setOnReady] = React.useState(false); const [selectedTab, setSelectedTab] = React.useState("1"); // const navigate = useNavigate(); @@ -43,6 +43,10 @@ const PublicNotice = ({ applicationDetailData, proofList }) => { setProofList(proofList); }, [proofList]); + React.useEffect(() => { + setPaymentList(paymentList); + }, [paymentList]); + React.useEffect(() => { //if state data are ready and assign to different field if (statusHistoryList.length > 0) { @@ -73,7 +77,7 @@ const PublicNotice = ({ applicationDetailData, proofList }) => { - + @@ -84,8 +88,8 @@ const PublicNotice = ({ applicationDetailData, proofList }) => { /> - diff --git a/src/routes/GLDUserRoutes.js b/src/routes/GLDUserRoutes.js index 8aef188..cf4ece2 100644 --- a/src/routes/GLDUserRoutes.js +++ b/src/routes/GLDUserRoutes.js @@ -12,6 +12,8 @@ const ApplicationSearch = Loadable(lazy(() => import('pages/PublicNotice/Search_ const ProofSearch = Loadable(lazy(() => import('pages/Proof/Search_GLD'))); const ProofCreate_FromApp = Loadable(lazy(() => import('pages/Proof/Create_FromApp'))); const ProofReply_GLD = Loadable(lazy(() => import('pages/Proof/Reply_GLD'))); +const PaymentSearch_GLD = Loadable(lazy(() => import('pages/Payment/Search_GLD'))); +const PaymentDetails_GLD = Loadable(lazy(() => import('pages/Payment/Details_GLD'))); // ==============================|| MAIN ROUTING ||============================== // const GLDUserRoutes = { @@ -48,6 +50,14 @@ const GLDUserRoutes = { { path: '/proof/reply/:id', element: + }, + { + path: '/paymentPage/search', + element: + }, + { + path: '/paymentPage/details/:id', + element: } ] },