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 ec2a1f4..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,10 +104,9 @@ const PublicNotice = () => {
-
-
-
-
+
+
+
@@ -119,12 +116,6 @@ const PublicNotice = () => {
reloadFunction={reloadPage}
/>
-
-
-
{
-
-
-
-
+
+
+
@@ -163,12 +153,6 @@ const PublicNotice = () => {
reloadFunction={reloadPage}
/>
-
-
-
import('components/MainCard')));
import { useForm } from "react-hook-form";
import {
useEffect,
useState
} from "react";
-// import Checkbox from "@mui/material/Checkbox";
+
import Loadable from 'components/Loadable';
import { lazy } from 'react';
const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
-// import {useParams} from "react-router-dom";
import * as HttpUtils from "utils/HttpUtils"
-// import * as ApiPathConst from "utils/ApiPathConst"
import * as StatusUtils from "../PublicNotice/ListPanel/PublicNoteStatusUtils";
-import BorderColorOutlinedIcon from '@mui/icons-material/BorderColorOutlined';
import DoneIcon from '@mui/icons-material/Done';
import CloseIcon from '@mui/icons-material/Close';
import EditNoteIcon from '@mui/icons-material/EditNote';
import DownloadIcon from '@mui/icons-material/Download';
-// import { Params } from '../../../node_modules/react-router-dom/dist/index';
-// import {useNavigate} from "react-router-dom";
-// import axios from "axios";
-// import { makeStyles } from '@material-ui/core/styles';
-
-// const useStyles = makeStyles({
-// input: {
-// '& input[type=number]': {
-// '-moz-appearance': 'textfield'
-// },
-// '& input[type=number]::-webkit-outer-spin-button': {
-// '-webkit-appearance': 'none',
-// margin: 0
-// },
-// '& input[type=number]::-webkit-inner-spin-button': {
-// '-webkit-appearance': 'none',
-// margin: 0
-// }
-// },
-// });
-
+import ReplayIcon from '@mui/icons-material/Replay';
// ==============================|| DASHBOARD - DEFAULT ||============================== //
const ApplicationDetailCard = (
{ applicationDetailData,
setStatus,
- // setReload,
- isEditMode,
- setUpdateApplicationObject,
- setiIsSave,
- // isNewRecord
}
) => {
- // const params = useParams();
+
const [currentApplicationDetailData, setCurrentApplicationDetailData] = useState({});
const [companyName, setCompanyName] = useState({});
const [verified, setVerified] = useState(null);
const [fileDetail, setfileDetail] = useState({});
const [onReady, setOnReady] = useState(false);
- // const [reload, setReload] = useState(false);
- // const classes = useStyles();
- // const navigate = useNavigate()
- // const params = useParams();
-
- const [editMode, setEditMode] = useState(false);
- const onEditClick = () => () => {
- setEditMode(true);
- isEditMode(true);
- };
-
- const onSaveClick = () => () => {
- //upload latest data to parent
- const values = getValues();
- const objectData = {
- ...values,
- }
- setUpdateApplicationObject({ objectData });
- setiIsSave(true)
- };
- const { register,
- getValues,
- // setValue
- } = useForm()
+ const { register } = useForm()
useEffect(() => {
//if user data from parent are not null
@@ -102,7 +49,7 @@ const ApplicationDetailCard = (
loadApplicationDetail()
}
}, [applicationDetailData]);
-
+
useEffect(() => {
//if state data are ready and assign to different field
// console.log(currentApplicationDetailData)
@@ -127,24 +74,13 @@ const ApplicationDetailCard = (
});
};
- // useEffect(() => {
- // if (Object.keys(applicationDetailData).length > 0) {
- // loadApplicationDetail()
- // }
- // }, [reload]);
-
- const reloadHandle = () => () => {
- // setReload(true)
- setEditMode(false)
- location.reload();
- };
- const acceptedClick = () => () => {
- setStatus("accept")
+ const reSubmitClick = () => () => {
+ setStatus("resubmit")
};
- const rejectedClick = () => () => {
- setStatus("reject")
+ const notAcceptedClick = () => () => {
+ setStatus("notAccepted")
};
const complatedClick = () => () => {
@@ -155,6 +91,16 @@ const ApplicationDetailCard = (
setStatus("withdraw")
};
+ const onProofClick = () => {
+ window.open("/proof/create/" + currentApplicationDetailData.id, "_blank", "noreferrer");
+ window.addEventListener("focus", onFocus)
+ }
+
+ const onFocus = () => {
+ location.reload();
+ window.removeEventListener("focus", onFocus)
+ }
+
return (
!onReady ?
@@ -173,58 +119,11 @@ const ApplicationDetailCard = (
spacing={2}
mb={2}
>
- {editMode ?
- <>
-
-
- > :
- <>{
- currentApplicationDetailData.status=="submitted"?
-
-
-
- :
- null
- }
- >
- }
-
{currentApplicationDetailData.status == "accepted" ?