56 lines
2.2 KiB
Ruby
56 lines
2.2 KiB
Ruby
class OrdergroupInvoicesController < ApplicationController
|
|
include Concerns::SendGroupOrderInvoicePdf
|
|
before_action :authenticate_finance
|
|
# download create and new ordergroupinvoice
|
|
# has multiple group orders and one ordergroup
|
|
|
|
def new
|
|
@ordergroup_invoice = OrdergroupInvoice.new
|
|
@ordergroup_invoice.payment_method = FoodsoftConfig[:ordergroup_invoices][:payment_method] || I18n.t('activerecord.attributes.ordergroup_invoice.payment_method')
|
|
@ordergroup_invoice.sepa_sequence_type = params[:sepa_sequence_type]
|
|
end
|
|
|
|
def show
|
|
@ordergroup_invoice = OrdergroupInvoice.find(params[:id])
|
|
raise RecordInvalid unless FoodsoftConfig[:contact][:tax_number]
|
|
|
|
respond_to do |format|
|
|
format.html do
|
|
send_group_order_invoice_pdf @ordergroup_invoice if FoodsoftConfig[:contact][:tax_number]
|
|
end
|
|
format.pdf do
|
|
send_group_order_invoice_pdf @ordergroup_invoice if FoodsoftConfig[:contact][:tax_number]
|
|
end
|
|
end
|
|
rescue ActiveRecord::RecordInvalid => e
|
|
redirect_back fallback_location: root_path, notice: 'Something went wrong', alert: I18n.t('errors.general_msg', msg: "#{e} " + I18n.t('errors.check_tax_number'))
|
|
end
|
|
|
|
def create
|
|
gos = GroupOrder.where(id: params[:group_order_ids])
|
|
begin
|
|
OrdergroupInvoice.create!(group_order_ids: gos)
|
|
respond_to do |format|
|
|
format.js
|
|
end
|
|
rescue StandardError => e
|
|
redirect_back fallback_location: root_path, notice: 'Something went wrong', :alert => I18n.t('errors.general_msg', :msg => e)
|
|
end
|
|
end
|
|
|
|
def create_multiple
|
|
invoice_date = params[:ordergroup_invoce][:invoice_date]
|
|
multi_order_id = params[:ordergroup_invoce][:multi_order_id]
|
|
@multi_order = MultiOrder.find(multi_order_id)
|
|
multi_group_orders = MultiGroupOrder.where("multi_order_id = ?", multi_order_id)
|
|
mutli_group_orders.each do |multi_group_order|
|
|
ordergroup_invoice = OrdergroupInvoice.find_or_create_by!(multi_group_order: multi_group_order)
|
|
ordergroup_invoice.invoice_date = invoice_date
|
|
ordergroup_invoice.invoice_number = ordergroup_invoice.generate_invoice_number(OrdergroupInvoice, 1)
|
|
ordergroup_invoice.save!
|
|
end
|
|
respond_to do |format|
|
|
format.js
|
|
end
|
|
end
|
|
end
|