olwen_demo_app/app/controllers/admin/p_customer_sheets_controller.rb
Nicolas Bally 7b2e6811dd initial
2020-06-05 11:10:02 +02:00

181 lines
4.1 KiB
Ruby

# -*- encoding : utf-8 -*-
class Admin::PCustomerSheetsController < ApplicationController
layout "admin"
before_action :auth_admin
before_action :admin_space
def admin_space
@admin_space = "ventes"
end
def index
if !params[:column]
params[:column] = "created_at"
params[:direction] = "asc"
end
@p_customer_sheets = PCustomerSheet.all
if current_admin.p_commercial
@p_customer_sheets = @p_customer_sheets.where(:p_commercial_id => current_admin.p_commercial.id )
else
if params[:search][:p_commercial_id].to_s != ""
if params[:search][:p_commercial_id].to_s == "null"
@p_customer_sheets = @p_customer_sheets.where(:p_commercial_id => nil)
else
@p_customer_sheets = @p_customer_sheets.where(:p_commercial_id => params[:search][:p_commercial_id])
end
end
end
@p_customer_sheets = @p_customer_sheets.joins(:price_line_block)
@p_customer_sheets = sort_by_sorting(@p_customer_sheets)
respond_to do |format|
format.html{
params[:search][:per_page] = params[:search][:per_page] || 50
per_page = params[:search][:per_page]
page = (params[:page] and params[:page] != "") ? params[:page] : 1
@p_customer_sheets = @p_customer_sheets.page(page).per(per_page)
}
end
end
def show
@p_customer_sheet = PCustomerSheet.find(params[:id])
end
def new
@p_customer_sheet = PCustomerSheet.new()
@p_customer = PCustomer.find(params[:p_customer_id]) if params[:p_customer_id]
@p_customer_sheet.p_customer = @p_customer
@p_customer_sheet.price_line_block = PriceLineBlock.new()
@p_customer_sheet.price_line_block.price_lines.build
@p_customer_sheet.price_line_block.p_customer = @p_customer
end
def edit
@p_customer_sheet = PCustomerSheet.find(params[:id])
@p_customer = @p_customer_sheet.p_customer
end
def create
@p_customer_sheet = PCustomerSheet.new(params.require(:p_customer_sheet).permit!)
@p_customer = @p_customer_sheet.p_customer
if @p_customer_sheet.save
@p_customer_sheets = PCustomerSheet.order(:id).all
redirect_to admin_p_customer_sheet_path(@p_customer_sheet)
else
render action: "new"
end
end
def update
@p_customer_sheet = PCustomerSheet.find(params[:id])
@p_customer = @p_customer_sheet.p_customer
if @p_customer_sheet.update_attributes(params.require(:p_customer_sheet).permit!)
@p_customer_sheets = PCustomerSheet.order(:id).all
redirect_to admin_p_customer_sheet_path(@p_customer_sheet)
else
render action: "edit"
end
end
def destroy
@p_customer_sheet = PCustomerSheet.find(params[:id])
@p_customer_sheet.destroy
end
def generate_d
@p_customer_sheet = PCustomerSheet.find(params[:id])
@p_customer_sheet.generate_d
redirect_back(fallback_location: admin_p_customer_sheets_path)
end
def generate_fp
@p_customer_sheet = PCustomerSheet.find(params[:id])
@p_customer_sheet.generate_fp
redirect_back(fallback_location: admin_p_customer_sheets_path)
end
def generate_bc
@p_customer_sheet = PCustomerSheet.find(params[:id])
@p_customer_sheet.generate_bc
redirect_back(fallback_location: admin_p_customer_sheets_path)
end
def generate_bl
@p_customer_sheet = PCustomerSheet.find(params[:id])
@p_customer_sheet.generate_bl
redirect_back(fallback_location: admin_p_customer_sheets_path)
end
def generate_f
@p_customer_sheet = PCustomerSheet.find(params[:id])
@p_customer_sheet.generate_f
redirect_back(fallback_location: admin_p_customer_sheets_path)
end
def reject
@p_customer_sheet = PCustomerSheet.find(params[:id])
@p_customer_sheet.state = "refusée"
@p_customer_sheet.save
@p_customer_sheet.archive_now if !@p_customer_sheet.archived
redirect_back(fallback_location: admin_p_customer_sheets_path)
end
end