Add prereq check

This commit is contained in:
Chloe Herd 2023-08-23 10:12:41 -04:00
parent 2e77790e5e
commit 54010aa81f

View file

@ -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);