lockaz_app/app/controllers/admin/stock_blocks_controller.rb
Nicolas Bally f20fe482c6 initial
2020-04-06 10:38:07 +02:00

107 lines
2.4 KiB
Ruby

# -*- encoding : utf-8 -*-
class Admin::StockBlocksController < ApplicationController
layout "admin"
before_action :auth_admin
before_action :admin_space
def admin_space
@admin_space = "default"
end
def index
@stock_blocks = StockBlock.order(:name).all
end
def show
@stock_block = StockBlock.find(params[:id])
end
def new
@stock_block = StockBlock.new(:stockable_type => params[:stockable_type],:stockable_id => params[:stockable_id])
@stockable = @stock_block.stockable
if @stockable and (defined? @stockable.movement_type) and @stockable.movement_type == "cred"
@stock_block.movement_type = "deb"
else
@stock_block.movement_type = "cred"
end
if @stockable and (defined? @stockable.accounting)
@stock_block.accounting = @stockable.accounting
end
if @stockable and (defined? @stockable.price_line_block) and @stockable.price_line_block and @stockable.price_line_block.movement_type == "cred"
@stock_block.movement_type = "deb"
else
@stock_block.movement_type = "cred"
end
if @stockable and (defined? @stockable.price_line_block) and @stockable.price_line_block
@stock_block.accounting = @stockable.price_line_block.accounting
end
if @stockable and @stockable.price_line_block
@stockable.price_line_block.price_lines.each do |pl|
if pl.p_product_ref and pl.p_product_ref.stocked
qte = pl.qte.to_f - @stockable.stock_lines.where(:p_product_ref_id => pl.p_product_ref_id).sum(:qte)
@stock_block.stock_lines << StockLine.new(:p_product_ref_id => pl.p_product_ref_id , :qte => qte, :ct_price_u_ht => pl.price_u_ht)
end
end
end
end
def edit
@stock_block = StockBlock.find(params[:id])
end
def create
@stock_block = StockBlock.new(params.require(:stock_block).permit!)
@stock_block.admin = current_admin
if @stock_block.save
if @stock_block.stockable
redirect_to [:admin, @stock_block.stockable]
end
else
render action: "new"
end
end
def update
@stock_block = StockBlock.find(params[:id])
if @stock_block.update_attributes(params.require(:stock_block).permit!)
else
render action: "edit"
end
end
def destroy
@stock_block = StockBlock.find(params[:id])
@stock_block.destroy
end
end