WIP - Taxes added
This commit is contained in:
parent
936bc95957
commit
3d1a9d6299
3 changed files with 43 additions and 36 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
<cart
|
||||
:damage="damageInfo"
|
||||
:availableLineItems="availableLineItems"
|
||||
v-model="lineItems"
|
||||
v-model="cartLineItems"
|
||||
servicePackageOptionsCmsName="ServicePackageTitle"
|
||||
@cart-remove="cartRemove" />
|
||||
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
</div>
|
||||
|
||||
<add-vaps-modal-buttons
|
||||
v-model="lineItems"
|
||||
v-model="cartLineItems"
|
||||
:availableLineItems="availableLineItems"
|
||||
vapsTilesCmsName="VapsProductTiles" />
|
||||
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue