From f1049b24a0080708b71d15d3eeee787bca9bc794 Mon Sep 17 00:00:00 2001 From: Nicolas Bally Date: Mon, 4 Feb 2019 09:42:06 +0100 Subject: [PATCH] suite --- app/models/p_product.rb | 4 +- app/views/admin/p_sheet_lines/_form.html.haml | 81 +++++++++++------- .../p_sheet_lines/_p_sheet_lines.html.haml | 82 ++++++++++++++++--- .../_print_p_sheet_lines.html.haml | 52 ++++++------ 4 files changed, 152 insertions(+), 67 deletions(-) diff --git a/app/models/p_product.rb b/app/models/p_product.rb index 2ddcb98..7640b59 100644 --- a/app/models/p_product.rb +++ b/app/models/p_product.rb @@ -131,9 +131,9 @@ class PProduct < ActiveRecord::Base else - if !(p_product_stock = self.product_stocks.where(:p_color => nil, :p_size_id => nil).first) + if !(p_product_stock = self.p_product_stocks.where(:p_color => nil, :p_size_id => nil).first) - p_product_stock = self.product_stocks.create(:stock_th_ok => 0, :stock_ok => 0) + p_product_stock = self.p_product_stocks.create(:stock_th_ok => 0, :stock_ok => 0) ids_new_saveds << p_product_stock.id end diff --git a/app/views/admin/p_sheet_lines/_form.html.haml b/app/views/admin/p_sheet_lines/_form.html.haml index 8b9e446..4c5a8f7 100755 --- a/app/views/admin/p_sheet_lines/_form.html.haml +++ b/app/views/admin/p_sheet_lines/_form.html.haml @@ -63,43 +63,64 @@ -p_product = form.object.p_product if form.object.p_product %table.table.order_table - %tr - %th + -if p_product and p_product.p_sizes.count > 0 + %tr + %th - -if form.object.p_product + -if form.object.p_product - -p_product.p_sizes.order("p_sizes.position ASC, p_sizes.id ASC").all.each do |p_size| - %th.size_th - =p_size.name - %th.price_td Qte - %th.price_td PU - %th.price_td - Prix tot. - -if form.object.p_product - -p_product.p_colors.all.each do |p_color| - %tr.color_line - %td=p_color.name - -p_product.p_sizes.order("p_sizes.position ASC, p_sizes.id ASC").all.each do |p_size| - %td - -ps = p_product.p_product_stocks.where(:p_size_id => p_size.id, :p_color_id => p_color.id).first - - -if ps - -p_sheet_line_line = form.object.p_sheet_line_lines.where(:p_product_stock_id => ps.id).first - -if p_sheet_line_line - =form.fields_for(:p_sheet_line_lines, p_sheet_line_line) do |builder| - =builder.hidden_field :p_product_stock_id,:label => false, :as => :string - =builder.input :qte,:label => false, :as => :string, :input_html => {:class => "qte"} - - %td.qte_tot.price_td - %td.price.price_td{:data => {:price => form.object.price}} - =number_to_currency form.object.price - - %td.price_color_tot.price_td + %th.size_th + =p_size.name + %th.price_td Qte + %th.price_td PU + %th.price_td + Prix tot. + -if form.object.p_product + -p_product.p_colors.all.each do |p_color| + %tr.color_line + %td=p_color.name + -p_product.p_sizes.order("p_sizes.position ASC, p_sizes.id ASC").all.each do |p_size| + %td + -ps = p_product.p_product_stocks.where(:p_size_id => p_size.id, :p_color_id => p_color.id).first + + -if ps + -p_sheet_line_line = form.object.p_sheet_line_lines.where(:p_product_stock_id => ps.id).first + -if p_sheet_line_line + =form.fields_for(:p_sheet_line_lines, p_sheet_line_line) do |builder| + =builder.hidden_field :p_product_stock_id,:label => false, :as => :string + =builder.input :qte,:label => false, :as => :string, :input_html => {:class => "qte"} + + %td.qte_tot.price_td + %td.price.price_td{:data => {:price => form.object.price}} + =number_to_currency form.object.price + + %td.price_color_tot.price_td + -elsif form.object.p_product + %tr.color_line + %td + + -p_product.p_product_stocks.each do |ps| + %td + + + -if ps + -p_sheet_line_line = form.object.p_sheet_line_lines.where(:p_product_stock_id => ps.id).first + -if p_sheet_line_line + =form.fields_for(:p_sheet_line_lines, p_sheet_line_line) do |builder| + =builder.hidden_field :p_product_stock_id,:label => false, :as => :string + =builder.input :qte,:label => false, :as => :string, :input_html => {:class => "qte"} + + %td.qte_tot.price_td + %td.price.price_td{:data => {:price => form.object.price}} + =number_to_currency form.object.price + + %td.price_color_tot.price_td + -if form.object.p_product %table{:style => "width:100%"} diff --git a/app/views/admin/p_sheet_lines/_p_sheet_lines.html.haml b/app/views/admin/p_sheet_lines/_p_sheet_lines.html.haml index 3d6c79b..95192e3 100644 --- a/app/views/admin/p_sheet_lines/_p_sheet_lines.html.haml +++ b/app/views/admin/p_sheet_lines/_p_sheet_lines.html.haml @@ -54,28 +54,62 @@ %td{:colspan => 4} - -sheet_line.p_product.p_colors.all.each do |pc| + -if sheet_line.p_product.p_colors.count > 0 + -sheet_line.p_product.p_colors.all.each do |pc| + -qte_tot = 0.0 + %tr + %td + %td{:colspan => 1, :style => "text-align:right;"} + %table.size_table + + + + + %tr + %td + =pc.name + + -sheet_line.p_product.p_sizes.order("p_sizes.position ASC, p_sizes.id ASC").all.each do |psize| + + %td.p_size_td + -psl = p_sheet_line_lines.joins(:p_product_stock).where(:p_product_stocks => {:p_size_id => psize.id, :p_color_id => pc.id} ).first + -if psl + =psl.qte + -qte_tot += psl.qte + + + %td{} + =qte_tot.to_i + %td + =number_to_currency sheet_line.price.to_f + %td + =number_to_currency sheet_line.price.to_f * qte_tot.to_i + + %td + =number_to_currency sheet_line.price.to_f * (sheet_line.tva.to_f+1) * qte_tot.to_i + + -elsif sheet_line.p_product.p_sizes.count > 0 -qte_tot = 0.0 %tr %td %td{:colspan => 1, :style => "text-align:right;"} %table.size_table - - - + + + %tr %td - =pc.name - + + -sheet_line.p_product.p_sizes.order("p_sizes.position ASC, p_sizes.id ASC").all.each do |psize| - + %td.p_size_td - -psl = p_sheet_line_lines.joins(:p_product_stock).where(:p_product_stocks => {:p_size_id => psize.id, :p_color_id => pc.id} ).first + -psl = p_sheet_line_lines.joins(:p_product_stock).where(:p_product_stocks => {:p_size_id => psize.id} ).first -if psl =psl.qte -qte_tot += psl.qte - + %td{} =qte_tot.to_i @@ -83,11 +117,39 @@ =number_to_currency sheet_line.price.to_f %td =number_to_currency sheet_line.price.to_f * qte_tot.to_i + + %td + =number_to_currency sheet_line.price.to_f * (sheet_line.tva.to_f+1) * qte_tot.to_i + + -else + %tr + -qte_tot = 0.0 + %td + %td{:colspan => 1, :style => "text-align:right;"} + %table.size_table + + + + %tr + %td + + + -p_sheet_line_lines.joins(:p_product_stock).each do |psl| + -qte_tot += psl.qte + + + %td{} + =qte_tot.to_i + %td + =number_to_currency sheet_line.price.to_f + %td + =number_to_currency sheet_line.price.to_f * qte_tot.to_i + %td =number_to_currency sheet_line.price.to_f * (sheet_line.tva.to_f+1) * qte_tot.to_i - + diff --git a/app/views/admin/p_sheet_lines/_print_p_sheet_lines.html.haml b/app/views/admin/p_sheet_lines/_print_p_sheet_lines.html.haml index 5281b5b..e88bebd 100644 --- a/app/views/admin/p_sheet_lines/_print_p_sheet_lines.html.haml +++ b/app/views/admin/p_sheet_lines/_print_p_sheet_lines.html.haml @@ -42,44 +42,46 @@ Réf client : =sheet_line.cust_ref - - -p_sheet_line_lines.group(:p_size_id).joins(:p_size).order("p_sizes.position ASC, p_sizes.id ASC").uniq.each do |psize| - %th.p_size_td=psize.p_size.name + -if p_sheet_line_lines.group(:p_size_id).joins(:p_size).order("p_sizes.position ASC, p_sizes.id ASC").uniq.length > 0 + -p_sheet_line_lines.group(:p_size_id).joins(:p_size).order("p_sizes.position ASC, p_sizes.id ASC").uniq.each do |psize| + %th.p_size_td=psize.p_size.name %td{:colspan => 4} -p_sheet_line_lines.group(:p_color_id).uniq.each do |pc| -qte_tot = 0.0 - %tr - %td{:colspan => 3, :style => "text-align:right;"} - %table.size_table + -if pc.p_color + %tr + %td{:colspan => 3, :style => "text-align:right;"} + %table.size_table - - %tr - %td - =pc.p_color.name - -p_sheet_line_lines.group(:p_size_id).joins(:p_size).order("p_sizes.position ASC, p_sizes.id ASC").uniq.each do |psize| + %tr + %td + =pc.p_color.name + - %td.p_size_td - -psl = p_sheet_line_lines.where(:p_size_id => psize.p_size_id, :p_color_id => pc.p_color_id ).first - -if psl - =psl.qte - -qte_tot += psl.qte + -p_sheet_line_lines.group(:p_size_id).joins(:p_size).order("p_sizes.position ASC, p_sizes.id ASC").uniq.each do |psize| + + %td.p_size_td + -psl = p_sheet_line_lines.where(:p_size_id => psize.p_size_id, :p_color_id => pc.p_color_id ).first + -if psl + =psl.qte + -qte_tot += psl.qte - %td{} - =qte_tot.to_i - -if @p_document and @p_document.label != "Bon de livraison" - %td - =number_to_currency sheet_line.price.to_f - %td - =number_to_currency sheet_line.price.to_f * qte_tot.to_i + %td{} + =qte_tot.to_i + -if @p_document and @p_document.label != "Bon de livraison" + %td + =number_to_currency sheet_line.price.to_f + %td + =number_to_currency sheet_line.price.to_f * qte_tot.to_i - %td - =number_to_currency sheet_line.price.to_f * (sheet_line.tva.to_f+1) * qte_tot.to_i + %td + =number_to_currency sheet_line.price.to_f * (sheet_line.tva.to_f+1) * qte_tot.to_i %tr.tr_sheet_line_head