Merge pull request #793 from Safelite/defect/digital/SSR-1250
SSR-1250 Pricing bug fixes
This commit is contained in:
commit
f317233313
2 changed files with 11 additions and 4 deletions
|
|
@ -2,3 +2,7 @@
|
|||
export function getLineItemsFlattened(lineItems) {
|
||||
return lineItems?.flatMap((li) => [li, ...(getLineItemsFlattened(li.childParts))]) ?? [];
|
||||
}
|
||||
|
||||
export function findLineItemIndex(lineItems, partNumber, startIndex = 0) {
|
||||
return lineItems.findIndex((li, index) => index >= startIndex && li.partNumber === partNumber);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import partTypeStrings from '@/constants/part-type-strings';
|
|||
import bailoutMessage from '@/constants/bailoutMessage';
|
||||
import bailoutCode from '@/constants/bailoutCode';
|
||||
import partNumberStrings from '@/constants/part-number-strings';
|
||||
import { getLineItemsFlattened } from '@/helpers/line-items-helper';
|
||||
import { findLineItemIndex, getLineItemsFlattened } from '@/helpers/line-items-helper';
|
||||
import { buildQueryStringParameterFromArrayOfComplexObjects, getLineItemQueryString, getTaxLineItemQueryString } from '@/helpers/querystring-helper';
|
||||
import coverageType from '@/constants/coverage-type';
|
||||
import { getFeatureTogglesQueryString } from '@/helpers/experiment-helper';
|
||||
|
|
@ -1085,7 +1085,7 @@ export const useMainStore = defineStore({
|
|||
ReferralNumber: this.order.referralNumber,
|
||||
ReferralSequenceNumber: this.order.referralSequenceNumber,
|
||||
ReferralDate: `${this.order.referralDate}Z`,
|
||||
lineItems: availableLineItems,
|
||||
lineItems: getLineItemsFlattened(availableLineItems),
|
||||
ServerData: this.order.lineItems.serverData,
|
||||
ServiceZipCode: serviceLocation.zipCode,
|
||||
Customer: {
|
||||
|
|
@ -2699,16 +2699,19 @@ function convertGlassPieceNamingFromApi(glassArray) {
|
|||
}
|
||||
|
||||
function addPricesToLineItems(lineItems, pricingLineItems) {
|
||||
const partOffset = {};
|
||||
lineItems.forEach((lineItem) => {
|
||||
if (lineItem.childParts) {
|
||||
addPricesToLineItems(lineItem.childParts, pricingLineItems);
|
||||
}
|
||||
|
||||
const pricedLineItem = pricingLineItems.find((pricingLineItem) => pricingLineItem.partNumber === lineItem.partNumber);
|
||||
if (pricedLineItem) {
|
||||
const pricedIndex = findLineItemIndex(pricingLineItems, lineItem.partNumber, partOffset[lineItem.partNumber] ?? 0);
|
||||
if (pricedIndex !== -1) {
|
||||
const pricedLineItem = pricingLineItems[pricedIndex];
|
||||
lineItem.laborAmount = pricedLineItem.laborAmount;
|
||||
lineItem.sellingPrice = pricedLineItem.sellingPrice;
|
||||
lineItem.kitPrice = pricedLineItem.kitPrice;
|
||||
partOffset[lineItem.partNumber] = pricedIndex + 1;
|
||||
}
|
||||
});
|
||||
return lineItems;
|
||||
|
|
|
|||
Loading…
Reference in a new issue