From 64b42b128424ca39ffcc1a23f477a65f2b3ca7bc Mon Sep 17 00:00:00 2001 From: Mohamed ABDELLANI Date: Mon, 19 Feb 2024 09:26:27 +0100 Subject: [PATCH] improve all_distributors_can_invoice? --- app/reflexes/admin/orders_reflex.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/reflexes/admin/orders_reflex.rb b/app/reflexes/admin/orders_reflex.rb index a50979d2d9..fe84ebf7ea 100644 --- a/app/reflexes/admin/orders_reflex.rb +++ b/app/reflexes/admin/orders_reflex.rb @@ -33,7 +33,11 @@ module Admin def bulk_invoice(params) visible_orders = editable_orders.where(id: params[:bulk_ids]).filter(&:invoiceable?) - return unless all_distributors_can_invoice?(visible_orders) + if Spree::Config.enterprise_number_required_on_invoices? && + !all_distributors_can_invoice?(visible_orders) + render_business_number_required_error(visible_orders) + return + end cable_ready.append( selector: "#orders-index", @@ -111,14 +115,17 @@ module Admin end def all_distributors_can_invoice?(orders) - distributors = orders.map(&:distributor).uniq.reject(&:can_invoice?) + distributor_ids = orders.map(&:distributor_id) + Enterprise.where(id: distributor_ids, abn: nil).empty? + end - return true if distributors.empty? + def render_business_number_required_error(orders) + distributor_ids = orders.map(&:distributor_id) + distributor_names = Enterprise.where(id: distributor_ids, abn: nil).pluck(:name) flash[:error] = I18n.t(:must_have_valid_business_number, - enterprise_name: distributors.map(&:name).join(", ")) + enterprise_name: distributor_names.join(", ")) morph_admin_flashes - false end end end