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

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

  before_action :admin_space
  
  def admin_space
    @admin_space = "stocks"
  end
  
  def import
    if false
      
      @file = params[:csv_file]
    
      require 'csv'    

      csv_text = File.read("#{Rails.root}/import_csv/fournisseurs.csv") #.force_encoding('ISO-8859-1')
      @csv = CSV.parse(csv_text, :headers => true, :col_sep => ";")
    end
    
  end
  
  
  def index
    @p_fournisseurs = PFournisseur.includes(:p_payment_type)

    params[:search] = params[:search] || {}
    
    
    params[:search][:enabled] = "Oui" if !params[:search][:enabled]
    
    boolean_search @p_fournisseurs ,:enabled
    boolean_search @p_fournisseurs ,:payment_comptant
    
    
    text_search @p_fournisseurs ,:code
    
    collection_search @p_fournisseurs ,:p_payment_type_id
    
    
    
    
    
    
    if params[:search][:name].to_s != ""
      @p_fournisseurs = @p_fournisseurs.joins(:particulars).where("particulars.organisation LIKE ? or particulars.name LIKE ? or particulars.firstname LIKE ?","%#{params[:search][:name]}%", "%#{params[:search][:name]}%", "%#{params[:search][:name]}%")
    end

    @p_fournisseurs = sort_by_sorting(@p_fournisseurs, "created_at DESC")

    respond_to do |format|
      format.html{
      
        params[:search][:per_page] = params[:search][:per_page] || 100
    		per_page = params[:search][:per_page]
    		page = (params[:page] and params[:page] != "") ? params[:page] : 1 
    		@p_fournisseurs = @p_fournisseurs.page(page).per(per_page)
      
      }
    end
    
    
    
  end
  
  
  
  

  def show
    @p_fournisseur = PFournisseur.find(params[:id])

  end

  def new
    
    
		@p_fournisseur = PFournisseur.new
    
    
    

  end

 

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

  def create
    @p_fournisseur = PFournisseur.new(params.require(:p_fournisseur).permit!)


    if @p_fournisseur.save
     #@p_fournisseurs = PFournisseur.order(:name).all
     redirect_to admin_p_fournisseur_path(@p_fournisseur)
    else
      render action: "new"
 
    end

  end


  def update
    @p_fournisseur = PFournisseur.find(params[:id])


    if @p_fournisseur.update_attributes(params.require(:p_fournisseur).permit!)
      
       @p_fournisseurs = PFournisseur.order(:name).all
       
       redirect_to admin_p_fournisseur_path(@p_fournisseur)
       
    else
     render action: "edit" 
      
    end
      
  end


  def destroy
    @p_fournisseur = PFournisseur.find(params[:id])
    @p_fournisseur.destroy
    
    
  end
  
  def autocomplete
    
    search = params[:search]
    @p_fournisseurs = PFournisseur.joins(:particular).where("code LIKE ? or particulars.organisation LIKE ? or particulars.name LIKE ? or particulars.firstname LIKE ?", "%#{search}%", "%#{search}%", "%#{search}%", "%#{search}%")
    
    @p_fournisseurs = @p_fournisseurs.distinct.limit(50)
    
    
    
    
    respond_to do |format|
        format.json { render json: @p_fournisseurs.map{|a| {:id => a.id, :member_label => a.member_label}} }
    end
  end
  
  
  
end
