mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Revert "[Invoices] Notify if any order cannot be invoiced on bulk invoice sending"
This commit is contained in:
@@ -33,9 +33,19 @@ module Admin
|
||||
end
|
||||
|
||||
def bulk_invoice(params)
|
||||
visible_orders = bulk_load_orders(params)
|
||||
visible_orders = editable_orders.invoiceable.where(id: params[:bulk_ids])
|
||||
|
||||
return if notify_if_abn_related_issue(visible_orders)
|
||||
if Spree::Config.enterprise_number_required_on_invoices?
|
||||
distributors_without_abn = Enterprise.where(
|
||||
id: visible_orders.select(:distributor_id),
|
||||
abn: nil,
|
||||
)
|
||||
|
||||
if distributors_without_abn.exists?
|
||||
render_business_number_required_error(distributors_without_abn)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
cable_ready.append(
|
||||
selector: "#orders-index",
|
||||
@@ -84,15 +94,15 @@ module Admin
|
||||
end
|
||||
|
||||
def send_invoices(params)
|
||||
orders = bulk_load_orders(params)
|
||||
count = 0
|
||||
editable_orders.invoiceable.where(id: params[:bulk_ids]).find_each do |o|
|
||||
next unless o.distributor.can_invoice?
|
||||
|
||||
return if notify_if_abn_related_issue(orders)
|
||||
|
||||
orders.each do |o|
|
||||
Spree::OrderMailer.invoice_email(o.id, current_user_id: current_user.id).deliver_later
|
||||
count += 1
|
||||
end
|
||||
|
||||
success("admin.send_invoice_feedback", orders.size)
|
||||
success("admin.send_invoice_feedback", count)
|
||||
end
|
||||
|
||||
private
|
||||
@@ -124,30 +134,5 @@ module Admin
|
||||
enterprise_name: distributor_names.join(", "))
|
||||
morph_admin_flashes
|
||||
end
|
||||
|
||||
def bulk_load_orders(params)
|
||||
editable_orders.invoiceable.where(id: params[:bulk_ids])
|
||||
end
|
||||
|
||||
def notify_if_abn_related_issue(orders)
|
||||
return false unless abn_required?
|
||||
|
||||
distributors = distributors_without_abn(orders)
|
||||
return false if distributors.empty?
|
||||
|
||||
render_business_number_required_error(distributors)
|
||||
true
|
||||
end
|
||||
|
||||
def abn_required?
|
||||
Spree::Config.enterprise_number_required_on_invoices?
|
||||
end
|
||||
|
||||
def distributors_without_abn(orders)
|
||||
Enterprise.where(
|
||||
id: orders.select(:distributor_id),
|
||||
abn: [nil, ""],
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -363,22 +363,9 @@ RSpec.describe '
|
||||
} must have a valid ABN before invoices can be used."
|
||||
end
|
||||
end
|
||||
context "ABN is null" do
|
||||
it_behaves_like "should not print the invoice"
|
||||
context "with legal invoices feature", feature: :invoices do
|
||||
it_behaves_like "should not print the invoice"
|
||||
context "with legal invoices feature", feature: :invoices do
|
||||
it_behaves_like "should not print the invoice"
|
||||
end
|
||||
end
|
||||
context "ABN is empty string" do
|
||||
before do
|
||||
order4.distributor.update(abn: "123456789")
|
||||
order5.distributor.update(abn: "")
|
||||
end
|
||||
|
||||
it_behaves_like "should not print the invoice"
|
||||
context "with legal invoices feature", feature: :invoices do
|
||||
it_behaves_like "should not print the invoice"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user