Add prereq check
This commit is contained in:
parent
2e77790e5e
commit
54010aa81f
1 changed files with 62 additions and 1 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue