# -*- 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