diff --git a/src/constants/cart-item-types.js b/src/constants/cart-item-types.js index d8ab9f66f..2f84d22c2 100644 --- a/src/constants/cart-item-types.js +++ b/src/constants/cart-item-types.js @@ -11,6 +11,7 @@ const cartItemTypes = { EARLY_BIRD: "EARLY BIRD", SUPPLIES_REPAIR: "SUPPLIES-REPAIR", SERVICE_PACKAGE_DISCOUNT: "SERVICE PACKAGE DISCOUNT", + DONATION: "DONATION", }; export { cartItemTypes }; diff --git a/src/constants/part-type-strings.js b/src/constants/part-type-strings.js index 4681e2776..94e8598bd 100644 --- a/src/constants/part-type-strings.js +++ b/src/constants/part-type-strings.js @@ -10,6 +10,7 @@ const partTypeStrings = { REPAIR_FEE: "REPAIR FEE", EARLY_BIRD: "EARLY BIRD", SERVICE_PACKAGE_DISCOUNT: "SERVICE PACKAGE DISCOUNT", + DONATION: "DONATION", }; export { partTypeStrings }; diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index f569c11d4..e5d0a8645 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -207,6 +207,7 @@ export default { isNoComp: Boolean, isExpandedOnLoad: Boolean, isMSRFeeApplicable: Boolean, + donationAmount: Number, }, data() { return { @@ -403,7 +404,9 @@ export default { } return [ ...(this.lineItems.glassParts ?? []), - ...(this.lineItems.supportingItems ?? []), + ...(this.lineItems.supportingItems.filter( + (item) => item.partType !== partTypeStrings.DONATION + ) ?? []), ...(this.availableVaps ?? []), ]; }, @@ -466,6 +469,10 @@ export default { }); } + if (this.donationCartItem) { + cartItems.push(this.donationCartItem); + } + return cartItems; }, }, @@ -1064,6 +1071,43 @@ export default { return promoCartItems; }, + showDonationCartItem() { + if (this.donationAmount !== 0) { + return true; + } else { + return false; + } + }, + donationCartItemName() { + return this.getCmsContent("DonationCartTextWidget", "Text"); + }, + donationCartItem() { + if (!this.lineItems || !this.lineItems.supportingItems) { + return null; + } + + const donationLineItem = this.lineItems.supportingItems.find( + (item) => item.partType === partTypeStrings.DONATION + ); + + if (donationLineItem && donationLineItem.sellingPrice > 0) { + return { + name: this.donationCartItemName, + category: cartItemCategories.SUPPORTING_ITEMS, + cartItemType: cartItemTypes.DONATION, + isDisplayed: true, + isRemovable: false, + subTotal: donationLineItem.sellingPrice, + salesTax: 0, + lineItems: [], + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.DONATION + ), + }; + } + + return null; + }, removeLinkText() { return this.getCmsContent("RemoveCartItemTextWidget", "Text"); }, diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index f6810f726..12415226b 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -63,7 +63,9 @@ :isExpandedOnLoad="false" :isItac="isItac" :isNoComp="isNoComp" - :isMSRFeeApplicable="isMSRFeeApplicable" /> + :isMSRFeeApplicable="isMSRFeeApplicable" + :donationAmount="donationAmount" + @update-donation-amount="updateDonationAmount" />