Merge pull request #1548 from Safelite/feature/CSR-1391.1

Feature/csr 1391.1
This commit is contained in:
Matt Caimi 2023-11-20 11:47:07 -05:00 committed by GitHub
commit fce28e8041
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -25,6 +25,7 @@
<hr /> <hr />
<cart <cart
ref="cart"
:damage="damageInfo" :damage="damageInfo"
:availableVaps="availableVaps" :availableVaps="availableVaps"
:allowItemRemoval="false" :allowItemRemoval="false"
@ -227,7 +228,7 @@ export default {
invoiceNumber: this.getInvoiceNumber(), invoiceNumber: this.getInvoiceNumber(),
totalAmount: this.getAmountDue(), totalAmount: this.getAmountDue(),
displayAmount: this.getDisplayAmountDue(), displayAmount: this.getDisplayAmountDue(),
piaLineItems: this.getPiaLineItems(), piaLineItems: "",
paypalPayment: this.isPaypal(), paypalPayment: this.isPaypal(),
lineItems: [], lineItems: [],
availableVaps: [], availableVaps: [],
@ -357,11 +358,18 @@ export default {
// Call the "next" function to complete the transition to this page. // Call the "next" function to complete the transition to this page.
next(async (vm) => { next(async (vm) => {
vm.setCmsContent(resultMap.cmsContent); vm.setCmsContent(resultMap.cmsContent);
vm.fetchSignatureInfo(resultMap.signature);
vm.setIFrameListener();
vm.availableVaps = taxedVaps; vm.availableVaps = taxedVaps;
vm.lineItems = lineItems; vm.lineItems = lineItems;
vm.$nextTick(() => {
if (vm.$refs.cart) {
const cartItems = vm.$refs.cart.cartItems;
vm.getPiaLineItems(cartItems);
}
vm.fetchSignatureInfo(resultMap.signature);
vm.setIFrameListener();
});
}); });
}, },
computed: { computed: {
@ -506,27 +514,23 @@ export default {
return store.getters.payment.piaType; return store.getters.payment.piaType;
} }
}, },
getPiaLineItems() { getPiaLineItems(cartItems) {
const itemMap = new Map();
const glassParts = store.getters.order.lineItems.glassParts; const glassParts = store.getters.order.lineItems.glassParts;
const supportingItems = store.getters.order.lineItems.supportingItems; let lineItems = [];
const vaps = store.getters.order.lineItems.vaps;
const items = [...(glassParts ?? []), ...(supportingItems ?? []), ...(vaps ?? [])];
for (const item of items) { if (glassParts === null) {
const amount = item.laborAmount + item.sellingPrice; lineItems = ["Labor|0|1", "Repair supplies|0|1"];
const key = `${item.partType}|${amount}`; } else {
lineItems = ["Parts and labor|0|1"];
if (itemMap.has(key)) {
itemMap.get(key).quantity++;
} else {
itemMap.set(key, { partType: item.partType, amount, quantity: 1 });
}
} }
return Array.from(itemMap.values()) cartItems.forEach((item) => {
.map((item) => `${item.partType}|${item.amount}|${item.quantity}`) if (item.name !== null) {
.join("||"); lineItems.push(`${item.name}|${(item.salesTax + item.subTotal).toFixed(2)}|1`);
}
});
this.piaLineItems = lineItems.join("||");
}, },
getAmountDue() { getAmountDue() {
return baseMixin.methods.getAmountDue(store.getters.order.lineItems); return baseMixin.methods.getAmountDue(store.getters.order.lineItems);