199 lines
3.9 KiB
Ruby
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
|