foodsoft/app/controllers/order_invoices_controller_base.rb
2025-05-22 12:27:25 +02:00

44 lines
1.1 KiB
Ruby

class OrderInvoicesControllerBase < ApplicationController
before_action :authenticate_finance
def select_sepa_sequence_type
@invoice = invoice_class.find(params[:id])
return unless params[:sepa_sequence_type]
@group_order = set_related_group_order(@invoice)
@multi_group_order = set_related_group_order(@invoice)
@invoice.sepa_sequence_type = params[:sepa_sequence_type]
save_and_respond(@invoice)
end
def toggle_paid
@invoice = invoice_class.find(params[:id])
@invoice.paid = !@invoice.paid
save_and_respond(@invoice)
end
def toggle_sepa_downloaded
@invoice = invoice_class.find(params[:id])
@invoice.sepa_downloaded = !@invoice.sepa_downloaded
save_and_respond(@invoice)
end
protected
def save_and_respond(record)
if record.save!
respond_to { |format| format.js }
else
respond_to { |format| format.json { render json: record.errors, status: :unprocessable_entity } }
end
end
def invoice_class
raise NotImplementedError
end
def set_related_group_order(invoice)
raise NotImplementedError
end
end