This repository has been archived on 2021-11-24. You can view files and clone it, but cannot push or open issues or pull requests.
phone_app/app/controllers/admin/p_customer_sheets_controller.rb
2021-08-30 19:49:28 +02:00

286 lines
7.2 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
@p_customer_sheets = PCustomerSheet.all
if params[:search][:cc_com_counter].to_s != ""
@p_customer_sheets = @p_customer_sheets.where("p_customer_sheets.cc_com_counter LIKE ?","%#{params[:search][:cc_com_counter]}%")
end
if params[:p_customer_sheet_ids].to_s != ""
@p_customer_sheets = @p_customer_sheets.where(:id => params[:p_customer_sheet_ids])
end
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
if params[:search][:state].to_s == ""
@p_customer_sheets = @p_customer_sheets.where("state != 'Panier web'")
end
if params[:search][:state].to_s != ""
@p_customer_sheets = @p_customer_sheets.where(:state => params[:search][:state])
end
date_regex = /^(0[1-9]|[12][0-9]|3[01])[\/](0[1-9]|1[012])[\/](19|20)\d\d$/i
params[:start] = Date.today.beginning_of_year.strftime('%d/%m/%Y') if !params[:start]
if params[:start] and params[:start] =~ date_regex
#fsfds = sdfsfd
@start = Date.parse(params[:start]).beginning_of_day
params[:start]= @start.strftime('%d/%m/%Y')
else
@start = nil
end
if true
params[:stop] = Date.today.end_of_year.strftime('%d/%m/%Y') if !params[:stop]
if params[:stop].to_s != "" # and params[:stop] =~ date_regex
@stop = Date.parse(params[:stop]).end_of_day
params[:stop]= @stop.strftime('%d/%m/%Y')
else
@stop = nil
end
end
@p_customer_sheets = @p_customer_sheets.where("p_customer_sheets.created_at >= ?", @start) if @start
@p_customer_sheets = @p_customer_sheets.where("p_customer_sheets.created_at <= ?", @stop.end_of_day) if @stop
#params[:wish_date_start] = Date.today.beginning_of_year.strftime('%d/%m/%Y') if !params[:wish_date_start]
if params[:wish_date_start] and params[:wish_date_start] =~ date_regex
#fsfds = sdfsfd
@wish_date_start = Date.parse(params[:wish_date_start]).beginning_of_day
params[:wish_date_start]= @wish_date_start.strftime('%d/%m/%Y')
else
@wish_date_start = nil
end
if true
#params[:wish_date_stop] = Date.today.end_of_year.strftime('%d/%m/%Y') if !params[:wish_date_stop]
if params[:wish_date_stop].to_s != "" # and params[:wish_date_stop] =~ date_regex
@wish_date_stop = Date.parse(params[:wish_date_stop]).end_of_day
params[:wish_date_stop]= @wish_date_stop.strftime('%d/%m/%Y')
else
@wish_date_stop = nil
end
end
@p_customer_sheets = @p_customer_sheets.where("price_line_blocks.wish_date >= ?", @wish_date_start) if @wish_date_start
@p_customer_sheets = @p_customer_sheets.where("price_line_blocks.wish_date <= ?", @wish_date_stop.end_of_day) if @wish_date_stop
@p_customer_sheets = @p_customer_sheets.joins(:price_line_block)
@p_customer_sheets = sort_by_sorting(@p_customer_sheets, "p_customer_sheets.created_at DESC")
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
@all_p_customer_sheets = @p_customer_sheets
@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(:particular_bill_id => @p_customer.particular_bill_id, :particular_send_id => @p_customer.particular_send_id)
@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_sheet.admin = current_admin
if @p_customer_sheet.save
redirect_to admin_p_customer_sheet_path(@p_customer_sheet)
else
@p_customer = @p_customer_sheet.price_line_block.p_customer
render action: "new"
end
end
def update
@p_customer_sheet = PCustomerSheet.find(params[:id])
if @p_customer_sheet.update_attributes(params.require(:p_customer_sheet).permit!)
@p_customer = @p_customer_sheet.price_line_block.p_customer
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
def block_price
@p_customer_sheet = PCustomerSheet.find(params[:id])
if @p_customer_sheet.price_blocked
@p_customer_sheet.unblock_price
else
@p_customer_sheet.block_price
end
redirect_back(fallback_location: admin_p_customer_sheets_path)
end
end