diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 2c3166d0..4554fedc 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -338,12 +338,12 @@ export default { }, methods: { arePagePrerequisitesValid() { - return !!useMainStore().vehicle.vin; + return !!useMainStore().vehicle.carId; }, 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().updateIsSafeliteProvider(this.selectedProvider === 'Safelite'); if (this.selectedProvider === 'Safelite') { this.mainStore.saveSupportingItems(this.supportingItems); this.$router.navigate( 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/layouts/provider-preference/provider-preference.vue b/src/layouts/provider-preference/provider-preference.vue index 1db4c30f..b5d76d26 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.updateIsSafeliteProvider(true); scenario = this.navigationScenarios.CLICKED_FORWARD_WITH_SAFELITE; break; case options.TPA: + 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 fb5e62ad..3e5e8cd3 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: { @@ -102,6 +104,7 @@ const getDefaultState = () => ({ zipCodeCtu: null, appointmentType: null, isVehicleProtected: null, + IsSafeliteProvider: null, provider: { providerNumber: null, address: { @@ -419,6 +422,7 @@ export const useMainStore = defineStore({ // populate additional fields order.serviceLocation.zipCode = insured?.zipCode?.toString(); + order.policy.policyData = responsePolicy.policyData; // populate vehicles order.policy.vehicles = responsePolicy.vehicles ?? []; @@ -441,6 +445,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 +483,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, @@ -1009,7 +1016,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: { @@ -1051,6 +1060,7 @@ export const useMainStore = defineStore({ ? AppointmentTypeStrings.MOBILE : serviceLocation.appointmentType, isVehicleProtected: serviceLocation.isVehicleProtected, provider: { + IsSafeliteProvider: serviceLocation?.IsSafeliteProvider, providerNumber: serviceLocation.provider?.providerNumber, address: { streetAddress: serviceLocation.provider?.address?.streetAddress, @@ -1336,6 +1346,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; @@ -1369,6 +1380,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; @@ -1545,6 +1557,9 @@ export const useMainStore = defineStore({ updatePolicyITACFlag(isITAC) { this.order.policy.isITAC = isITAC; }, + updateIsSafeliteProvider(isSafelite) { + this.order.serviceLocation.IsSafeliteProvider = isSafelite; + }, savePartQuestionAnswers(partQuestionAnswersArray) { // if part question answers have changed, reset subsequent question answers const sortedPreviousResultsArray = sortArrayOfObjectsByPropertyValue(this.order.damage.partQuestionAnswers, 'result'); @@ -1995,7 +2010,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;