Initial fix for duplicate check logic issues.

This commit is contained in:
Jeremy-Z 2026-06-29 14:34:16 -04:00
parent 867a4ef4ea
commit ec973c0041
4 changed files with 23 additions and 8 deletions

View file

@ -24,7 +24,9 @@ export async function saveSession({ shouldAwaitSaveSessionQueue = false, submitA
store.setSaveSessionPromise(saveSessionPromise); store.setSaveSessionPromise(saveSessionPromise);
if (!store.applicationUser.savedSessionId || shouldAwaitSaveSessionQueue) { // This should await anytime the referral number is not set, or the shouldAwaitSaveSessionQueue is set to true.
if (!store.order.referralNumber || shouldAwaitSaveSessionQueue) {
console.error('Awaiting save session promise', { shouldAwaitSaveSessionQueue, submitAfterSave, createWorkOrderNumberForPIA, bailoutOnError });
await saveSessionPromise; await saveSessionPromise;
} }
} }

View file

@ -16,6 +16,7 @@ import showIssLoadingModal from '@/helpers/loading-modal-helper';
import applicationConfig from '@/constants/application-config'; import applicationConfig from '@/constants/application-config';
import { toPossessive } from '@/helpers/text-helper'; import { toPossessive } from '@/helpers/text-helper';
import analyticsMixin from '@/mixins/analytics-mixin'; import analyticsMixin from '@/mixins/analytics-mixin';
import routerParams from '@/router/router-constants/router-params';
export default { export default {
name: 'entry-page', name: 'entry-page',
@ -85,8 +86,8 @@ export default {
|| applicationConfig.CURRENT_ENVIRONMENT === 'Dev' || applicationConfig.CURRENT_ENVIRONMENT === 'Dev'
|| applicationConfig.CURRENT_ENVIRONMENT === 'SysTest' || applicationConfig.CURRENT_ENVIRONMENT === 'SysTest'
) { ) {
this.navigateForward(); this.navigateForward();
} else { } else {
// Forced full location redirect here. We do not want the entry page as part of the router/flow/path history. // Forced full location redirect here. We do not want the entry page as part of the router/flow/path history.
window.location = `/?issPage=${issPageValues.WELCOME_PAGE}`; window.location = `/?issPage=${issPageValues.WELCOME_PAGE}`;
} }
@ -94,9 +95,12 @@ export default {
methods: methods:
{ {
navigateForward() { navigateForward() {
// Har har har I think we were supposed to skip saving session here.
this.$router.navigate( this.$router.navigate(
this.navigationScenarios.MOVE_FORWARD_ENTRY_PAGE, this.navigationScenarios.MOVE_FORWARD_ENTRY_PAGE,
this.$route this.$route,
{},
{ [routerParams.SKIP_SAVE_SESSION]: true }
); );
}, },
parseQueryParms() { parseQueryParms() {

View file

@ -370,7 +370,7 @@ export default {
} }
} }
await saveSession({ shouldAwaitSaveSessionQueue: true, bailoutOnError: true }) //await saveSession({ shouldAwaitSaveSessionQueue: true, bailoutOnError: true })
this.navigateForward(); this.navigateForward();
}, },
async configureZip() { async configureZip() {
@ -387,6 +387,7 @@ export default {
navigateForward() { navigateForward() {
if ((this.mainStore.applicationUser.duplicateOrders?.length > 0 ?? false) if ((this.mainStore.applicationUser.duplicateOrders?.length > 0 ?? false)
&& !this.answeredContinueModal) { && !this.answeredContinueModal) {
console.error("Duplicate orders found, navigating to duplicate check page, skipping save session");
this.$router.navigate( this.$router.navigate(
this.navigationScenarios.CLICKED_FORWARD_WITH_DUPLICATES, this.navigationScenarios.CLICKED_FORWARD_WITH_DUPLICATES,
this.$route, this.$route,

View file

@ -68,7 +68,7 @@ const routes = [
await GoToStartOn404(next); await GoToStartOn404(next);
} }
return next({name: issPageToUse, query: to.query, params: to.params}); return next({name: issPageToUse, query: to.query, params: to.params, state: to.state});
} }
var routeData = []; var routeData = [];
@ -129,7 +129,8 @@ const routes = [
next({ next({
name: routeData[0].name, name: routeData[0].name,
query: Object.assign(to.query, {issPage: routeData[0].name}), query: Object.assign(to.query, {issPage: routeData[0].name}),
params: to.params params: to.params,
state: to.state
}); });
return null; return null;
} }
@ -195,11 +196,18 @@ router.afterEach(async (to, from) => {
const shouldRunExperiments = (to.query.issPage !== issPageValues.BAILOUT_PAGE); const shouldRunExperiments = (to.query.issPage !== issPageValues.BAILOUT_PAGE);
await analyticsMixin.methods.validateSession(); await analyticsMixin.methods.validateSession();
console.error("Router parameters", { routerParams: routerParams, toState: to.state });
const skipSaveSession = !!router.options.history.state[routerParams.SKIP_SAVE_SESSION]; const skipSaveSession = !!(
to.state?.[routerParams.SKIP_SAVE_SESSION]
?? router.options.history.state?.[routerParams.SKIP_SAVE_SESSION]
);
if (from.name !== undefined && !skipSaveSession && !store.hasSubmittedOrder()) { if (from.name !== undefined && !skipSaveSession && !store.hasSubmittedOrder()) {
console.error('Saving session on route change', { from: from.name, to: to.name, skipSaveSession: skipSaveSession, hasSubmittedOrder: store.hasSubmittedOrder() });
await saveSession({ bailoutOnError: from.name === issPageValues.ENTRY_PAGE}); await saveSession({ bailoutOnError: from.name === issPageValues.ENTRY_PAGE});
} }
console.error('Skipping saving session on route change', { from: from.name, to: to.name, skipSaveSession: skipSaveSession, hasSubmittedOrder: store.hasSubmittedOrder() });
document.title = routerTitles[to.query.issPage] || 'Safelite Solutions®'; document.title = routerTitles[to.query.issPage] || 'Safelite Solutions®';