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

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

  before_action :admin_space
  
  
  
  def export
    
    
    @p_fournisseur_orders = PFournisseurOrder.joins(:p_product_brut_stocks).where(:p_product_brut_stocks => {:ok => true}).uniq
    
    
    @file = ""
    
  
    
 
    
    @headers = [
      "ID",
      "Nom",
      "Code",
      "Compte comptable",
      "Date",
      "Ref",
      "Produit",
      "Quantité",
      "PU HT",
      "Total HT",
      "Total TVA",
      "Total TTC"
     
      
    ]
  
    
    
    
    
    @csv = CSV.generate(:headers => true, :col_sep => ";") do |csv|
      csv << @headers

      
      @p_fournisseur_orders.each do |p_fournisseur_order|
        p_fournisseur_order.p_product_brut_stocks.where(:ok => true).each do |p_product_brut_stocks|
       
          line = []
          line << p_fournisseur_order.id
          line << p_fournisseur_order.p_fournisseur.name
          line << p_fournisseur_order.p_fournisseur.code
          line << p_fournisseur_order.p_fournisseur.compta_account
          
          line << p_fournisseur_order.enter_date.strftime('%d/%m/%Y')
          line << p_fournisseur_order.ref
          
          line << p_product_brut_stocks.p_brut_product.name
          
          
          line << (p_product_brut_stocks.ok_qte.to_i.to_f == p_product_brut_stocks.ok_qte ? p_product_brut_stocks.ok_qte.to_i : p_product_brut_stocks.ok_qte)
          line << ('%.2f' % p_product_brut_stocks.ok_price ).to_s.sub(".",",")
          
          line << ('%.2f' % p_product_brut_stocks.tot_ok ).to_s.sub(".",",")
          line << ('%.2f' % p_product_brut_stocks.tva_ok ).to_s.sub(".",",")
          line << ('%.2f' % p_product_brut_stocks.tot_ttc_ok ).to_s.sub(".",",")
          
      
          
          csv << line
        end
        
      end
    end


      
    
    
    @data_to_send = @csv.encode('iso-8859-1', :undef => :replace, :replace => '')
    
    file_path = Rails.root.join("pdf", "csv", "ssdfds.csv")
      
    
    
    File.open(file_path, "w+") do |f|
      f.write(@data_to_send)
    end
    
    
    
    
    
    respond_to do |format|
          format.html{
            
       
    
            require 'csv'    

            csv_text = File.read(file_path).encode('utf-8')
            @csv = CSV.parse(csv_text, :headers => true, :col_sep => ";")
            
          }
          
          
          
          format.csv { 
            
            
            
            send_file file_path, :filename => "export-csv.csv", :type => 'text/csv; charset=iso-8859-1; header=present' 
        
          }
    end
    
    
    
    
    
    
  end
  
  
  
  
  
  def admin_space
    @admin_space = "stocks"
  end

  def index
    @p_fournisseur_orders = PFournisseurOrder.order("enter_date DESC").all

   
  end

  def show
    @p_fournisseur_order = PFournisseurOrder.find(params[:id])

  end

  def new
    
    
		@p_fournisseur_order = PFournisseurOrder.new(:enter_date => Time.now)
    

  end

 

  def edit
  
    
    @p_fournisseur_order = PFournisseurOrder.find(params[:id])
  end

  def create
    @p_fournisseur_order = PFournisseurOrder.new(params.require(:p_fournisseur_order).permit!)


    if @p_fournisseur_order.save
     @p_fournisseur_orders = PFournisseurOrder.order("enter_date DESC").all
      redirect_to admin_p_fournisseur_orders_path
    else
      render action: "new"
 
    end

  end


  def update
    @p_fournisseur_order = PFournisseurOrder.find(params[:id])


    if @p_fournisseur_order.update_attributes(params.require(:p_fournisseur_order).permit!)
      
       @p_fournisseur_orders = PFournisseurOrder.order("enter_date DESC").all
       redirect_to admin_p_fournisseur_orders_path
    else
     render action: "edit" 
      
    end
      
  end


  def destroy
    @p_fournisseur_order = PFournisseurOrder.find(params[:id])
    @p_fournisseur_order.destroy
    
    
  end
end
