From c7fa3ff819c65b92fbae7fa4bfd1dbf7b50b6441 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 6 Sep 2024 13:26:48 +1000 Subject: [PATCH] Simplify order update logic --- app/services/fdc_backorderer.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/services/fdc_backorderer.rb b/app/services/fdc_backorderer.rb index 550c4fb0bf..3f636c5eb6 100644 --- a/app/services/fdc_backorderer.rb +++ b/app/services/fdc_backorderer.rb @@ -9,7 +9,13 @@ class FdcBackorderer def find_or_build_order(ofn_order) remote_order = find_open_order(ofn_order.distributor.owner) - remote_order || OrderBuilder.new_order(ofn_order, FDC_NEW_ORDER_URL) + remote_order || build_new_order(ofn_order) + end + + def build_new_order(ofn_order) + OrderBuilder.new_order(ofn_order, FDC_NEW_ORDER_URL).tap do |order| + order.saleSession = build_sale_session(ofn_order) + end end def find_open_order(user) @@ -82,17 +88,16 @@ class FdcBackorderer lines = backorder.lines offers = lines.map(&:offer) products = offers.map(&:offeredItem) + sessions = [backorder.saleSession].compact + json = DfcIo.export(backorder, *lines, *offers, *products, *sessions) api = DfcRequest.new(ofn_order.distributor.owner) if backorder.semanticId == FDC_NEW_ORDER_URL # Create order via POST: - session = build_sale_session(ofn_order) - json = DfcIo.export(backorder, *lines, *offers, *products, session) api.call(FDC_ORDERS_URL, json) else # Update existing: - json = DfcIo.export(backorder, *lines, *offers, *products) api.call(backorder.semanticId, json, method: :put) end end