Merge pull request #1548 from Safelite/feature/CSR-1391.1
Feature/csr 1391.1
This commit is contained in:
commit
fce28e8041
1 changed files with 25 additions and 21 deletions
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue