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 (
+
+
+
+
+ );
+};
+
+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 (
+
+
+
+
+ );
+};
+
+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 = (