diff --git a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue index c3a7aca68..e94ccc305 100644 --- a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue +++ b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue @@ -40,17 +40,18 @@ import alert from "@/ux-components/alert/alert"; import { defineRule } from "vee-validate"; import { required } from "@/helpers/validation-rules"; import { errorMessages } from "@/constants/error-messages"; +import { damageLocationsSelected } from "@/constants/damage-locations-selected.js"; // DEFINE VALIDATION RULES defineRule("windshield-damage-type-required", required(errorMessages.WINDSHIELD_DAMAGE_TYPE_REQUIRED)); defineRule("windshield-chip-count-required", required(errorMessages.WINDSHIELD_CHIP_COUNT_REQUIRED)); defineRule("windshield-replace-options-required", required(errorMessages.WINSHIELD_REPLACE_OPTIONS_REQUIRED)); -defineRule("checkForRepairAndReplace", (value, [other]) => { - if (value.toString().toUpperCase().includes("REPAIR") && - other.toString().toUpperCase().includes("WINDSHIELD") && - Array.isArray(other) && - other.length > 1) +defineRule("checkForRepairAndReplace", (value, [otherFieldValue]) => { + if (value.toString().toUpperCase().includes(damageLocationsSelected.REPAIR.toUpperCase()) && + otherFieldValue.toString().toUpperCase().includes(damageLocationsSelected.WINDSHIELD.toUpperCase()) && + Array.isArray(otherFieldValue) && + otherFieldValue.length > 1) { return "checkForRepairAndReplace error" } @@ -58,7 +59,7 @@ defineRule("checkForRepairAndReplace", (value, [other]) => { }); defineRule("repairOnly", (value) => { - if (value.toString().toUpperCase() === 'REPAIR') { + if (value.toString().toUpperCase() === damageLocationsSelected.REPAIR.toUpperCase()) { return true; } return false; @@ -69,7 +70,7 @@ export default ({ data(){ return { - isWindshieldReplaceAvailable: Boolean, + windshieldAvailableReplacementOptions: Object, } }, @@ -87,7 +88,7 @@ export default ({ this.$refs.windshieldChipCountQuestion.initializeComponent(windshieldChipCountQuestionFromCms); this.$refs.replaceOptionsQuestion.initializeComponent(windshieldReplaceOptionsQuestionFromCms, windshieldAvailableReplacementOptions); - this.isWindshieldReplaceAvailable = !(Array.isArray(windshieldAvailableReplacementOptions) && windshieldAvailableReplacementOptions.length < 1); + this.windshieldAvailableReplacementOptions = windshieldAvailableReplacementOptions; }, getWindshieldOptions(selectedWindshieldDamageType, selectedWindshieldChipCount, selectedWindshieldReplaceOptions){ return { @@ -131,7 +132,7 @@ export default ({ } }, isWindshieldDamageLocation() { - return this.selectedDamageLocations.some(selectedDamages => + return this.selectedDamageLocations.some(selectedDamages => { return Boolean(selectedDamages.toUpperCase() === "WINDSHIELD"); }); @@ -146,6 +147,9 @@ export default ({ return this.selectedWindshieldDamageTypeValues.some(val => val.toUpperCase() === "REPLACE") && this.isWindshieldDamageLocation; }, + isWindshieldReplaceAvailable() { + return !(Array.isArray(this.windshieldAvailableReplacementOptions) && this.windshieldAvailableReplacementOptions.length < 1); + }, showNoReplaceAvailableError() { if (this.isReplaceOptionSelected && !this.isWindshieldReplaceAvailable) { return true;