From 3f9df4c331e7a5f4172bf8d9d220680ea549456f Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Wed, 7 Jan 2026 10:27:20 -0500 Subject: [PATCH] Page prereqs --- src/layouts/payment-adyen/payment-adyen.vue | 109 +++++++++++++++++++- 1 file changed, 105 insertions(+), 4 deletions(-) diff --git a/src/layouts/payment-adyen/payment-adyen.vue b/src/layouts/payment-adyen/payment-adyen.vue index 3e6853aaf..a8b1704a1 100644 --- a/src/layouts/payment-adyen/payment-adyen.vue +++ b/src/layouts/payment-adyen/payment-adyen.vue @@ -66,6 +66,8 @@ import { showFmgLoadingModal } from "../../helpers/loading-modal-helper"; import cart from "@/fmg-components/cart/cart"; import { coverageStatus } from "@/constants/insurance"; import { deepClone } from "@/helpers/object-helper"; +import store from "@/store"; +import { debugLog } from "@/helpers/debug-log-helper.js"; export default { name: "payment-adyen", @@ -110,11 +112,110 @@ export default { }, arePagePrerequisitesValid() { - // Stub, for checking if application is capable of entering this page - // And/or, is all information required for this page present? - // To prevent sequence-breaking from the end-user. + // Service Location + const serviceLocation = store.getters.order.serviceLocation; + const mobileReqs = !!( + serviceLocation.address && + serviceLocation.city && + serviceLocation.state && + serviceLocation.zipCode + ); - return true; + const providerLocation = serviceLocation.provider.address; + const dropOffInshopReqs = !!( + providerLocation.streetAddress && + providerLocation.city && + providerLocation.state && + providerLocation.zipCode + ); + + const isMobile = serviceLocation.appointmentType === AppointmentTypeStrings.MOBILE; + + const serviceLocationReqs = + (isMobile && mobileReqs) || (!isMobile && dropOffInshopReqs); + + // Insurance + const isInsuranceSet = store.getters.order.payment.isInsurance !== null; + + // Schedule + const schedule = store.getters.order.schedule; + const scheduleReqs = !!( + schedule.date && + schedule.startTime && + schedule.endTime && + schedule.jobMaxMinutes && + schedule.jobMinMinutes + ); + + // Customer + const customer = store.getters.order.customer; + const customerReqs = !!( + customer.firstName && + customer.lastName && + customer.phoneNumber && + customer.emailAddress + ); + + const paymentMethodReqs = + store.getters.order.payment.isPia !== null && + (store.getters.order.payment.isPia || !!store.getters.order.payment.piaType); + + const preReqResult = + serviceLocationReqs && + isInsuranceSet && + scheduleReqs && + customerReqs && + paymentMethodReqs; + + // prettier-ignore + { + debugLog("--- payment-adyen.vue pagePrereqs start ---", null, !preReqResult); + debugLog("mobileReqs:", mobileReqs, !preReqResult); + debugLog("serviceLocation.address:", serviceLocation.address, !preReqResult); + debugLog("serviceLocation.city:", serviceLocation.city, !preReqResult); + debugLog("serviceLocation.state:", serviceLocation.state, !preReqResult); + debugLog("serviceLocation.zipCode:", serviceLocation.zipCode, !preReqResult); + + debugLog("", null, !preReqResult); + + debugLog("dropOffInshopReqs:", dropOffInshopReqs, !preReqResult); + debugLog("serviceLocationReqs:", serviceLocationReqs, !preReqResult); + debugLog("providerLocation.streetAddress:", providerLocation.streetAddress, !preReqResult); + debugLog("providerLocation.city:", providerLocation.city, !preReqResult); + debugLog("providerLocation.state:", providerLocation.state, !preReqResult); + debugLog("providerLocation.zipCode:", providerLocation.zipCode, !preReqResult); + + debugLog("", null, !preReqResult); + + debugLog("isInsuranceSet:", isInsuranceSet, !preReqResult); + + debugLog("", null, !preReqResult); + + debugLog("scheduleReqs:", scheduleReqs, !preReqResult); + debugLog("schedule.date:", schedule.date, !preReqResult); + debugLog("schedule.startTime:", schedule.startTime, !preReqResult); + debugLog("schedule.endTime:", schedule.endTime, !preReqResult); + debugLog("schedule.jobMaxMinutes:", schedule.jobMaxMinutes, !preReqResult); + debugLog("schedule.jobMinMinutes:", schedule.jobMinMinutes, !preReqResult); + + debugLog("", null, !preReqResult); + + debugLog("customerReqs:", customerReqs, !preReqResult); + debugLog("customer.firstName:", customer.firstName, !preReqResult); + debugLog("customer.lastName:", customer.lastName, !preReqResult); + debugLog("customer.phoneNumber:", customer.phoneNumber, !preReqResult); + debugLog("customer.emailAddress:", customer.emailAddress, !preReqResult); + + debugLog("", null, !preReqResult); + + debugLog("paymentMethodReqs:", paymentMethodReqs, !preReqResult); + debugLog("store.getters.order.payment.isPia:", store.getters.order?.payment?.isPia, !preReqResult); + debugLog("store.getters.order.payment.piaType:", store.getters.order?.payment?.piaType, !preReqResult); + + debugLog("--- payment-adyen.vue pagePrereqs end ---", null, !preReqResult); + } + + return preReqResult; }, async initializeAdyen() {