diff --git a/src/experiment-components/date-picker-2.vue b/src/experiment-components/date-picker-for-pricing-by-day.vue similarity index 99% rename from src/experiment-components/date-picker-2.vue rename to src/experiment-components/date-picker-for-pricing-by-day.vue index 414f794e0..df4c9b140 100644 --- a/src/experiment-components/date-picker-2.vue +++ b/src/experiment-components/date-picker-for-pricing-by-day.vue @@ -99,8 +99,16 @@ // Supporting files import loader from "@/ux-components/loader/loader"; import store from "@/store"; -import { TIMINGFUNC_MAP, BUFFER_OFFSET, MONTHS_OF_YEAR } from "@/digital-components/date-picker/mixins/constants"; -import { selectableDaysOptions, requiredParameter, forceTwoDigitString } from "@/digital-components/date-picker/mixins/helpers"; +import { + TIMINGFUNC_MAP, + BUFFER_OFFSET, + MONTHS_OF_YEAR, +} from "@/digital-components/date-picker/mixins/constants"; +import { + selectableDaysOptions, + requiredParameter, + forceTwoDigitString, +} from "@/digital-components/date-picker/mixins/helpers"; import { convertDateToDateString, convertDateStringToDate, @@ -111,7 +119,7 @@ import { deepClone } from "@/helpers/object-helper"; import { v4 as uuidv4 } from "uuid"; export default { - name: "datePicker2", + name: "datePickerForPricingByDay", data() { return { isLoading: true, diff --git a/src/helpers/recal-helper.js b/src/helpers/recal-helper.js index c73755e8f..d43da5d34 100644 --- a/src/helpers/recal-helper.js +++ b/src/helpers/recal-helper.js @@ -58,3 +58,15 @@ export function getTopLevelPartsWithRecal(lineItems) { return lineItems.filter((li) => isRecalPartOrHasChildRecalPart(li)); } + +export function getRecalPartNumbers(glassPartsArray) { + if (glassPartsArray && glassPartsArray.length > 0) { + const topLevel = glassPartsArray.filter((gp) => isRecalPart(gp)).map((gp) => gp.partNumber); + + const children = glassPartsArray.map((gp) => getRecalPartNumbers(gp.childParts)).flat(); + + return [...topLevel, ...children]; + } else { + return []; + } +} diff --git a/src/layouts/address-lookup/address-lookup.vue b/src/layouts/address-lookup/address-lookup.vue index e069ee48d..08f602fb4 100644 --- a/src/layouts/address-lookup/address-lookup.vue +++ b/src/layouts/address-lookup/address-lookup.vue @@ -357,15 +357,18 @@ export default { false ); - if (vinPagesMixin.methods.isPhoneNumber(this.customerQuestions.emailOrSms)) { - const phone = this.customerQuestions.emailOrSms.replace(/[()]/g, ""); - await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, phone, false); - } else { - await this.dispatchStoreAction( - storeActions.SAVE_EMAIL, - this.customerQuestions.emailOrSms, - false - ); + // if no value due to field being optional, blank both phone and email address + if (!this.customerQuestions.emailOrSms) { + await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, "", false); + await this.dispatchStoreAction(storeActions.SAVE_EMAIL, "", false); + } + else { + if (vinPagesMixin.methods.isPhoneNumber(this.customerQuestions.emailOrSms)) { + const phone = this.customerQuestions.emailOrSms.replace(/[()]/g, ""); + await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, phone, false); + } else { + await this.dispatchStoreAction(storeActions.SAVE_EMAIL, this.customerQuestions.emailOrSms, false); + } } await this.dispatchStoreAction( diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue index e1b3f721e..6f6521dde 100644 --- a/src/layouts/license-plate-lookup/license-plate-lookup.vue +++ b/src/layouts/license-plate-lookup/license-plate-lookup.vue @@ -311,11 +311,18 @@ export default { false ); - if (vinPagesMixin.methods.isPhoneNumber(this.emailOrSms)) { - const phone = this.emailOrSms.replace(/[()]/g, ""); - await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, phone, false); - } else { - await this.dispatchStoreAction(storeActions.SAVE_EMAIL, this.emailOrSms, false); + // if no value due to field being optional, blank both phone and email address + if (!this.emailOrSms) { + await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, "", false); + await this.dispatchStoreAction(storeActions.SAVE_EMAIL, "", false); + } + else { + if (vinPagesMixin.methods.isPhoneNumber(this.emailOrSms)) { + const phone = this.emailOrSms.replace(/[()]/g, ""); + await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, phone, false); + } else { + await this.dispatchStoreAction(storeActions.SAVE_EMAIL, this.emailOrSms, false); + } } await this.dispatchStoreAction( diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 0853664e2..27587d08c 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -18,8 +18,8 @@ marginTopSizeOverride="1" /> - - 0 && carId) { + let additionalQueryParams = ``; + for (let i = 0; i < recalPartNumbers.length; i++) { + additionalQueryParams += `&partNumbers[${i}]=${recalPartNumbers[i]}`; + } + additionalQueryParams += `&carId=${carId}`; + endPoint += additionalQueryParams; } if (coverageStatus) { @@ -3760,15 +3766,3 @@ function getExternalParameterDefaultState() { function saveExternalParameterState(externalParameterState) { window.sessionStorage.setItem("externalParameterState", JSON.stringify(externalParameterState)); } - -//This function finds the recalibration part and returns the part number for it. -function getRecalPartNumber(glassPartsArray) { - const recalPart = glassPartsArray.childParts.find( - (item) => item.partType === partTypeStrings.ADAS_RECALIBRATION - ); - if (recalPart) { - return recalPart.partNumber; - } else { - return null; - } -}