SSR-1250 Pricing bug fixes
Fixed child line items not being priced Fixed repair chips having incorrect prices applied
This commit is contained in:
parent
203898871b
commit
03ba2c158c
2 changed files with 11 additions and 4 deletions
|
|
@ -2,3 +2,7 @@
|
||||||
export function getLineItemsFlattened(lineItems) {
|
export function getLineItemsFlattened(lineItems) {
|
||||||
return lineItems?.flatMap((li) => [li, ...(getLineItemsFlattened(li.childParts))]) ?? [];
|
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 bailoutMessage from '@/constants/bailoutMessage';
|
||||||
import bailoutCode from '@/constants/bailoutCode';
|
import bailoutCode from '@/constants/bailoutCode';
|
||||||
import partNumberStrings from '@/constants/part-number-strings';
|
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 { buildQueryStringParameterFromArrayOfComplexObjects, getLineItemQueryString, getTaxLineItemQueryString } from '@/helpers/querystring-helper';
|
||||||
import coverageType from '@/constants/coverage-type';
|
import coverageType from '@/constants/coverage-type';
|
||||||
import { getFeatureTogglesQueryString } from '@/helpers/experiment-helper';
|
import { getFeatureTogglesQueryString } from '@/helpers/experiment-helper';
|
||||||
|
|
@ -1085,7 +1085,7 @@ export const useMainStore = defineStore({
|
||||||
ReferralNumber: this.order.referralNumber,
|
ReferralNumber: this.order.referralNumber,
|
||||||
ReferralSequenceNumber: this.order.referralSequenceNumber,
|
ReferralSequenceNumber: this.order.referralSequenceNumber,
|
||||||
ReferralDate: `${this.order.referralDate}Z`,
|
ReferralDate: `${this.order.referralDate}Z`,
|
||||||
lineItems: availableLineItems,
|
lineItems: getLineItemsFlattened(availableLineItems),
|
||||||
ServerData: this.order.lineItems.serverData,
|
ServerData: this.order.lineItems.serverData,
|
||||||
ServiceZipCode: serviceLocation.zipCode,
|
ServiceZipCode: serviceLocation.zipCode,
|
||||||
Customer: {
|
Customer: {
|
||||||
|
|
@ -2699,16 +2699,19 @@ function convertGlassPieceNamingFromApi(glassArray) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function addPricesToLineItems(lineItems, pricingLineItems) {
|
function addPricesToLineItems(lineItems, pricingLineItems) {
|
||||||
|
const partOffset = {};
|
||||||
lineItems.forEach((lineItem) => {
|
lineItems.forEach((lineItem) => {
|
||||||
if (lineItem.childParts) {
|
if (lineItem.childParts) {
|
||||||
addPricesToLineItems(lineItem.childParts, pricingLineItems);
|
addPricesToLineItems(lineItem.childParts, pricingLineItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
const pricedLineItem = pricingLineItems.find((pricingLineItem) => pricingLineItem.partNumber === lineItem.partNumber);
|
const pricedIndex = findLineItemIndex(pricingLineItems, lineItem.partNumber, partOffset[lineItem.partNumber] ?? 0);
|
||||||
if (pricedLineItem) {
|
if (pricedIndex !== -1) {
|
||||||
|
const pricedLineItem = pricingLineItems[pricedIndex];
|
||||||
lineItem.laborAmount = pricedLineItem.laborAmount;
|
lineItem.laborAmount = pricedLineItem.laborAmount;
|
||||||
lineItem.sellingPrice = pricedLineItem.sellingPrice;
|
lineItem.sellingPrice = pricedLineItem.sellingPrice;
|
||||||
lineItem.kitPrice = pricedLineItem.kitPrice;
|
lineItem.kitPrice = pricedLineItem.kitPrice;
|
||||||
|
partOffset[lineItem.partNumber] = pricedIndex + 1;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return lineItems;
|
return lineItems;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue