From f245bfe6308f96b6ffc1f6b4dd5d9fd929067f91 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Mon, 19 May 2025 09:44:13 -0400 Subject: [PATCH] CASH-715 policy vehicle change CASH-715 lineItems empty can happen when a customer goes all the way through scheduling as cash but then switches to insurance AND also switches vehicles during policy lookup. If you call shop-time-slots without parts, you get 500 errors so skip the call. --- src/store/index.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 753d8509b..4662c02e2 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -3788,8 +3788,16 @@ function supportingItemsEqual(supportingItemsA, supportingItemsB) { // check to see if we have an appointment date on the order object. // if so, make sure it's not in the past. if in the past, clear schedule info in store. // if date not in past, then call schedule service to verify appointment is still available. -async function resetScheduleIfUnavailable(context, order, pageNameToLog) { - if (!order.schedule?.date) { +async function resetScheduleIfUnavailable(context, order, pageNameToLog) { + // lineItems empty can happen when a customer goes all the way through scheduling as cash but then + // switches to insurance AND also switches vehicles during policy lookup. If you call shop-time-slots + // without parts, you get 500 errors so skip the call. + const lineItems = getArrayOfAllLineItemsAndChildParts(order.lineItems); + + if (!order.schedule?.date || lineItems.length === 0) { + console.log(new Date() + " no schedule date or lineItems. skip resetSchedule logic.") + console.log(new Date() + " schedule.schedule.date" + JSON.stringify(order.schedule)); + console.log(new Date() + " lineItems" + JSON.stringify(order.lineItems)); return; }