import { JSONPath as jsonpath } from "jsonpath-plus"; import _ from "lodash"; import useTranslation from "next-translate/useTranslation"; import Link from "next/link"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; import { connect } from "react-redux"; import transLookup from "../../data/lookuptranslations.json"; import Documents from "./documents"; import { createWatchedCases, deleteWatchedCases, getLinkedCases, getPortalModuleDetailsProxy, getWatchedCasesProxy, setCaseInvolvment, } from "../../actions"; import { setCurrentLinkedCases, setCurrentReference, setCurrentView, } from "../../store/currentView/action"; import { setWatchedCases, setWatchedCasesDetails, } from "../../store/watchedCases/action"; import { signIn, useSession } from "next-auth/react"; import { destroyCookie, parseCookies, setCookie } from "nookies"; import { getFormCollectionByID, getDetailsProxy } from "../utils"; import Pinswg_advertsid from "./summaryTypes/pinswg_advertsid"; import Pinswg_callinss77id from "./summaryTypes/pinswg_callinss77id"; import Pinswg_commonlandid from "./summaryTypes/pinswg_commonlandid"; import Pinswg_communityinfrastructurelevyid from "./summaryTypes/pinswg_communityinfrastructurelevyid"; import Pinswg_compulsorypurchaseordersid from "./summaryTypes/pinswg_compulsorypurchaseordersid"; import Pinswg_dnsid from "./summaryTypes/pinswg_dnsid"; import Pinswg_electricityactid from "./summaryTypes/pinswg_electricityactid"; import Pinswg_enforcementlistedbuildingconseid from "./summaryTypes/pinswg_enforcementlistedbuildingconseid"; import Pinswg_enforcementnoticeappeals174id from "./summaryTypes/pinswg_enforcementnoticeappeals174id"; import Pinswg_environmentalpermittingid from "./summaryTypes/pinswg_environmentalpermittingid"; import Pinswg_harbourrevisionorderid from "./summaryTypes/pinswg_harbourrevisionorderid"; import Pinswg_hedgeshedgerowstreepreservatioid from "./summaryTypes/pinswg_hedgeshedgerowstreepreservatioid"; import Pinswg_householderappealhasid from "./summaryTypes/pinswg_householderappealhasid"; import Pinswg_lawfuldevelopmentcertificatappid from "./summaryTypes/pinswg_lawfuldevelopmentcertificatappid"; import Pinswg_ldpid from "./summaryTypes/pinswg_ldpid"; import Pinswg_listedbuildingandconservationrid from "./summaryTypes/pinswg_listedbuildingandconservationrid"; import Pinswg_maintenanceoflands217id from "./summaryTypes/pinswg_maintenanceoflands217id"; import Pinswg_miscellaneouscasewordid from "./summaryTypes/pinswg_miscellaneouscasewordid"; import Pinswg_nonvalidationid from "./summaryTypes/pinswg_nonvalidationid"; import Pinswg_planningappeals78id from "./summaryTypes/pinswg_planningappeals78id"; import Pinswg_planningconditionss73s79id from "./summaryTypes/pinswg_planningconditionss73s79id"; import Pinswg_planningobligationappeals106id from "./summaryTypes/pinswg_planningobligationappeals106id"; import Pinswg_rowid from "./summaryTypes/pinswg_rowid"; import Pinswg_transportandworkactid from "./summaryTypes/pinswg_transportandworkactid"; import Pinswg_wayleaveid from "./summaryTypes/pinswg_wayleaveid"; import CaseNoticeBanner from "./caseNoticeBanner"; import WatchModal from "./watchmodal"; const CaseSummary = (props) => { let { t } = useTranslation(); const router = useRouter(); const { locale } = router; const { appealTypeID, incidentid, caseReference, myCases, myRepresentations, watchedCases, awaitingSubmission, searchResultsObj, searchDetailsObj, directSearchResultsObj, currentType, setCurrentLinkedCases, linkedCasesReference, setCurrentReference, setWatchedCases, setWatchedCasesDetails, showMap, currentView, messagesObj, docsOffline, ticketnumber, } = props; const showLoginCheck = currentType == "directResultsObj" ? "true" : currentView.showLogin; const { data: session, status } = useSession(); const [isModalOpen, setIsModalOpen] = useState(false); const handleOpenModal = () => { setIsModalOpen(true); }; const handleCloseModal = () => { setIsModalOpen(false); }; const cookies = parseCookies(); const isLPA = props.accountDetails.accountDetails[ "pinswg_typeofinvolvement@OData.Community.Display.V1.FormattedValue" ] == "LPA" ? true : false; let ShowDocLinks = false; let checkShowDocLinks = docsOffline != false ? true : false; const getDocLink = (docsOffline) => { var startTime = docsOffline.split(",")[0]; var endTime = docsOffline.split(",")[1]; // console.log(startTime); // console.log(endTime); var currentDate = new Date(); var startDate = new Date(currentDate.getTime()); startDate.setHours(startTime.split(":")[0]); startDate.setMinutes(startTime.split(":")[1]); startDate.setSeconds(startTime.split(":")[2]); var endDate = new Date(currentDate.getTime()); endDate.setHours(endTime.split(":")[0]); endDate.setMinutes(endTime.split(":")[1]); endDate.setSeconds(endTime.split(":")[2]); // console.log(startDate); // console.log(endDate); // console.log(currentDate); var valid = startDate < currentDate && endDate > currentDate; ShowDocLinks = valid; }; checkShowDocLinks && getDocLink(docsOffline); const selectWatchedCase = (loggedInUser, incidentID, appealType) => { let updateBody = { "pinswg_WatchedCase@odata.bind": "/incidents(" + incidentID + ")", "pinswg_Contact@odata.bind": "/contacts(" + loggedInUser + ")", "pinswg_appealcasetype": +appealType, }; createWatchedCases(updateBody) .then((data) => data) .then(() => { getWatchedCasesProxy(loggedInUser).then((data) => { setWatchedCases(data), getDetailsProxy(data, "myWatchedCases").then((data) => { setWatchedCasesDetails(data); }); }); }); //setCaseInvolvment(incidentid, loggedInUser); }; const isWatchedCase = (whichIncident) => { let isWatched = jsonpath({ path: "$..value[?(@ && @._pinswg_watchedcase_value=='" + whichIncident + "')]", json: watchedCases, eval: true, }); return isWatched; }; const deleteItem = (caseID, topThreeType) => { let cookies = parseCookies(); topThreeType == "watchedCases" && deleteWatchedCases(caseID) .then((data) => data) .then(() => { getWatchedCasesProxy(cookies.pinsUser).then((data) => { setWatchedCases(data), getDetailsProxy(data, "myWatchedCases").then( (data) => { setWatchedCasesDetails(data); } ); }); }); }; const noRepresentationLink = ["/dnsdetails", "/dns/[developmentName]"]; let setCaseQueryObj = currentType == "directResultsObj" ? props.searchResultsObj : props[currentType]; let setCaseDetailsObj = currentType == "directResultsObj" ? props.searchDetailsObj : props[currentType + "Details"]; var casesObj = {}; currentType == "searchResultsObj" ? (casesObj = jsonpath({ path: '$..[?(@ && @.ticketnumber=="' + ticketnumber + '")]', json: searchResultsObj, eval: true, })) : currentType == "watchedCases" ? (casesObj = jsonpath({ path: '$..[?(@ && @.ticketnumber=="' + ticketnumber + '")]', json: setCaseQueryObj, eval: true, })) : currentType == "myCases" ? (casesObj = jsonpath({ path: '$..[?(@ && @.pinswg_title=="' + caseReference + '")]', json: setCaseQueryObj, eval: true, })) : currentType == "directResultsObj" ? (casesObj = jsonpath({ path: '$..[?(@ && @.ticketnumber=="' + ticketnumber + '")]', json: setCaseQueryObj, eval: true, })) : (casesObj = jsonpath({ path: '$..[?(@ && @.reference=="' + caseReference + '")]', json: setCaseQueryObj, eval: true, })); casesObj = Object.assign({}, ...casesObj); var detailsObj = {}; currentType == "searchResultsObj" ? (detailsObj = jsonpath({ path: '$..[?(@ && @.pinswg_name=="' + caseReference + '")]', json: searchDetailsObj, eval: true, })) : currentType == "directResultsObj" ? (detailsObj = setCaseDetailsObj[0].value[0]) : (detailsObj = jsonpath({ path: '$..[?(@ && @.pinswg_name=="' + caseReference + '")]', jsopn: setCaseDetailsObj, eval: true, })); detailsObj = typeof detailsObj == "object" ? detailsObj : detailsObj[0]; let showDetails = typeof detailsObj != "undefined" ? true : false; var timestamp = showDetails ? detailsObj.hasOwnProperty("pinswg_representation_period_end_date") ? Date.parse(detailsObj.pinswg_representation_period_end_date) : "n/a" : "n/a"; if (isNaN(timestamp) == false) { var d = new Date(timestamp); } let hasEndDate = typeof d != "undefined"; let showDetailsBlock = showDetails == true ? ( <>
{t(
"case:representation-date-passed-label",
{
startDate:
formatDates(
detailsObj.pinswg_startdate
),
endDate:
props
.currentView
.caseReference
.appealType ==
846040019
? formatDates(
detailsObj.pinswg_statementduedate
)
: formatDates(
detailsObj.pinswg_finalcommentsduedate
),
}
)}
{" "}
{t(
"case:representation-date-passed-additional-label"
)}{" "}
{t(
"home:login-contact-email"
)}