Merged PR 1163: adjusted timetable to display correct dates

adjusted timetable to display correct dates

Related work items: #11262, #11263
This commit is contained in:
Robert Bond
2024-05-28 07:59:05 +00:00
7 changed files with 233 additions and 141 deletions
+4 -2
View File
@@ -1,7 +1,7 @@
export const getSelectQuery = (appealTypeName) => { export const getSelectQuery = (appealTypeName) => {
switch (appealTypeName) { switch (appealTypeName) {
case "pinswg_advertses": case "pinswg_advertses":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_procedure,pinswg_questionnaireduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_startdate,pinswg_otherpartiesstatement,pinswg_finalcommentsduedate,pinswg_proofsofevidencewrittenstatementsofeviden"; return "&$select=pinswg_speacialistcaseprocess,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_procedure,pinswg_questionnaireduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_startdate,pinswg_otherpartiesstatement,pinswg_finalcommentsduedate,pinswg_proofsofevidencewrittenstatementsofeviden";
break; break;
case "pinswg_callinss77s": case "pinswg_callinss77s":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_startdate,statuscode,pinswg_dateexportedtoiss,pinswg_startdateofevent,pinswg_typeofevent"; return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_startdate,statuscode,pinswg_dateexportedtoiss,pinswg_startdateofevent,pinswg_typeofevent";
@@ -13,6 +13,8 @@ export const getSelectQuery = (appealTypeName) => {
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateofevent,pinswg_typeofevent"; return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateofevent,pinswg_typeofevent";
break; break;
case "pinswg_hedgeshedgerowstreepreservationreplacems": case "pinswg_hedgeshedgerowstreepreservationreplacems":
return "&$select=pinswg_specialistcaseprocess,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate";
break;
case "pinswg_miscellaneouscaseworks": case "pinswg_miscellaneouscaseworks":
case "pinswg_wayleaves": case "pinswg_wayleaves":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate"; return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate";
@@ -63,7 +65,7 @@ export const getSelectQuery = (appealTypeName) => {
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatements,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent"; return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatements,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
break; break;
case "pinswg_rows": case "pinswg_rows":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate"; return "&$select=pinswg_specialistcaseprocess,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate";
break; break;
default: default:
return ""; return "";
+23 -26
View File
@@ -229,7 +229,7 @@ let MakeRepresentation = (props) => {
const buildRepsArr = (detailsObj) => { const buildRepsArr = (detailsObj) => {
let buildArr = []; let buildArr = [];
console.log(currentView.caseReference.appealType); console.log(currentView.caseReference.appealType, "");
let todaysDate = new Date(); let todaysDate = new Date();
@@ -241,17 +241,14 @@ let MakeRepresentation = (props) => {
let statementDueDate; let statementDueDate;
isDNS isDNS
? (startDate = new Date( ? ((startDate = new Date(
new Date(
detailsObj.pinswg_applicationacceptedasvalid detailsObj.pinswg_applicationacceptedasvalid
).setHours(23, 59, 59, 999) )),
))(
(questionnaireDate = new Date( (questionnaireDate = new Date(
new Date( new Date(
detailsObj.pinswg_endofrepresentationperiod detailsObj.pinswg_endofrepresentationperiod
).setHours(23, 59, 59, 999) ).setHours(23, 59, 59, 999)
)) )),
)(
(finalCommentsDate = new Date( (finalCommentsDate = new Date(
new Date(detailsObj.pinswg_finalcommentsduedate).setHours( new Date(detailsObj.pinswg_finalcommentsduedate).setHours(
23, 23,
@@ -259,22 +256,13 @@ let MakeRepresentation = (props) => {
59, 59,
999 999
) )
)) )),
)(
(statementDueDate = new Date( (statementDueDate = new Date(
new Date( new Date(
detailsObj.pinswg_endofrepresentationperiod detailsObj.pinswg_endofrepresentationperiod
).setHours(23, 59, 59, 999) ).setHours(23, 59, 59, 999)
)) )))
) : ((startDate = new Date(detailsObj.pinswg_startdate)),
: (startDate = new Date(
new Date(detailsObj.pinswg_startdate).setHours(
23,
59,
59,
999
)
)),
(questionnaireDate = new Date( (questionnaireDate = new Date(
new Date(detailsObj.pinswg_questionnaireduedate).setHours( new Date(detailsObj.pinswg_questionnaireduedate).setHours(
23, 23,
@@ -296,7 +284,7 @@ let MakeRepresentation = (props) => {
detailsObj.pinswg_statementduedate || detailsObj.pinswg_statementduedate ||
detailsObj.pinswg_statementsduedate detailsObj.pinswg_statementsduedate
).setHours(23, 59, 59, 999) ).setHours(23, 59, 59, 999)
)); )));
isLPA && isLPA &&
currentView.caseReference.appealType != 846040019 && currentView.caseReference.appealType != 846040019 &&
@@ -795,6 +783,10 @@ let MakeRepresentation = (props) => {
props.props.currentView.caseReference.currentReference, props.props.currentView.caseReference.currentReference,
"pinswg_questionnaireduedate": "pinswg_questionnaireduedate":
detailsObj.pinswg_questionnaireduedate, detailsObj.pinswg_questionnaireduedate,
"pinswg_endofrepresentationperiod":
detailsObj.pinswg_endofrepresentationperiod,
"pinswg_applicationacceptedasvalid":
detailsObj.pinswg_applicationacceptedasvalid,
"pinswg_statementduedate": detailsObj.pinswg_statementduedate, "pinswg_statementduedate": detailsObj.pinswg_statementduedate,
"pinswg_finalcommentsduedate": "pinswg_finalcommentsduedate":
detailsObj.pinswg_finalcommentsduedate, detailsObj.pinswg_finalcommentsduedate,
@@ -1048,14 +1040,17 @@ let MakeRepresentation = (props) => {
</div> </div>
</div> </div>
</div>{" "} </div>{" "}
{Object.keys( {typeof props.props.currentView
.representationCapacity !=
"undefined" &&
props.props.currentView props.props.currentView
.representationCapacity .representationCapacity.length >
).length > 0 && ( 0 && (
<div className="govuk-grid-row"> <div className="govuk-grid-row">
{savingStatus ? ( {savingStatus ? (
<span className=" progress-save-active"> <span className=" progress-save-active">
{router.locale == "cy" {router.locale ==
"cy"
? "Nôl data" ? "Nôl data"
: "Saving data"} : "Saving data"}
<img <img
@@ -1076,8 +1071,10 @@ let MakeRepresentation = (props) => {
let valuesObj = let valuesObj =
props.props props.props
.form[ .form[
props.form props
].values || {}; .form
].values ||
{};
console.log( console.log(
"valuesobj:", "valuesobj:",
@@ -2,7 +2,7 @@ import Link from "next/link";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import { Field, reduxForm } from "redux-form"; import { Field, reduxForm, change } from "redux-form";
import { import {
RenderPickList, RenderPickList,
RenderTextfield, RenderTextfield,
@@ -48,7 +48,8 @@ const RepAgent = (props) => {
<div className="govuk-grid-row"> <div className="govuk-grid-row">
<div className="govuk-form-group"> <div className="govuk-form-group">
{typeof formObj.representationForm.values {typeof formObj.representationForm.values
.representationType == "undefined" ? ( .representationType == "undefined" &&
props.representationType != "Select..." ? (
<> <>
<h2 className="govuk-heading-m "> <h2 className="govuk-heading-m ">
{t( {t(
@@ -208,6 +209,11 @@ const RepAgent = (props) => {
<a <a
onClick={() => { onClick={() => {
setRepresentationCapacity(); setRepresentationCapacity();
props.updateField(
"representationForm",
"representationCapacity",
""
);
}} }}
className="govuk-link" className="govuk-link"
> >
@@ -219,4 +225,20 @@ const RepAgent = (props) => {
); );
}; };
export default RepAgent; const mapStateToProps = (state, props) => {};
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(
reduxForm({
form: "representationForm",
enableReinitialize: true,
destroyOnUnmount: false,
})(RepAgent)
);
@@ -2,7 +2,7 @@ import Link from "next/link";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import { Field, reduxForm, reset } from "redux-form"; import { Field, reduxForm, reset, change } from "redux-form";
import React, { useCallback, useEffect, useMemo, useState } from "react"; import React, { useCallback, useEffect, useMemo, useState } from "react";
import { import {
@@ -49,7 +49,8 @@ const RepAppellant = (props) => {
<div className="govuk-grid-row"> <div className="govuk-grid-row">
<div className="govuk-form-group"> <div className="govuk-form-group">
{typeof formObj.representationForm.values {typeof formObj.representationForm.values
.representationType == "undefined" ? ( .representationType == "undefined" &&
props.representationType != "Select..." ? (
<> <>
<h2 className="govuk-heading-m "> <h2 className="govuk-heading-m ">
{t( {t(
@@ -192,6 +193,11 @@ const RepAppellant = (props) => {
<a <a
onClick={() => { onClick={() => {
setRepresentationCapacity(); setRepresentationCapacity();
props.updateField(
"representationForm",
"representationType",
""
);
}} }}
className="govuk-link" className="govuk-link"
> >
@@ -203,4 +209,20 @@ const RepAppellant = (props) => {
); );
}; };
export default RepAppellant; const mapStateToProps = (state, props) => {};
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(
reduxForm({
form: "representationForm",
enableReinitialize: true,
destroyOnUnmount: false,
})(RepAppellant)
);
@@ -1,7 +1,8 @@
import Link from "next/link"; import Link from "next/link";
import { connect } from "react-redux";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import { Field, reduxForm } from "redux-form"; import { Field, reduxForm, change } from "redux-form";
import { import {
RenderPickList, RenderPickList,
RenderTextfield, RenderTextfield,
@@ -10,6 +11,11 @@ import {
RenderRichMultiline, RenderRichMultiline,
FileUploadField, FileUploadField,
} from "./representationElements"; } from "./representationElements";
import {
getFormCollectionByID,
getThumbnailIconByExtension,
bytesToSize,
} from "../../utils";
import { useDropzone } from "react-dropzone"; import { useDropzone } from "react-dropzone";
const RepInterestedPartyPerson = (props) => { const RepInterestedPartyPerson = (props) => {
@@ -38,21 +44,24 @@ const RepInterestedPartyPerson = (props) => {
return ( return (
<> <>
<div className="govuk-grid-row"> <div className="govuk-grid-row">
<div className="govuk-form-group">
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m "> <h2 className="govuk-heading-m ">
{t( {t(
"myrepresentations:representation-from-an-interested-person-heading" "myrepresentations:representation-from-an-interested-person-heading"
)} )}
</h2> </h2>
<div className="govuk-form-group">
<label <label
className="govuk-label govuk-body-m" className="govuk-label govuk-body-m"
htmlFor="representationType" htmlFor="representationType"
> >
{t("myrepresentations:kind-of-rep-label")} {t("myrepresentations:kind-of-rep-label")}
</label> </label>
{typeof props.representationType == undefined ||
typeof formObj.representationForm.values
.representationType == "undefined" ? (
<Field <Field
name="representationType" name="representationType"
component={RenderPickList} component={RenderPickList}
@@ -61,6 +70,7 @@ const RepInterestedPartyPerson = (props) => {
optionsArr={interestedPersonRepresentationArr} optionsArr={interestedPersonRepresentationArr}
errorMsg={t("newappeal:select-an-option-label")} errorMsg={t("newappeal:select-an-option-label")}
/> />
</>
) : ( ) : (
<label className="govuk-label govuk-body-m"> <label className="govuk-label govuk-body-m">
Representation Type:{" "} Representation Type:{" "}
@@ -160,7 +170,16 @@ const RepInterestedPartyPerson = (props) => {
<a <a
onClick={() => { onClick={() => {
setRepresentationCapacity(); setRepresentationCapacity();
//setRepresentationSubmit(true); props.updateField(
"representationForm",
"representationCapacity",
""
);
props.updateField(
"representationForm",
"representationType",
""
);
}} }}
className="govuk-link" className="govuk-link"
> >
@@ -172,4 +191,20 @@ const RepInterestedPartyPerson = (props) => {
); );
}; };
export default RepInterestedPartyPerson; const mapStateToProps = (state, props) => {};
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(
reduxForm({
form: "representationForm",
enableReinitialize: true,
destroyOnUnmount: false,
})(RepInterestedPartyPerson)
);
@@ -3,7 +3,7 @@ import _ from "lodash";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { Field, reduxForm, formValueSelector } from "redux-form"; import { Field, reduxForm, formValueSelector, change } from "redux-form";
import { import {
RenderPickList, RenderPickList,
RenderTextfield, RenderTextfield,
@@ -339,7 +339,8 @@ let RepLPA = (props) => {
"representationType", "representationType",
]) || ]) ||
typeof props.representationType != "undefined") && typeof props.representationType != "undefined") &&
(props.representationType != "Questionnaire" ? ( (props.representationType != "Questionnaire" &&
props.representationType != "Select..." ? (
<> <>
<p className="govuk-body"> <p className="govuk-body">
{t("myrepresentations:enter-comment-label")} {t("myrepresentations:enter-comment-label")}
@@ -480,10 +481,15 @@ let RepLPA = (props) => {
<a <a
onClick={() => { onClick={() => {
//setRepresentationCapacity(); //setRepresentationCapacity();
props.updateField(
"representationForm",
"representationType",
""
);
}} }}
className="govuk-link" className="govuk-link"
> >
{t("common:back-link")} {t("common:back-link")}ss
</a> </a>
</> </>
)} )}
@@ -505,6 +511,11 @@ RepLPA = connect((state) => {
}; };
})(RepLPA); })(RepLPA);
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
});
const mapStateToProps = (state, props) => { const mapStateToProps = (state, props) => {
let initialValuesTemp = Object.assign( let initialValuesTemp = Object.assign(
state.currentView.caseReference.hasOwnProperty("repDetails") state.currentView.caseReference.hasOwnProperty("repDetails")
@@ -534,7 +545,10 @@ const mapStateToProps = (state, props) => {
}; };
}; };
export default connect(mapStateToProps)( export default connect(
mapStateToProps,
mapDispatchToProps
)(
reduxForm({ reduxForm({
form: "representationForm", form: "representationForm",
enableReinitialize: true, enableReinitialize: true,
+1 -1
View File
@@ -3,7 +3,7 @@ import { currentViewActionTypes } from "./action";
const currentViewInitialState = { const currentViewInitialState = {
currentView: {}, currentView: {},
caseReference: {}, caseReference: {},
representationCapacity: {}, representationCapacity: "",
representationSubmit: "", representationSubmit: "",
representationSubmitConfirmation: {}, representationSubmitConfirmation: {},
representationMessageSent: false, representationMessageSent: false,