mmsc_app/app/controllers/admin/p_fournisseur_orders_controller.rb
Nicolas Bally a6aa1f6074 Initial
2020-05-25 11:40:11 +02:00

199 lines
3.9 KiB
Ruby

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