From 7e7f8f4100465fdb5dbabe72cb2b102363b9d4ca Mon Sep 17 00:00:00 2001
From: Jen Beckett <115109120+jenbeckett@users.noreply.github.com>
Date: Thu, 28 Sep 2023 11:13:53 -0700
Subject: [PATCH 032/176] updating map
---
backend/src/components/changeRequest.js | 28 +++++++++++++++++--
backend/src/components/user.js | 4 ---
.../src/util/mapping/ChangeRequestMappings.js | 18 ++++++++++++
.../ccofApplication/group/LicenseUpload.vue | 24 ++++++++--------
frontend/src/store/modules/reportChanges.js | 13 +++++----
5 files changed, 63 insertions(+), 24 deletions(-)
diff --git a/backend/src/components/changeRequest.js b/backend/src/components/changeRequest.js
index 0018ec7e..70498989 100644
--- a/backend/src/components/changeRequest.js
+++ b/backend/src/components/changeRequest.js
@@ -3,7 +3,8 @@
const log = require('./logger');
const { MappableObjectForFront, MappableObjectForBack, getMappingString } = require('../util/mapping/MappableObject');
const { ChangeRequestMappings, ChangeActionRequestMappings, MtfiMappings, NewFacilityMappings } = require('../util/mapping/ChangeRequestMappings');
-const { UserProfileBaseCCFRIMappings, UserProfileBaseFundingMappings, UserProfileECEWEMappings} = require('../util/mapping/Mappings');
+const { UserProfileBaseCCFRIMappings, UserProfileBaseFundingMappings, UserProfileECEWEMappings, UserProfileApplicationMappings} = require('../util/mapping/Mappings');
+const { ChangeRequestUnlockMapping } = require('../util/mapping/ChangeRequestMappings');
const { mapFacilityObjectForBack } = require('./facility');
const { printPdf } = require('./application');
@@ -37,6 +38,8 @@ async function getChangeActionNewFacilitityDetails(changeActionId) {
try {
let operation = `ccof_change_request_new_facilities?$filter=_ccof_change_action_value eq '${changeActionId}'&$expand=ccof_ccfri($select=${getMappingString(UserProfileBaseCCFRIMappings)}),ccof_ecewe($select=${getMappingString(UserProfileECEWEMappings)}),ccof_CCOF($select=${getMappingString(UserProfileBaseFundingMappings)})`;
let changeActionDetails = await getOperation(operation);
+ log.info('qqqqqqqqjjjjjjjjjjjjjjjjjjjwwwwwwwwwwwwwwwwwwwwwwwwwww');
+ log.info(changeActionDetails);
let details = changeActionDetails?.value;
let retVal = [];
details?.forEach(el => {
@@ -89,16 +92,32 @@ async function getChangeActionDetails(changeActionId, changeDetailEntity, change
async function mapChangeRequestObjectForFront(data) {
let retVal = new MappableObjectForFront(data, ChangeRequestMappings).toJSON();
+ //let unlockVals = new MappableObjectForFront(data, ChangeRequestUnlockMapping).toJSON();
+ log.info('DATAAA');
+ log.info(data);
+
let changeList = [];
await Promise.all( retVal.changeActions?.map(async (el) => {
+ //let unlockVals;
let changeAction = new MappableObjectForFront(el, ChangeActionRequestMappings).toJSON();
if (changeAction.changeType == CHANGE_REQUEST_TYPES.PARENT_FEE_CHANGE) {
const mtfi = await getChangeActionDetails(changeAction.changeActionId, 'ccof_change_request_mtfis', MtfiMappings, 'ccof_CCFRI', UserProfileBaseCCFRIMappings );
changeAction.mtfi = mtfi;
+ //changeAction.changeType = 'PARENT_FEE_CHANGE';
} else if (changeAction.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY) {
const newFacilities = await getChangeActionNewFacilitityDetails(changeAction.changeActionId);
+
changeAction.newFacilities = newFacilities;
+ //changeAction.changeType = 'NEW_FACILITY';
+ } else if (changeAction.changeType == CHANGE_REQUEST_TYPES.PDF_CHANGE) {
+ //changeAction.changeType = 'PDF_CHANGE';
}
+ let unlockVals = new MappableObjectForFront(el, ChangeRequestUnlockMapping).toJSON();
+
+ log.info('HIIIIIIIIIIIIIIIIIIIIIIIIIIIII');
+ log.info(unlockVals);
+
+ changeAction = {...changeAction, ...unlockVals};
changeList.push(changeAction);
}));
retVal.changeActions = changeList;
@@ -110,10 +129,13 @@ async function mapChangeRequestObjectForFront(data) {
// get Change Request
async function getChangeRequest(req, res) {
- log.info('get changeRequest called');
+ log.info('get changeRequest called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
+ log.info('get changeRequest called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
+ log.info('get changeRequest called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
+ log.info('get changeRequest called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
try {
- let operation = `ccof_change_requests(${req.params.changeRequestId})?$expand=ccof_change_action_change_request($select=ccof_change_actionid,statuscode,ccof_changetype,createdon)`;
+ let operation = `ccof_change_requests(${req.params.changeRequestId})?$expand=ccof_change_action_change_request($select=ccof_change_actionid,statuscode,ccof_changetype,createdon,ccof_unlock_ecewe,ccof_unlock_ccof,ccof_unlock_supporting_document,ccof_unlock_other_changes_document,ccof_unlock_change_request,ccof_unlock_licence_upload)`;
let changeRequest = await getOperation(operation);
changeRequest = await mapChangeRequestObjectForFront(changeRequest);
changeRequest.providerType = getLabelFromValue(changeRequest.providerType , ORGANIZATION_PROVIDER_TYPES);
diff --git a/backend/src/components/user.js b/backend/src/components/user.js
index 4bd392e7..eddf018a 100644
--- a/backend/src/components/user.js
+++ b/backend/src/components/user.js
@@ -182,10 +182,6 @@ function updateFacilityWithChangeRequestDetails(changeRequestList, returnValue,
}
function parseFacilityData(application, facilities) {
- log.info('PARSE FACILITIES CALLED');
- //log.info (application);
- log.info(facilities);
-
let facilityMap = new Map(facilities?.map((m) => [m['accountid'], new MappableObjectForFront(m, UserProfileFacilityMappings).data]));
diff --git a/backend/src/util/mapping/ChangeRequestMappings.js b/backend/src/util/mapping/ChangeRequestMappings.js
index bd54f1e9..47cd3930 100644
--- a/backend/src/util/mapping/ChangeRequestMappings.js
+++ b/backend/src/util/mapping/ChangeRequestMappings.js
@@ -25,6 +25,7 @@ const ChangeRequestMappings = [
{ back: 'ccof_ecewe_selecttheapplicablefundingmode', front: 'fundingModel' },
{ back: 'ccof_ecewe_confirmation', front: 'confirmation' },
{ back: 'ccof_declaration', front: 'enabledDeclarationB' },
+
...UserProfileChangeRequestMappings
// { back: 'ccof_change_request_new_facilityid', front: 'changeFacilityID'},
];
@@ -56,6 +57,22 @@ const MtfiMappings = [
{ back: 'ccof_unlock_ccfri', front: 'unlockCcfri'},
];
+const ChangeRequestUnlockMapping = [
+ { back: 'ccof_applicationid', front: 'applicationId' },
+ { back: 'statuscode', front: 'applicationStatus' },
+ { back: 'ccof_providertype', front: 'organizationProviderType' }, // group or family
+ { back: 'ccof_applicationtype', front: 'applicationType' },
+ { back: 'ccof_licensecomplete', front: 'isLicenseUploadComplete' },
+ { back: 'ccof_ecewe_eligibility_complete', front: 'isEceweComplete' },
+ { back: 'ccof_unlock_declaration', front: 'unlockDeclaration' },
+ { back: 'ccof_unlock_licence_upload', front: 'isLicenseUploadUnlocked' },
+ { back: 'ccof_unlock_supporting_document', front: 'isSupportingDocumentsUnlocked' },
+ { back: 'ccof_unlock_ccof', front: 'isCCOFUnlocked' },
+ { back: 'ccof_unlock_ecewe', front: 'isEceweUnlocked' },
+ { back: 'ccof_ccofstatus', front: 'ccofStatus' },
+ { back: 'ccof_unlock_other_changes_document', front: 'isOtherDocumentsUnlocked' },
+ { back: 'ccof_unlock_change_request', front: 'isChangeRequestUnlocked' },
+];
module.exports = {
ChangeRequestMappings,
@@ -63,6 +80,7 @@ module.exports = {
NewFacilityMappings,
MtfiMappings,
UserProfileChangeRequestMappings,
+ ChangeRequestUnlockMapping,
};
// const ChangeRequestMappings = [
diff --git a/frontend/src/components/ccofApplication/group/LicenseUpload.vue b/frontend/src/components/ccofApplication/group/LicenseUpload.vue
index 42cdd5e0..a269dadf 100644
--- a/frontend/src/components/ccofApplication/group/LicenseUpload.vue
+++ b/frontend/src/components/ccofApplication/group/LicenseUpload.vue
@@ -98,17 +98,17 @@ export default {
}
return false;
},
- getFacilityList(){
- let facilityList;
- if (this.isChangeRequest) {
- facilityList = this.navBarList.filter(el => el.changeRequestId === this.$route.params.changeRecGuid);
- } else {
- facilityList = this.navBarList.filter(el => !el.changeRequestId);
- }
- return facilityList;
- },
+ // getFacilityList(){
+ // let facilityList;
+ // if (this.isChangeRequest) {
+ // facilityList = this.navBarList.filter(el => el.changeRequestId === this.$route.params.changeRecGuid);
+ // } else {
+ // facilityList = this.navBarList.filter(el => !el.changeRequestId);
+ // }
+ // return facilityList;
+ // },
nextButtonDisabled() {
- let facilityList = this.getFacilityList;
+ let facilityList = this.navBarList;
for (let navBarItem of facilityList) {
const facilityId = navBarItem.facilityId;
@@ -246,8 +246,8 @@ export default {
const fileList = [];
for (const facilityId of this.fileMap.keys()) {
const file = this.fileMap.get(facilityId);
- let facilityList = this.getFacilityList;
- let currFac = facilityList.find(fac => fac.facilityId === facilityId);
+ //let facilityList = this.getFacilityList;
+ let currFac = this.navBarList.find(fac => fac.facilityId === facilityId);
const obj = {
ccof_applicationid: this.applicationId,
ccof_facility: facilityId,
diff --git a/frontend/src/store/modules/reportChanges.js b/frontend/src/store/modules/reportChanges.js
index ded6c34a..773091bc 100644
--- a/frontend/src/store/modules/reportChanges.js
+++ b/frontend/src/store/modules/reportChanges.js
@@ -46,19 +46,22 @@ export default {
},
// eslint-disable-next-line no-unused-vars
isCCOFUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.unlockCCOF;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isCCOFUnlocked;
},
// eslint-disable-next-line no-unused-vars
isEceweUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.unlockEcewe;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isEceweUnlocked;
},
// eslint-disable-next-line no-unused-vars
isLicenseUploadUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.unlockLicenseUpload;
+ console.log(state.changeRequestMap.get(rootState.navBar.changeRequestId));
+ console.log(state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isLicenseUploadUnlocked);
+
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isLicenseUploadUnlocked;
},
// eslint-disable-next-line no-unused-vars
isSupportingDocumentsUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.unlockSupportingDocuments;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isSupportingDocumentsUnlocked;
},
// eslint-disable-next-line no-unused-vars
isDeclarationUnlocked:(state,getters,rootState) => {
@@ -155,7 +158,7 @@ export default {
async getChangeRequestList({commit, rootGetters}, ) {
//is it better/ worse to load from route state vs. passing in application ID?
- console.log('loading change req for: ');
+ console.log('loading change reqs for application list: ');
console.log(rootGetters['application/applicationIds']);
//console.log('loading change req for: ', rootState.application.applicationId);
From b65b7c994c775e4c04aea3b796aefe2a2a287b41 Mon Sep 17 00:00:00 2001
From: Le
Date: Thu, 28 Sep 2023 12:20:50 -0700
Subject: [PATCH 033/176] update logic and routing for Update PCF button
---
frontend/src/components/LandingPage.vue | 102 +++++++++++-------
.../guiComponents/FiscalYearSlider.vue | 4 +-
frontend/src/store/modules/application.js | 3 +-
frontend/src/store/modules/navBar.js | 4 +-
4 files changed, 72 insertions(+), 41 deletions(-)
diff --git a/frontend/src/components/LandingPage.vue b/frontend/src/components/LandingPage.vue
index eb539b56..c7e2dc16 100644
--- a/frontend/src/components/LandingPage.vue
+++ b/frontend/src/components/LandingPage.vue
@@ -16,17 +16,17 @@
-
+
Child Care Operating Funding (CCOF)
Apply for Child Care Operating Funding (CCOF) including:
-
-
-
- {{item.title}}
-
+
+
+
@@ -46,20 +46,34 @@
- Start
- Application
- Update your PCF
+
+
+ Start Application
+
+
Fiscal year runs April 1 to March 31
+
+
Status: Incomplete
Continue Application
+
Fiscal year runs April 1 to March 31
+
-
Status of your funding agreement for the current fiscal year: Approved
-
Status: Submitted
-
View Application
-
- View submission history
-
+
+
+
+ Update {{ item.ccofProgramYearName?.slice(0,-3) }} PCF
+
+
+
+
+
Status of your funding agreement for the current fiscal year: Approved
+
Status: Submitted
+
View Application
+
+
Fiscal year runs April 1 to March 31
+
View submission history
@@ -252,8 +266,22 @@ export default {
...mapState('navBar', ['navBarList']),
...mapState('organization', ['fundingAgreementNumber', 'organizationAccountNumber', 'organizationProviderType', 'organizationId', 'organizationName', 'organizationAccountNumber']),
...mapState('application', ['applicationType', 'programYearId', 'programYearLabel', 'ccofApplicationStatus', 'unlockBaseFunding', 'isRenewal',
- 'unlockDeclaration', 'unlockEcewe', 'unlockLicenseUpload', 'unlockSupportingDocuments', 'applicationStatus']),
+ 'unlockDeclaration', 'unlockEcewe', 'unlockLicenseUpload', 'unlockSupportingDocuments', 'applicationStatus', 'applicationMap']),
...mapState('reportChanges', ['changeRequestStore']),
+ getActionRequiredApplicationsForCCOFCard() {
+ const applicationList = Array.from(this.applicationMap?.values());
+ return applicationList?.filter(application => {
+ const isCcfriUnlocked = application.facilityList?.find(facility => facility.unlockCcfri);
+ const isRfiUnlocked = application.facilityList?.find(facility => facility.unlockRfi);
+ const isNmfUnlocked = application.facilityList?.find(facility => facility.unlockNmf);
+ const isLatestRenewApplication = (application.ccofProgramYearId === this.latestProgramYearId) && (application.applicationType === 'RENEW');
+ const isApplicationUnlocked = application?.unlockBaseFunding || application?.unlockLicenseUpload || application?.unlockEcewe
+ || application?.unlockSupportingDocuments || application?.unlockDeclaration
+ || isCcfriUnlocked || isRfiUnlocked || isNmfUnlocked;
+ return (!isLatestRenewApplication && isApplicationUnlocked);
+ // return (isApplicationUnlocked);
+ });
+ },
facilityList() {
if (this.selectedProgramYear)
return this.getFacilityListForPCFByProgramYearId(this.selectedProgramYear?.programYearId);
@@ -354,7 +382,7 @@ export default {
},
unlockCCFRIList() {
let unlockList = [];
- this.navBarList.forEach((facility) => {
+ this.facilityList?.forEach((facility) => {
if (facility.unlockCcfri)
unlockList.push(facility.ccfriApplicationId);
});
@@ -362,7 +390,7 @@ export default {
},
unlockNMFList() {
let unlockList = [];
- this.navBarList.forEach((facility) => {
+ this.facilityList?.forEach((facility) => {
if (facility.unlockNmf)
unlockList.push(facility.ccfriApplicationId);
});
@@ -370,7 +398,7 @@ export default {
},
unlockRFIList() {
let unlockList = [];
- this.navBarList.forEach((facility) => {
+ this.facilityList?.forEach((facility) => {
if (facility.unlockRfi)
unlockList.push(facility.ccfriApplicationId);
});
@@ -421,42 +449,42 @@ export default {
goToCCOFOrganizationInfo() {
this.$router.push(pcfUrl(this.organizationProviderType === 'GROUP' ? PATHS.CCOF_GROUP_ORG : PATHS.CCOF_FAMILY_ORG, this.programYearId));
},
- goToCCOFFunding() {
+ goToCCOFFunding(programYearId) {
let firstFacilityId = this.navBarList[0]?.facilityId;
let navBar = this.$store.getters['navBar/getNavByFacilityId'](firstFacilityId);
if (navBar?.ccofBaseFundingId) {
this.$router.push(pcfUrlGuid(this.organizationProviderType === 'GROUP' ? PATHS.CCOF_GROUP_FUNDING : PATHS.CCOF_FAMILY_FUNDING, this.programYearId, navBar?.ccofBaseFundingId));
}
},
- goToLicenseUpload() {
+ goToLicenseUpload(programYearId) {
this.$router.push(pcfUrl(PATHS.LICENSE_UPLOAD, this.programYearId));
},
- goToCCFRI(ccfriApplicationId) {
+ goToCCFRI(ccfriApplicationId, programYearId) {
let path = this.isRenewal? PATHS.CCFRI_CURRENT_FEES : PATHS.CCFRI_NEW_FEES;
if (ccfriApplicationId)
this.$router.push(pcfUrlGuid(path, this.programYearId, ccfriApplicationId));
else
this.$router.push(pcfUrlGuid(path, this.programYearId, this.unlockCCFRIList[0]));
},
- goToNMF(ccfriApplicationId) {
+ goToNMF(ccfriApplicationId, programYearId) {
if (ccfriApplicationId)
this.$router.push(pcfUrlGuid(PATHS.CCFRI_NMF, this.programYearId, ccfriApplicationId));
else
this.$router.push(pcfUrlGuid(PATHS.CCFRI_NMF, this.programYearId, this.unlockNMFList[0]));
},
- goToRFI(ccfriApplicationId) {
+ goToRFI(ccfriApplicationId, programYearId) {
if (ccfriApplicationId)
this.$router.push(pcfUrlGuid(PATHS.CCFRI_RFI, this.programYearId, ccfriApplicationId));
else
this.$router.push(pcfUrlGuid(PATHS.CCFRI_RFI, this.programYearId, this.unlockRFIList[0]));
},
- goToECEWE() {
+ goToECEWE(programYearId) {
this.$router.push(pcfUrl(PATHS.ECEWE_ELIGIBILITY, this.programYearId));
},
- goToSupportingDocumentUpload() {
+ goToSupportingDocumentUpload(programYearId) {
this.$router.push(pcfUrl(PATHS.SUPPORTING_DOCS, this.programYearId));
},
- goToSummaryDeclaration() {
+ goToSummaryDeclaration(programYearId) {
this.$router.push(pcfUrl(PATHS.SUMMARY_DECLARATION, this.programYearId));
},
viewApplication(type) {
@@ -473,25 +501,25 @@ export default {
console.info(error);
}
},
- actionRequiredOrganizationRoute() {
+ actionRequiredOrganizationRoute(programYearId = this.programYearId) {
if (this.unlockLicenseUpload)
- this.goToLicenseUpload();
+ this.goToLicenseUpload(programYearId);
else if (this.unlockBaseFunding && (this.applicationType === 'NEW'))
- this.goToCCOFFunding();
+ this.goToCCOFFunding(programYearId);
else if (this.unlockEcewe)
- this.goToECEWE();
+ this.goToECEWE(programYearId);
else if (this.unlockSupportingDocuments)
- this.goToSupportingDocumentUpload();
+ this.goToSupportingDocumentUpload(programYearId);
else if (this.unlockCCFRIList.length > 0 )
- this.goToCCFRI();
+ this.goToCCFRI(programYearId);
else if (this.unlockNMFList.length > 0 )
- this.goToNMF();
+ this.goToNMF(programYearId);
else if (this.unlockRFIList.length > 0 )
- this.goToRFI();
+ this.goToRFI(programYearId);
else if (this.unlockDeclaration)
- this.goToSummaryDeclaration();
+ this.goToSummaryDeclaration(programYearId);
},
- actionRequiredFacilityRoute(ccfriApplicationId) {
+ actionRequiredFacilityRoute(ccfriApplicationId, programYearId = this.programYearId) {
if (this.isCCFRIUnlock(ccfriApplicationId))
this.goToCCFRI(ccfriApplicationId);
else if (this.isNMFUnlock(ccfriApplicationId))
diff --git a/frontend/src/components/guiComponents/FiscalYearSlider.vue b/frontend/src/components/guiComponents/FiscalYearSlider.vue
index c899d347..750b020c 100644
--- a/frontend/src/components/guiComponents/FiscalYearSlider.vue
+++ b/frontend/src/components/guiComponents/FiscalYearSlider.vue
@@ -52,13 +52,13 @@ export default {
}
},
created() {
- this.selectedProgramYearIndex = this.programYearList?.findIndex(item => item.status === 'CURRENT');
+ this.selectedProgramYearIndex = this.programYearList?.findIndex(item => item.programYearId === this.programYearId);
this.updateActiveIndex();
if (this.selectedProgramYearIndex > -1)
this.$emit('selectProgramYear', this.programYearList[this.selectedProgramYearIndex]);
},
computed: {
- ...mapState('application', ['applicationMap']),
+ ...mapState('application', ['applicationMap', 'programYearId']),
programYearList() {
let programYearList = [];
this.applicationMap.forEach(item => {
diff --git a/frontend/src/store/modules/application.js b/frontend/src/store/modules/application.js
index 976e680a..4a065a75 100644
--- a/frontend/src/store/modules/application.js
+++ b/frontend/src/store/modules/application.js
@@ -84,7 +84,8 @@ export default {
getFacilityListForPCFByProgramYearId: state => (selectedProgramYearId) => {
const programYearId = selectedProgramYearId ? selectedProgramYearId : state.latestProgramYearId;
const selectedApplication = state.applicationMap.get(programYearId);
- const applicationStatus = selectedApplication?.applicationStatus;
+ const applicationStatus = (selectedApplication?.applicationStatus === 'SUBMITTED' && selectedApplication?.ccofApplicationStatus === 'ACTIVE')
+ ? 'APPROVED' : selectedApplication?.applicationStatus;
const isRenewal = selectedApplication?.applicationType === 'RENEW';
let facilityList = selectedApplication?.facilityList;
facilityList = facilityList ? filterFacilityListForPCF(facilityList, isRenewal, applicationStatus) : facilityList;
diff --git a/frontend/src/store/modules/navBar.js b/frontend/src/store/modules/navBar.js
index 88c7a644..7af01594 100644
--- a/frontend/src/store/modules/navBar.js
+++ b/frontend/src/store/modules/navBar.js
@@ -107,7 +107,9 @@ function filterNavBar(state) {
}
// PCF
} else {
- state.navBarList = filterFacilityListForPCF(state.userProfileList, state.isRenewal, state.applicationStatus);
+ const applicationStatus = (state.applicationStatus === 'SUBMITTED' && state.ccofApplicationStatus === 'ACTIVE')
+ ? 'APPROVED' : state.applicationStatus;
+ state.navBarList = filterFacilityListForPCF(state.userProfileList, state.isRenewal, applicationStatus);
}
}
From faf13784fbab567c7a5b9384ad38805112cf4798 Mon Sep 17 00:00:00 2001
From: Jen Beckett <115109120+jenbeckett@users.noreply.github.com>
Date: Fri, 29 Sep 2023 14:05:41 -0700
Subject: [PATCH 034/176] update mappings for reportChanges getters
---
.../src/util/mapping/ChangeRequestMappings.js | 1 +
frontend/src/store/modules/reportChanges.js | 16 ++++++++--------
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/backend/src/util/mapping/ChangeRequestMappings.js b/backend/src/util/mapping/ChangeRequestMappings.js
index 47cd3930..bf4207c0 100644
--- a/backend/src/util/mapping/ChangeRequestMappings.js
+++ b/backend/src/util/mapping/ChangeRequestMappings.js
@@ -25,6 +25,7 @@ const ChangeRequestMappings = [
{ back: 'ccof_ecewe_selecttheapplicablefundingmode', front: 'fundingModel' },
{ back: 'ccof_ecewe_confirmation', front: 'confirmation' },
{ back: 'ccof_declaration', front: 'enabledDeclarationB' },
+ { back: 'ccof_indicator_unlock', front: 'isChangeRequestUnlocked' },
...UserProfileChangeRequestMappings
// { back: 'ccof_change_request_new_facilityid', front: 'changeFacilityID'},
diff --git a/frontend/src/store/modules/reportChanges.js b/frontend/src/store/modules/reportChanges.js
index 86b610a0..0c2e3712 100644
--- a/frontend/src/store/modules/reportChanges.js
+++ b/frontend/src/store/modules/reportChanges.js
@@ -46,22 +46,22 @@ export default {
},
// eslint-disable-next-line no-unused-vars
isCCOFUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isCCOFUnlocked;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isCCOFUnlocked;
},
// eslint-disable-next-line no-unused-vars
isEceweUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isEceweUnlocked;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isEceweUnlocked;
},
// eslint-disable-next-line no-unused-vars
isLicenseUploadUnlocked:(state,getters,rootState) => {
console.log(state.changeRequestMap.get(rootState.navBar.changeRequestId));
- console.log(state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isLicenseUploadUnlocked);
+ console.log(state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isLicenseUploadUnlocked);
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isLicenseUploadUnlocked;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isLicenseUploadUnlocked;
},
// eslint-disable-next-line no-unused-vars
isSupportingDocumentsUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY).isSupportingDocumentsUnlocked;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isSupportingDocumentsUnlocked;
},
// eslint-disable-next-line no-unused-vars
isDeclarationUnlocked:(state,getters,rootState) => {
@@ -69,15 +69,15 @@ export default {
},
// eslint-disable-next-line no-unused-vars
isChangeRequestUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.unlockChangeRequest;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.isChangeRequestUnlocked;
},
// eslint-disable-next-line no-unused-vars
isOtherDocumentsUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.unlockOtherChangesDocuments;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.PDF_CHANGE)?.isOtherDocumentsUnlocked;
},
// eslint-disable-next-line no-unused-vars
getChangeNotificationActionId:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeNotificationActionId;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.PDF_CHANGE)?.changeActionId;
}
},
mutations: {
From aa2c1165d4313a6fb2f583aeffa21351008a677d Mon Sep 17 00:00:00 2001
From: Jen Beckett <115109120+jenbeckett@users.noreply.github.com>
Date: Fri, 29 Sep 2023 14:44:02 -0700
Subject: [PATCH 035/176] active previous year CR visible on change request
dashboard
---
backend/src/components/changeRequest.js | 27 +++----------------
.../requestChanges/ReportChanges.vue | 9 ++++++-
2 files changed, 11 insertions(+), 25 deletions(-)
diff --git a/backend/src/components/changeRequest.js b/backend/src/components/changeRequest.js
index 70498989..fb5acfca 100644
--- a/backend/src/components/changeRequest.js
+++ b/backend/src/components/changeRequest.js
@@ -38,8 +38,6 @@ async function getChangeActionNewFacilitityDetails(changeActionId) {
try {
let operation = `ccof_change_request_new_facilities?$filter=_ccof_change_action_value eq '${changeActionId}'&$expand=ccof_ccfri($select=${getMappingString(UserProfileBaseCCFRIMappings)}),ccof_ecewe($select=${getMappingString(UserProfileECEWEMappings)}),ccof_CCOF($select=${getMappingString(UserProfileBaseFundingMappings)})`;
let changeActionDetails = await getOperation(operation);
- log.info('qqqqqqqqjjjjjjjjjjjjjjjjjjjwwwwwwwwwwwwwwwwwwwwwwwwwww');
- log.info(changeActionDetails);
let details = changeActionDetails?.value;
let retVal = [];
details?.forEach(el => {
@@ -92,31 +90,19 @@ async function getChangeActionDetails(changeActionId, changeDetailEntity, change
async function mapChangeRequestObjectForFront(data) {
let retVal = new MappableObjectForFront(data, ChangeRequestMappings).toJSON();
- //let unlockVals = new MappableObjectForFront(data, ChangeRequestUnlockMapping).toJSON();
- log.info('DATAAA');
- log.info(data);
let changeList = [];
await Promise.all( retVal.changeActions?.map(async (el) => {
- //let unlockVals;
let changeAction = new MappableObjectForFront(el, ChangeActionRequestMappings).toJSON();
if (changeAction.changeType == CHANGE_REQUEST_TYPES.PARENT_FEE_CHANGE) {
const mtfi = await getChangeActionDetails(changeAction.changeActionId, 'ccof_change_request_mtfis', MtfiMappings, 'ccof_CCFRI', UserProfileBaseCCFRIMappings );
changeAction.mtfi = mtfi;
- //changeAction.changeType = 'PARENT_FEE_CHANGE';
- } else if (changeAction.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY) {
+ }
+ else if (changeAction.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY) {
const newFacilities = await getChangeActionNewFacilitityDetails(changeAction.changeActionId);
-
changeAction.newFacilities = newFacilities;
- //changeAction.changeType = 'NEW_FACILITY';
- } else if (changeAction.changeType == CHANGE_REQUEST_TYPES.PDF_CHANGE) {
- //changeAction.changeType = 'PDF_CHANGE';
}
let unlockVals = new MappableObjectForFront(el, ChangeRequestUnlockMapping).toJSON();
-
- log.info('HIIIIIIIIIIIIIIIIIIIIIIIIIIIII');
- log.info(unlockVals);
-
changeAction = {...changeAction, ...unlockVals};
changeList.push(changeAction);
}));
@@ -129,19 +115,12 @@ async function mapChangeRequestObjectForFront(data) {
// get Change Request
async function getChangeRequest(req, res) {
- log.info('get changeRequest called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
- log.info('get changeRequest called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
- log.info('get changeRequest called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
- log.info('get changeRequest called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
-
try {
let operation = `ccof_change_requests(${req.params.changeRequestId})?$expand=ccof_change_action_change_request($select=ccof_change_actionid,statuscode,ccof_changetype,createdon,ccof_unlock_ecewe,ccof_unlock_ccof,ccof_unlock_supporting_document,ccof_unlock_other_changes_document,ccof_unlock_change_request,ccof_unlock_licence_upload)`;
let changeRequest = await getOperation(operation);
changeRequest = await mapChangeRequestObjectForFront(changeRequest);
changeRequest.providerType = getLabelFromValue(changeRequest.providerType , ORGANIZATION_PROVIDER_TYPES);
changeRequest.externalStatus = getLabelFromValue(changeRequest.externalStatus , CHANGE_REQUEST_EXTERNAL_STATUS_CODES);
- log.info(changeRequest);
- log.info(CHANGE_REQUEST_EXTERNAL_STATUS_CODES);
return res.status(HttpStatus.OK).json(changeRequest);
} catch (e) {
console.log('e', e);
@@ -189,7 +168,7 @@ async function createChangeRequest(req, res) {
else if(changeType === 'PDF_CHANGE'){
changeType = CHANGE_REQUEST_TYPES.PDF_CHANGE;
}
- log.info('change type', changeType);
+ //log.info('change type', changeType);
changeRequest = mapChangeRequestForBack(changeRequest, changeType);
const changeRequestId = await postOperation('ccof_change_requests', changeRequest);
let operation = `ccof_change_requests(${changeRequestId})?$select=ccof_change_requestid&$expand=ccof_change_action_change_request($select=ccof_change_actionid,statuscode)`;
diff --git a/frontend/src/components/requestChanges/ReportChanges.vue b/frontend/src/components/requestChanges/ReportChanges.vue
index cd6f3e17..272383a2 100644
--- a/frontend/src/components/requestChanges/ReportChanges.vue
+++ b/frontend/src/components/requestChanges/ReportChanges.vue
@@ -272,10 +272,17 @@ export default {
};
});
}
+ console.log('all change reqz');
+ console.log(allChangeRequests);
return allChangeRequests;
},
+ getPrevProgramYearId(){
+ return this.programYearList.list.find(({ programYearId }) => programYearId == this.programYearId ).previousYearId;
+ },
currentChangeRequests(){
- return this.allChangeRequests.filter(el => el.programYearId == this.programYearId);
+ return this.allChangeRequests.filter(
+ el => (el.programYearId == this.programYearId)
+ || (el.programYearId == this.getPrevProgramYearId && (el.externalStatus == "In Progress" || el.externalStatus == "Submitted" || el.externalStatus == "Action Required" )));
},
pastChangeRequests(){
return this.allChangeRequests.filter(el => el.programYearId != this.programYearId);
From c3a8da1cf013f79e23efadbcd107c7b406e1798d Mon Sep 17 00:00:00 2001
From: Le
Date: Tue, 3 Oct 2023 11:00:33 -0700
Subject: [PATCH 036/176] Multi fiscal year update for Landing page - update
button logic + routing
---
frontend/src/components/LandingPage.vue | 210 ++++++++++++----------
frontend/src/store/modules/application.js | 17 +-
frontend/src/utils/common.js | 11 ++
3 files changed, 136 insertions(+), 102 deletions(-)
diff --git a/frontend/src/components/LandingPage.vue b/frontend/src/components/LandingPage.vue
index c7e2dc16..3ac7fc53 100644
--- a/frontend/src/components/LandingPage.vue
+++ b/frontend/src/components/LandingPage.vue
@@ -62,7 +62,7 @@
-
+
Update {{ item.ccofProgramYearName?.slice(0,-3) }} PCF
@@ -73,7 +73,9 @@
View Application
Fiscal year runs April 1 to March 31
-
View submission history
+
+ View submission history
+
@@ -146,7 +148,7 @@
- Fiscal Year: {{ getProgramYearName }}
+ Fiscal Year: {{ programYearNameForFacilityCards }}
@@ -161,17 +163,16 @@
label="Filter by Facility Name "
v-model="input"
:bind="input"
- v-if="this.facilityList?.length > 2">
+ v-if="facilityListForFacilityCards?.length > 2">
-
+ v-for="({facilityName, facilityId, ccfriApplicationId, ccfriStatus, eceweStatus, ccfriOptInStatus, eceweOptInStatus, facilityAccountNumber, licenseNumber}) in filteredFacilityListForFacilityCards" :key="facilityId">
Facility ID: {{facilityAccountNumber}}
@@ -190,7 +191,7 @@
{{eceweStatus}}
-
+
Update your PCF
@@ -210,6 +211,8 @@ import MessagesToolbar from './guiComponents/MessagesToolbar.vue';
import FiscalYearSlider from './guiComponents/FiscalYearSlider';
import { PATHS, pcfUrl, pcfUrlGuid, CHANGE_REQUEST_EXTERNAL_STATUS } from '@/utils/constants';
import alertMixin from '@/mixins/alertMixin';
+import { checkApplicationUnlocked } from '@/utils/common';
+
export default {
name: 'LandingPage',
@@ -271,51 +274,26 @@ export default {
getActionRequiredApplicationsForCCOFCard() {
const applicationList = Array.from(this.applicationMap?.values());
return applicationList?.filter(application => {
- const isCcfriUnlocked = application.facilityList?.find(facility => facility.unlockCcfri);
- const isRfiUnlocked = application.facilityList?.find(facility => facility.unlockRfi);
- const isNmfUnlocked = application.facilityList?.find(facility => facility.unlockNmf);
const isLatestRenewApplication = (application.ccofProgramYearId === this.latestProgramYearId) && (application.applicationType === 'RENEW');
- const isApplicationUnlocked = application?.unlockBaseFunding || application?.unlockLicenseUpload || application?.unlockEcewe
- || application?.unlockSupportingDocuments || application?.unlockDeclaration
- || isCcfriUnlocked || isRfiUnlocked || isNmfUnlocked;
+ const isApplicationUnlocked = checkApplicationUnlocked(application);
return (!isLatestRenewApplication && isApplicationUnlocked);
- // return (isApplicationUnlocked);
});
},
- facilityList() {
+ facilityListForFacilityCards() {
if (this.selectedProgramYear)
return this.getFacilityListForPCFByProgramYearId(this.selectedProgramYear?.programYearId);
return this.getFacilityListForPCFByProgramYearId(this.programYearId);
},
- getProgramYearName() {
+ programYearNameForFacilityCards() {
if (this.selectedProgramYear)
return this.selectedProgramYear?.name;
return this.programYearLabel?.slice(0,-3);
},
- filteredFacilityList() {
+ filteredFacilityListForFacilityCards() {
if (this.input === '' || this.input === ' ' || this.input === null){
- return this.facilityList;
- }
- return this.facilityList?.filter((fac) => fac.facilityName.toLowerCase().includes(this.input.toLowerCase()));
- },
- isCCFRIandECEWEComplete() {
- if (!this.navBarList) {
- return false;
+ return this.facilityListForFacilityCards;
}
- let enabled = true;
- //TODO: uncomment out this code
- // let navBarLength = this.navBarList?.length;
- // for (let i = 0; i < navBarLength; i ++) {
- // if (this.navBarList[i].eceweStatus === 'NOT STARTED' || this.navBarList[i].ccfriStatus === 'NOT STARTED '
- // || this.navBarList[i].eceweStatus === 'DRAFT' || this.navBarList[i].ccfriStatus === 'DRAFT'
- // || this.navBarList[i].eceweStatus === 'ACTION_REQUIRED' || this.navBarList[i].ccfriStatus === 'ACTION_REQUIRED'
- // || this.navBarList[i].eceweStatus === 'SUBMITTED' || this.navBarList[i].ccfriStatus === 'ACTION_REQUIRED') {
- // enabled = false;
- // i = navBarLength; //Can't break a foreach in javascript, so end the for loop.
- // }
- // }
- console.log('isCCFRIandECEWEComplete: ', enabled);
- return enabled;
+ return this.facilityListForFacilityCards?.filter((fac) => fac.facilityName.toLowerCase().includes(this.input.toLowerCase()));
},
isWithinRenewDate() {
let isEnabled = (this.userInfo.serverTime > this.programYearList?.renewal?.intakeStart
@@ -328,8 +306,7 @@ export default {
if (this.applicationStatus === 'DRAFT') {
return false;
} else if (this.applicationStatus === 'SUBMITTED' || this.applicationStatus === 'APPROVED') {
- let isEnabled = this.isCCFRIandECEWEComplete
- && this.isWithinRenewDate
+ let isEnabled = this.isWithinRenewDate
&& this.programYearId == this.programYearList?.renewal?.previousYearId // can only renew if the last application was for the previous year
&& this.programYearId != this.programYearList?.renewal?.programYearId; // cannot renew if current application program year is the same as renewal program year
return isEnabled;
@@ -382,7 +359,7 @@ export default {
},
unlockCCFRIList() {
let unlockList = [];
- this.facilityList?.forEach((facility) => {
+ this.navBarList?.forEach((facility) => {
if (facility.unlockCcfri)
unlockList.push(facility.ccfriApplicationId);
});
@@ -390,7 +367,7 @@ export default {
},
unlockNMFList() {
let unlockList = [];
- this.facilityList?.forEach((facility) => {
+ this.navBarList?.forEach((facility) => {
if (facility.unlockNmf)
unlockList.push(facility.ccfriApplicationId);
});
@@ -398,7 +375,7 @@ export default {
},
unlockRFIList() {
let unlockList = [];
- this.facilityList?.forEach((facility) => {
+ this.navBarList?.forEach((facility) => {
if (facility.unlockRfi)
unlockList.push(facility.ccfriApplicationId);
});
@@ -414,6 +391,11 @@ export default {
const index = this.changeRequestStore?.findIndex(changeRequest => changeRequest.externalStatus === CHANGE_REQUEST_EXTERNAL_STATUS.ACTION_REQUIRED);
return index > -1;
},
+ isSubmissionHistoryDisplayed() {
+ const applicationList = Array.from(this.applicationMap?.values());
+ const index = applicationList?.findIndex(application => application.applicationStatus != 'DRAFT');
+ return (index > -1);
+ }
},
methods: {
...mapMutations('app', ['setIsRenewal']),
@@ -443,49 +425,40 @@ export default {
},
continueApplication() {
this.setIsRenewal(false);
- console.log('continueApplication .organizationProviderType', this.organizationProviderType);
this.$router.push(pcfUrl(this.organizationProviderType === 'GROUP' ? PATHS.CCOF_GROUP_ORG : PATHS.CCOF_FAMILY_ORG, this.programYearId));
},
goToCCOFOrganizationInfo() {
this.$router.push(pcfUrl(this.organizationProviderType === 'GROUP' ? PATHS.CCOF_GROUP_ORG : PATHS.CCOF_FAMILY_ORG, this.programYearId));
},
- goToCCOFFunding(programYearId) {
- let firstFacilityId = this.navBarList[0]?.facilityId;
- let navBar = this.$store.getters['navBar/getNavByFacilityId'](firstFacilityId);
- if (navBar?.ccofBaseFundingId) {
- this.$router.push(pcfUrlGuid(this.organizationProviderType === 'GROUP' ? PATHS.CCOF_GROUP_FUNDING : PATHS.CCOF_FAMILY_FUNDING, this.programYearId, navBar?.ccofBaseFundingId));
+ goToCCOFFunding(programYearId, facilityList) {
+ if (facilityList?.length > 0) {
+ const ccofBaseFundingId = facilityList[0].ccofBaseFundingId;
+ if (ccofBaseFundingId && programYearId) {
+ this.$router.push(pcfUrlGuid(this.organizationProviderType === 'GROUP' ? PATHS.CCOF_GROUP_FUNDING : PATHS.CCOF_FAMILY_FUNDING, programYearId, ccofBaseFundingId));
+ }
}
},
- goToLicenseUpload(programYearId) {
- this.$router.push(pcfUrl(PATHS.LICENSE_UPLOAD, this.programYearId));
+ goToLicenseUpload(programYearId = this.programYearId) {
+ this.$router.push(pcfUrl(PATHS.LICENSE_UPLOAD, programYearId));
},
- goToCCFRI(ccfriApplicationId, programYearId) {
- let path = this.isRenewal? PATHS.CCFRI_CURRENT_FEES : PATHS.CCFRI_NEW_FEES;
- if (ccfriApplicationId)
- this.$router.push(pcfUrlGuid(path, this.programYearId, ccfriApplicationId));
- else
- this.$router.push(pcfUrlGuid(path, this.programYearId, this.unlockCCFRIList[0]));
+ goToCCFRI(ccfriApplicationId, application) {
+ let path = application?.isRenewal ? PATHS.CCFRI_CURRENT_FEES : PATHS.CCFRI_NEW_FEES;
+ this.$router.push(pcfUrlGuid(path, application?.ccofProgramYearId, ccfriApplicationId));
},
goToNMF(ccfriApplicationId, programYearId) {
- if (ccfriApplicationId)
- this.$router.push(pcfUrlGuid(PATHS.CCFRI_NMF, this.programYearId, ccfriApplicationId));
- else
- this.$router.push(pcfUrlGuid(PATHS.CCFRI_NMF, this.programYearId, this.unlockNMFList[0]));
+ this.$router.push(pcfUrlGuid(PATHS.CCFRI_NMF, programYearId, ccfriApplicationId));
},
goToRFI(ccfriApplicationId, programYearId) {
- if (ccfriApplicationId)
- this.$router.push(pcfUrlGuid(PATHS.CCFRI_RFI, this.programYearId, ccfriApplicationId));
- else
- this.$router.push(pcfUrlGuid(PATHS.CCFRI_RFI, this.programYearId, this.unlockRFIList[0]));
+ this.$router.push(pcfUrlGuid(PATHS.CCFRI_RFI, programYearId, ccfriApplicationId));
},
goToECEWE(programYearId) {
- this.$router.push(pcfUrl(PATHS.ECEWE_ELIGIBILITY, this.programYearId));
+ this.$router.push(pcfUrl(PATHS.ECEWE_ELIGIBILITY, programYearId));
},
- goToSupportingDocumentUpload(programYearId) {
- this.$router.push(pcfUrl(PATHS.SUPPORTING_DOCS, this.programYearId));
+ goToSupportingDocumentUpload(programYearId = this.programYearId) {
+ this.$router.push(pcfUrl(PATHS.SUPPORTING_DOCS, programYearId));
},
- goToSummaryDeclaration(programYearId) {
- this.$router.push(pcfUrl(PATHS.SUMMARY_DECLARATION, this.programYearId));
+ goToSummaryDeclaration(programYearId = this.programYearId) {
+ this.$router.push(pcfUrl(PATHS.SUMMARY_DECLARATION, programYearId));
},
viewApplication(type) {
if (type === 'NEW') {
@@ -502,30 +475,37 @@ export default {
}
},
actionRequiredOrganizationRoute(programYearId = this.programYearId) {
- if (this.unlockLicenseUpload)
+ let application = this.applicationMap?.get(programYearId);
+ const facilityList = this.getFacilityListForPCFByProgramYearId(programYearId);
+ const unlockCCFRIList = this.getUnlockCCFRIList(facilityList);
+ const unlockRFIList = this.getUnlockRFIList(facilityList);
+ const unlockNMFList = this.getUnlockNMFList(facilityList);
+ if (application?.unlockLicenseUpload)
this.goToLicenseUpload(programYearId);
- else if (this.unlockBaseFunding && (this.applicationType === 'NEW'))
- this.goToCCOFFunding(programYearId);
- else if (this.unlockEcewe)
+ else if (application?.unlockBaseFunding && (application?.applicationType === 'NEW'))
+ this.goToCCOFFunding(programYearId, facilityList);
+ else if (application?.unlockEcewe)
this.goToECEWE(programYearId);
- else if (this.unlockSupportingDocuments)
+ else if (application?.unlockSupportingDocuments)
this.goToSupportingDocumentUpload(programYearId);
- else if (this.unlockCCFRIList.length > 0 )
- this.goToCCFRI(programYearId);
- else if (this.unlockNMFList.length > 0 )
- this.goToNMF(programYearId);
- else if (this.unlockRFIList.length > 0 )
- this.goToRFI(programYearId);
- else if (this.unlockDeclaration)
+ else if (unlockCCFRIList?.length > 0)
+ this.goToCCFRI(unlockCCFRIList[0], application);
+ else if (unlockNMFList?.length > 0)
+ this.goToNMF(unlockNMFList[0], programYearId);
+ else if (unlockRFIList?.length > 0)
+ this.goToRFI(unlockRFIList[0], programYearId);
+ else if (application?.unlockDeclaration)
this.goToSummaryDeclaration(programYearId);
},
- actionRequiredFacilityRoute(ccfriApplicationId, programYearId = this.programYearId) {
- if (this.isCCFRIUnlock(ccfriApplicationId))
- this.goToCCFRI(ccfriApplicationId);
- else if (this.isNMFUnlock(ccfriApplicationId))
- this.goToNMF(ccfriApplicationId);
- else if (this.isRFIUnlock(ccfriApplicationId))
- this.goToRFI(ccfriApplicationId);
+ actionRequiredFacilityRoute(ccfriApplicationId) {
+ const programYearId = this.selectedProgramYear?.programYearId ? this.selectedProgramYear?.programYearId : this.programYearId;
+ const application = this.applicationMap?.get(programYearId);
+ if (this.isCCFRIUnlock(ccfriApplicationId, application))
+ this.goToCCFRI(ccfriApplicationId, application);
+ else if (this.isNMFUnlock(ccfriApplicationId, application))
+ this.goToNMF(ccfriApplicationId, programYearId);
+ else if (this.isRFIUnlock(ccfriApplicationId, application))
+ this.goToRFI(ccfriApplicationId, programYearId);
},
buttonColor(isDisabled) {
return isDisabled ? '#909090' : '#003366';
@@ -543,20 +523,56 @@ export default {
}
return 'col-lg-3';
},
- isCCFRIUnlock(ccfriApplicationId) {
- return (this.applicationStatus === 'SUBMITTED' && this.unlockCCFRIList.includes(ccfriApplicationId));
+ isFacilityCardUnlock(ccfriApplicationId) {
+ const programYearId = this.selectedProgramYear?.programYearId ? this.selectedProgramYear?.programYearId : this.programYearId;
+ let application = this.applicationMap?.get(programYearId);
+ return (this.isCCFRIUnlock(ccfriApplicationId, application)
+ || this.isNMFUnlock(ccfriApplicationId, application)
+ || this.isRFIUnlock(ccfriApplicationId, application));
+ },
+ isCCFRIUnlock(ccfriApplicationId, application) {
+ const facilityList = this.getFacilityListForPCFByProgramYearId(application?.ccofProgramYearId);
+ const unlockCCFRIList = this.getUnlockCCFRIList(facilityList);
+ return (application?.applicationStatus === 'SUBMITTED' && unlockCCFRIList.includes(ccfriApplicationId));
+ },
+ isNMFUnlock(ccfriApplicationId, application) {
+ const facilityList = this.getFacilityListForPCFByProgramYearId(application?.ccofProgramYearId);
+ const unlockNMFList = this.getUnlockNMFList(facilityList);
+ return (application?.applicationStatus === 'SUBMITTED' && unlockNMFList.includes(ccfriApplicationId));
+ },
+ isRFIUnlock(ccfriApplicationId, application) {
+ const facilityList = this.getFacilityListForPCFByProgramYearId(application?.ccofProgramYearId);
+ const unlockRFIList = this.getUnlockRFIList(facilityList);
+ return (application?.applicationStatus === 'SUBMITTED' && unlockRFIList.includes(ccfriApplicationId));
+ },
+ getUnlockCCFRIList(facilityList) {
+ let unlockList = [];
+ facilityList?.forEach((facility) => {
+ if (facility.unlockCcfri)
+ unlockList.push(facility.ccfriApplicationId);
+ });
+ return unlockList;
},
- isNMFUnlock(ccfriApplicationId) {
- return (this.applicationStatus === 'SUBMITTED' && this.unlockNMFList.includes(ccfriApplicationId));
+ getUnlockNMFList(facilityList) {
+ let unlockList = [];
+ facilityList?.forEach((facility) => {
+ if (facility.unlockNmf)
+ unlockList.push(facility.ccfriApplicationId);
+ });
+ return unlockList;
},
- isRFIUnlock(ccfriApplicationId) {
- return (this.applicationStatus === 'SUBMITTED' && this.unlockRFIList.includes(ccfriApplicationId));
+ getUnlockRFIList(facilityList) {
+ let unlockList = [];
+ facilityList?.forEach((facility) => {
+ if (facility.unlockRfi)
+ unlockList.push(facility.ccfriApplicationId);
+ });
+ return unlockList;
},
selectProgramYear(programYear) {
this.selectedProgramYear = programYear;
- }
+ },
},
-
components: { SmallCard, MessagesToolbar, FiscalYearSlider }
};
diff --git a/frontend/src/store/modules/application.js b/frontend/src/store/modules/application.js
index 4a065a75..e49166bf 100644
--- a/frontend/src/store/modules/application.js
+++ b/frontend/src/store/modules/application.js
@@ -1,4 +1,4 @@
-import { filterFacilityListForPCF } from '@/utils/common';
+import { filterFacilityListForPCF, checkApplicationUnlocked } from '@/utils/common';
export default {
namespaced: true,
@@ -83,11 +83,18 @@ export default {
latestApplicationId: (state, getters) => state.applicationMap.get(getters.latestProgramYearId)?.applicationId,
getFacilityListForPCFByProgramYearId: state => (selectedProgramYearId) => {
const programYearId = selectedProgramYearId ? selectedProgramYearId : state.latestProgramYearId;
- const selectedApplication = state.applicationMap.get(programYearId);
- const applicationStatus = (selectedApplication?.applicationStatus === 'SUBMITTED' && selectedApplication?.ccofApplicationStatus === 'ACTIVE')
- ? 'APPROVED' : selectedApplication?.applicationStatus;
- const isRenewal = selectedApplication?.applicationType === 'RENEW';
+ const selectedApplication = state.applicationMap?.get(programYearId);
let facilityList = selectedApplication?.facilityList;
+
+ const isApplicationUnlocked = checkApplicationUnlocked(selectedApplication);
+ const isRenewal = selectedApplication?.applicationType === 'RENEW';
+ let applicationStatus = selectedApplication?.applicationStatus;
+ if (isApplicationUnlocked) {
+ applicationStatus = 'ACTION_REQUIRED'
+ } else if (selectedApplication?.applicationStatus === 'SUBMITTED' && selectedApplication?.ccofApplicationStatus === 'ACTIVE') {
+ applicationStatus = 'APPROVED';
+ }
+
facilityList = facilityList ? filterFacilityListForPCF(facilityList, isRenewal, applicationStatus) : facilityList;
return facilityList;
},
diff --git a/frontend/src/utils/common.js b/frontend/src/utils/common.js
index a4c56697..4d752156 100644
--- a/frontend/src/utils/common.js
+++ b/frontend/src/utils/common.js
@@ -79,4 +79,15 @@ export function filterFacilityListForPCF(facilityList, isRenewal, applicationSta
}
});
return filteredFacilityList;
+}
+
+export function checkApplicationUnlocked(application) {
+ const facilityList = application?.facilityList;
+ const isCCFRIUnlocked = facilityList?.findIndex(facility => isFacilityAvailable(facility) && facility.unlockCcfri) > -1;
+ const isNMFUnlocked = facilityList?.findIndex(facility => isFacilityAvailable(facility) && facility.unlockNmf) > -1;
+ const isRFIUnlocked = facilityList?.findIndex(facility => isFacilityAvailable(facility) && facility.unlockRfi) > -1;
+ const isApplicationUnlocked = (application?.unlockBaseFunding && application?.applicationType === 'NEW') || application?.unlockLicenseUpload ||
+ application?.unlockEcewe || application?.unlockSupportingDocuments || application?.unlockDeclaration ||
+ isCCFRIUnlocked || isNMFUnlocked || isRFIUnlocked;
+ return isApplicationUnlocked;
}
\ No newline at end of file
From 9f5d7e7fe1c12da1cf31941d247b0f47192ce6f8 Mon Sep 17 00:00:00 2001
From: Le
Date: Tue, 3 Oct 2023 13:22:09 -0700
Subject: [PATCH 037/176] Landing page - Update CR button - include all fiscal
years
---
frontend/src/components/LandingPage.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/src/components/LandingPage.vue b/frontend/src/components/LandingPage.vue
index 3ac7fc53..dd9d7e4b 100644
--- a/frontend/src/components/LandingPage.vue
+++ b/frontend/src/components/LandingPage.vue
@@ -258,7 +258,7 @@ export default {
this.isLoadingComplete = false;
this.getAllMessagesVuex();
this.refreshNavBarList();
- await this.getChangeRequestList(this.latestProgramYearId);
+ await this.getChangeRequestList();
this.isLoadingComplete = true;
},
computed: {
From f9d942779e8507071afd391018740d26caeccbd5 Mon Sep 17 00:00:00 2001
From: Jen Beckett <115109120+jenbeckett@users.noreply.github.com>
Date: Fri, 6 Oct 2023 10:37:37 -0700
Subject: [PATCH 038/176] wip debugging CR new fac
---
backend/src/components/changeRequest.js | 3 ++
.../group/CcfriEceLanding.vue | 33 ++++++++++++++-----
frontend/src/store/modules/navBar.js | 7 ++--
frontend/src/store/modules/reportChanges.js | 15 ++++-----
4 files changed, 37 insertions(+), 21 deletions(-)
diff --git a/backend/src/components/changeRequest.js b/backend/src/components/changeRequest.js
index fb5acfca..845b84a0 100644
--- a/backend/src/components/changeRequest.js
+++ b/backend/src/components/changeRequest.js
@@ -39,6 +39,9 @@ async function getChangeActionNewFacilitityDetails(changeActionId) {
let operation = `ccof_change_request_new_facilities?$filter=_ccof_change_action_value eq '${changeActionId}'&$expand=ccof_ccfri($select=${getMappingString(UserProfileBaseCCFRIMappings)}),ccof_ecewe($select=${getMappingString(UserProfileECEWEMappings)}),ccof_CCOF($select=${getMappingString(UserProfileBaseFundingMappings)})`;
let changeActionDetails = await getOperation(operation);
let details = changeActionDetails?.value;
+
+ log.info('!!!!!!!!!!');
+ log.info(details);
let retVal = [];
details?.forEach(el => {
let data = new MappableObjectForFront(el, NewFacilityMappings).toJSON();
diff --git a/frontend/src/components/ccfriApplication/group/CcfriEceLanding.vue b/frontend/src/components/ccfriApplication/group/CcfriEceLanding.vue
index 50d84ec4..b1c70d36 100644
--- a/frontend/src/components/ccfriApplication/group/CcfriEceLanding.vue
+++ b/frontend/src/components/ccfriApplication/group/CcfriEceLanding.vue
@@ -105,19 +105,23 @@ export default {
...mapState('application', ['applicationStatus', 'formattedProgramYear', 'programYearId', 'applicationId', 'isRenewal']),
...mapState('app', ['programYearList']),
...mapState('navBar', ['navBarList', 'userProfileList', 'changeRequestId']),
+ ...mapState('navBar', ['navBarList', 'userProfileList', 'changeRequestId']),
...mapGetters('navBar', ['previousPath', 'isChangeRequest']),
...mapGetters('reportChanges', ['changeRequestStatus']),
+ ...mapState('reportChanges', ['changeRequestMap',]),
isReadOnly() {
+ console.log('read only called');
if (this.unlockedFacilities) {
return false;
}
if (this.isChangeRequest) {
+ console.log('is change req');
+ console.log(this.changeRequestStatus);
if (!this.changeRequestStatus) {
+ console.log('no status');
return false;
}
- else if (this.changeRequestStatus !== 'INCOMPLETE') {
- return true;
- }
+ return (this.changeRequestStatus != 'INCOMPLETE');
}
return (this.applicationStatus === 'SUBMITTED');
},
@@ -188,7 +192,7 @@ export default {
}
//if application is a change request, go to add new fees
else if (isChangeRequest(this)) {
- this.$router.push(changeUrlGuid(PATHS.CCFRI_NEW_FEES, firstOptInFacility.changeRequestId, firstOptInFacility.ccfriApplicationId));
+ this.$router.push(changeUrlGuid(PATHS.CCFRI_NEW_FEES, this.$route.params.changeRecGuid, firstOptInFacility.ccfriApplicationId));
}
//if application locked, send to add new fees
@@ -217,7 +221,7 @@ export default {
continue;
}
if (this.navBarList[i].ccfriOptInStatus != this.ccfriOptInOrOut[i]) { // only add if status has changed
- const userProfileFacility = this.userProfileList.find(el => el.facilityId == this.navBarList[i].facilityId);
+ let userProfileFacility = this.userProfileList.find(el => el.facilityId == this.navBarList[i].facilityId);
if (userProfileFacility) {
userProfileFacility.ccfriOptInStatus = this.ccfriOptInOrOut[i];
}
@@ -226,10 +230,8 @@ export default {
facilityID: this.navBarList[i].facilityId,
optInResponse: this.ccfriOptInOrOut[i],
ccfriApplicationId: this.navBarList[i].ccfriApplicationId,
- changeRequestNewFacilityId: this.navBarList[i].changeRequestNewFacilityId ? this.navBarList[i].changeRequestNewFacilityId : undefined,
- //toDo: check if is Change request first, then if so, attached the change request Facility ID GUID
- //so it can be linked in the backend. It works with the above hardcoded guid ^
- //I did not implement fully because it sounds like we might get that info back from profiderProfile
+ changeRequestNewFacilityId: userProfileFacility.changeRequestNewFacilityId ? userProfileFacility.changeRequestNewFacilityId : undefined,
+
});
}
}//end for loop
@@ -237,8 +239,11 @@ export default {
this.refreshNavBarList();
if (payload.length > 0) {
try {
+ console.log('DA PAY LOAD ');
+ console.log(payload);
const response = await ApiService.apiAxios.patch('/api/application/ccfri/', payload);
+ console.log(response.data);
response.data.forEach(item => {
if (item.ccfriApplicationId) {
this.userProfileList.find(facility => {
@@ -246,8 +251,18 @@ export default {
facility.ccfriApplicationId = item.ccfriApplicationId;
}
});
+ this.navBarList.find(facility => {
+ console.log('da FAC');
+ console.log(facility);
+ if (facility.facilityId == item.facilityId) {
+ facility.ccfriApplicationId = item.ccfriApplicationId;
+ }
+ });
+
+ //let changeActionNewFac = this.changeRequestMap.get(this.changeRequestId)?.changeActions?.newFacilities;
}
});
+ this.refreshNavBarList();
this.forceNavBarRefresh();
if (withAlert) {
this.setSuccessAlert('Success! CCFRI Opt In status has been saved.');
diff --git a/frontend/src/store/modules/navBar.js b/frontend/src/store/modules/navBar.js
index 7af01594..b1a0c04d 100644
--- a/frontend/src/store/modules/navBar.js
+++ b/frontend/src/store/modules/navBar.js
@@ -65,9 +65,9 @@ function getFacilityListFromNewFacilityCR(userProfileList, changeAction) {
unlockRfi: el.unlockRfi,
unlockCcfri: el.unlockCcfri,
unlockNmf: el.unlockNmf,
- ccfriStatus: el.ccfri?.ccfriStatus,
- ccfriOptInStatus: el.ccfri?.ccfriOptInStatus,
- ccfriApplicationId: el.ccfri?.ccfriApplicationId,
+ ccfriStatus: el.ccfri?.ccfriStatus ? el.ccfri?.ccfriStatus : facility.ccfriStatus,
+ ccfriOptInStatus: el.ccfri?.ccfriOptInStatus? el.ccfri.ccfriOptInStatus : facility.ccfriOptInStatus,
+ ccfriApplicationId: el.ccfri?.ccfriApplicationId? el.ccfri?.ccfriApplicationId : facility.ccfriApplicationId,
ccfriFacilityId: el.ccfri?.ccfriFacilityId,
isCCFRIComplete: el.ccfri?.isCCFRIComplete,
hasNmf: el.ccfri?.hasNmf,
@@ -85,6 +85,7 @@ function getFacilityListFromNewFacilityCR(userProfileList, changeAction) {
}
});
}
+ console.log(navBarFacilities);
return navBarFacilities;
}
function filterNavBar(state) {
diff --git a/frontend/src/store/modules/reportChanges.js b/frontend/src/store/modules/reportChanges.js
index 0c2e3712..2b766d60 100644
--- a/frontend/src/store/modules/reportChanges.js
+++ b/frontend/src/store/modules/reportChanges.js
@@ -46,22 +46,19 @@ export default {
},
// eslint-disable-next-line no-unused-vars
isCCOFUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isCCOFUnlocked;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions?.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isCCOFUnlocked;
},
// eslint-disable-next-line no-unused-vars
isEceweUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isEceweUnlocked;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions?.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isEceweUnlocked;
},
// eslint-disable-next-line no-unused-vars
isLicenseUploadUnlocked:(state,getters,rootState) => {
- console.log(state.changeRequestMap.get(rootState.navBar.changeRequestId));
- console.log(state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isLicenseUploadUnlocked);
-
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isLicenseUploadUnlocked;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions?.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isLicenseUploadUnlocked;
},
// eslint-disable-next-line no-unused-vars
isSupportingDocumentsUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isSupportingDocumentsUnlocked;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions?.find(el => el.changeType == CHANGE_REQUEST_TYPES.NEW_FACILITY)?.isSupportingDocumentsUnlocked;
},
// eslint-disable-next-line no-unused-vars
isDeclarationUnlocked:(state,getters,rootState) => {
@@ -73,11 +70,11 @@ export default {
},
// eslint-disable-next-line no-unused-vars
isOtherDocumentsUnlocked:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.PDF_CHANGE)?.isOtherDocumentsUnlocked;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions?.find(el => el.changeType == CHANGE_REQUEST_TYPES.PDF_CHANGE)?.isOtherDocumentsUnlocked;
},
// eslint-disable-next-line no-unused-vars
getChangeNotificationActionId:(state,getters,rootState) => {
- return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions.find(el => el.changeType == CHANGE_REQUEST_TYPES.PDF_CHANGE)?.changeActionId;
+ return state.changeRequestMap.get(rootState.navBar.changeRequestId)?.changeActions?.find(el => el.changeType == CHANGE_REQUEST_TYPES.PDF_CHANGE)?.changeActionId;
}
},
mutations: {
From 4020a31705b393854a8419246f588bdc4038f80e Mon Sep 17 00:00:00 2001
From: Jen Beckett <115109120+jenbeckett@users.noreply.github.com>
Date: Mon, 9 Oct 2023 11:49:35 -0700
Subject: [PATCH 039/176] before restart
---
.../ccfriApplication/group/AddNewFees.vue | 15 ++++++--
.../group/CcfriEceLanding.vue | 36 +++++++++----------
frontend/src/store/modules/navBar.js | 13 ++++---
3 files changed, 38 insertions(+), 26 deletions(-)
diff --git a/frontend/src/components/ccfriApplication/group/AddNewFees.vue b/frontend/src/components/ccfriApplication/group/AddNewFees.vue
index fafdf178..75877752 100644
--- a/frontend/src/components/ccfriApplication/group/AddNewFees.vue
+++ b/frontend/src/components/ccfriApplication/group/AddNewFees.vue
@@ -405,7 +405,7 @@
From a2ec0b4d0d2e7072f3ef4bc0d7b187737e3912b8 Mon Sep 17 00:00:00 2001
From: Jen Beckett <115109120+jenbeckett@users.noreply.github.com>
Date: Tue, 31 Oct 2023 12:22:22 -0700
Subject: [PATCH 069/176] ccfri 3015 and 3016 mtfi bugs
---
backend/src/components/changeRequest.js | 4 +-
.../mtfi/CurrentFeeVerification.vue | 496 +++++++++---------
.../components/mtfi/MtfiSelectFacility.vue | 3 +-
3 files changed, 253 insertions(+), 250 deletions(-)
diff --git a/backend/src/components/changeRequest.js b/backend/src/components/changeRequest.js
index 0727adad..9c35de8d 100644
--- a/backend/src/components/changeRequest.js
+++ b/backend/src/components/changeRequest.js
@@ -342,8 +342,10 @@ async function getChangeRequestMTFIByCcfriId(req, res){
let operation = `ccof_applicationccfris(${req.params.ccfriId})?$expand=ccof_change_request_mtfi_application_ccfri`;
let response = await getOperation(operation);
let mtfiDetails = [];
+ let rfiDetails = new MappableObjectForFront(response, UserProfileBaseCCFRIMappings).toJSON();
+ //Add in the rfi details mapping so on the front when we update hasRFI for the first time, we have the value needed to update it
response?.ccof_change_request_mtfi_application_ccfri?.forEach(mtfiFacility => {
- mtfiDetails.push(new MappableObjectForFront(mtfiFacility, MtfiMappings).toJSON());
+ mtfiDetails.push({...new MappableObjectForFront(mtfiFacility, MtfiMappings).toJSON(), ...rfiDetails});
});
return res.status(HttpStatus.OK).json(mtfiDetails);
}
diff --git a/frontend/src/components/mtfi/CurrentFeeVerification.vue b/frontend/src/components/mtfi/CurrentFeeVerification.vue
index 29b3ae63..f2fc074c 100644
--- a/frontend/src/components/mtfi/CurrentFeeVerification.vue
+++ b/frontend/src/components/mtfi/CurrentFeeVerification.vue
@@ -283,266 +283,265 @@
+
-
-
-
-
- Do you charge parent fees at this facility for any closures on business days?
-
-
-
-
-
-
Do you charge parent fees at this facility for any closures on business days? Indicate the facility closures on business days within the current fiscal year other than British Columbia Statutory Holidays. Only indicate the date of closures where parent fees are charged.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- mdi-close
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- .
-
-
-
-
-
-
-
-
-
-
- mdi-close
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ Do you charge parent fees at this facility for any closures on business days?
+
+
+
+
+
+
Do you charge parent fees at this facility for any closures on business days? Indicate the facility closures on business days within the current fiscal year other than British Columbia Statutory Holidays. Only indicate the date of closures where parent fees are charged.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ mdi-close
+
+
+
+
+
-
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+
+
+
+
+
+
+
+
+ mdi-close
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
- .
-
-
-
-
-
-
-
-
- mdi-alert-octagon
-
-
- Invalid Dates
-
-
-
-
- It appears that the closure start and end dates you've selected for this facility overlap with dates you've previously selected. Please review your existing Facility closure dates to ensure consistency and avoid any potential overlap of Facility closure dates.
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+
+
+
+
+
+
+ mdi-alert-octagon
+
+
+ Invalid Dates
+
+
+
+ It appears that the closure start and end dates you've selected for this facility overlap with dates you've previously selected. Please review your existing Facility closure dates to ensure consistency and avoid any potential overlap of Facility closure dates.
+
-
-
-
-
-
- ADD NEW CLOSURE
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+ ADD NEW CLOSURE
+
+
+
+
+
+
+