foodsoft/app/controllers/suppliers_controller.rb

77 lines
2.1 KiB
Ruby
Raw Permalink Normal View History

2009-01-06 11:49:19 +01:00
class SuppliersController < ApplicationController
before_action :authenticate_suppliers, except: %i[index list]
2009-01-18 17:42:51 +01:00
helper :deliveries
2009-01-06 11:49:19 +01:00
def index
@suppliers = Supplier.undeleted.order(:name)
2009-01-18 17:42:51 +01:00
@deliveries = Delivery.recent
2009-01-06 11:49:19 +01:00
end
def show
@supplier = Supplier.find(params[:id])
2009-01-18 17:42:51 +01:00
@deliveries = @supplier.deliveries.recent
2014-02-24 14:33:05 +01:00
@orders = @supplier.orders.recent
2009-01-06 11:49:19 +01:00
end
# new supplier
# if shared_supplier_id is given, the new supplier will filled whith its attributes
def new
if params[:shared_supplier_id]
shared_supplier = SharedSupplier.find(params[:shared_supplier_id])
@supplier = shared_supplier.suppliers.new(shared_supplier.autofill_attributes)
2009-01-06 11:49:19 +01:00
else
@supplier = Supplier.new
end
end
def edit
@supplier = Supplier.find(params[:id])
end
def create
@supplier = Supplier.new(supplier_params)
@supplier.supplier_category ||= SupplierCategory.first
2009-01-06 11:49:19 +01:00
if @supplier.save
2013-02-08 00:31:09 +01:00
flash[:notice] = I18n.t('suppliers.create.notice')
redirect_to suppliers_path
2009-01-06 11:49:19 +01:00
else
render action: 'new'
end
2009-01-06 11:49:19 +01:00
end
def update
@supplier = Supplier.find(params[:id])
if @supplier.update(supplier_params)
2013-02-08 00:31:09 +01:00
flash[:notice] = I18n.t('suppliers.update.notice')
redirect_to @supplier
2009-01-06 11:49:19 +01:00
else
render action: 'edit'
2009-01-06 11:49:19 +01:00
end
end
def destroy
@supplier = Supplier.find(params[:id])
@supplier.mark_as_deleted
2013-02-08 00:31:09 +01:00
flash[:notice] = I18n.t('suppliers.destroy.notice')
redirect_to suppliers_path
rescue StandardError => e
flash[:error] = I18n.t('errors.general_msg', msg: e.message)
redirect_to @supplier
end
2009-01-06 11:49:19 +01:00
# gives a list with all available shared_suppliers
def shared_suppliers
2017-03-04 12:10:34 +01:00
@shared_suppliers = SharedSupplier.all
2009-01-06 11:49:19 +01:00
end
private
def supplier_params
params
.require(:supplier)
.permit(:name, :address, :phone, :phone2, :fax, :email, :url, :contact_person, :customer_number,
:iban, :custom_fields, :delivery_days, :order_howto, :note, :supplier_category_id,
:shared_supplier_id, :min_order_quantity, :shared_sync_method)
end
2009-01-06 11:49:19 +01:00
end