# -*- encoding : utf-8 -*-

class Admin::PFournisseurDocsController < ApplicationController
  layout "admin"
  before_action :auth_admin

  before_action :admin_space
  
  def admin_space
    @admin_space = "stocks"
  end
  
  def index
    @p_fournisseur_docs = PFournisseurDoc.order("date DESC").all

  end

  def show
    @p_fournisseur_doc = PFournisseurDoc.find(params[:id])

  end

  def new
    
    @last_fournisseur_doc = PFournisseurDoc.where(:id => params[:p_fournisseur_doc_id]).first
    @p_fournisseur_doc = PFournisseurDoc.new(:p_fournisseur_order_id => params[:p_fournisseur_order_id], :p_fournisseur_doc_type_id => params[:p_fournisseur_doc_type_id])
    @p_fournisseur_order = @p_fournisseur_doc.p_fournisseur_order if @p_fournisseur_doc.p_fournisseur_order
    
    
    if @p_fournisseur_order
      @p_fournisseur = @p_fournisseur_order.p_fournisseur 
    elsif 
      @p_fournisseur = @last_fournisseur_doc.p_fournisseur 
    end
      
      
    @p_fournisseur_doc.p_fournisseur = @p_fournisseur if @p_fournisseur
    
    
    
    
    if @p_fournisseur_order
      @p_fournisseur_doc.price_line_block = @p_fournisseur_order.price_line_block.dup
      
      @p_fournisseur_order.price_line_block.price_lines.each do |pl|
        @p_fournisseur_doc.price_line_block.price_lines << pl.dup
      end
    elsif @last_fournisseur_doc
      @p_fournisseur_doc.price_line_block = @last_fournisseur_doc.price_line_block.dup
      @last_fournisseur_doc.price_line_block.price_lines.each do |pl|
        @p_fournisseur_doc.price_line_block.price_lines << pl.dup
      end
      
      
    else
      @p_fournisseur_doc.price_line_block = PriceLineBlock.new
    end
    
    if @last_fournisseur_doc
      @p_fournisseur_doc.price_line_block.ct_payment_comptant = @last_fournisseur_doc.price_line_block.ct_payment_comptant
      @p_fournisseur_doc.price_line_block.p_payment_type_id = @last_fournisseur_doc.price_line_block.p_payment_type_id
      @p_fournisseur_doc.price_line_block.ct_acompte = @last_fournisseur_doc.price_line_block.ct_acompte
      @p_fournisseur_doc.price_line_block.ct_acompte_percent = @last_fournisseur_doc.price_line_block.ct_acompte_percent
      @p_fournisseur_doc.price_line_block.ct_payment_delais = @last_fournisseur_doc.price_line_block.ct_payment_delais
      @p_fournisseur_doc.price_line_block.ct_payment_month_end = @last_fournisseur_doc.price_line_block.ct_payment_month_end
    
    
    elsif @p_fournisseur 
      @p_fournisseur_doc.price_line_block.ct_payment_comptant = @p_fournisseur.payment_comptant
      @p_fournisseur_doc.price_line_block.p_payment_type_id = @p_fournisseur.p_payment_type_id
      @p_fournisseur_doc.price_line_block.ct_acompte = @p_fournisseur.acompte
      @p_fournisseur_doc.price_line_block.ct_acompte_percent = @p_fournisseur.acompte_percent
      @p_fournisseur_doc.price_line_block.ct_payment_delais = @p_fournisseur.payment_delais
      @p_fournisseur_doc.price_line_block.ct_payment_month_end = @p_fournisseur.payment_month_end
      
    end
    
    
  end

  def edit
    @p_fournisseur_doc = PFournisseurDoc.find(params[:id])
    @p_fournisseur = @p_fournisseur_doc.p_fournisseur
  end

  def create
    @p_fournisseur_doc = PFournisseurDoc.new(params.require(:p_fournisseur_doc).permit!)

    if @p_fournisseur_doc.save
      if @p_fournisseur_doc.p_fournisseur_order
        redirect_to [:admin, @p_fournisseur_doc.p_fournisseur_order]
      else
        redirect_to [:admin, @p_fournisseur_doc]
      end
    else
      render action: "new"
 
    end

  end


  def update
    @p_fournisseur_doc = PFournisseurDoc.find(params[:id])


    if @p_fournisseur_doc.update_attributes(params.require(:p_fournisseur_doc).permit!)
      if @p_fournisseur_doc.p_fournisseur_order
        redirect_to [:admin, @p_fournisseur_doc.p_fournisseur_order]
      else
        redirect_to [:admin, @p_fournisseur_doc]
      end
      
    else
     render action: "edit" 
      
    end
      
  end


  def destroy
    @p_fournisseur_doc = PFournisseurDoc.find(params[:id])
    @p_fournisseur_doc.destroy
    
  end
end
