CSR-1971 | Reworking quote page

This commit is contained in:
Scott Kiener 2024-03-01 15:16:13 -05:00
parent 37b876f72c
commit e67b661279
2 changed files with 18 additions and 14 deletions

View file

@ -99,7 +99,7 @@ export default {
props: { props: {
modelValue: Object, modelValue: Object,
modalWidgetName: String, modalWidgetName: String,
availableVaps: Object, addableVaps: Object,
pageName: String, pageName: String,
taxPromos: { taxPromos: {
type: Boolean, type: Boolean,
@ -192,14 +192,14 @@ export default {
resetModalButtonStyle() { resetModalButtonStyle() {
this.modal.resetButtonStyle(); this.modal.resetButtonStyle();
}, },
async getPromoCodeData(promoCode, lineItems, availableVaps, pageNameToLog = null) { async getPromoCodeData(promoCode, lineItems, addableVaps, pageNameToLog = null) {
const pageName = pageNameToLog ?? this.$options?.name; const pageName = pageNameToLog ?? this.$options?.name;
const promoValidationResponse = await baseMixin.methods.dispatchStoreActionWithLogging( const promoValidationResponse = await baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA, storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA,
{ {
promoCode: promoCode, promoCode: promoCode,
lineItemsToUse: lineItems, lineItemsToUse: lineItems,
addableVaps: availableVaps, addableVaps: addableVaps,
}, },
pageName, pageName,
false false
@ -264,7 +264,7 @@ export default {
const promoCodeData = await this.getPromoCodeData( const promoCodeData = await this.getPromoCodeData(
this.promoCode, this.promoCode,
this.lineItems, this.lineItems,
this.availableVaps, this.addableVaps,
this.pageName this.pageName
); );
if (promoCodeData.isValid) { if (promoCodeData.isValid) {
@ -298,7 +298,7 @@ export default {
); );
const taxedVaps = mapTaxedLineItemsToStoreFormat( const taxedVaps = mapTaxedLineItemsToStoreFormat(
taxedLineItems, taxedLineItems,
this.availableVaps this.addableVaps
); );
const getVaps = getVapsThatNeedToBeAddedToSatisfyPromos( const getVaps = getVapsThatNeedToBeAddedToSatisfyPromos(

View file

@ -42,7 +42,7 @@
<promoModalQuestion <promoModalQuestion
class="small mt-4" class="small mt-4"
v-model="lineItems" v-model="lineItems"
:availableVaps="availableVaps" :addableVaps="addableVaps"
pageName="quote" pageName="quote"
:taxPromos="false" :taxPromos="false"
modalWidgetName="PromoModalWidget" /> modalWidgetName="PromoModalWidget" />
@ -149,8 +149,14 @@ export default {
}, },
]; ];
// -Check PRs to make sure you've looked at all newly added code
// -Briefly investigate new issue, then ask Sneha to look at it via email
// -Undo the package selection fix sneha did and see if my changes fix that
const resultMap = await settleAllPromises(promiseResultMap); const resultMap = await settleAllPromises(promiseResultMap);
const lineItems = deepClone(store.getters.order.lineItems); const lineItems = deepClone(store.getters.order.lineItems);
lineItems.promos = lineItems.promos ?? [];
lineItems.vaps = lineItems.vaps ?? [];
const nullSafeGlassParts = lineItems.glassParts ?? []; const nullSafeGlassParts = lineItems.glassParts ?? [];
const availableLineItems = [ const availableLineItems = [
resultMap.rainDefense, resultMap.rainDefense,
@ -173,10 +179,11 @@ export default {
resultMap.supportingItems, resultMap.supportingItems,
false false
); );
lineItems.supportingItems = resultMap.supportingItems;
// Promo logic // Promo logic
// Populate the previous state of promos for toast message usage in "next()" // Populate the previous state of promos for toast message usage in "next()"
const availableVaps = [...resultMap.wipers, resultMap.rainDefense]; const addableVaps = [...resultMap.wipers, resultMap.rainDefense];
const oldActivePromos = store.getters.lineItems.promos?.slice(0); const oldActivePromos = store.getters.lineItems.promos?.slice(0);
const oldInactivePromos = store.getters.order.payment.inactivePromos?.slice(0); const oldInactivePromos = store.getters.order.payment.inactivePromos?.slice(0);
@ -189,16 +196,13 @@ export default {
pricingResults, pricingResults,
"quote" "quote"
); );
lineItems.glassParts = nullSafeGlassParts;
lineItems.promos = lineItems.promos ?? [];
lineItems.vaps = lineItems.vaps ?? [];
console.log("lineItems.vaps", JSON.parse(JSON.stringify(lineItems.vaps))); console.log("lineItems.vaps", JSON.parse(JSON.stringify(lineItems.vaps)));
// End of promo logic // End of promo logic
// 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.availableVaps = availableVaps; vm.addableVaps = addableVaps;
vm.lineItems = lineItems; vm.lineItems = lineItems;
vm.availableLineItems = pricingResults; vm.availableLineItems = pricingResults;
vm.isInsuranceSelected = vm.getDefaultIsInsuranceSelectedValue(vm.availableLineItems); vm.isInsuranceSelected = vm.getDefaultIsInsuranceSelectedValue(vm.availableLineItems);
@ -228,7 +232,7 @@ export default {
isInsuranceSelected: null, isInsuranceSelected: null,
availableLineItems: null, availableLineItems: null,
lineItems: [], lineItems: [],
availableVaps: [], addableVaps: [],
}; };
}, },
computed: { computed: {
@ -307,7 +311,7 @@ export default {
this.$store.getters.order.payment.parentAccountNumber != this.$store.getters.order.payment.parentAccountNumber !=
applicationConfig.CASH_PARENT_ACCOUNT_NUMBER applicationConfig.CASH_PARENT_ACCOUNT_NUMBER
) { ) {
this.supportingItems = this.filterOutFees(this.supportingItems); this.lineItems.supportingItems = this.filterOutFees(this.lineItems.supportingItems);
} }
if (this.lineItems.glassParts?.length > 0) { if (this.lineItems.glassParts?.length > 0) {
@ -323,7 +327,7 @@ export default {
storeActions.SAVE_ACTIVE_AND_OR_INACTIVE_PROMOS, storeActions.SAVE_ACTIVE_AND_OR_INACTIVE_PROMOS,
{ {
activePromos: this.lineItems.promos, activePromos: this.lineItems.promos,
inactivePromos: this.$store.getters.order.payment.inactivePromos, inactivePromos: this.$store.getters.order.payment.inactivePromos, // I don't think we need this here
}, },
false false
); );