This commit is contained in:
Nicolas Bally 2018-03-26 00:25:20 +02:00
parent 5238a52533
commit f9d656b0cb
3 changed files with 136 additions and 102 deletions

View File

@ -338,56 +338,58 @@ class Admin::ProductOrdersController < ApplicationController
end
if @product_order.bl_number?
if false
@temp_file = "#{Rails.root}/pdf/bl/BL_#{@product_order.id}_temp.pdf"
@final_file = "#{Rails.root}/pdf/bl/BL_#{@product_order.id}.pdf"
@temp_file = "#{Rails.root}/pdf/bl/BL_#{@product_order.id}_temp.pdf"
@final_file = "#{Rails.root}/pdf/bl/BL_#{@product_order.id}.pdf"
view = ActionView::Base.new(Rails.root.join('app/views'))
view.class.include ApplicationHelper
view.class.include Rails.application.routes.url_helpers
pdf = view.render(
:pdf => "#{@product_order.id}",
:template => "admin/product_orders/bl.html.haml",
:locals => {:@product_order => @product_order})
# then save to a file
pdf = WickedPdf.new.pdf_from_string(pdf, :margin => { top: 0, # default 10 (mm)
bottom: 0,
left: 0,
right: 0 })
save_path = @temp_file
File.open(save_path, 'wb') do |file|
file << pdf
end
view = ActionView::Base.new(Rails.root.join('app/views'))
view.class.include ApplicationHelper
view.class.include Rails.application.routes.url_helpers
pdf = view.render(
:pdf => "#{@product_order.id}",
:template => "admin/product_orders/bl.html.haml",
:locals => {:@product_order => @product_order})
require 'posix/spawn'
# then save to a file
pdf = WickedPdf.new.pdf_from_string(pdf, :margin => { top: 0, # default 10 (mm)
bottom: 0,
left: 0,
right: 0 })
::POSIX::Spawn::Child.new 'pdftk', @temp_file, 'background', Rails.root.join('pdf_stamp', 'bl.pdf').to_s, 'output', @final_file
save_path = @temp_file
File.open(save_path, 'wb') do |file|
file << pdf
#pdftk /Users/nico/Desktop/Sanstitre4.pdf background /Users/nico/Dev/negos_app/pdf_stamp/bl.pdf output sortie.pdf
@data_to_send = File.open( @final_file).read
send_data @data_to_send, :filename =>"#{@product_order.bl_number}.pdf" , :type => 'application/pdf',:disposition => (params[:inline] ? 'inline' : "attachment")
else
render :layout => false
end
require 'posix/spawn'
::POSIX::Spawn::Child.new 'pdftk', @temp_file, 'background', Rails.root.join('pdf_stamp', 'bl.pdf').to_s, 'output', @final_file
#pdftk /Users/nico/Desktop/Sanstitre4.pdf background /Users/nico/Dev/negos_app/pdf_stamp/bl.pdf output sortie.pdf
@data_to_send = File.open( @final_file).read
send_data @data_to_send, :filename =>"#{@product_order.bl_number}.pdf" , :type => 'application/pdf',:disposition => (params[:inline] ? 'inline' : "attachment")
else
render :inline => "Aucun BL disponnible"
end

View File

@ -200,7 +200,7 @@ class ProductOrder < ActiveRecord::Base
last_number = 0
last_number = ProductOrder.where("paid_at is not null").where(:bill_year => self.bill_year ).order("bill_index DESC").first.bill_index if ProductOrder.where("paid_at is not null").where(:bill_year => self.bill_year ).first
last_number = ProductOrder.where("paid_at is not null").where(:bill_year => self.bill_year, :reseaux_id => self.reseaux_id ).order("bill_index DESC").first.bill_index if ProductOrder.where("paid_at is not null").where(:bill_year => self.bill_year, :reseaux_id => self.reseaux_id ).first
self.bill_index = last_number+1
self.bill_number = "NG"+self.bill_year.to_s+('%04d' % self.bill_index)
self.save(:validate => false)
@ -252,7 +252,7 @@ class ProductOrder < ActiveRecord::Base
last_number = 0
last_number = ProductOrder.where("bl_number is not null").where(:bl_year => self.bl_year ).order("bl_index DESC").first.bl_index if ProductOrder.where("bl_number is not null").where(:bl_year => self.bl_year ).first
last_number = ProductOrder.where("bl_number is not null").where(:bl_year => self.bl_year, :reseaux_id => self.reseaux_id ).order("bl_index DESC").first.bl_index if ProductOrder.where("bl_number is not null").where(:bl_year => self.bl_year, :reseaux_id => self.reseaux_id ).first
self.bl_index = last_number+1
self.bl_number = self.bl_ap+self.bl_year.to_s+('%05d' % self.bl_index)
self.save(:validate => false)

View File

@ -98,66 +98,72 @@
#main
%div{:style => "position:absolute;top:4.4cm;right:1cm;text-align:right;"}
Bon de commande n°
-if @product_order.reseaux_id == 19
Commande achats n°
-else
Bon de commande n°
=@product_order.bl_number
%br
=l @product_order.created_at, :format => :date
%div{:style => "height:350px;"}
-if @product_order.reseaux_id != 19
%div{:style => "height:350px;"}
-else
%div{:style => "height:140px;"}
-if @product_order.reseaux_id != 19
%table.table{:style => "position:absolute;right:1cm;top:220px"}
%tr
%td{:style => "width:5.5cm;border:0"}
%h3 Adresse de facturation
%table.table{:style => "position:absolute;right:1cm;top:220px"}
%tr
%td{:style => "width:5.5cm;border:0"}
%h3 Adresse de facturation
%strong=@product_order.particular_bill.organisation
%br
=@product_order.particular_bill.firstname
=@product_order.particular_bill.name
%br
=@product_order.particular_bill.address_2
-if @product_order.particular_bill.address_3?
%strong=@product_order.particular_bill.organisation
%br
=@product_order.particular_bill.address_3
%br
=@product_order.particular_bill.cp
=@product_order.particular_bill.firstname
=@product_order.particular_bill.city
%br
=@product_order.particular_bill.country
%br
%br
=@product_order.particular_bill.tel
%td{:style => "width:5.5cm;border:0"}
%h3 Adresse de livraison
%strong=@product_order.particular_bill.organisation
%br
=@product_order.particular_send.firstname
=@product_order.particular_send.name
%br
=@product_order.particular_send.address_2
-if @product_order.particular_send.address_3?
=@product_order.particular_bill.name
%br
=@product_order.particular_send.address_3
%br
=@product_order.particular_send.cp
=@product_order.particular_bill.address_2
=@product_order.particular_send.city
%br
=@product_order.particular_send.country
%br
%br
=@product_order.particular_bill.tel
-if @product_order.particular_bill.address_3?
%br
=@product_order.particular_bill.address_3
%br
=@product_order.particular_bill.cp
=@product_order.particular_bill.city
%br
=@product_order.particular_bill.country
%br
%br
=@product_order.particular_bill.tel
%td{:style => "width:5.5cm;border:0"}
%h3 Adresse de livraison
%strong=@product_order.particular_bill.organisation
%br
=@product_order.particular_send.firstname
=@product_order.particular_send.name
%br
=@product_order.particular_send.address_2
-if @product_order.particular_send.address_3?
%br
=@product_order.particular_send.address_3
%br
=@product_order.particular_send.cp
=@product_order.particular_send.city
%br
=@product_order.particular_send.country
%br
%br
=@product_order.particular_bill.tel
%table.table{:style => "width:100%;margin:1cm 0;"}
%tr
@ -178,6 +184,30 @@
%td
=simple_format product_order_product.archived_product.lang(:fr).bl_title
-if @product_order.reseaux_id == 19
%table.sub_products{:style => "width:100%;margin-bottom:20px;margin-top:5px;"}
%tr
%th Référence
%th Nom
%th Nbr
%th Prix HT
-product_order_product.sub_products.each do |sub_product|
%tr
%td
=sub_product.reference
%td
=sub_product.name
%td
=sub_product.qte_tot
%td
=number_to_currency sub_product.price_tot_with_qte
=# product_order_product.archived_product_size.name if product_order_product.archived_product_size
@ -186,6 +216,7 @@
%td{:style => "text-align:right;"}
= number_to_currency(product_order_product.archived_product.final_price_ht.to_f, locale: :fr) if product_order_product.archived_product
%td{:style => "text-align:right;"}
=product_order_product.qty
%td{:style => "text-align:right;"}
@ -198,32 +229,33 @@
%tr
%td{:colspan => 3, :rowspan => 3, :style => "border:0;text-align:left;"}
%p
%br
Mode de paiment :
-if @product_order.product_order_payment_type_ok_id == 3
CB
-elsif @product_order.product_order_payment_type_ok_id == 1
Chèque
-elsif @product_order.product_order_payment_type_ok_id == 2
Virement
-elsif @product_order.product_order_payment_type_ok_id == 4
Mandat administratif
%br
%br
Franco de port pour le Pays Voironnais
%td Total HT :
%td{:style => "text-align:right;"}= number_to_currency(@product_order.archived_total_ht, locale: :fr)
-if @product_order.reseaux_id != 19
%p
%br
Mode de paiment :
-if @product_order.product_order_payment_type_ok_id == 3
CB
-elsif @product_order.product_order_payment_type_ok_id == 1
Chèque
-elsif @product_order.product_order_payment_type_ok_id == 2
Virement
-elsif @product_order.product_order_payment_type_ok_id == 4
Mandat administratif
%br
%br
Franco de port pour le Pays Voironnais
%td Total HT :
%td{:style => "text-align:right;"}= number_to_currency(@product_order.archived_total_ht, locale: :fr)
-if @product_order.reseaux_id != 19
%tr
%tr
%td TVA :
%td{:style => "text-align:right;"}= number_to_currency(@product_order.archived_total_tva, locale: :fr)
%td TVA :
%td{:style => "text-align:right;"}= number_to_currency(@product_order.archived_total_tva, locale: :fr)
%tr
%tr
%td Total TTC :
%td{:style => "text-align:right;"}= number_to_currency(@product_order.archived_total_ttc, locale: :fr)
%td Total TTC :
%td{:style => "text-align:right;"}= number_to_currency(@product_order.archived_total_ttc, locale: :fr)
@ -231,7 +263,7 @@
%br
%br
<!---
.fdp