From 54010aa81f4095f7f77f15a962dd955aec400800 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Wed, 23 Aug 2023 10:12:41 -0400 Subject: [PATCH] Add prereq check --- src/layouts/review/review.vue | 63 ++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index be0af585e..61538c8f3 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -111,8 +111,11 @@ import serviceLocationReview from "@/layouts/review/review-sections/service-loca import scheduleReview from "@/layouts/review/review-sections/schedule-review/schedule-review"; import customerReview from "@/layouts/review/review-sections/customer-review/customer-review"; +import { AppointmentTypeStrings } from "@/constants/schedule-constants"; + import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { settleAllPromises } from "@/helpers/layout-helper"; +import store from "@/store"; export default { name: "review", @@ -147,7 +150,65 @@ export default { }, methods: { arePagePrerequisitesValid() { - return true; + // Vehicle + const vehicle = store.getters.order.vehicle; + const vehicleReqs = vehicle.year && vehicle.make && vehicle.model && vehicle.style; + + // Damage + const damage = store.getters.order.damage; + const damageReqs = + (damage.isRepair && damage.numberOfChips) || damage.glassToReplace?.length; + + // Service Package + const lineItems = store.getters.order.lineItems; + // damageReqs handles checking for damage, even though it is also required for this section. + const packageReqs = (damage.isRepair || lineItems.glassParts) && lineItems.supportingItems && lineItems.vaps; + + // Service Location + const serviceLocation = store.getters.order.serviceLocation; + const mobileReqs = + serviceLocation.address && + serviceLocation.city && + serviceLocation.state && + serviceLocation.zipCode; + + 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); + + // 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; + + return ( + vehicleReqs && + damageReqs && + packageReqs && + serviceLocationReqs && + scheduleReqs && + customerReqs + ); }, backButtonAction() { this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route);