From 18c59e8d7e578cdc4f5cc680d7e6cad6e2f15d66 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Tue, 21 Nov 2023 09:18:37 -0500 Subject: [PATCH] CSR-1757 changes to add supplies repair fee to cart and promo taxes --- src/constants/cart-item-types.js | 1 + src/fmg-components/cart/cart.vue | 41 ++++++++++++++++++++++++++++++++ src/layouts/payment/payment.vue | 3 +++ src/mixins/base-mixin.js | 3 +++ 4 files changed, 48 insertions(+) diff --git a/src/constants/cart-item-types.js b/src/constants/cart-item-types.js index 546a3b6e7..342a4e672 100644 --- a/src/constants/cart-item-types.js +++ b/src/constants/cart-item-types.js @@ -9,6 +9,7 @@ const cartItemTypes = { MOBILE_FEE: "MOBILE FEE", PROMOS: "PROMOS", EARLY_BIRD: "EARLY BIRD", + SUPPLIES_REPAIR: "SUPPLIES-REPAIR", }; export { cartItemTypes }; diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index aa1a47349..5d0e8cd32 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -227,6 +227,10 @@ export default { cartItems.push(this.recycleFeeCartItem); } + if (this.suppliesRepairCartItem) { + cartItems.push(this.suppliesRepairCartItem); + } + if (this.mobileFeeCartItem) { cartItems.push(this.mobileFeeCartItem); } @@ -508,6 +512,43 @@ export default { return cartItem; }, + + suppliesRepairCartItemName() { + return this.getCmsContent("SuppliesRepairTextWidget", "Text"); + }, + suppliesRepairCartItem() { + let cartItem = null; + + const suppliesRepairLineItem = this.supportingItems.find( + (supportingItem) => supportingItem.partType == partTypeStrings.REPAIR_FEE && supportingItem.partNumber != "WSREPAIR" + ); + + if (suppliesRepairLineItem) { + cartItem = { + name: this.suppliesRepairCartItemName, + category: cartItemCategories.SUPPORTING_ITEMS, + cartItemType: cartItemTypes.SUPPLIES_REPAIR, + isDisplayed: true, + isRemovable: false, + subTotal: 0, + salesTax: 0, + lineItems: [], + }; + + suppliesRepairLineItem.cartItemType = cartItem.cartItemType; + cartItem.lineItems.push(suppliesRepairLineItem); + + cartItem.subTotal += + (suppliesRepairLineItem.kitPrice ?? 0) + + (suppliesRepairLineItem.laborAmount ?? 0) + + (suppliesRepairLineItem.sellingPrice ?? 0); + + cartItem.salesTax = suppliesRepairLineItem.salesTax ?? 0; + } + + return cartItem; + }, + mobileFeeCartItemName() { return this.getCmsContent("MobileServiceTextWidget", "Text"); }, diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index b30a587dc..3ab502304 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -323,6 +323,9 @@ export default { ); const newValidatedPromos = validatePromoResponse?.orderPromos ?? []; + newValidatedPromos.push( + ...(revalidatePromoResponse ? revalidatePromoResponse.promoLineItems : []) + ); pricedLineItemsToTax.push(...newValidatedPromos); // End of promo logic diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index 38b0daefb..cf763fdff 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -149,6 +149,9 @@ export default { if (lineItems.vaps) { amountDue += this.getTotalPriceOfAllLineItemsAndChildParts(lineItems.vaps, true); } + if (lineItems.promos) { + amountDue += this.getTotalPriceOfAllLineItemsAndChildParts(lineItems.promos, true); + } return ((amountDue * 100) / 100).toFixed(2); }, scrollToPageTop() {