diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue
index 3b8e931d2..26fa7866a 100644
--- a/src/fmg-components/cart/cart.vue
+++ b/src/fmg-components/cart/cart.vue
@@ -82,7 +82,7 @@ import { LineItemUtilities } from "@/store";
import { deepClone } from "@/helpers/object-helper";
export default {
- name: "modal",
+ name: "cart",
props: {
modelValue: Object,
damage: Object,
@@ -117,9 +117,8 @@ export default {
},
removeItem(cartItem) {
cartItem.lineItemIds.forEach((lineItemIdToDelete) => {
- console.log(lineItemIdToDelete);
this.lineItems[cartItem.category] = this.lineItems[cartItem.category].filter(
- (lineItem) => lineItem.id != lineItemIdToDelete
+ (lineItem) => lineItem.partType != cartItem.cartItemType
);
});
@@ -258,10 +257,6 @@ export default {
nonpackageCartItems.push(this.rainDefenseCartItem);
}
- // if (this.packageLevel == "TierOne" && this.rainDefenseCartItem) {
- // return this.cartItems.filter((cartItem) => cartItem.cartItemType == "RAIN DEFENSE");
- // }
-
return nonpackageCartItems;
},
frontWipersCartItem() {
@@ -274,7 +269,7 @@ export default {
if (frontWiperLineItems.length > 0) {
cartItem = {
name: this.getCmsContentForVapsType("FRONT WIPER"), //"Front Wipers", // TODO: Get from CMS
- category: "vaps",
+ category: "vaps-front-wiper",
cartItemType: "FRONT WIPER",
subTotal: 0,
salesTax: 0,
@@ -305,7 +300,7 @@ export default {
if (rearWiperLineItems.length > 0) {
cartItem = {
name: this.getCmsContentForVapsType("REAR WIPER"), // TODO: Get from CMS
- category: "vaps",
+ category: "vaps-rear-wiper",
cartItemType: "REAR WIPER",
subTotal: 0,
salesTax: 0,
@@ -499,9 +494,6 @@ export default {
salesTaxText() {
return this.getCmsContent("SalesTaxTextWidget", "Text");
},
- recycleFee() {
- return "$35.00";
- },
amountDueText() {
return this.getCmsContent("AmountDueTextWidget", "Text");
},
@@ -529,14 +521,6 @@ export default {
return this.subTotal + this.salesTax;
},
},
- watch: {
- modelValue: {
- handler(newValue) {
- console.log(newValue);
- this.lineItems = deepClone(newValue);
- },
- },
- },
components: {
textBlock,
textLink,
diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue
index ca8b39d32..3e69a25d7 100644
--- a/src/layouts/payment-method/payment-method.vue
+++ b/src/layouts/payment-method/payment-method.vue
@@ -27,7 +27,7 @@
@@ -42,7 +42,7 @@
@@ -90,7 +90,8 @@ import { defineRule } from "vee-validate";
import { required } from "@/helpers/validation-rules";
import { errorMessages } from "@/constants/error-messages";
import { AppointmentTypeStrings } from "@/constants/schedule-constants";
-import { deepClone } from "@/helpers/object-helper";
+import { LineItemUtilities, mapTaxedAvailableLineItemsToStoreFormat } from "../../store";
+
defineRule("option-required", required(errorMessages.OPTION_REQUIRED));
@@ -141,7 +142,7 @@ export default {
const glassParts = store.getters.order.lineItems.glassParts ?? [];
- const availableLineItems = [
+ let availableLineItems = [
resultMap.rainDefense,
...resultMap.supportingItems,
...resultMap.wipers,
@@ -159,7 +160,7 @@ export default {
false
);
- const taxingResults = await baseMixin.methods.dispatchStoreActionWithLogging(
+ const taxedAvailableLineItems = await baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.TAX_ORDER_ITEMS_AND_SAVE_SERVER_DATA,
{
billToAccountNumber: "87291",
@@ -173,26 +174,27 @@ export default {
false
);
+ const lineItemUtilities = new LineItemUtilities();
+ lineItemUtilities.addGuidToLineItemsIfNotAlreadyThere(availableLineItems);
+
+ const cartLineItems = mapTaxedAvailableLineItemsToStoreFormat(availableLineItems, lineItems);
+
// Call the "next" function to complete the transition to this page.
next((vm) => {
vm.setCmsContent(resultMap.cmsContent);
- vm.availableLineItems = taxingResults;
- console.log(lineItems);
- vm.lineItems = deepClone(lineItems);
+ vm.availableLineItems = taxedAvailableLineItems;
+ vm.cartLineItems = cartLineItems;
});
},
data() {
return {
- lineItems: [],
+ cartLineItems: [],
availableLineItems: [],
paymentMethodInternalModel: this.getPaymentMethodFromStore(),
displayPiaAlert: this.getPiaAlert(),
};
},
methods: {
- getLineItemsFromStore() {
- return store.getters.order.lineItems;
- },
arePagePrerequisitesValid() {
// Line Items
const packageReqs = !!store.getters.order.lineItems.supportingItems;
@@ -358,10 +360,6 @@ export default {
customCtaCopy(newValue) {
this.$refs.navbar.updateButtonText(newValue);
},
- // modelValue(newValue) {
- // this.lineItems = newValue;
- // console.log(newValue)
- // }
},
components: {
funnelHeader,
diff --git a/src/store/index.js b/src/store/index.js
index 013d1cdbd..1f03566c2 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -1298,6 +1298,7 @@ export const actions = {
});
syncLineItemIds(response.data, context.getters.order.lineItems.vaps);
+ console.log(response.data)
return response;
},
@@ -2566,9 +2567,30 @@ export class LineItemUtilities {
this.getArrayOfAllLineItems = getArrayOfAllLineItems;
this.getFlattenedArrayOfLineItemsWithChildParts =
getFlattenedArrayOfLineItemsWithChildParts;
+ this.addGuidToLineItemsIfNotAlreadyThere = addGuidToLineItemsIfNotAlreadyThere;
}
}
+export function mapTaxedAvailableLineItemsToStoreFormat(availableLineItems, storeLineItems)
+{
+ // clone the lineItems array because what we're passing in is referencing the store directly
+ const lineItems = deepClone(storeLineItems);
+
+ for (let [category, lineItemsInCategory] of Object.entries(lineItems)) {
+ lineItemsInCategory = lineItemsInCategory ?? [];
+
+ for (let lineItemIndex = 0; lineItemIndex < lineItemsInCategory.length; lineItemIndex++) {
+
+ const availableLineItem = availableLineItems.find(ali => ali.partNumber == lineItemsInCategory[lineItemIndex].partNumber);
+ if (availableLineItem) {
+ lineItemsInCategory[lineItemIndex].salesTax = availableLineItem.salesTax;
+ }
+ }
+ }
+
+ return lineItems;
+}
+
function getArrayOfAllLineItems(lineItems) {
let consolidatedLineItemsArray = [];
@@ -2641,11 +2663,14 @@ function addGuidToLineItemsIfNotAlreadyThere(lineItems) {
}
function syncLineItemIds(lineItemsWithoutIds, lineItemsWithIds) {
+
if (!lineItemsWithIds || !lineItemsWithoutIds) {
return;
}
lineItemsWithoutIds.forEach((noId) => {
+ debugger; // eslint-disable-line no-debugger
lineItemsWithIds.forEach((withId) => {
+ debugger; // eslint-disable-line no-debugger
if (noId.partNumber === withId.partNumber && noId.partType === withId.partType) {
noId.id = withId.id;
}