diff --git a/src/pages/ProofCreate_FromApp/ApplicationDetails.js b/src/pages/ProofCreate_FromApp/ApplicationDetails.js new file mode 100644 index 0000000..474391c --- /dev/null +++ b/src/pages/ProofCreate_FromApp/ApplicationDetails.js @@ -0,0 +1,277 @@ +// material-ui +import { + CardContent, + Grid, + Stack, + FormControl, + OutlinedInput, + FormLabel, +} from '@mui/material'; +import MainCard from "components/MainCard"; +import * as React from "react"; +import { useFormik } from 'formik'; +// ==============================|| DASHBOARD - DEFAULT ||============================== // + + +const SearchPublicNoticeForm = (formData) => { + + const formik = useFormik({ + enableReinitialize: true, + initialValues: formData, + }); + + const DisplayField = ({name}) => { + return + + ; + } + + + return ( + + +
+ {/*row 1*/} + + + Application Details + + + + {/*row 2*/} + + + + + + + Application No: + + + + + + + + + + + {/* + + + Status: + + + + + {StatusUtils.getStatusByTextEng(currentApplicationDetailData.status)} + + + + */} + + + + + + Applicant: + + + + + {formik.values.orgId === null ? + : + + } + + + + + + + + Contact Phone: + + + + + + + + + + + + + + + + + + + + Contect Person: + + + + + + + + + + + + + Contact Fax: + + + + + + + + + + + + + + + + + + + +
+
+ ); +}; + +export default SearchPublicNoticeForm; diff --git a/src/pages/ProofCreate_FromApp/DataGrid.js b/src/pages/ProofCreate_FromApp/DataGrid.js new file mode 100644 index 0000000..7f0fc11 --- /dev/null +++ b/src/pages/ProofCreate_FromApp/DataGrid.js @@ -0,0 +1,136 @@ +// material-ui +import * as React from 'react'; +import { + Button +} from '@mui/material'; +import * as DateUtils from "utils/DateUtils"; +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() + + React.useEffect(() => { + setRows(recordList); + }, [recordList]); + + const handleEditClick = (params) => () => { + navigate('/application/'+ params.id); + }; + + + const columns = [ + { + field: 'actions', + headerName: 'Proof No.', + width: 150, + cellClassName: 'actions', + renderCell: (params) => { + return ; + }, + }, + { + id: 'appId', + field: 'appId', + headerName: 'Application No./ Gazette Code/ Gazette Issue', + flex: 1, + renderCell: (params) => { + let appNo = ""; + let code = ""; + let isssue = params.row.issueYear + +" Vol. "+zeroPad(params.row.issueVolume,3) + +", No. "+zeroPad(params.row.issueNo,2) + +", "+DateUtils.dateFormat(params.row.issueDate, "D MMM YYYY (ddd)"); + + return [appNo+" ("+code+")"+isssue] + }, + }, + { + id: 'created', + field: 'created', + headerName: 'Proof Date', + flex: 1, + valueGetter: (params) => { + return DateUtils.datetimeStr(params?.value); + } + }, + { + id: 'created', + field: 'created', + headerName: 'Confirmed/Return Date', + flex: 1, + valueGetter: (params) => { + return DateUtils.datetimeStr(params?.value); + } + }, + { + id: 'contactPerson', + field: 'contactPerson', + headerName: 'Contact Person', + flex: 1, + renderCell: (params) => { + let company = params.row.enCompanyName!= null ?" ("+(params.row.enCompanyName)+")":""; + + let phone = JSON.parse(params.row.contactTelNo); + let faxNo = JSON.parse(params.row.contactFaxNo); + + let contact = ""; + if (phone) { + contact = "Phone No.: " + phone?.countryCode + " " + phone?.phoneNumber + } + + if (faxNo && faxNo?.faxNumber) { + if (contact != "") + contact = contact + ", " + contact = contact + "Fax No.:" + faxNo?.countryCode + " " + faxNo?.faxNumber + } + + return (<> + {params?.value + company}
+ {contact} + ); + } + }, + { + id: 'groupNo', + field: 'groupNo', + headerName: 'Gazette Group', + flex: 1, + valueGetter: (params) => { + return (params?.value)?(params?.value):""; + } + }, + { + id: 'fee', + field: 'fee', + headerName: 'Fee', + flex: 1, + valueGetter: (params) => { + return (params?.value)?(params?.value):""; + } + }, + ]; + + function zeroPad(num, places) { + num=num?num:0; + var zero = places - num.toString().length + 1; + return Array(+(zero > 0 && zero)).join("0") + num; + } + + return ( +
+ + +
+ ); +} diff --git a/src/pages/ProofCreate_FromApp/GazetteDetails.js b/src/pages/ProofCreate_FromApp/GazetteDetails.js new file mode 100644 index 0000000..c77b148 --- /dev/null +++ b/src/pages/ProofCreate_FromApp/GazetteDetails.js @@ -0,0 +1,166 @@ +// material-ui +import { + FormControl, + Grid, + FormLabel, + OutlinedInput, +} from '@mui/material'; +import MainCard from "components/MainCard"; +import * as React from "react"; +import { useFormik } from 'formik'; +// ==============================|| DASHBOARD - DEFAULT ||============================== // + + +const GazetteDetails = ({formData}) => { + + const formik = useFormik({ + enableReinitialize: true, + initialValues: formData, + }); + + // function getIssueLabel(data) { + // if (data == {}) return ""; + // return data.year + // + " Vol. " + zeroPad(data.volume, 3) + // + ", No. " + zeroPad(data.issueNo, 2) + // + ", " + DateUtils.dateFormat(data.issueDate, "D MMM YYYY (ddd)"); + // } + + // function zeroPad(num, places) { + // num = num ? num : 0; + // var zero = places - num.toString().length + 1; + // return Array(+(zero > 0 && zero)).join("0") + num; + // } + + return ( + + +
+ {/*row 1*/} + + + Gazette Details + + + + {/*row 2*/} + + + + + + + Issue Number: + + + + + + + + + + + + + Gazette Code: + + + + + + + + + + + + + + + Issue Date: + + + + + + + + + + + + + Group Title: + + + + + + + + + + + + + + +
+
+ ); +}; + +export default GazetteDetails; diff --git a/src/pages/ProofCreate_FromApp/index.js b/src/pages/ProofCreate_FromApp/index.js new file mode 100644 index 0000000..7d6cb9a --- /dev/null +++ b/src/pages/ProofCreate_FromApp/index.js @@ -0,0 +1,81 @@ +// material-ui +import { + Grid, +} 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 { useParams } from "react-router-dom"; + +import Loadable from 'components/Loadable'; +const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); +const ApplicationDetails = Loadable(React.lazy(() => import('./ApplicationDetails'))); +//const GazetteDetails = Loadable(React.lazy(() => import('./GazetteDetails'))); +const EventTable = Loadable(React.lazy(() => import('./DataGrid'))); + +// ==============================|| DASHBOARD - DEFAULT ||============================== // + +const Index = () => { + const params = useParams(); + + const [record, setRecord] = 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.GET_PUBLIC_NOTICE_APPLY_DETAIL+"/"+params.id, + onSuccess:(responseData)=>{ + setRecord(responseData); + } + }); + } + } + + return ( + !onReady ? + + : + + {/*row 1*/} + + + + + + + + + + + {/*row 2*/} + + + + + + + ); +}; + +export default Index; diff --git a/src/pages/PublicNotice/ListPanel/PublicNoteStatusUtils.js b/src/pages/PublicNotice/ListPanel/PublicNoteStatusUtils.js index 60b4ede..b9b373f 100644 --- a/src/pages/PublicNotice/ListPanel/PublicNoteStatusUtils.js +++ b/src/pages/PublicNotice/ListPanel/PublicNoteStatusUtils.js @@ -1,101 +1,69 @@ export function getStatus(params) { - switch (params.row.status) { - case "submitted": - return getStatusTag({ color: "#f5a83d", text: "已提交" }) - case "rejected": - return getStatusTag({ color: "#d9372b", text: "已拒絕" }) - case "cancelled": - return getStatusTag({ color: "#757373", text: "已取消" }) - case "accepted": - return getStatusTag({ color: "#22a13f", text: "處理中" }) - case "confirmed": - return getStatusTag({ color: "#22a13f", text: "待付款" }) - case "paid": - return getStatusTag({ color: "#22a13f", text: "待發布" }) - case "published": - return getStatusTag({ color: "#f5a83d", text: "待付款" }) - case "withdrawn": - return getStatusTag({ color: "#8a8784", text: "已撤回" }) - case "complated": - return getStatusTag({ color: "#8a8784", text: "已完成" }) - default: - return getStatusTag({ text: params.row.status }) - } + return getStatusByText(params.row.status); } export function getStatusByText(status) { switch (status) { case "submitted": - return getStatusTag({ color: "#f5a83d", text: "已提交" }) - case "rejected": - return getStatusTag({ color: "#d9372b", text: "已拒絕" }) - case "cancelled": - return getStatusTag({ color: "#757373", text: "已取消" }) - case "accepted": - return getStatusTag({ color: "#22a13f", text: "處理中" }) + return getStatusTag({ color: "#f5a83d", text: "處理中" }) + case "reviewed": + return getStatusTag({ color: "#f5a83d", text: "處理中" }) case "confirmed": + if (localStorage.getItem('userData').creditor) + return getStatusTag({ color: "#22a13f", text: "待發布" }) + else + return getStatusTag({ color: "#22a13f", text: "待付款" }) + case "published": return getStatusTag({ color: "#22a13f", text: "待付款" }) case "paid": return getStatusTag({ color: "#22a13f", text: "待發布" }) - case "published": - return getStatusTag({ color: "#f5a83d", text: "待付款" }) - case "withdrawn": - return getStatusTag({ color: "#8a8784", text: "已撤回" }) case "complated": return getStatusTag({ color: "#8a8784", text: "已完成" }) - default: - return getStatusTag({ text: params.row.status }) - } -} - -export function getStatusEng(params) { - switch (params.row.status) { - case "submitted": - return getStatusTag({ color: "#f5a83d", text: "Submitted" }) - case "rejected": - return getStatusTag({ color: "#d9372b", text: "Rejected" }) + case "notAccepted": + return getStatusTag({ color: "#d9372b", text: "不接受" }) + case "resubmit": + return getStatusTag({ color: "#757373", text: "需重新提交" }) case "cancelled": - return getStatusTag({ color: "#757373", text: "Cancelled" }) - case "accepted": - return getStatusTag({ color: "#22a13f", text: "Processing" }) - case "confirmed": - return getStatusTag({ color: "#22a13f", text: "Pending Payment" }) - case "paid": - return getStatusTag({ color: "#22a13f", text: "To be published" }) - case "published": - return getStatusTag({ color: "#f5a83d", text: "Pending Payment" }) + return getStatusTag({ color: "#f5a83d", text: "已取消" }) case "withdrawn": - return getStatusTag({ color: "#8a8784", text: "Withdrawn" }) - case "completed": - return getStatusTag({ color: "#8a8784", text: "Completed" }) + return getStatusTag({ color: "#8a8784", text: "已撤銷" }) default: - return getStatusTag({ text: params.row.status }) + return getStatusTag({ text: status }) } } + +export function getStatusEng(params) { + return getStatusByTextEng(params.row.status); +} export function getStatusByTextEng(status) { switch (status) { case "submitted": - return getStatusTag({ color: "#f5a83d", text: "Submitted" }) - case "rejected": - return getStatusTag({ color: "#d9372b", text: "Rejected" }) - case "cancelled": - return getStatusTag({ color: "#757373", text: "Cancelled" }) - case "accepted": - return getStatusTag({ color: "#22a13f", text: "Processing" }) + return getStatusTag({ color: "#f5a83d", text: "Processing" }) + case "reviewed": + return getStatusTag({ color: "#f5a83d", text: "Processing" }) case "confirmed": + if (localStorage.getItem('userData').creditor) + return getStatusTag({ color: "#22a13f", text: "Pending Publish" }) + else + return getStatusTag({ color: "#22a13f", text: "Pending Payment" }) + case "published": return getStatusTag({ color: "#22a13f", text: "Pending Payment" }) case "paid": - return getStatusTag({ color: "#22a13f", text: "To Be Published" }) - case "published": - return getStatusTag({ color: "#f5a83d", text: "Pending Payment" }) + return getStatusTag({ color: "#22a13f", text: "Pending Publish" }) + case "complated": + return getStatusTag({ color: "#8a8784", text: "Completed" }) + case "notAccepted": + return getStatusTag({ color: "#d9372b", text: "Not accepted" }) + case "resubmit": + return getStatusTag({ color: "#757373", text: "Re-submit Required" }) + case "cancelled": + return getStatusTag({ color: "#f5a83d", text: "Cancelled" }) case "withdrawn": return getStatusTag({ color: "#8a8784", text: "Withdrawn" }) - case "completed": - return getStatusTag({ color: "#8a8784", text: "Completed" }) default: - return getStatusTag({ text: params.row.status }) + return getStatusTag({ text: status }) } } diff --git a/src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js b/src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js index b502f86..6a8fadc 100644 --- a/src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js +++ b/src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js @@ -129,7 +129,11 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { disablePortal id="status" filterOptions={(options)=>options} - options={ComboData.publicNoticeStatic} + options={ + localStorage.getItem('userData').creditor? + ComboData.publicNoticeStatic_Creditor: + ComboData.publicNoticeStatic + } values={status} inputValue={status?.label} onChange={(event, newValue) => { diff --git a/src/pages/PublicNotice/ListPanel/index.js b/src/pages/PublicNotice/ListPanel/index.js index 63a0cae..6c5cba2 100644 --- a/src/pages/PublicNotice/ListPanel/index.js +++ b/src/pages/PublicNotice/ListPanel/index.js @@ -29,7 +29,6 @@ import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' const PublicNotice = () => { const [submittedList, setSubmittedList] = useState([]); - const [inProgressList, setInProgressList] = useState([]); const [pendingPaymentList, setPendingPaymentList] = useState([]); const [pendingPublishList, setPendingPublishList] = useState([]); const [isLoading, setLoding] = useState(true); @@ -60,7 +59,6 @@ const PublicNotice = () => { url: `${UrlUtils.GET_PUBLIC_NOTICE_LIST_ListByStatus}`, onSuccess: function (response) { setSubmittedList(response["submitted"]); - setInProgressList(response["inProgress"]); setPendingPaymentList(response["pendingPayment"]); setPendingPublishList(response["pendingPublish"]); } @@ -106,9 +104,8 @@ const PublicNotice = () => { - - - + + @@ -119,12 +116,6 @@ const PublicNotice = () => { reloadFunction={reloadPage} /> - - - { - - + - + @@ -163,12 +153,6 @@ const PublicNotice = () => { reloadFunction={reloadPage} /> - - - { + window.open("/proof/create/" + currentApplicationDetailData.id, "_blank", "noreferrer"); + window.addEventListener("focus", onFocus) + } + + const onFocus = () => { + location.reload(); + window.removeEventListener("focus", onFocus) + } + return ( !onReady ? @@ -224,7 +234,7 @@ const ApplicationDetailCard = (