diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index 0bebdc372..9018de79b 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -64,17 +64,14 @@ export default { }; }, getTierOnePackagePrice(lineItems) { - let totalPrice = 0; - lineItems.forEach((lineItem) => { - const partType = lineItem.partType.toUpperCase(); - if ( - partType != partTypeStrings.FRONT_WIPER && - partType != partTypeStrings.REAR_WIPER && - partType != partTypeStrings.RAIN_DEFENSE - ) { - totalPrice += this.getTotalLineItemPrice(lineItem); - } + let lineItemsToPrice = lineItems.filter((lineItem) => { + return ( + lineItem.partType != partTypeStrings.FRONT_WIPER && + lineItem.partType != partTypeStrings.REAR_WIPER && + lineItem.partType != partTypeStrings.RAIN_DEFENSE + ); }); + let totalPrice = this.getTotalPriceOfAllLineItemsAndChildParts(lineItemsToPrice); return totalPrice; }, filterOutFees(lineItems) { @@ -86,6 +83,18 @@ export default { }); return filteredLineItems; }, + getTotalPriceOfAllLineItemsAndChildParts(lineItems) { + let totalPrice = 0; + lineItems.forEach((lineItem) => { + totalPrice += this.getTotalLineItemPrice(lineItem); + if (lineItem.childParts) { + totalPrice += this.getTotalPriceOfAllLineItemsAndChildParts( + lineItem.childParts + ); + } + }); + return totalPrice; + }, getTotalLineItemPrice(lineItem) { return lineItem.kitPrice + lineItem.laborAmount + lineItem.sellingPrice; },