// material-ui import { FormControl, Button, Grid, Typography, FormLabel, TextField, OutlinedInput, Stack, Dialog, DialogTitle, DialogContent, DialogActions, InputAdornment, } from '@mui/material'; import {isGranted, delBugMode } from "auth/utils"; const MainCard = Loadable(lazy(() => import('components/MainCard'))); import { useForm } from "react-hook-form"; import { useEffect, useState, lazy } from "react"; import Loadable from 'components/Loadable'; const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent'))); import * as HttpUtils from "utils/HttpUtils" import * as DateUtils from "utils/DateUtils" import {CHECK_CREATE_PROOF,UPDATE_GLDREMARKS } from "utils/ApiPathConst" import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils"; 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 ReplayIcon from '@mui/icons-material/Replay'; import { notifyDownloadSuccess } from 'utils/CommonFunction'; // ==============================|| DASHBOARD - DEFAULT ||============================== // const ApplicationDetailCard = ( { applicationDetailData, setStatus, setUploadStatus } ) => { const [currentApplicationDetailData, setCurrentApplicationDetailData] = useState({}); const [companyName, setCompanyName] = useState({}); const [verified, setVerified] = useState(null); const [fileDetail, setfileDetail] = useState({}); const [onReady, setOnReady] = useState(false); const { register,handleSubmit } = useForm() const [isWarningPopUp, setIsWarningPopUp] = useState(false); const [warningText, setWarningText] = useState(""); const [remarksPopUp, setRemarksPopUp] = useState(false); useEffect(() => { //if user data from parent are not null // console.log(applicationDetailData) if (Object.keys(applicationDetailData).length > 0) { loadApplicationDetail() } }, [applicationDetailData]); useEffect(() => { //if state data are ready and assign to different field // console.log(currentApplicationDetailData) if (Object.keys(currentApplicationDetailData).length > 0) { setOnReady(true); } }, [currentApplicationDetailData]); const loadApplicationDetail = () => { setCurrentApplicationDetailData(applicationDetailData.data); setCompanyName(applicationDetailData.companyName); setVerified(applicationDetailData.userData.verifiedBy ? true : false) setfileDetail(applicationDetailData.fileDetail); // setReload(false) } const onDownloadClick = () => () => { HttpUtils.fileDownload({ fileId: fileDetail?.id, skey: fileDetail?.skey, filename: fileDetail?.filename, }); notifyDownloadSuccess() setUploadStatus(true) }; const reSubmitClick = () => () => { setStatus("resubmit") }; const notAcceptedClick = () => () => { setStatus("notAccepted") }; const setCompleteDisable = () => { if (delBugMode) return false; return (new Date()).getTime() < DateUtils.convertToDate(applicationDetailData.gazetteIssueDetail.issueDate).getTime(); } const complatedClick = () => () => { let issueDate = DateUtils.convertToDate(applicationDetailData.gazetteIssueDetail.issueDate); let current = new Date(); if (delBugMode) { setStatus("complete") } else if (current.getTime() >= issueDate.getTime()) { setStatus("complete") } }; const withdrawnClick = () => () => { setStatus("withdraw") }; const doPublish = () => () => { setStatus("publish") } const revokeClick = () => () => { setStatus("revoke") }; const onProofClick = () => { if (applicationDetailData.data.groupNo) { HttpUtils.get({ url: CHECK_CREATE_PROOF + "/" + currentApplicationDetailData.id, onSuccess: function (responeData) { if (responeData.success == true) { window.open("/proof/create/" + currentApplicationDetailData.id, "_blank", "noreferrer"); window.addEventListener("focus", onFocus) } else { let msg = responeData.msg; if (msg === "haveActiveProof") { msg = "Action Failed: There is already a pending payment and proofreading record for client review." } else if (msg === "haveProofed") { msg = "Action Failed: Already proofed." } setWarningText(msg); setIsWarningPopUp(true); } } }); } else { setWarningText("Please generate Gazette Code before Create Proof."); setIsWarningPopUp(true); } } const onFocus = () => { location.reload(); window.removeEventListener("focus", onFocus) } const onSubmit = (data) => { // console.log(data) const gldRemarks = data.makeRemarks if (gldRemarks!=null&&gldRemarks!=currentApplicationDetailData.gldRemarks){ HttpUtils.post({ url: UPDATE_GLDREMARKS + "/" + currentApplicationDetailData.id, params: { gldRemarks: gldRemarks }, onSuccess: function () { location.reload(); }, onError: (error) => { alert(error) } }); }else{ setRemarksPopUp(false) } }; return ( !onReady ? : {verified && currentApplicationDetailData.status !== "notAccepted" ? {currentApplicationDetailData.status === "reviewed" && isGranted("MAINTAIN_PROOF") ? : null } {currentApplicationDetailData.status === "submitted" || currentApplicationDetailData.status == "reviewed" ? <> : (currentApplicationDetailData.status == "confirmed" && currentApplicationDetailData.creditor == 1) ? <> : (currentApplicationDetailData.status == "confirmed" && currentApplicationDetailData.creditor == 0) ? <> : ( (currentApplicationDetailData.status == "paid" && currentApplicationDetailData.creditor == 0) ? <> : null ) } : null } Application Details
Application No: Status: {StatusUtils.getStatusByTextEng(currentApplicationDetailData.status, currentApplicationDetailData.creditor)} { currentApplicationDetailData.reason ? Reason: {currentApplicationDetailData.reason} : "" } Applicant: {currentApplicationDetailData.orgId === null ? : } Contact Phone: -} /> Contact Person: Contact Fax: -} /> Manuscript File: {fileDetail?.filename} Remarks:
setIsWarningPopUp(false)} PaperProps={{ sx: { minWidth: '40vw', maxWidth: { xs: '90vw', s: '90vw', m: '70vw', lg: '70vw' }, maxHeight: { xs: '90vh', s: '70vh', m: '70vh', lg: '60vh' } } }} > Warning {warningText}
setRemarksPopUp(false)} PaperProps={{ sx: { minWidth: '40vw', maxWidth: { xs: '90vw', s: '90vw', m: '70vw', lg: '70vw' }, maxHeight: { xs: '90vh', s: '70vh', m: '70vh', lg: '60vh' } } }} >
Remarks {/* */}
); }; export default ApplicationDetailCard;