From c557680038f9f5a669d41204291df8222d823fed Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Tue, 1 Jul 2025 14:46:57 -0400 Subject: [PATCH 01/18] CASH-845: save old and new versions of pages together --- .../date-picker/date-picker.vue | 1351 +++++++++++++++++ src/layouts/schedule/schedule.vue | 794 ++++++++++ .../service-location/service-location.vue | 859 +++++++++++ 3 files changed, 3004 insertions(+) diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue index 5b35792dd..fbaddeae4 100644 --- a/src/digital-components/date-picker/date-picker.vue +++ b/src/digital-components/date-picker/date-picker.vue @@ -1,3 +1,1345 @@ + + + + + + + + + + +--> + + + + + + + + + + + + diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index ee2096c36..37a0b8029 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -1,3 +1,793 @@ + + + + + + + + + + +--> + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 776fe1199..bdcc3d11a 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -1,3 +1,858 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 94dea85a9400fec51f6fb1a90e3442136ae502a9 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Tue, 1 Jul 2025 15:02:50 -0400 Subject: [PATCH 02/18] CASH-845: move old versions prior to CASH-845 work into their own files with comments and excluded from unit tests --- jest.config.js | 3 + .../date-picker/date-picker-june-2025.vue | 1341 ++++++++++++++++ .../date-picker/date-picker.vue | 1351 ----------------- src/layouts/schedule/schedule-june-2025.vue | 782 ++++++++++ src/layouts/schedule/schedule.vue | 796 +--------- .../service-location-june-2025.vue | 850 +++++++++++ .../service-location/service-location.vue | 859 ----------- 7 files changed, 2977 insertions(+), 3005 deletions(-) create mode 100644 src/digital-components/date-picker/date-picker-june-2025.vue create mode 100644 src/layouts/schedule/schedule-june-2025.vue create mode 100644 src/layouts/service-location/service-location-june-2025.vue diff --git a/jest.config.js b/jest.config.js index ae8dd01c5..421a9a907 100644 --- a/jest.config.js +++ b/jest.config.js @@ -31,6 +31,9 @@ module.exports = { "!src/layouts/payment-pia-return/*.vue", // Temp test exclusion while in development "!src/layouts/insurance/*.vue", // Temp test exclusion while in development "!src/layouts/insurance-company/*.vue", // Temp test exclusion while in development + + "!src/**/*-june-2025.vue", // Exclude these temporary files for CASH-845 project + "!src/layouts/insurance-company/insurance-company-question/*.vue", // Temp test exclusion while in development "!src/experiment-components/*.vue", // END diff --git a/src/digital-components/date-picker/date-picker-june-2025.vue b/src/digital-components/date-picker/date-picker-june-2025.vue new file mode 100644 index 000000000..1ff54e6e7 --- /dev/null +++ b/src/digital-components/date-picker/date-picker-june-2025.vue @@ -0,0 +1,1341 @@ + + + + + + + + + + + + + + + + + diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue index fbaddeae4..5b35792dd 100644 --- a/src/digital-components/date-picker/date-picker.vue +++ b/src/digital-components/date-picker/date-picker.vue @@ -1,1345 +1,3 @@ - - - - - - - - - - ---> - - - - - - - - - - - - diff --git a/src/layouts/schedule/schedule-june-2025.vue b/src/layouts/schedule/schedule-june-2025.vue new file mode 100644 index 000000000..0464b2914 --- /dev/null +++ b/src/layouts/schedule/schedule-june-2025.vue @@ -0,0 +1,782 @@ + + + + + + + + + + + diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 37a0b8029..9e1506e2e 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -1,793 +1,3 @@ - - - - - - - - - - ---> - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/src/layouts/service-location/service-location-june-2025.vue b/src/layouts/service-location/service-location-june-2025.vue new file mode 100644 index 000000000..306d1aab3 --- /dev/null +++ b/src/layouts/service-location/service-location-june-2025.vue @@ -0,0 +1,850 @@ + + + + + + + + + + + + + diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index bdcc3d11a..776fe1199 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -1,858 +1,3 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 2a89bd86a4aefb67d3dd8915788904f92e7602e3 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Wed, 2 Jul 2025 12:34:50 -0400 Subject: [PATCH 03/18] CASH-845: routing changes --- src/constants/progress-bar-mapper.js | 5 +- .../date-picker/date-picker-june-2025.vue | 6 --- src/layouts/schedule/schedule.vue | 2 +- .../service-location-june-2025.vue | 2 - src/router/constants/routes.js | 9 ++-- src/router/constants/routing-table.js | 47 ++++++++++--------- .../methods/helpers/handle-heritage-return.js | 13 ++++- src/router/methods/routes.js | 3 +- 8 files changed, 49 insertions(+), 38 deletions(-) diff --git a/src/constants/progress-bar-mapper.js b/src/constants/progress-bar-mapper.js index dc1bc4a05..50b353151 100644 --- a/src/constants/progress-bar-mapper.js +++ b/src/constants/progress-bar-mapper.js @@ -13,8 +13,9 @@ const pagePercentageMapper = { "capability-questions": 40, quote: 48, "insurance-company": 52, - "service-location": 60, - schedule: 72, + // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED + // "service-location": 60, + schedule: 64, "mobile-details": 76, "customer-details": 84, "payment-method": 92, diff --git a/src/digital-components/date-picker/date-picker-june-2025.vue b/src/digital-components/date-picker/date-picker-june-2025.vue index 1ff54e6e7..9d001a113 100644 --- a/src/digital-components/date-picker/date-picker-june-2025.vue +++ b/src/digital-components/date-picker/date-picker-june-2025.vue @@ -1332,10 +1332,4 @@ export default { } - - - - - - diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 9e1506e2e..ee2096c36 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -866,4 +866,4 @@ export default { } } } - \ No newline at end of file + diff --git a/src/layouts/service-location/service-location-june-2025.vue b/src/layouts/service-location/service-location-june-2025.vue index 306d1aab3..8dac38faf 100644 --- a/src/layouts/service-location/service-location-june-2025.vue +++ b/src/layouts/service-location/service-location-june-2025.vue @@ -845,6 +845,4 @@ export default { } - - diff --git a/src/router/constants/routes.js b/src/router/constants/routes.js index 7e9a3a793..45fdfb243 100644 --- a/src/router/constants/routes.js +++ b/src/router/constants/routes.js @@ -55,10 +55,11 @@ export const routeData = { name: "insurance-company", path: "/insurance-company", }, - SERVICE_LOCATION: { - name: "service-location", - path: "/service-location", - }, + // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED + // SERVICE_LOCATION: { + // name: "service-location", + // path: "/service-location", + // }, HERITAGE: { name: "heritage", path: "/virtual/heritage", diff --git a/src/router/constants/routing-table.js b/src/router/constants/routing-table.js index 4a07bcfaf..02a0d9384 100644 --- a/src/router/constants/routing-table.js +++ b/src/router/constants/routing-table.js @@ -421,7 +421,7 @@ const routingTable = function () { }, { scenario: navigationScenarios.CLICKED_FORWARD_WITH_CASH, - destinationPageData: routeData.SERVICE_LOCATION, + destinationPageData: routeData.SCHEDULE, }, { scenario: navigationScenarios.CLICKED_FORWARD_WITH_INSURANCE, @@ -449,8 +449,26 @@ const routingTable = function () { }, ], }, + // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED + // { + // pageName: routeData.SERVICE_LOCATION.name, + // maps: [ + // { + // scenario: navigationScenarios.CLICKED_BACK, + // destinationPageData: routeData.QUOTE, + // }, + // { + // scenario: navigationScenarios.CLICKED_FORWARD, + // destinationPageData: routeData.SCHEDULE, + // }, + // { + // scenario: navigationScenarios.CLICKED_FORWARD_WITH_MOBILE_SERVICE, + // destinationPageData: routeData.MOBILE_DETAILS, + // }, + // ], + // }, { - pageName: routeData.SERVICE_LOCATION.name, + pageName: routeData.SCHEDULE.name, maps: [ { scenario: navigationScenarios.CLICKED_BACK, @@ -458,37 +476,24 @@ const routingTable = function () { }, { scenario: navigationScenarios.CLICKED_FORWARD, - destinationPageData: routeData.SCHEDULE, + destinationPageData: routeData.CUSTOMER_DETAILS, }, + // { + // scenario: navigationScenarios.CLICKED_CHANGE_LOCATION, + // destinationPageData: routeData.SERVICE_LOCATION, + // }, { scenario: navigationScenarios.CLICKED_FORWARD_WITH_MOBILE_SERVICE, destinationPageData: routeData.MOBILE_DETAILS, }, ], }, - { - pageName: routeData.SCHEDULE.name, - maps: [ - { - scenario: navigationScenarios.CLICKED_BACK, - destinationPageData: routeData.SERVICE_LOCATION, - }, - { - scenario: navigationScenarios.CLICKED_FORWARD, - destinationPageData: routeData.CUSTOMER_DETAILS, - }, - { - scenario: navigationScenarios.CLICKED_CHANGE_LOCATION, - destinationPageData: routeData.SERVICE_LOCATION, - }, - ], - }, { pageName: routeData.MOBILE_DETAILS.name, maps: [ { scenario: navigationScenarios.CLICKED_BACK, - destinationPageData: routeData.SERVICE_LOCATION, + destinationPageData: routeData.SCHEDULE, }, { scenario: navigationScenarios.CLICKED_FORWARD, diff --git a/src/router/methods/helpers/handle-heritage-return.js b/src/router/methods/helpers/handle-heritage-return.js index 7914c8e0e..7ad61adf9 100644 --- a/src/router/methods/helpers/handle-heritage-return.js +++ b/src/router/methods/helpers/handle-heritage-return.js @@ -1,6 +1,7 @@ import { queryStrings } from "@/constants/query-strings"; import { consumeReferralQuerystrings } from "@/router/methods/helpers/consume-referral-info"; import { loadSessionIfPresent } from "@/helpers/heritage-integration/order-helper"; +import router from "@/router"; import { routeData } from "@/router/constants/routes"; export async function handleHeritageReturn(to, from) { @@ -11,6 +12,16 @@ export async function handleHeritageReturn(to, from) { await consumeReferralQuerystrings(); // load session with new cookie - await loadSessionIfPresent(true, routeData.SERVICE_LOCATION.name); + await loadSessionIfPresent(true, routeData.SCHEDULE.name); + + // Temporary redirect until URLs to old service-location page can be updated in Heritage + if ( + to.fullPath.includes("fmgPage=service-location") + ) { + // Redirect to Schedule page + router.push({ + name: routeData.SCHEDULE.name, + }); + } } } diff --git a/src/router/methods/routes.js b/src/router/methods/routes.js index 01f4f8a58..83fbb3811 100644 --- a/src/router/methods/routes.js +++ b/src/router/methods/routes.js @@ -29,7 +29,8 @@ export const routes = [ createRoute(routeData.CAPABILITY_QUESTIONS), createRoute(routeData.QUOTE, quoteBeforeEnter), createRoute(routeData.INSURANCE_COMPANY, insuranceCompanyBeforeEnter), - createRoute(routeData.SERVICE_LOCATION), + // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED + // createRoute(routeData.SERVICE_LOCATION), createRoute(routeData.SCHEDULE), createRoute(routeData.CUSTOMER_DETAILS), createRoute(routeData.PAYMENT_METHOD, paymentMethodBeforeEnter), From 825e27413d229baa25969e66a40d92b13ae3b132 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Wed, 2 Jul 2025 14:38:18 -0400 Subject: [PATCH 04/18] CASH-845: prettier formatting --- src/router/methods/helpers/handle-heritage-return.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/router/methods/helpers/handle-heritage-return.js b/src/router/methods/helpers/handle-heritage-return.js index 7ad61adf9..6d8c60a58 100644 --- a/src/router/methods/helpers/handle-heritage-return.js +++ b/src/router/methods/helpers/handle-heritage-return.js @@ -15,9 +15,7 @@ export async function handleHeritageReturn(to, from) { await loadSessionIfPresent(true, routeData.SCHEDULE.name); // Temporary redirect until URLs to old service-location page can be updated in Heritage - if ( - to.fullPath.includes("fmgPage=service-location") - ) { + if (to.fullPath.includes("fmgPage=service-location")) { // Redirect to Schedule page router.push({ name: routeData.SCHEDULE.name, From 76d67981f6a6e3dd430a1ddbb9288062f519bac8 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Thu, 3 Jul 2025 14:44:39 -0400 Subject: [PATCH 05/18] CASH-845 router change refactor --- src/router/constants/routes.js | 9 ++++----- src/router/methods/helpers/handle-heritage-return.js | 9 --------- src/router/methods/route-logic/service-location.js | 8 ++++++++ src/router/methods/routes.js | 4 ++-- 4 files changed, 14 insertions(+), 16 deletions(-) create mode 100644 src/router/methods/route-logic/service-location.js diff --git a/src/router/constants/routes.js b/src/router/constants/routes.js index 45fdfb243..6fec2455d 100644 --- a/src/router/constants/routes.js +++ b/src/router/constants/routes.js @@ -55,11 +55,10 @@ export const routeData = { name: "insurance-company", path: "/insurance-company", }, - // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED - // SERVICE_LOCATION: { - // name: "service-location", - // path: "/service-location", - // }, + SERVICE_LOCATION: { // keep even though this page has been removed from the regular flow bc Heritage still points to it + name: "service-location", + path: "/service-location", + }, HERITAGE: { name: "heritage", path: "/virtual/heritage", diff --git a/src/router/methods/helpers/handle-heritage-return.js b/src/router/methods/helpers/handle-heritage-return.js index 6d8c60a58..74a1ce62a 100644 --- a/src/router/methods/helpers/handle-heritage-return.js +++ b/src/router/methods/helpers/handle-heritage-return.js @@ -1,7 +1,6 @@ import { queryStrings } from "@/constants/query-strings"; import { consumeReferralQuerystrings } from "@/router/methods/helpers/consume-referral-info"; import { loadSessionIfPresent } from "@/helpers/heritage-integration/order-helper"; -import router from "@/router"; import { routeData } from "@/router/constants/routes"; export async function handleHeritageReturn(to, from) { @@ -13,13 +12,5 @@ export async function handleHeritageReturn(to, from) { // load session with new cookie await loadSessionIfPresent(true, routeData.SCHEDULE.name); - - // Temporary redirect until URLs to old service-location page can be updated in Heritage - if (to.fullPath.includes("fmgPage=service-location")) { - // Redirect to Schedule page - router.push({ - name: routeData.SCHEDULE.name, - }); - } } } diff --git a/src/router/methods/route-logic/service-location.js b/src/router/methods/route-logic/service-location.js new file mode 100644 index 000000000..ecaebe149 --- /dev/null +++ b/src/router/methods/route-logic/service-location.js @@ -0,0 +1,8 @@ +import { routeData } from "@/router/constants/routes"; + +export async function serviceLocationBeforeEnter(to, from) { + return { + name: routeData.SCHEDULE.name, + replace: true, + }; +} diff --git a/src/router/methods/routes.js b/src/router/methods/routes.js index 83fbb3811..97af04068 100644 --- a/src/router/methods/routes.js +++ b/src/router/methods/routes.js @@ -12,6 +12,7 @@ import { errorBeforeEnter } from "@/router/methods/route-logic/error"; import { restartBeforeEnter } from "@/router/methods/route-logic/restart"; import { paymentMethodBeforeEnter } from "@/router/methods/route-logic/payment-method"; import { paymentBeforeEnter } from "@/router/methods/route-logic/payment"; +import { serviceLocationBeforeEnter } from "@/router/methods/route-logic/service-location"; export const routes = [ // Non-virtual pages. @@ -29,8 +30,7 @@ export const routes = [ createRoute(routeData.CAPABILITY_QUESTIONS), createRoute(routeData.QUOTE, quoteBeforeEnter), createRoute(routeData.INSURANCE_COMPANY, insuranceCompanyBeforeEnter), - // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED - // createRoute(routeData.SERVICE_LOCATION), + createRoute(routeData.SERVICE_LOCATION, serviceLocationBeforeEnter), createRoute(routeData.SCHEDULE), createRoute(routeData.CUSTOMER_DETAILS), createRoute(routeData.PAYMENT_METHOD, paymentMethodBeforeEnter), From 13b8e7f7373d95b42c1e2bff8a03d5b4994070f6 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Thu, 3 Jul 2025 14:46:48 -0400 Subject: [PATCH 06/18] CASH-845 restore handle-heritage-return completely --- src/router/methods/helpers/handle-heritage-return.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/router/methods/helpers/handle-heritage-return.js b/src/router/methods/helpers/handle-heritage-return.js index 74a1ce62a..7914c8e0e 100644 --- a/src/router/methods/helpers/handle-heritage-return.js +++ b/src/router/methods/helpers/handle-heritage-return.js @@ -11,6 +11,6 @@ export async function handleHeritageReturn(to, from) { await consumeReferralQuerystrings(); // load session with new cookie - await loadSessionIfPresent(true, routeData.SCHEDULE.name); + await loadSessionIfPresent(true, routeData.SERVICE_LOCATION.name); } } From fc088ecd08a65907e61171bc3d7c5140b0a575ec Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Thu, 3 Jul 2025 14:49:59 -0400 Subject: [PATCH 07/18] CASH-845: prettier change --- src/router/constants/routes.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/router/constants/routes.js b/src/router/constants/routes.js index 6fec2455d..5632fe357 100644 --- a/src/router/constants/routes.js +++ b/src/router/constants/routes.js @@ -55,7 +55,8 @@ export const routeData = { name: "insurance-company", path: "/insurance-company", }, - SERVICE_LOCATION: { // keep even though this page has been removed from the regular flow bc Heritage still points to it + SERVICE_LOCATION: { + // keep even though this page has been removed from the regular flow bc Heritage still points to it name: "service-location", path: "/service-location", }, From 9f37c2cf42dd547eeef234af55c16c2ff9b96b3e Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Thu, 3 Jul 2025 15:17:05 -0400 Subject: [PATCH 08/18] CASH-845 stage 2: update pagePrerequisites --- src/layouts/schedule/schedule.spec.js | 10 ++- src/layouts/schedule/schedule.vue | 90 ++++++++++++++++++++------- 2 files changed, 75 insertions(+), 25 deletions(-) diff --git a/src/layouts/schedule/schedule.spec.js b/src/layouts/schedule/schedule.spec.js index 60d20b6e7..b3404f611 100644 --- a/src/layouts/schedule/schedule.spec.js +++ b/src/layouts/schedule/schedule.spec.js @@ -176,6 +176,9 @@ beforeEach(() => { isRepair: false, }, referralNumber: "1234567", + policy: { + policyNumber: "123", + }, }, payment: { isInsurance: true, @@ -195,11 +198,12 @@ afterEach(() => { describe("schedule.vue...", () => { describe("initial load", () => { - test("should pass arePagePrerequisitesValid with a mobile order and no providerNumber", () => { + test("should pass arePagePrerequisitesValid with a mobile CASH order and no providerNumber", () => { // Arrange const { wrapper } = setupMocks({}); store.getters.order.serviceLocation.appointmentType = "Mobile"; - store.getters.order.serviceLocation.provider = null; + store.getters.order.serviceLocation.provider.policyNumber = null; + store.getters.payment.isInsurance = false; // Act const arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid(); @@ -208,7 +212,7 @@ describe("schedule.vue...", () => { expect(arePagePrerequisitesValid).toBe(true); }); - test("should pass arePagePrerequisitesValid with a inshop order and providerNumber", () => { + test("should pass arePagePrerequisitesValid with an inshop order and providerNumber", () => { // Arrange const { wrapper } = setupMocks({}); diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index ee2096c36..5de235275 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -91,6 +91,7 @@ import { getItemsWithoutRecalParts } from "@/helpers/recal-helper"; import { partNumberStrings } from "@/constants/part-number-strings"; import { deepClone } from "@/helpers/object-helper"; import { debugLog } from "@/helpers/debug-log-helper"; +import { applicationConfig } from "@/constants/application-config"; // DEFINE VALIDATION RULES defineRule("date-required", required(errorMessages.DATE_REQUIRED)); @@ -367,12 +368,13 @@ export default { const resultMap = await settleAllPromises(promiseResultMap); - const pricingByDayUpcharge = showPricingByDay - ? await baseMixin.methods.getTotalLineItemPrice( - resultMap.pricingByDayUpchargePart, - false - ) - : null; + const pricingByDayUpcharge = + showPricingByDay && resultMap.pricingByDayUpchargePart + ? await baseMixin.methods.getTotalLineItemPrice( + resultMap.pricingByDayUpchargePart, + false + ) + : null; const datePickerInitialData = resultMap.datePickerInitialData; datePickerInitialData.pricingByDayBasePrice = pricingByDayBasePrice; @@ -480,32 +482,76 @@ export default { methods: { splitCopyOnCMSPlaceHolder, arePagePrerequisitesValid() { - const serviceLocation = store.getters.order.serviceLocation; // TODO - MAY NEED TO REMOVE THIS AS A PREREQ - - const serviceLocationPreReqs = serviceLocation.zipCode && serviceLocation.zipCodeCtu; // TODO - MAY NEED TO ADD IN SERVICE LOCATION PREREQS HERE TOO - const paymentInfo = store.getters.payment.isInsurance !== null; - const damageInfo = store.getters.order.damage.isRepair || (store.getters.order.lineItems?.glassParts != null && store.getters.order.lineItems.glassParts.length > 0); + const parentAccountNumberInfo = + store.getters.payment.parentAccountNumber !== + applicationConfig.CASH_PARENT_ACCOUNT_NUMBER; + const policyNumberInfo = store.getters.order.policy.policyNumber; + const zipCodeInfo = store.getters.order.serviceLocation.zipCode; + const supportingItemsInfo = store.getters.lineItems.supportingItems; - const preReqResult = serviceLocationPreReqs && paymentInfo && damageInfo; + // insurance drops the recycle fee on replace orders so it won't be in supportingItems + const insurancePreReqResult = + parentAccountNumberInfo && + policyNumberInfo && + zipCodeInfo && + paymentInfo && + damageInfo; + const cashPreReqResult = + supportingItemsInfo && zipCodeInfo && paymentInfo && damageInfo; - // prettier-ignore - { + const outputDebugLog = (preReqResult) => { + // prettier-ignore debugLog("--- schedule.vue pagePrereqs start ---", null, !preReqResult); - debugLog("store.getters.order.serviceLocation.zipCode:", serviceLocation.zipCode, !preReqResult); - debugLog("store.getters.order.serviceLocation.zipCodeCtu:", serviceLocation.zipCodeCtu, !preReqResult); - debugLog("store.getters.order.serviceLocation.appointmentType:", serviceLocation.appointmentType, !preReqResult); - debugLog("store.getters.order.serviceLocation.provider.providerNumber:", serviceLocation.provider?.providerNumber, !preReqResult); - debugLog("store.getters.payment.isInsurance:", store.getters.payment?.isInsurance, !preReqResult); - debugLog("store.getters.order.damage.isRepair:", store.getters.order.damage?.isRepair, !preReqResult); - debugLog("store.getters.order.lineItems.glassParts:", store.getters.order.lineItems?.glassParts, !preReqResult); + debugLog( + "store.getters.payment.isInsurance:", + store.getters.payment?.isInsurance, + !preReqResult + ); + debugLog( + "store.getters.order.damage.isRepair:", + store.getters.order.damage?.isRepair, + !preReqResult + ); + debugLog( + "store.getters.order.lineItems.glassParts:", + store.getters.order.lineItems?.glassParts, + !preReqResult + ); + debugLog( + "store.getters.payment.parentAccountNumber:", + store.getters.payment.parentAccountNumber, + !preReqResult + ); + debugLog( + "store.getters.order.policy.policyNumber:", + store.getters.order.policy.policyNumber, + !preReqResult + ); + debugLog( + "store.getters.order.serviceLocation.zipCode:", + store.getters.order.serviceLocation.zipCode, + !preReqResult + ); + debugLog( + "store.getters.lineItems.supportingItems:", + store.getters.lineItems.supportingItems, + !preReqResult + ); debugLog("--- schedule.vue pagePrereqs end ---", null, !preReqResult); + }; + + if (store.getters.payment.isInsurance) { + outputDebugLog(insurancePreReqResult); + return insurancePreReqResult; + } else { + outputDebugLog(cashPreReqResult); + return cashPreReqResult; } - return preReqResult; }, async getMoreScheduleData(startDate, endDate) { // called only when "View more dates" is clicked; not on initial page load From ba1217d36c27c760efa7368f2d549a1162e8dda6 Mon Sep 17 00:00:00 2001 From: Johnny shultz Date: Tue, 8 Jul 2025 11:25:11 -0400 Subject: [PATCH 09/18] CASH-816 CASH-816 clean up, defect fixes, looks to be running smoothly now --- src/digital-components/modal/modal.vue | 5 + .../service-location/service-location.vue | 23 +- .../shop-question/shop-question-popup.vue | 291 +++++++++++------- 3 files changed, 183 insertions(+), 136 deletions(-) diff --git a/src/digital-components/modal/modal.vue b/src/digital-components/modal/modal.vue index 4cc75f701..55feca36f 100644 --- a/src/digital-components/modal/modal.vue +++ b/src/digital-components/modal/modal.vue @@ -36,6 +36,7 @@ :id="modalId + '-modalbtn'" ref="modalButtonMain" loaderColor="white" + :isDisabled="footerButtonDisabled" :buttonText="footerButtonText" @click-event="validateAndEmit" :class="isFooterButtonDisabled && 'form-test-invalid'" /> @@ -59,6 +60,7 @@ export default { footerButtonText: String, suppressPageScroll: Boolean, staticBackdrop: Boolean, + footerButtonDisabled: Boolean, onModalOpenedCallback: { type: Function, }, @@ -137,6 +139,9 @@ export default { }, computed: { isFooterButtonDisabled() { + if (this.footerButtonDisabled !== undefined) { + return this.footerButtonDisabled; + } if (!this.meta.touched) { return !this.meta.valid; } diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 776fe1199..329b99840 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -115,9 +115,9 @@ :selectedAppointmentType="selectedAppointmentType" :modelValue="{ zipCode: zipCode, - providerNumber: selectedProvider?.providerNumber, + state: state, }" - :preselectedProviderNumber="selectedProvider?.providerNumber" + :preSelectedProviderNumber="selectedProvider?.providerNumber" :shopProviderData="shopProviderData" :isServiceableInshop="isServiceableInshop" @updated-serviceability="setServiceabilityDetails" @@ -844,25 +844,10 @@ export default { let provider = this.shopProviderData?.shopProviders?.find( (p) => p.providerNumber === providerObject?.providerNumber ); - if (!provider && this.shopProviderData?.shopProviders?.length > 0) { - provider = this.shopProviderData.shopProviders[0]; - } this.selectedProvider = provider; - if (provider && provider.address) { - this.zipCode = provider.address.zipCode; - this.state = provider.address.state; - } - if ( - !this.selectedProvider || - !this.shopProviderData?.shopProviders?.some( - (p) => p.providerNumber === this.selectedProvider?.providerNumber - ) - ) { - this.selectedProvider = this.shopProviderData?.shopProviders?.[0]; - } if (providerObject && providerObject.address) { - this.zipCode = providerObject.address.zipCode; - this.state = providerObject.address.state; + this.zipCode = providerObject.searchedZip; + this.state = providerObject.searchedState; } }, setZipcodeCtu(zipcodeCtu) { diff --git a/src/layouts/service-location/shop-question/shop-question-popup.vue b/src/layouts/service-location/shop-question/shop-question-popup.vue index b345d370d..9f7507d77 100644 --- a/src/layouts/service-location/shop-question/shop-question-popup.vue +++ b/src/layouts/service-location/shop-question/shop-question-popup.vue @@ -24,22 +24,29 @@ :onModalOpenedCallback="onModalOpened" :onModalClosedCallback="onModalClosed" :footerButtonText="modalFooterText" + :footerButtonDisabled=" + displayInvalidZipAlert || displayNoShopsAlert || !selectedProviderNumber + " @footer-button-event="SetZipCodeAndShop"> -
-
- -
-
+ + - -