diff --git a/src/layouts/payment-method/promo-modal-question/promo-modal-question.vue b/src/layouts/payment-method/promo-modal-question/promo-modal-question.vue index 43674b0c2..430bbc192 100644 --- a/src/layouts/payment-method/promo-modal-question/promo-modal-question.vue +++ b/src/layouts/payment-method/promo-modal-question/promo-modal-question.vue @@ -44,17 +44,18 @@ import promoQuestion from "@/layouts/payment-method/promo-modal-question/promo-q import modal from "@/digital-components/modal/modal"; import alert from "@/ux-components/alert/alert"; import { processIfStatements } from "@/helpers/cms-content-helper"; +import store from "@/store"; import { deepClone } from "@/helpers/object-helper"; -// import { -// getVapsThatNeedToBeAddedToSatisfyPromos, -// } from "@/helpers/promotions-helper"; +import { + getAddableVapsFromAvailableLineItems, +} from "@/helpers/promotions-helper"; export default { name: "promo-modal-question", data() { return { - promoCode: String, + promoCode: [], promoTextInputId: "", displayInvalidPromoAlert: false, lineItems:deepClone(this.modelValue), @@ -64,7 +65,7 @@ export default { modelValue: Object, linkWidgetName: String, modalWidgetName: String, - availableLineItems:Object + availableLineItems:Object, }, computed: { @@ -127,6 +128,9 @@ export default { async addPromoCode() { if (this.promoCode) { this.resetAlerts(); + const lineItems = store.getters.order.lineItems; + const getVaps = getAddableVapsFromAvailableLineItems(this.availableLineItems) + lineItems.vaps?.push(getVaps); const promoCodeData = await this.getPromoCodeData(this.promoCode,this.lineItems,this.availableLineItems, "payment-method"); if (promoCodeData.isValid) { let promos = []; diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index 32e1e2750..487d38361 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -80,12 +80,12 @@ export default { zipCodeCtu: serviceZipValidationResponse.data.zipCodeCtu, }; }, - async getPromoCodeData(promoCode, pageNameToLog = null) { + async getPromoCodeData(promoCode,lineItems,availableLineItems, pageNameToLog = null) { const pageName = pageNameToLog ?? this.$options?.name; const promoValidationResponse = await this.dispatchStoreActionWithLogging( storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA, - { promoCode: promoCode }, + { promoCode: promoCode ,lineItems:lineItems,availableLineItems:availableLineItems}, pageName );