diff --git a/src/store/index.js b/src/store/index.js index 5243ed6d1..265db10d0 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1416,9 +1416,8 @@ export const actions = { }, // Price order actions async priceOrderItems(context, availableLineItems) { - const availableLineItemsFormattedForRequest = availableLineItems - .map((lineItem) => `&LineItems=${lineItem.partNumber}`) - .join(""); + const availableLineItemsFormattedForRequest = + getLineItemQueryStringForPricing(availableLineItems); const vehicle = context.getters.order.vehicle; let queryString = `ParentAccountNumber=${applicationConfig.CASH_ACCOUNT_NUMBER}` + @@ -1598,6 +1597,9 @@ function addPricesToLineItems(lineItems, pricingLineItems) { let lineItemIndex = pricingLineItems.findIndex( (pricingLineItem) => pricingLineItem.partNumber === lineItem.partNumber ); + if (lineItem.childParts) { + addPricesToLineItems(lineItem.childParts, pricingLineItems); + } let pricedLineItem = pricingLineItems.splice(lineItemIndex, 1)[0]; lineItem.laborAmount = pricedLineItem.laborAmount; lineItem.sellingPrice = pricedLineItem.sellingPrice; @@ -1605,3 +1607,14 @@ function addPricesToLineItems(lineItems, pricingLineItems) { }); return lineItems; } +function getLineItemQueryStringForPricing(lineItems) { + return lineItems + .map((lineItem) => { + let queryStringSnippet = `&LineItems=${lineItem.partNumber}`; + if (lineItem.childParts) { + queryStringSnippet += getLineItemQueryStringForPricing(lineItem.childParts); + } + return queryStringSnippet; + }) + .join(""); +}