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