SSR-1217. Referral number from email and global store are not matched. (#686)
This commit is contained in:
parent
31277639d4
commit
15a21d1410
2 changed files with 138 additions and 133 deletions
|
|
@ -170,16 +170,18 @@ router.afterEach(async (to, from) => {
|
|||
store.clearSaveSessionPromise();
|
||||
}
|
||||
|
||||
const saveSessionSynchronous = !!from.params[routerParams.SAVE_SESSION_SYNCHRONOUS];
|
||||
await saveSession({ shouldAwaitSaveSessionQueue: saveSessionSynchronous }).catch((error) => {
|
||||
if (from.name === issPageValues.WELCOME_PAGE) {
|
||||
store.setBailout(bailoutMessage.saveSessionError(error.data));
|
||||
router.navigate(
|
||||
navigationScenarios.SAVE_SESSION_FAILED,
|
||||
{ query: { issPage: issPageValues.WELCOME_PAGE } }
|
||||
);
|
||||
}
|
||||
});
|
||||
if (to.query.issPage !== issPageValues.ORDER_CONFIRMATION) {
|
||||
const saveSessionSynchronous = !!from.params[routerParams.SAVE_SESSION_SYNCHRONOUS];
|
||||
await saveSession({ shouldAwaitSaveSessionQueue: saveSessionSynchronous }).catch((error) => {
|
||||
if (from.name === issPageValues.WELCOME_PAGE) {
|
||||
store.setBailout(bailoutMessage.saveSessionError(error.data));
|
||||
router.navigate(
|
||||
navigationScenarios.SAVE_SESSION_FAILED,
|
||||
{ query: { issPage: issPageValues.WELCOME_PAGE } }
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (to.query.issPage !== issPageValues.ENTRY_PAGE) {
|
||||
// Push page view to GA
|
||||
|
|
|
|||
|
|
@ -1212,133 +1212,136 @@ export const useMainStore = defineStore({
|
|||
const loadedFromDupeCheck = !!(this.order.loadedFromDupeCheck && !this.order.loadedSessionClearedPreviousData);
|
||||
|
||||
const newGlassToReplace = convertGlassPieceNamingForApi(damage.glassToReplace);
|
||||
|
||||
const payload = {
|
||||
applicationUser: {
|
||||
crmCustomerId: this.applicationUser.crmCustomerId,
|
||||
experiments: this.applicationUser.experiments,
|
||||
lastPage: this.applicationUser.lastPageVisited,
|
||||
pageData: this.applicationUser.pageData,
|
||||
savedSessionId: this.applicationUser.savedSessionId
|
||||
},
|
||||
vehicle: {
|
||||
year: vehicle.year,
|
||||
make: vehicle.make,
|
||||
model: vehicle.model,
|
||||
style: vehicle.style,
|
||||
vin: vehicle.vin,
|
||||
carId: vehicle.carId,
|
||||
licensePlateNumber: vehicle.registration?.licensePlate
|
||||
},
|
||||
damage: {
|
||||
numberOfChips: damage.numberOfChips,
|
||||
glassToReplace: newGlassToReplace,
|
||||
isRepair: damage.isRepair,
|
||||
partQuestionAnswers: damage.partQuestionAnswers,
|
||||
moldingQuestionAnswers: damage.moldingQuestionAnswers,
|
||||
capabilityQuestionAnswers: damage.capabilityQuestionAnswers,
|
||||
dateOfLoss: policy.dateOfLoss,
|
||||
damageCause: policy.damageCause,
|
||||
damageState: policy.damageState,
|
||||
damageCity: policy.damageCity,
|
||||
isDamageGlassOnly: policy.isDamageGlassOnly
|
||||
},
|
||||
policy: {
|
||||
policyHolder: {
|
||||
policyFirstName: customer.firstName,
|
||||
policyLastName: customer.lastName,
|
||||
policyPhoneNumber: contactInfo.servicePhone,
|
||||
policyEmail: customer.emailAddress,
|
||||
policyState: customer.address.state
|
||||
},
|
||||
policyNumber: policy.policyNumber,
|
||||
policyZipCode: policy.policyZipCode,
|
||||
noCoverage: policy.noCoverage,
|
||||
policyLookupSuccessful: policy.policyLookupSuccessful,
|
||||
originalDeductible: this.order.originalDeductible,
|
||||
currentDeductible: this.order.currentDeductible,
|
||||
IsItac: this.order.policy.isITAC,
|
||||
OemEndorsement: policy.endorsements?.indexOf('OEM Approved') !== -1 ?? false
|
||||
},
|
||||
customer: {
|
||||
address: {
|
||||
streetAddress: customer.address?.streetAddress,
|
||||
streetAddress2: customer.address?.streetAddress2,
|
||||
city: customer.address?.city,
|
||||
state: customer.address?.state,
|
||||
zipCode: customer.address?.zipCode?.toString()
|
||||
},
|
||||
emailAddress: contactInfo.emailAddress || customer.emailAddress,
|
||||
firstName: contactInfo.firstName || customer.firstName,
|
||||
lastName: contactInfo.lastName || customer.lastName,
|
||||
homePhone: contactInfo.homePhone,
|
||||
servicePhone: contactInfo.servicePhone,
|
||||
alternativePhone: contactInfo.alternativePhone,
|
||||
isSmsOptIn: contactInfo.requestTextUpdates ?? false
|
||||
},
|
||||
lineItems: {
|
||||
glassParts: lineItems.glassParts,
|
||||
supportingItems: lineItems.supportingItems,
|
||||
vaps: lineItems.vaps
|
||||
},
|
||||
payment: {
|
||||
InsuranceCoverage: {
|
||||
isVerified: payment.insuranceCoverage?.isVerified ?? false,
|
||||
coverageStatus: payment.insuranceCoverage?.coverageStatus,
|
||||
claimNumber: payment.insuranceCoverage?.claimNumber
|
||||
},
|
||||
parentAccountNumber: this.issConfig.parentAccountNumber,
|
||||
paypalToken: payment.paypalToken,
|
||||
isPaypal: payment.payInAdvanceType === paymentMethods.PAYPAL,
|
||||
isCreditCard: payment.payInAdvanceType === paymentMethods.CREDIT_CARD,
|
||||
isAfterpay: payment.payInAdvanceType === paymentMethods.AFTERPAY,
|
||||
CCToken: payment.creditCardToken
|
||||
},
|
||||
serviceLocation: {
|
||||
address: {
|
||||
streetAddress: serviceLocation.address,
|
||||
city: serviceLocation.city,
|
||||
state: serviceLocation.state,
|
||||
zipCode: serviceLocation.zipCode,
|
||||
zipCodeCtu: serviceLocation.zipCodeCtu
|
||||
},
|
||||
appointmentType: (serviceLocation.appointmentType === AppointmentTypeStrings.MOBILE
|
||||
|| serviceLocation.appointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP)
|
||||
? AppointmentTypeStrings.MOBILE : serviceLocation.appointmentType,
|
||||
isVehicleProtected: serviceLocation.isVehicleProtected,
|
||||
provider: {
|
||||
IsSafeliteProvider: serviceLocation?.IsSafeliteProvider,
|
||||
providerNumber: serviceLocation.provider?.providerNumber,
|
||||
address: {
|
||||
streetAddress: serviceLocation.provider?.address?.streetAddress,
|
||||
city: serviceLocation.provider?.address?.city,
|
||||
state: serviceLocation.provider?.address?.state,
|
||||
zipCode: serviceLocation.provider?.address?.zipCode,
|
||||
zipCodeCtu: serviceLocation.provider?.address?.zipCodeCtu
|
||||
}
|
||||
},
|
||||
techNotes: contactInfo.notesForTechnician
|
||||
},
|
||||
schedule: {
|
||||
date: schedule.date,
|
||||
startTime: schedule.startTime,
|
||||
endTime: schedule.endTime,
|
||||
routeCode: schedule.routeCode,
|
||||
jobMaxMinutes: schedule.jobMaxMinutes,
|
||||
jobMinMinutes: schedule.jobMinMinutes
|
||||
},
|
||||
referralDate: this.order.referralDate,
|
||||
referralNumber: this.order.referralNumber?.toString(),
|
||||
referralCorrelationId: this.order.referralCorrelationId,
|
||||
referralSequenceNumber: this.order.referralSequenceNumber,
|
||||
eon: this.order.eon,
|
||||
submitToMainframe: !!this.order.referralNumber,
|
||||
loadedFromDupeCheck,
|
||||
submitAfterSave: !!submitAfterSave
|
||||
};
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
globalMethods.callHttpClient({
|
||||
method: endpoints.SaveSession.method,
|
||||
endpoint: endpoints.SaveSession.url,
|
||||
payload: {
|
||||
applicationUser: {
|
||||
crmCustomerId: this.applicationUser.crmCustomerId,
|
||||
experiments: this.applicationUser.experiments,
|
||||
lastPage: this.applicationUser.lastPageVisited,
|
||||
pageData: this.applicationUser.pageData,
|
||||
savedSessionId: this.applicationUser.savedSessionId
|
||||
},
|
||||
vehicle: {
|
||||
year: vehicle.year,
|
||||
make: vehicle.make,
|
||||
model: vehicle.model,
|
||||
style: vehicle.style,
|
||||
vin: vehicle.vin,
|
||||
carId: vehicle.carId,
|
||||
licensePlateNumber: vehicle.registration?.licensePlate
|
||||
},
|
||||
damage: {
|
||||
numberOfChips: damage.numberOfChips,
|
||||
glassToReplace: newGlassToReplace,
|
||||
isRepair: damage.isRepair,
|
||||
partQuestionAnswers: damage.partQuestionAnswers,
|
||||
moldingQuestionAnswers: damage.moldingQuestionAnswers,
|
||||
capabilityQuestionAnswers: damage.capabilityQuestionAnswers,
|
||||
dateOfLoss: policy.dateOfLoss,
|
||||
damageCause: policy.damageCause,
|
||||
damageState: policy.damageState,
|
||||
damageCity: policy.damageCity,
|
||||
isDamageGlassOnly: policy.isDamageGlassOnly
|
||||
},
|
||||
policy: {
|
||||
policyHolder: {
|
||||
policyFirstName: customer.firstName,
|
||||
policyLastName: customer.lastName,
|
||||
policyPhoneNumber: contactInfo.servicePhone,
|
||||
policyEmail: customer.emailAddress,
|
||||
policyState: customer.address.state
|
||||
},
|
||||
policyNumber: policy.policyNumber,
|
||||
policyZipCode: policy.policyZipCode,
|
||||
noCoverage: policy.noCoverage,
|
||||
policyLookupSuccessful: policy.policyLookupSuccessful,
|
||||
originalDeductible: this.order.originalDeductible,
|
||||
currentDeductible: this.order.currentDeductible,
|
||||
IsItac: this.order.policy.isITAC,
|
||||
OemEndorsement: policy.endorsements?.indexOf('OEM Approved') !== -1 ?? false
|
||||
},
|
||||
customer: {
|
||||
address: {
|
||||
streetAddress: customer.address?.streetAddress,
|
||||
streetAddress2: customer.address?.streetAddress2,
|
||||
city: customer.address?.city,
|
||||
state: customer.address?.state,
|
||||
zipCode: customer.address?.zipCode?.toString()
|
||||
},
|
||||
emailAddress: contactInfo.emailAddress || customer.emailAddress,
|
||||
firstName: contactInfo.firstName || customer.firstName,
|
||||
lastName: contactInfo.lastName || customer.lastName,
|
||||
homePhone: contactInfo.homePhone,
|
||||
servicePhone: contactInfo.servicePhone,
|
||||
alternativePhone: contactInfo.alternativePhone,
|
||||
isSmsOptIn: contactInfo.requestTextUpdates ?? false
|
||||
},
|
||||
lineItems: {
|
||||
glassParts: lineItems.glassParts,
|
||||
supportingItems: lineItems.supportingItems,
|
||||
vaps: lineItems.vaps
|
||||
},
|
||||
payment: {
|
||||
InsuranceCoverage: {
|
||||
isVerified: payment.insuranceCoverage?.isVerified ?? false,
|
||||
coverageStatus: payment.insuranceCoverage?.coverageStatus,
|
||||
claimNumber: payment.insuranceCoverage?.claimNumber
|
||||
},
|
||||
parentAccountNumber: this.issConfig.parentAccountNumber,
|
||||
paypalToken: payment.paypalToken,
|
||||
isPaypal: payment.payInAdvanceType === paymentMethods.PAYPAL,
|
||||
isCreditCard: payment.payInAdvanceType === paymentMethods.CREDIT_CARD,
|
||||
isAfterpay: payment.payInAdvanceType === paymentMethods.AFTERPAY,
|
||||
CCToken: payment.creditCardToken
|
||||
},
|
||||
serviceLocation: {
|
||||
address: {
|
||||
streetAddress: serviceLocation.address,
|
||||
city: serviceLocation.city,
|
||||
state: serviceLocation.state,
|
||||
zipCode: serviceLocation.zipCode,
|
||||
zipCodeCtu: serviceLocation.zipCodeCtu
|
||||
},
|
||||
appointmentType: (serviceLocation.appointmentType === AppointmentTypeStrings.MOBILE
|
||||
|| serviceLocation.appointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP)
|
||||
? AppointmentTypeStrings.MOBILE : serviceLocation.appointmentType,
|
||||
isVehicleProtected: serviceLocation.isVehicleProtected,
|
||||
provider: {
|
||||
IsSafeliteProvider: serviceLocation?.IsSafeliteProvider,
|
||||
providerNumber: serviceLocation.provider?.providerNumber,
|
||||
address: {
|
||||
streetAddress: serviceLocation.provider?.address?.streetAddress,
|
||||
city: serviceLocation.provider?.address?.city,
|
||||
state: serviceLocation.provider?.address?.state,
|
||||
zipCode: serviceLocation.provider?.address?.zipCode,
|
||||
zipCodeCtu: serviceLocation.provider?.address?.zipCodeCtu
|
||||
}
|
||||
},
|
||||
techNotes: contactInfo.notesForTechnician
|
||||
},
|
||||
schedule: {
|
||||
date: schedule.date,
|
||||
startTime: schedule.startTime,
|
||||
endTime: schedule.endTime,
|
||||
routeCode: schedule.routeCode,
|
||||
jobMaxMinutes: schedule.jobMaxMinutes,
|
||||
jobMinMinutes: schedule.jobMinMinutes
|
||||
},
|
||||
referralDate: this.order.referralDate,
|
||||
referralNumber: this.order.referralNumber?.toString(),
|
||||
referralCorrelationId: this.order.referralCorrelationId,
|
||||
referralSequenceNumber: this.order.referralSequenceNumber,
|
||||
eon: this.order.eon,
|
||||
submitToMainframe: !!this.order.referralNumber,
|
||||
loadedFromDupeCheck,
|
||||
submitAfterSave: !!submitAfterSave
|
||||
},
|
||||
payload,
|
||||
additionalSuccessEventDataHandler: () =>
|
||||
`Email provided: ${customer.emailAddress ? 'true' : 'false'}`
|
||||
}).then((response) => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue