CSR-1168 | Change how we determine if a package has been selected
This commit is contained in:
parent
2cc69d55bf
commit
cf86fcae23
2 changed files with 36 additions and 4 deletions
|
|
@ -103,12 +103,12 @@ export default {
|
||||||
];
|
];
|
||||||
|
|
||||||
const resultMap = await settleAllPromises(promiseResultMap);
|
const resultMap = await settleAllPromises(promiseResultMap);
|
||||||
const glassParts = store.getters.order.lineItems.glassParts ?? [];
|
const clonedGlassParts = store.getters.order.lineItems.glassParts ? JSON.parse(JSON.stringify(store.getters.order.lineItems.glassParts)) : [];
|
||||||
const availableLineItems = [
|
const availableLineItems = [
|
||||||
resultMap.rainDefense,
|
resultMap.rainDefense,
|
||||||
...resultMap.supportingItems,
|
...resultMap.supportingItems,
|
||||||
...resultMap.wipers,
|
...resultMap.wipers,
|
||||||
...glassParts,
|
...clonedGlassParts,
|
||||||
];
|
];
|
||||||
|
|
||||||
const pricingResults = await baseMixin.methods.dispatchStoreAction(
|
const pricingResults = await baseMixin.methods.dispatchStoreAction(
|
||||||
|
|
@ -120,6 +120,7 @@ export default {
|
||||||
// Call the "next" function to complete the transition to this page.
|
// Call the "next" function to complete the transition to this page.
|
||||||
next((vm) => {
|
next((vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
|
vm.pricedGlassParts = clonedGlassParts;
|
||||||
vm.supportingItems = resultMap.supportingItems;
|
vm.supportingItems = resultMap.supportingItems;
|
||||||
vm.availableLineItems = pricingResults;
|
vm.availableLineItems = pricingResults;
|
||||||
vm.isInsuranceSelected = vm.getDefaultIsInsuranceSelectedValue(vm.availableLineItems);
|
vm.isInsuranceSelected = vm.getDefaultIsInsuranceSelectedValue(vm.availableLineItems);
|
||||||
|
|
@ -131,6 +132,7 @@ export default {
|
||||||
selectedVaps: null,
|
selectedVaps: null,
|
||||||
availableLineItems: null,
|
availableLineItems: null,
|
||||||
supportingItems: null,
|
supportingItems: null,
|
||||||
|
pricedGlassParts: null
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -183,6 +185,13 @@ export default {
|
||||||
if (this.$store.getters.order.accountNumber != applicationConfig.CASH_ACCOUNT_NUMBER) {
|
if (this.$store.getters.order.accountNumber != applicationConfig.CASH_ACCOUNT_NUMBER) {
|
||||||
this.supportingItems = this.filterOutFees(this.supportingItems);
|
this.supportingItems = this.filterOutFees(this.supportingItems);
|
||||||
}
|
}
|
||||||
|
if(this.pricedGlassParts.length > 0) {
|
||||||
|
this.dispatchStoreAction(
|
||||||
|
this.storeActions.SAVE_GLASS_PARTS,
|
||||||
|
this.pricedGlassParts,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
}
|
||||||
this.dispatchStoreAction(
|
this.dispatchStoreAction(
|
||||||
this.storeActions.SAVE_SUPPORTING_ITEMS,
|
this.storeActions.SAVE_SUPPORTING_ITEMS,
|
||||||
this.supportingItems,
|
this.supportingItems,
|
||||||
|
|
|
||||||
|
|
@ -42,9 +42,10 @@ export default {
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
availableLineItems() {
|
availableLineItems() {
|
||||||
if (this.$store.getters.lineItems.vaps) {
|
if (this.allGlassPartsAndSupportingItemsHavePrices(this.$store.getters.lineItems)) {
|
||||||
this.selectDefaultPackage();
|
this.selectDefaultPackage();
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
selectedPackageName(newValue) {
|
selectedPackageName(newValue) {
|
||||||
const VapsProductsInSelectedPackage = this.getVapsLineItemsForSelectedPackage(newValue);
|
const VapsProductsInSelectedPackage = this.getVapsLineItemsForSelectedPackage(newValue);
|
||||||
|
|
@ -212,7 +213,7 @@ export default {
|
||||||
selectDefaultPackage() {
|
selectDefaultPackage() {
|
||||||
const vapsFromStore = this.$store.getters.lineItems.vaps;
|
const vapsFromStore = this.$store.getters.lineItems.vaps;
|
||||||
let lowestTierForPackage = packageNames.TIER_ONE;
|
let lowestTierForPackage = packageNames.TIER_ONE;
|
||||||
if (vapsFromStore.length > 0) {
|
if (vapsFromStore?.length > 0) {
|
||||||
vapsFromStore.every((vapsItem) => {
|
vapsFromStore.every((vapsItem) => {
|
||||||
let lowestTierForThisItem = this.getLowestTierForThisItem(vapsItem);
|
let lowestTierForThisItem = this.getLowestTierForThisItem(vapsItem);
|
||||||
if (lowestTierForThisItem === packageNames.TIER_THREE) {
|
if (lowestTierForThisItem === packageNames.TIER_THREE) {
|
||||||
|
|
@ -228,6 +229,28 @@ export default {
|
||||||
}
|
}
|
||||||
this.selectedPackageName = lowestTierForPackage;
|
this.selectedPackageName = lowestTierForPackage;
|
||||||
},
|
},
|
||||||
|
allGlassPartsAndSupportingItemsHavePrices(lineItems) {
|
||||||
|
if (lineItems?.glassParts) {
|
||||||
|
for (let i = 0; i < lineItems.glassParts.length; i++) {
|
||||||
|
if (this.priceIsNullOrZero(lineItems.glassParts[i])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lineItems?.supportingItems) {
|
||||||
|
for (let i = 0; i < lineItems.supportingItems.length; i++) {
|
||||||
|
if (this.priceIsNullOrZero(lineItems.supportingItems[i])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
priceIsNullOrZero(lineItem) {
|
||||||
|
return (lineItem.kitPrice == null || lineItem.kitPrice == 0) &&
|
||||||
|
(lineItem.laborAmount == null || lineItem.laborAmount == 0) &&
|
||||||
|
(lineItem.sellingPrice == null || lineItem.sellingPrice == 0);
|
||||||
|
},
|
||||||
getLowestTierForThisItem(vapsItem) {
|
getLowestTierForThisItem(vapsItem) {
|
||||||
let lowestTierForThisItem = null;
|
let lowestTierForThisItem = null;
|
||||||
switch (vapsItem.partType) {
|
switch (vapsItem.partType) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue