From 0f15135d25c424e2a3560c2dd0d289e2bb022ad1 Mon Sep 17 00:00:00 2001 From: Josh Dassinger Date: Tue, 31 Oct 2023 14:00:50 -0500 Subject: [PATCH 1/4] SSR-778 Fix ITAC Save Session --- src/layouts/coverage-statement/coverage-statement.vue | 3 ++- src/layouts/provider-preference/provider-preference.vue | 2 ++ src/store/index.js | 9 ++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 2c3166d0..6d5aa465 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -343,7 +343,7 @@ export default { async initializeComponent() { if (this.policyLookupSuccessful && useMainStore().isClaimRegistrationRequired - && this.coveredAndServicePriceAboveOrEqualDeductible) { + && (this.coveredAndServicePriceAboveOrEqualDeductible || this.verifiedITAC)) { await useMainStore().registerClaim()?.catch(() => {}); } this.$refs.loadingModal.hideModal(); @@ -362,6 +362,7 @@ export default { { [routerParams.SAVE_SESSION_SYNCHRONOUS]: true } ); } else if (this.verifiedITAC || this.verifiedNoComp) { + useMainStore().updateSelectedProvider(this.selectedProvider); if (this.selectedProvider === 'Safelite') { this.mainStore.saveSupportingItems(this.supportingItems); this.$router.navigate( diff --git a/src/layouts/provider-preference/provider-preference.vue b/src/layouts/provider-preference/provider-preference.vue index 1db4c30f..dd0623cf 100644 --- a/src/layouts/provider-preference/provider-preference.vue +++ b/src/layouts/provider-preference/provider-preference.vue @@ -184,9 +184,11 @@ export default { let scenario = null; switch (this.selectedProvider) { case options.SAFELITE: + this.mainStore.updateSelectedProvider('Safelite'); scenario = this.navigationScenarios.CLICKED_FORWARD_WITH_SAFELITE; break; case options.TPA: + this.mainStore.updateSelectedProvider('Other'); if (this.mainStore.issConfig.enableTPAFlow) { if (this.mainStore.hasRecalibrationPart) { this.$refs.TPARecalModal.openModal(); diff --git a/src/store/index.js b/src/store/index.js index f3fb510a..76f8d083 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -102,6 +102,7 @@ const getDefaultState = () => ({ zipCodeCtu: null, appointmentType: null, isVehicleProtected: null, + selectedProvider: null, provider: { providerNumber: null, address: { @@ -972,7 +973,9 @@ export const useMainStore = defineStore({ noCoverage: policy.noCoverage, policyLookupSuccessful: policy.policyLookupSuccessful, originalDeductible: this.order.originalDeductible, - currentDeductible: this.order.currentDeductible + currentDeductible: this.order.currentDeductible, + IsItac: this.order.policy.isITAC, + OemEndorsement: policy.endorsements?.indexOf('OEM Approved') !== -1 ?? false }, customer: { address: { @@ -1014,6 +1017,7 @@ export const useMainStore = defineStore({ ? AppointmentTypeStrings.MOBILE : serviceLocation.appointmentType, isVehicleProtected: serviceLocation.isVehicleProtected, provider: { + selectedProvider: serviceLocation?.selectedProvider, providerNumber: serviceLocation.provider?.providerNumber, address: { streetAddress: serviceLocation.provider?.address?.streetAddress, @@ -1508,6 +1512,9 @@ export const useMainStore = defineStore({ updatePolicyITACFlag(isITAC) { this.order.policy.isITAC = isITAC; }, + updateSelectedProvider(provider) { + this.order.serviceLocation.selectedProvider = provider; + }, savePartQuestionAnswers(partQuestionAnswersArray) { // if part question answers have changed, reset subsequent question answers const sortedPreviousResultsArray = sortArrayOfObjectsByPropertyValue(this.order.damage.partQuestionAnswers, 'result'); From 07b9a99f4b883fd3b1a08adc9193587d622c0c06 Mon Sep 17 00:00:00 2001 From: Jeremy Zimmerman Date: Wed, 1 Nov 2023 12:45:32 -0400 Subject: [PATCH 2/4] Adding security fields for policy calls. --- src/layouts/policy-vehicles/policy-vehicles.vue | 5 ++++- src/store/index.js | 14 +++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index 1765aac5..fb5da45a 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -174,11 +174,13 @@ export default { async forwardButtonAction() { if (this.selectedVehicleVin !== vehicleSelectionOptions.VEHICLE_NOT_LISTED) { const vehicleLookupResponse = await this.lookupVehicleByVin(this.selectedVehicleVin); + const vehicle = this.policyVehicles.find((pv) => pv.vin === this.selectedVehicleVin); + if (vehicleLookupResponse.error) { if (vehicleLookupResponse.status === 404) { - const vehicle = this.policyVehicles.find((pv) => pv.vin === this.selectedVehicleVin); this.mainStore.resetVehicleState(); useMainStore().updateVehicle({ + policyVehicleId: vehicle.id, carId: '0', category: '', year: vehicle.vehicleYear || '', @@ -200,6 +202,7 @@ export default { } this.vehicleFromLookup = Object.assign(vehicleLookupResponse.data, { + policyVehicleId: vehicle.id, vin: this.selectedVehicleVin, noCoverage: this.noCoverageForSelectedVehicle, deductible: this.deductibleForSelectedVehicle, diff --git a/src/store/index.js b/src/store/index.js index f3fb510a..9d9b5c32 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -33,6 +33,7 @@ function getTimeSlotsAdditionalEventData( const getDefaultState = () => ({ order: { vehicle: { + policyVehicleId: null, year: null, make: null, model: null, @@ -75,10 +76,11 @@ const getDefaultState = () => ({ repair: null, // numerical value; how much customer owes on deductible in repair case replace: null // numerical value; how much customer owes on deductible in replace case, }, - isITAC: null, + isITAC: false, vehicles: [], endorsements: [], - endorsementQuestionAnswers: null + endorsementQuestionAnswers: null, + policyData: null }, customer: { address: { @@ -419,6 +421,7 @@ export const useMainStore = defineStore({ // populate additional fields order.serviceLocation.zipCode = insured?.zipCode; + order.policy.policyData = responsePolicy.policyData; // populate vehicles order.policy.vehicles = responsePolicy.vehicles ?? []; @@ -441,6 +444,8 @@ export const useMainStore = defineStore({ { referralCorrelationId: this.order.referralCorrelationId, accountNumber: this.issConfig.parentAccountNumber?.toString() ?? '', + policyData: this.order.policy.policyData, + isItac: this.order.policy.isITAC, insured: { firstName: this.order.customer.firstName, lastName: this.order.customer.lastName, @@ -477,6 +482,7 @@ export const useMainStore = defineStore({ country: 'US' // TODO set from store }, vehicle: { + id: this.order.vehicle.id?.toString() ?? '', year: this.order.vehicle.year?.toString() ?? '', make: this.order.vehicle.make, model: this.order.vehicle.model, @@ -1299,6 +1305,7 @@ export const useMainStore = defineStore({ updateVehicle(vehicle) { // Assuming that the method caller pass all the properties. // otherwise need to check for undefined for every property. + this.vehicle.policyVehicleId = vehicle.policyVehicleId; this.vehicle.carId = vehicle.carId; this.order.vehicle.category = vehicle.category; this.order.vehicle.year = vehicle.year; @@ -1332,6 +1339,7 @@ export const useMainStore = defineStore({ }, resetVehicleState() { + this.order.vehicle.policyVehicleId = null; this.order.vehicle.year = null; this.order.vehicle.make = null; this.order.vehicle.model = null; @@ -1958,7 +1966,7 @@ export const useMainStore = defineStore({ this.order.policy.damageCause = null; this.order.policy.damageCity = null; this.order.policy.damageState = null; - this.order.policy.isITAC = null; + this.order.policy.isITAC = false; this.order.customer.phoneNumber = null; this.order.customer.emailAddress = null; this.order.customer.firstName = null; From 0e46cf2db2b5100d53924bb3f0c4e3ff00599e07 Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Fri, 3 Nov 2023 13:43:30 -0400 Subject: [PATCH 3/4] change to pre-req --- src/layouts/coverage-statement/coverage-statement.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 2c3166d0..8219d872 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -338,7 +338,7 @@ export default { }, methods: { arePagePrerequisitesValid() { - return !!useMainStore().vehicle.vin; + return !!useMainStore().vehicle.carId; }, async initializeComponent() { if (this.policyLookupSuccessful From 7ab5968a4be9c87ca3db8a6d894eca8886c6e56b Mon Sep 17 00:00:00 2001 From: Josh Dassinger Date: Mon, 6 Nov 2023 09:54:26 -0600 Subject: [PATCH 4/4] SSR-778 Update Selected Provider Field Name --- src/layouts/coverage-statement/coverage-statement.vue | 2 +- src/layouts/provider-preference/provider-preference.vue | 4 ++-- src/store/index.js | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 6d5aa465..9692884d 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -362,7 +362,7 @@ export default { { [routerParams.SAVE_SESSION_SYNCHRONOUS]: true } ); } else if (this.verifiedITAC || this.verifiedNoComp) { - useMainStore().updateSelectedProvider(this.selectedProvider); + useMainStore().updateIsSafeliteProvider(this.selectedProvider === 'Safelite'); if (this.selectedProvider === 'Safelite') { this.mainStore.saveSupportingItems(this.supportingItems); this.$router.navigate( diff --git a/src/layouts/provider-preference/provider-preference.vue b/src/layouts/provider-preference/provider-preference.vue index dd0623cf..b5d76d26 100644 --- a/src/layouts/provider-preference/provider-preference.vue +++ b/src/layouts/provider-preference/provider-preference.vue @@ -184,11 +184,11 @@ export default { let scenario = null; switch (this.selectedProvider) { case options.SAFELITE: - this.mainStore.updateSelectedProvider('Safelite'); + this.mainStore.updateIsSafeliteProvider(true); scenario = this.navigationScenarios.CLICKED_FORWARD_WITH_SAFELITE; break; case options.TPA: - this.mainStore.updateSelectedProvider('Other'); + this.mainStore.updateIsSafeliteProvider(false); if (this.mainStore.issConfig.enableTPAFlow) { if (this.mainStore.hasRecalibrationPart) { this.$refs.TPARecalModal.openModal(); diff --git a/src/store/index.js b/src/store/index.js index 76f8d083..d251591d 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -102,7 +102,7 @@ const getDefaultState = () => ({ zipCodeCtu: null, appointmentType: null, isVehicleProtected: null, - selectedProvider: null, + IsSafeliteProvider: null, provider: { providerNumber: null, address: { @@ -1017,7 +1017,7 @@ export const useMainStore = defineStore({ ? AppointmentTypeStrings.MOBILE : serviceLocation.appointmentType, isVehicleProtected: serviceLocation.isVehicleProtected, provider: { - selectedProvider: serviceLocation?.selectedProvider, + IsSafeliteProvider: serviceLocation?.IsSafeliteProvider, providerNumber: serviceLocation.provider?.providerNumber, address: { streetAddress: serviceLocation.provider?.address?.streetAddress, @@ -1512,8 +1512,8 @@ export const useMainStore = defineStore({ updatePolicyITACFlag(isITAC) { this.order.policy.isITAC = isITAC; }, - updateSelectedProvider(provider) { - this.order.serviceLocation.selectedProvider = provider; + updateIsSafeliteProvider(isSafelite) { + this.order.serviceLocation.IsSafeliteProvider = isSafelite; }, savePartQuestionAnswers(partQuestionAnswersArray) { // if part question answers have changed, reset subsequent question answers