diff --git a/app/reflexes/admin/orders_reflex.rb b/app/reflexes/admin/orders_reflex.rb index 8e5f43eb65..ea07b3e9a5 100644 --- a/app/reflexes/admin/orders_reflex.rb +++ b/app/reflexes/admin/orders_reflex.rb @@ -44,8 +44,13 @@ module Admin html: render(partial: "spree/admin/orders/bulk/invoice_modal") ).broadcast + # Preserve order of bulk_ids. + # The ids are supplied in the sequence of the orders screen and may be + # sorted, for example by last name of the customer. + visible_order_ids = params[:bulk_ids].map(&:to_i) & visible_orders.pluck(:id) + BulkInvoiceJob.perform_later( - visible_orders.pluck(:id), + visible_order_ids, "tmp/invoices/#{Time.zone.now.to_i}-#{SecureRandom.hex(2)}.pdf", channel: SessionChannel.for_request(request), current_user_id: current_user.id diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index cbdfe44330..01aa5d5802 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -710,7 +710,6 @@ describe ' order4.name.gsub(/.* /, ""), order5.name.gsub(/.* /, "")].sort } before do - pending("#12340") page.find('a', text: "NAME").click # orders alphabetically (asc) sleep(0.5) # waits for column sorting page.find('#selectAll').click @@ -723,7 +722,6 @@ describe ' order4.name.gsub(/.* /, ""), order5.name.gsub(/.* /, "")].sort.reverse } before do - pending("#12340") page.find('a', text: "NAME").click # orders alphabetically (asc) sleep(0.5) # waits for column sorting page.find('a', text: "NAME").click # orders alphabetically (desc)