CSR-774 | Default package selection

Fixed a bug with save/load session
This commit is contained in:
Scott Kiener 2022-11-30 10:32:16 -05:00
parent e5087a4f35
commit b613623aa0
2 changed files with 61 additions and 13 deletions

View file

@ -4,7 +4,7 @@
:groupName="groupName"
buttonTypeString="servicePackageRadio"
:buttonTypeObject="servicePackageRadio"
v-model="selectedValues"
v-model="selectedPackageName"
isRequired />
</template>
@ -35,19 +35,23 @@ export default {
data() {
return {
servicePackageRadio: servicePackageRadio,
selectedPackageName: null,
};
},
computed: {
selectedValues: {
get: function () {
return this.modelValue;
},
set: function (newValue) {
const VapsProductsInSelectedPackage =
this.getVapsLineItemsForSelectedPackage(newValue);
this.$emit("update:modelValue", VapsProductsInSelectedPackage);
},
watch: {
availableLineItems() {
console.log('supportingItems from store', this.$store.getters.lineItems.supportingItems);
if(this.$store.getters.lineItems.vaps) {
this.selectDefaultPackage();
}
},
selectedPackageName(newValue) {
const VapsProductsInSelectedPackage =
this.getVapsLineItemsForSelectedPackage(newValue);
this.$emit("update:modelValue", VapsProductsInSelectedPackage);
},
},
computed: {
nullSafeAvailableLineItems() {
return this.availableLineItems ?? [];
},
@ -208,6 +212,50 @@ export default {
});
return vapsPrice;
},
selectDefaultPackage() {
const vapsFromStore = this.$store.getters.lineItems.vaps;
let lowestTierForPackage = packageNames.TIER_ONE;
vapsFromStore.every(vapsItem => {
let lowestTierForThisItem = this.getLowestTierForThisItem(vapsItem);
if (lowestTierForThisItem === packageNames.TIER_THREE) {
lowestTierForPackage = packageNames.TIER_THREE;
return false;
} else if (lowestTierForThisItem === packageNames.TIER_TWO) {
lowestTierForPackage = packageNames.TIER_TWO;
return true;
} else {
return true;
}
});
this.selectedPackageName = lowestTierForPackage;
},
getLowestTierForThisItem(vapsItem) {
let lowestTierForThisItem = null;
switch (vapsItem.partType) {
case partTypeStrings.FRONT_WIPER:
if (this.frontWipersApplicableForTierThree) {
lowestTierForThisItem = packageNames.TIER_THREE;
}
if (this.frontWipersApplicableForTierTwo) {
lowestTierForThisItem = packageNames.TIER_TWO;
}
break;
case partTypeStrings.REAR_WIPER:
if (this.rearWiperApplicableForTierThree) {
lowestTierForThisItem = packageNames.TIER_THREE;
}
if (this.rearWiperApplicableForTierTwo) {
lowestTierForThisItem = packageNames.TIER_TWO;
}
break;
case partTypeStrings.RAIN_DEFENSE:
if(this.rainDefenseApplicableForTierThree) {
lowestTierForThisItem = packageNames.TIER_THREE;
}
break;
}
return lowestTierForThisItem;
},
getVapsLineItemsForSelectedPackage(packageName) {
const vapsLineItemsForSelectedPackage = [];
if (packageName === packageNames.TIER_TWO) {

View file

@ -356,7 +356,7 @@ export const mutations = {
state.order.lineItems.glassParts = sessionInformation.order.lineItems.glassParts;
state.order.lineItems.supportingItems = sessionInformation.order.lineItems.supportingItems;
state.order.lineItems.vapsItems = sessionInformation.order.lineItems.vapsItems;
state.order.lineItems.vaps = sessionInformation.order.lineItems.vaps;
state.order.lineItems.serverData = sessionInformation.order.lineItems.serverData;
state.order.accountNumber = sessionInformation.order.accountNumber;
state.order.providerNumber = sessionInformation.order.providerNumber;
@ -1011,7 +1011,7 @@ export const actions = {
lineItems: {
glassParts: lineItems.glassParts,
supportingItems: lineItems.supportingItems,
vapsItems: lineItems.vapsItems,
vaps: lineItems.vaps,
serverData: lineItems.serverData,
},
payment: {