From 12459ecc9701883cf241e2c68d20c59c6d00dd91 Mon Sep 17 00:00:00 2001 From: Matt Caimi Date: Wed, 15 Nov 2023 11:34:01 -0500 Subject: [PATCH 1/2] CSR-1391 combine like line items for pia --- src/layouts/payment/payment.vue | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index 633723ae8..c66730541 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -509,17 +509,26 @@ export default { } }, getPiaLineItems() { - let itemsForPia = ""; + const itemMap = new Map(); const glassParts = store.getters.order.lineItems.glassParts; const supportingItems = store.getters.order.lineItems.supportingItems; const vaps = store.getters.order.lineItems.vaps; const items = [...(glassParts ?? []), ...(supportingItems ?? []), ...(vaps ?? [])]; - for (let i = 0; i < items.length; i++) { - const amount = items[i].laborAmount + items[i].sellingPrice; - itemsForPia += items[i].partType + "|" + amount + "|1|"; + for (const item of items) { + const amount = item.laborAmount + item.sellingPrice; + const key = `${item.partType}|${amount}`; + + if (itemMap.has(key)) { + itemMap.get(key).quantity++; + } else { + itemMap.set(key, { partType: item.partType, amount, quantity: 1 }); + } } - return itemsForPia; + + return Array.from(itemMap.values()) + .map((item) => `${item.partType}|${item.amount}|${item.quantity}`) + .join("||"); }, getAmountDue() { return baseMixin.methods.getAmountDue(store.getters.order.lineItems); From e9eccce1fe01aa49b3286d144ee28f254dd2017d Mon Sep 17 00:00:00 2001 From: Matt Caimi Date: Wed, 15 Nov 2023 11:35:45 -0500 Subject: [PATCH 2/2] removed comment --- src/layouts/payment/payment.vue | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index c66730541..0cd632dc6 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -267,8 +267,6 @@ export default { "payment" ); - // TODO: Data fetching Promise declarations - const promiseResultMap = [ { resultKey: "cmsContent",