Merge pull request #1866 from Safelite/feature/CSR-1742-ajc-r2

CSR-1742-r2: have cart use base-mixin shared logic
This commit is contained in:
AdamCaouetteSafelite 2024-05-23 19:43:36 -04:00 committed by GitHub
commit f634b58edc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 41 deletions

View file

@ -915,48 +915,16 @@ export default {
return this.getCmsContent("SubtotalTextWidget", "Text"); return this.getCmsContent("SubtotalTextWidget", "Text");
}, },
subTotal() { subTotal() {
let subTotal = 0; return baseMixin.methods.getSubTotal(this.lineItems);
if (this.showCoverageAsVerified || this.showCoverageAsPending) {
// only include items NOT covered by insurance
this.cartItems.forEach((cartItem) => {
if (!cartItem.isCoveredByInsurance) {
subTotal += cartItem.subTotal ?? 0;
}
});
// add deductible amount still to pay
subTotal += this.deductibleLineItem.subTotal ?? 0;
} else {
this.cartItems.forEach((cartItem) => {
subTotal += cartItem.subTotal ?? 0;
});
}
return subTotal;
}, },
salesTax() { salesTax() {
let salesTax = 0; return baseMixin.methods.getSalesTax(this.lineItems);
if (this.showCoverageAsVerified || this.showCoverageAsPending) {
// only include items NOT covered by insurance
this.cartItems.forEach((cartItem) => {
if (!cartItem.isCoveredByInsurance) {
salesTax += cartItem.salesTax ?? 0;
}
});
} else {
this.cartItems.forEach((cartItem) => {
salesTax += cartItem.salesTax ?? 0;
});
}
return salesTax;
}, },
amountDue() { amountDue() {
if (this.showAsPaid) { if (this.showAsPaid) {
return 0; return 0;
} }
return this.subTotal + this.salesTax; return baseMixin.methods.getAmountDue(this.lineItems);
}, },
amountPaid() { amountPaid() {
if (!this.showAsPaid) { if (!this.showAsPaid) {

View file

@ -132,27 +132,32 @@ export default {
currency: "USD", currency: "USD",
}); });
}, },
getAmountDue(lineItems) { getAmountDue(lineItems, includeTax = true) {
var amountDue = 0; var amountDue = 0;
if (lineItems.glassParts) { if (lineItems.glassParts) {
amountDue += this.getTotalPriceOfAllLineItemsAndChildParts( amountDue += this.getTotalPriceOfAllLineItemsAndChildParts(
lineItems.glassParts, lineItems.glassParts,
true includeTax
); );
} }
if (lineItems.supportingItems) { if (lineItems.supportingItems) {
amountDue += this.getTotalPriceOfAllLineItemsAndChildParts( amountDue += this.getTotalPriceOfAllLineItemsAndChildParts(
lineItems.supportingItems, lineItems.supportingItems,
true includeTax
); );
} }
if (lineItems.vaps) { if (lineItems.vaps) {
amountDue += this.getTotalPriceOfAllLineItemsAndChildParts(lineItems.vaps, true); amountDue += this.getTotalPriceOfAllLineItemsAndChildParts(
lineItems.vaps,
includeTax
);
} }
if (lineItems.promos) { if (lineItems.promos) {
amountDue += this.getTotalPriceOfAllLineItemsAndChildParts(lineItems.promos, true); amountDue += this.getTotalPriceOfAllLineItemsAndChildParts(
lineItems.promos,
includeTax
);
} }
if ( if (
store.getters.payment.insuranceCoverage.isVerified && store.getters.payment.insuranceCoverage.isVerified &&
!store.getters.policy.isNoComp && !store.getters.policy.isNoComp &&
@ -163,6 +168,17 @@ export default {
return ((amountDue * 100) / 100).toFixed(2); return ((amountDue * 100) / 100).toFixed(2);
}, },
getSubTotal(lineItems) {
// this is amountDue without sales tax
return this.getAmountDue(lineItems, false);
},
getSalesTax(lineItems) {
// this is amountDue minus subTotal
return (
((this.getAmountDue(lineItems) - this.getSubTotal(lineItems)) * 100) /
100
).toFixed(2);
},
scrollToPageTop() { scrollToPageTop() {
const container = document.getElementsByClassName("page-container-grouped-styles")[0]; const container = document.getElementsByClassName("page-container-grouped-styles")[0];
container.scrollTo({ top: 0, left: 0, behavior: "smooth" }); container.scrollTo({ top: 0, left: 0, behavior: "smooth" });