From 95486f016462434303c743260bb4c4eb1b74c832 Mon Sep 17 00:00:00 2001 From: Robert Bond Date: Wed, 15 Jul 2026 12:41:10 +0000 Subject: [PATCH] Merged PR 2476: added check for inactive case deadlines added check for inactive case deadlines Related work items: #24297 --- .../representationCompleteSubmit.js | 52 +++++++++++-------- .../case/summaryTypes/pinswg_sipscase.js | 29 +++++++---- .../api/endpoint/getbasicsearchdetails_api.js | 2 +- .../getbasicsearchdetailspaged_api.js | 2 +- 4 files changed, 50 insertions(+), 35 deletions(-) diff --git a/components/case/representation/representationCompleteSubmit.js b/components/case/representation/representationCompleteSubmit.js index 6e024bf3..3688a20a 100644 --- a/components/case/representation/representationCompleteSubmit.js +++ b/components/case/representation/representationCompleteSubmit.js @@ -233,35 +233,41 @@ const RepCompleteSubmit = (props) => { let filterFiles = []; function showRepsEnded(endDate) { - let date = new Date(); - date = new Date(date.toDateString()); - let end = new Date(endDate); - end.setUTCHours(23); - end.setUTCMinutes(59); - end.setUTCSeconds(59); - end.toISOString(); + if (!endDate) { + return false; + } - return end > date ? false : true; + const end = new Date(endDate); + + if (Number.isNaN(end.getTime())) { + return false; + } + + const today = new Date(); + today.setHours(0, 0, 0, 0); + + end.setHours(23, 59, 59, 999); + + return end <= today; } const checkRepDatePassed = () => { - if (repFormData.representationType == "Questionnaire") { + if (repFormData.representationType === "Questionnaire") { return false; - } else { - if (repFormData.representationType == "Final comments") { - return repFormData.hasOwnProperty( - "pinswg_finalcommentsduedate" - ) && showRepsEnded(repFormData.pinswg_finalcommentsduedate) - ? true - : false; - } - if (repFormData.representationType == "Statement") { - return repFormData.hasOwnProperty("pinswg_statementduedate") && - showRepsEnded(repFormData.pinswg_statementduedate) - ? true - : false; - } } + + if (repFormData.representationType === "Final comments") { + return showRepsEnded(repFormData.pinswg_finalcommentsduedate); + } + + if (repFormData.representationType === "Statement") { + return ( + showRepsEnded(repFormData.pinswg_statementduedate) || + showRepsEnded(repFormData.pinswg_endofrepresentationperiod) + ); + } + + return false; }; const triggerQuestionnaireDownload = async () => { diff --git a/components/case/summaryTypes/pinswg_sipscase.js b/components/case/summaryTypes/pinswg_sipscase.js index dfe4b438..1b0453cb 100644 --- a/components/case/summaryTypes/pinswg_sipscase.js +++ b/components/case/summaryTypes/pinswg_sipscase.js @@ -31,14 +31,17 @@ const Pinswg_sipscase = (props) => { ); } - const extensions = - detailsObj.pinswg_CaseDeadlineExtension_pinswg_sips || []; + const activeExtensions = ( + detailsObj.pinswg_CaseDeadlineExtension_pinswg_sips || [] + ).filter((extension) => extension.statecode === 0); - const latest = extensions.sort( - (a, b) => - new Date(b.pinswg_newcasedeadline) - - new Date(a.pinswg_newcasedeadline) - )[0]; + const latestExtension = activeExtensions + .filter((extension) => !_.isEmpty(extension.pinswg_newcasedeadline)) + .sort( + (a, b) => + new Date(b.pinswg_newcasedeadline) - + new Date(a.pinswg_newcasedeadline) + )[0]; const projectTypes = Array.isArray( detailsObj.pinswg_sips_pinswg_sipsprojecttype @@ -398,6 +401,7 @@ const Pinswg_sipscase = (props) => { ) } /> + { "case:summary-awaiting-information-label" ); - const extensions = + const activeExtensions = ( detailsObj.pinswg_CaseDeadlineExtension_pinswg_sips || - []; + [] + ).filter( + (extension) => + extension.statecode === + 0 + ); const latestExtension = - extensions + activeExtensions .filter( (extension) => !_.isEmpty( diff --git a/pages/api/endpoint/getbasicsearchdetails_api.js b/pages/api/endpoint/getbasicsearchdetails_api.js index 484e8cb3..49b7c41c 100644 --- a/pages/api/endpoint/getbasicsearchdetails_api.js +++ b/pages/api/endpoint/getbasicsearchdetails_api.js @@ -88,7 +88,7 @@ export default async function ApiProxy(req, res) { navigationProperty + "($select=ticketnumber,statuscode)" + (primaryIdAttribute == "pinswg_sipscase" - ? ",pinswg_sipscase($select=ticketnumber),pinswg_CaseDeadlineExtension_pinswg_sips($select=pinswg_casedeadlineextensionid,pinswg_noofdaysextended,pinswg_reasonforextension,pinswg_agreedorimposedextension,pinswg_newcasedeadline),pinswg_sips_pinswg_sipsevent($select=pinswg_enddateofevent,pinswg_eventpublishflag,pinswg_linktotheevent,pinswg_linktotheeventstreamwelsh,pinswg_name,pinswg_dateeventrequested,pinswg_typeofevent,createdon,modifiedon),pinswg_sips_pinswg_sipsprojecttype($select=pinswg_sipsprojecttypeid,pinswg_name,_pinswg_sector_value)" + ? ",pinswg_sipscase($select=ticketnumber),pinswg_CaseDeadlineExtension_pinswg_sips($select=statecode,pinswg_casedeadlineextensionid,pinswg_noofdaysextended,pinswg_reasonforextension,pinswg_agreedorimposedextension,pinswg_newcasedeadline),pinswg_sips_pinswg_sipsevent($select=pinswg_enddateofevent,pinswg_eventpublishflag,pinswg_linktotheevent,pinswg_linktotheeventstreamwelsh,pinswg_name,pinswg_dateeventrequested,pinswg_typeofevent,createdon,modifiedon),pinswg_sips_pinswg_sipsprojecttype($select=pinswg_sipsprojecttypeid,pinswg_name,_pinswg_sector_value)" : ""); queryUrl = queryUrl + getSelectQuery(appealTypeName); diff --git a/pages/api/endpoint/getbasicsearchdetailspaged_api.js b/pages/api/endpoint/getbasicsearchdetailspaged_api.js index 05b11425..5b84b56c 100644 --- a/pages/api/endpoint/getbasicsearchdetailspaged_api.js +++ b/pages/api/endpoint/getbasicsearchdetailspaged_api.js @@ -88,7 +88,7 @@ export default async function ApiProxy(req, res) { navigationProperty + "($select=ticketnumber,statuscode)" + (primaryIdAttribute == "pinswg_sipscase" - ? ",pinswg_sipscase($select=ticketnumber),pinswg_CaseDeadlineExtension_pinswg_sips($select=pinswg_casedeadlineextensionid,pinswg_noofdaysextended,pinswg_reasonforextension,pinswg_agreedorimposedextension,pinswg_newcasedeadline),pinswg_sips_pinswg_sipsevent($select=pinswg_enddateofevent,pinswg_eventpublishflag,pinswg_linktotheevent,pinswg_linktotheeventstreamwelsh,pinswg_name,pinswg_dateeventrequested,pinswg_typeofevent,createdon,modifiedon)" + ? ",pinswg_sipscase($select=ticketnumber),pinswg_CaseDeadlineExtension_pinswg_sips($select=statecode,pinswg_casedeadlineextensionid,pinswg_noofdaysextended,pinswg_reasonforextension,pinswg_agreedorimposedextension,pinswg_newcasedeadline),pinswg_sips_pinswg_sipsevent($select=pinswg_enddateofevent,pinswg_eventpublishflag,pinswg_linktotheevent,pinswg_linktotheeventstreamwelsh,pinswg_name,pinswg_dateeventrequested,pinswg_typeofevent,createdon,modifiedon)" : ""); queryUrl =