diff --git a/app/controllers/admin/p_customer_sheets_controller.rb b/app/controllers/admin/p_customer_sheets_controller.rb index 806e13f..74d7ee7 100644 --- a/app/controllers/admin/p_customer_sheets_controller.rb +++ b/app/controllers/admin/p_customer_sheets_controller.rb @@ -236,6 +236,10 @@ class Admin::PCustomerSheetsController < ApplicationController def generate_bc @p_customer_sheet = PCustomerSheet.find(params[:id]) + @p_customer_sheet.price_line_block.price_lines.joins(:p_articles).where("p_articles.tva_type_id = ?", 1) + @p_customer_sheet.price_line_block.price_lines.joins(:p_articles).where("p_articles.tva_type_id = ?", 2) + + @p_customer_sheet.generate_bc redirect_back(fallback_location: admin_p_customer_sheets_path) diff --git a/app/models/p_article.rb b/app/models/p_article.rb index 4d69fd9..9cadeb6 100644 --- a/app/models/p_article.rb +++ b/app/models/p_article.rb @@ -1,6 +1,7 @@ class PArticle < ApplicationRecord belongs_to :p_grade belongs_to :p_product_ref + belongs_to :tva_type has_one :p_product, through: :p_product_ref has_one :p_product_color, through: :p_product_ref has_one :s_brand, through: :p_product_ref diff --git a/app/models/p_customer_sheet.rb b/app/models/p_customer_sheet.rb index 76b4e3d..19358f0 100644 --- a/app/models/p_customer_sheet.rb +++ b/app/models/p_customer_sheet.rb @@ -264,28 +264,73 @@ class PCustomerSheet < ApplicationRecord self.save end + def generate_doc(label, state) self.archive_now if !self.archived self.block_price if !self.price_blocked + self.price_line_block.price_lines.joins(:p_articles).where("p_articles.tva_type_id = ?", 1) - price_document = self.price_documents.new(:price_document_type => PriceDocumentType.find_by_label(label), :date => Date.today) - price_document.p_customer = self.p_customer - price_document.price_line_block = self.price_line_block.dup - price_document.tva_type = self.price_line_block.price_document.tva_type - price_document.price_line_block.ac_block_type = nil + if !self.price_line_block.price_lines.joins(:p_articles).where("p_articles.tva_type_id = ?", 1).empty? + price_document_standard_tva = self.price_documents.new(:price_document_type => PriceDocumentType.find_by_label(label), :date => Date.today, :tva_type_id => 1) + price_document_standard_tva.p_customer = self.p_customer + price_document_standard_tva.price_line_block = self.price_line_block.dup + price_document_standard_tva.price_line_block.ac_block_type = nil + + self.price_line_block.price_lines.each do |pl| + if !pl.p_articles.where(tva_type_id: 1).empty? + new_pl = pl.dup + new_pl.ac_block_type = nil + pl.p_articles.where(tva_type_id: 1).each { |p_article| new_pl.p_articles << p_article } + price_document_standard_tva.price_line_block.price_lines << new_pl + end + end + end - self.price_line_block.price_lines.each do |pl| - new_pl = pl.dup - new_pl.ac_block_type = nil - pl.p_articles.each { |p_article| new_pl.p_articles << p_article } - price_document.price_line_block.price_lines << new_pl - end - - if price_document.save - price_document.archive_now + if price_document_standard_tva.save + price_document_standard_tva.archive_now self.state = state self.save end + + if !self.price_line_block.price_lines.joins(:p_articles).where("p_articles.tva_type_id = ?", 2).empty? + price_document_sur_marge_tva = self.price_documents.new(:price_document_type => PriceDocumentType.find_by_label(label), :date => Date.today, :tva_type_id => 2) + price_document_sur_marge_tva.p_customer = self.p_customer + price_document_sur_marge_tva.price_line_block = self.price_line_block.dup + price_document_sur_marge_tva.price_line_block.ac_block_type = nil + + self.price_line_block.price_lines.each do |pl| + if !pl.p_articles.where(tva_type_id: 2).empty? + new_pl = pl.dup + new_pl.ac_block_type = nil + pl.p_articles.where(tva_type_id: 2).each { |p_article| new_pl.p_articles << p_article } + price_document_sur_marge_tva.price_line_block.price_lines << new_pl + end + end + end + + if price_document_sur_marge_tva.save + price_document_sur_marge_tva.archive_now + self.state = state + self.save + end + + # price_document = self.price_documents.new(:price_document_type => PriceDocumentType.find_by_label(label), :date => Date.today) + # price_document.p_customer = self.p_customer + # price_document.price_line_block = self.price_line_block.dup + # price_document.price_line_block.ac_block_type = nil + + # self.price_line_block.price_lines.each do |pl| + # new_pl = pl.dup + # new_pl.ac_block_type = nil + # pl.p_articles.each { |p_article| new_pl.p_articles << p_article } + # price_document.price_line_block.price_lines << new_pl + # end + + # if price_document.save + # price_document.archive_now + # self.state = state + # self.save + # end end def generate_d diff --git a/app/models/price_document.rb b/app/models/price_document.rb index f6ee432..4f47d8e 100644 --- a/app/models/price_document.rb +++ b/app/models/price_document.rb @@ -343,7 +343,7 @@ class PriceDocument < ApplicationRecord include Rails.application.routes.url_helpers - QI_DYNAMICS = %w(solded_nbr_days solded_at cost_ht marge_ht weight_tot accounting_zone_id accounting_zone_name tot_amount_ht tot_amount_ttc tot_amount_tva label header footer payment_days payment_delais payment_month_end payment_end_at to_paid_ht to_paid_ttc to_paid_tva solded tva_type_name) + QI_DYNAMICS = %w(solded_nbr_days solded_at cost_ht marge_ht weight_tot accounting_zone_id accounting_zone_name tot_amount_ht tot_amount_ttc tot_amount_tva label header footer payment_days payment_delais payment_month_end payment_end_at to_paid_ht to_paid_ttc to_paid_tva solded)# tva_type_name) def reset_for_update @@ -644,7 +644,7 @@ class PriceDocument < ApplicationRecord if self.label != "Bon de livraison" #::POSIX::Spawn::Child.new 'pdftk', @final_file,"#{Rails.root}/pdf_stamp/cgv.pdf", 'cat', 'output', @final_file2 #AJOUT CGV #return @final_file2 - File.rename(@final_file, @final_file2) + File.rename(@final_file, @final_file2) if File.exist?(@final_file) File.delete(@temp_file) if File.exist?(@temp_file) return @final_file2 else diff --git a/app/views/admin/p_articles/_form.html.haml b/app/views/admin/p_articles/_form.html.haml index 36c987f..4ba3f64 100644 --- a/app/views/admin/p_articles/_form.html.haml +++ b/app/views/admin/p_articles/_form.html.haml @@ -16,9 +16,13 @@ .actions=f.submit "sauvegarder", :class => "btn btn-primary" - elsif params[:controller] == "admin/price_lines" = form.inputs do + + =@price_line.price_line_block.price_lineable.tva_type_id -if params[:p_product_ref_id] = form.input :p_product_ref_id, as: :select, collection: PProductRef.all.distinct.pluck(:cc_name, :id), :label => form.object.label_for(:p_product_ref), input_html: {disabled: true} = form.hidden_field :p_product_ref_id, value: form.object.p_product_ref_id + = form.hidden_field :tva_type_id, value: @price_line.price_line_block.price_lineable.tva_type_id + -else = form.input :p_product_ref_id, as: :select, collection: PProductRef.all.distinct.pluck(:cc_name, :id), :label => form.object.label_for(:p_product_ref), input_html: {disabled: true} = form.hidden_field :p_product_ref_id, value: form.object.p_product_ref_id @@ -29,4 +33,3 @@ = form.semantic_fields_for :p_article_serial_nums do |form| =render :partial => "admin/p_article_serial_nums/form", :locals => {:form => form} %p= link_to_add_fields "Ajouter un numéro de série", form, :p_article_serial_nums, {:class => "btn btn-primary"} - diff --git a/app/views/admin/price_documents/print.html.haml b/app/views/admin/price_documents/print.html.haml index 30df4e2..3bf0627 100644 --- a/app/views/admin/price_documents/print.html.haml +++ b/app/views/admin/price_documents/print.html.haml @@ -52,6 +52,11 @@ } -price_line_block = @price_document.price_line_block +-p_custommer_sheet = @price_document.ref_element + + + + %body %table %thead @@ -89,20 +94,16 @@ %td{style: "line-height: 3px;"} =l @price_document.date, :format => :date %td - %p{style: "line-height: 3px;"} Josef Falser - %p{style: "line-height: 3px;"} zona produttiva Bodner 2 - %p{style: "line-height: 3px;"} - 39053 Prato Isarco, IT + %p -if @price_document.label == "Bon de livraison" -@bl = true -particular_doc = price_line_block.particular_send -else -particular_doc = price_line_block.particular_bill - -if particular_doc.organisation? - %strong=particular_doc.organisation - -if particular_doc.com_name? - %br - =particular_doc.com_name + -# -if particular_doc.organisation? + -# %strong=particular_doc.organisation + -# -if particular_doc.com_name? + -# %br=particular_doc.com_name %br -if particular_doc.firstname? or particular_doc.name? =particular_doc.civilite @@ -115,9 +116,7 @@ =particular_doc.address_3 %br =particular_doc.cp - =particular_doc.city - %br - =particular_doc.country + ="#{particular_doc.city}, #{particular_doc.country}" %table{style: "margin-top: 40px"} @@ -128,419 +127,467 @@ %th.border-left.border-top{:style => "width: 45%"} DESCRIPTION %th.border-left.border-top{:style => "width: 15%"} PRIX UNITAIRE %th.border-left.border-top.border-right{:style => "width: 15%"} TOTAL - %tbody - %tr.line-height-100 - %td.border-left.border-top 1 - %td.border-left.border-top SMARTPHONE RECONDITIONNE - %td.border-left.border-top Samsung Galaxy Xcover 4 | SIM unique | schwarz - %td.border-left.border-top 147,00 € - %td.border-left.border-top.border-right 147,00 € - %tr.line-height-100 - %td.border-left.border-top - %td.border-left.border-top - %td.border-left.border-top IMEI : Non renseigne - %td.border-left.border-top - %td.border-left.border-top.border-right - %tr.line-height-20 - %td.border-top - %td.border-top - %td.border-top - %td.border-left.border-top Total HT - %td.border-top.border-left.border-right.bg-grey - %strong 147,00 € - %tr.line-height-20 - %td - %td - %td - %td.border-left Taux T.V.A. - %td.border-left.border-right.bg-grey - %strong TVA/MARGE - %tr.line-height-20 - %td - %td - %td - %td.border-left.border-bottom - %strong Total TTC - %td.border-left.border-right.border-bottom.bg-grey - %strong 147,00 € - - - - - .clear - %br - %br - %br - %br - %br - %br - %br - %br - %br - %br - %br - %br - %br - %br - %br - %br - %br - %br - - %table.table{:style => "width:auto;"} - %tr - %td N° Client - %td - Date de commande - %td Représentant - -if @price_document.label != "Avoir" - %td - Semaine de livraison souhaitée - %td - Nombre de colis - -elsif pd = PriceDocument.where(:id => @price_document.facture_id).first - %td - Réf. facture - - %tr - %td=@price_document.p_customer.code if @price_document.p_customer - %td - =l price_line_block.creation_date if price_line_block.creation_date - %td - =@price_document.p_commercial.long_name if @price_document.p_commercial - -if @price_document.label != "Avoir" - %td - =l price_line_block.wish_date, :format => "%V" - (du - =l price_line_block.wish_date.beginning_of_week - au - =l price_line_block.wish_date.end_of_week - ) - - %td - =price_line_block.nbr_ship - -elsif pd - %td - =pd.d_number - - - - -if price_line_block.customer_ref? - %p - Référence commande personnalisée : - =price_line_block.customer_ref - - -if particular_doc - -range_part = price_line_block.particular_send - -range_part = range_part.particular_ref if range_part.particular_ref - - -oras = [] - -OpenRange.where(:id => (OpenRange.all.ids - range_part.open_ranges.ids)).each do |ora| - -oras << ora.name - - -if oras.size > 0 - - %p - Jour(s) de fermeture : - =oras.join(", ") - - - %br - - %table.table - %thead - %tr - %th Référence - %th Désignation - %th Qté [U] - -if true or @price_document.label != "Avoir" - %th Qté [Kg] - -if !@bl - -if @price_document.label != "Avoir" - %th P.U. HT [Kg] - %th TVA - -if @price_document.label != "Avoir" - -if !price_line_block.remise_ecole_ok - %th - Remise - %br - Marché - %br - annuel - - -if price_line_block.ca_remise_qte_ok - %th - Remise - %br - Qté livrée - %br - ="/cde" - - -if price_line_block.remise_pre_order_ok - %th - Remise - %br - commande - %br - anticipée - -if price_line_block.discount_comptant - %th - Remise - %br - comptant - - -if price_line_block.remise_enrobage_ok - %th - Remise - %br - enrobage - -else - %th - Remise - %br - école - - -if @price_document.label != "Avoir" - %th - P.U. Net - -else - %th - P.U. - %th - Montant HT %tbody -price_line_block.price_lines.each do |price_line| - %tr + %tr.line-height-100 + %td.border-left.border-top=price_line.id + %td.border-left.border-top=price_line.ref + %td.border-left.border-top=price_line.title + -if @price_document.label != "Avoir" + %td.border-left.border-top=number_to_currency price_line.ca_price_u_kg_net_ht + -else + %td.border-left.border-top=number_to_currency price_line.ca_price_u_ht + %td.border-left.border-top.border-right=number_to_currency price_line.tot_amount_ht + -sn_array = [] + -imei_array = [] + -price_line.p_articles.each do |p_article| + -sn_array << p_article.p_article_serial_nums.map{ |sn| sn.value if sn.p_serial_num_type == PSerialNumType.find_by(name: "SN")}.reject(&:nil?) + -imei_array << p_article.p_article_serial_nums.map{ |imei| imei.value if imei.p_serial_num_type == PSerialNumType.find_by(name: "IMEI")}.reject(&:nil?) + + %tr.line-height-100 + %td.border-left.border-top + %td.border-left.border-top + %td.border-left.border-top + %p{style: "line-height: 20px;"}="SN : " + sn_array.join(', ') + %p{style: "line-height: 20px;"}="IMEI : " + imei_array.join(', ') + %td.border-left.border-top + %td.border-left.border-top.border-right + + + -if price_line_block.price_lineable.tva_type_id == 1 + -# %tr.line-height-20 + -# %td + -# %td + -# %td + -# %td.border-left Total HT Net + -# %td.border-left.border-right.bg-grey + -# %strong=number_to_currency price_line_block.tot_amount_ht + %tr.line-height-20 + %td.border-top + %td.border-top + %td.border-top + %td.border-left.border-top Montant HT + %td.border-top.border-left.border-right.bg-grey + %strong=number_to_currency price_line_block.tot_lines_ht + %tr.line-height-20 %td - =price_line.ref - -if price_line.p_product_ref and price_line.p_product_ref.assembled and @bl - %br - Contient les références primaires suivantes : - -price_line.p_product_ref.p_product_assembleds.all.each do |ppa| - %br - - %strong - =ppa.qte - X - =ppa.p_product_ref.p_product.code - %td - =price_line.title - %td.numeraire - =price_line.qte - -if true or @price_document.label != "Avoir" - %td.numeraire - =price_line.weight_qte.to_f.round(3) + %td + %td.border-left Montant T.V.A. + %td.border-left.border-right.bg-grey + %strong=number_to_currency price_line_block.tot_amount_tva + %tr.line-height-20 + %td + %td + %td + %td.border-left Taux T.V.A. + %td.border-left.border-right.bg-grey 20% + %tr.line-height-20 + %td + %td + %td + %td.border-left.border-bottom + %strong Total TTC + %td.border-left.border-right.border-bottom.bg-grey + %strong=number_to_currency price_line_block.tot_amount_ttc + + + -if price_line_block.price_lineable.tva_type_id == 2 + %tr.line-height-20 + %td.border-top + %td.border-top + %td.border-top + %td.border-left.border-top Total HT + %td.border-top.border-left.border-right.bg-grey + %strong=number_to_currency price_line_block.tot_lines_ht + -# %tr.line-height-20 + -# %td + -# %td + -# %td + -# %td.border-left Total HT Net + -# %td.border-left.border-right.bg-grey + -# %strong=number_to_currency price_line_block.tot_amount_ht + %tr.line-height-20 + %td + %td + %td + %td.border-left Taux T.V.A. + %td.border-left.border-right.bg-grey + %strong TVA/MARGE + -# %tr.line-height-20 + -# %td + -# %td + -# %td + -# %td.border-left Total T.V.A. + -# %td.border-left.border-right.bg-grey + -# %strong=number_to_currency price_line_block.tot_amount_tva + %tr.line-height-20 + %td + %td + %td + %td.border-left.border-bottom + %strong Total TTC + %td.border-left.border-right.border-bottom.bg-grey + %strong=number_to_currency price_line_block.tot_amount_ttc + + + + + + -# %table.table{:style => "width:auto;"} + -# %tr + -# %td N° Client + -# %td + -# Date de commande + -# %td Représentant + -# -if @price_document.label != "Avoir" + -# %td + -# Semaine de livraison souhaitée + -# %td + -# Nombre de colis + -# -elsif pd = PriceDocument.where(:id => @price_document.facture_id).first + -# %td + -# Réf. facture + + -# %tr + -# %td=@price_document.p_customer.code if @price_document.p_customer + -# %td + -# =l price_line_block.creation_date if price_line_block.creation_date + -# %td + -# =@price_document.p_commercial.long_name if @price_document.p_commercial + -# -if @price_document.label != "Avoir" + -# %td + -# =l price_line_block.wish_date, :format => "%V" + -# (du + -# =l price_line_block.wish_date.beginning_of_week + -# au + -# =l price_line_block.wish_date.end_of_week + -# ) + + -# %td + -# =price_line_block.nbr_ship + -# -elsif pd + -# %td + -# =pd.d_number + + + + -# -if price_line_block.customer_ref? + -# %p + -# Référence commande personnalisée : + -# =price_line_block.customer_ref + + -# -if particular_doc + -# -range_part = price_line_block.particular_send + -# -range_part = range_part.particular_ref if range_part.particular_ref + + -# -oras = [] + -# -OpenRange.where(:id => (OpenRange.all.ids - range_part.open_ranges.ids)).each do |ora| + -# -oras << ora.name + + -# -if oras.size > 0 + + -# %p + -# Jour(s) de fermeture : + -# =oras.join(", ") - -if !@bl - -if @price_document.label != "Avoir" - %td.numeraire - =number_to_currency price_line.ca_price_u_kg_ht - %td.numeraire - =price_line.tva_account_value.to_s+"%" - -if @price_document.label != "Avoir" - -if !price_line_block.remise_ecole_ok - %td.numeraire - =price_line.discount_market_percent.to_s+"%" - %br - =number_to_currency price_line.ca_discount_market_ht + -# %br + + -# %table.table + -# %thead + -# %tr + -# %th Référence + -# %th Désignation + -# %th Qté [U] + -# -if true or @price_document.label != "Avoir" + -# %th Qté [Kg] + -# -if !@bl + -# -if @price_document.label != "Avoir" + -# %th P.U. HT [Kg] + -# %th TVA + -# -if @price_document.label != "Avoir" + -# -if !price_line_block.remise_ecole_ok + -# %th + -# Remise + -# %br + -# Marché + -# %br + -# annuel + + -# -if price_line_block.ca_remise_qte_ok + -# %th + -# Remise + -# %br + -# Qté livrée + -# %br + -# ="/cde" + + -# -if price_line_block.remise_pre_order_ok + -# %th + -# Remise + -# %br + -# commande + -# %br + -# anticipée + -# -if price_line_block.discount_comptant + -# %th + -# Remise + -# %br + -# comptant + + -# -if price_line_block.remise_enrobage_ok + -# %th + -# Remise + -# %br + -# enrobage + -# -else + -# %th + -# Remise + -# %br + -# école + + -# -if @price_document.label != "Avoir" + -# %th + -# P.U. Net + -# -else + -# %th + -# P.U. + -# %th + -# Montant HT + -# %tbody + -# -price_line_block.price_lines.each do |price_line| + -# %tr + -# %td + -# =price_line.ref + -# -if price_line.p_product_ref and price_line.p_product_ref.assembled and @bl + -# %br + -# Contient les références primaires suivantes : + -# -price_line.p_product_ref.p_product_assembleds.all.each do |ppa| + -# %br + + -# %strong + -# =ppa.qte + -# X + -# =ppa.p_product_ref.p_product.code + + -# %td + -# =price_line.title + -# %td.numeraire + -# =price_line.qte + -# -if true or @price_document.label != "Avoir" + -# %td.numeraire + -# =price_line.weight_qte.to_f.round(3) + + -# -if !@bl + -# -if @price_document.label != "Avoir" + -# %td.numeraire + -# =number_to_currency price_line.ca_price_u_kg_ht + -# %td.numeraire + -# =price_line.tva_account_value.to_s+"%" + + -# -if @price_document.label != "Avoir" + -# -if !price_line_block.remise_ecole_ok + -# %td.numeraire + -# =price_line.discount_market_percent.to_s+"%" + -# %br + -# =number_to_currency price_line.ca_discount_market_ht - -if price_line_block.ca_remise_qte_ok - %td.numeraire - =price_line.discount_qte_percent.to_s+"%" - %br - =number_to_currency price_line.ca_discount_qte_ht - -if price_line_block.remise_pre_order_ok - %td.numeraire + -# -if price_line_block.ca_remise_qte_ok + -# %td.numeraire + -# =price_line.discount_qte_percent.to_s+"%" + -# %br + -# =number_to_currency price_line.ca_discount_qte_ht + -# -if price_line_block.remise_pre_order_ok + -# %td.numeraire - =price_line.discount_delay_percent.to_s+"%" - %br - =number_to_currency price_line.ca_discount_delay_ht + -# =price_line.discount_delay_percent.to_s+"%" + -# %br + -# =number_to_currency price_line.ca_discount_delay_ht - -if price_line_block.discount_comptant - %td.numeraire - =price_line.discount_comptant_percent.to_s+"%" - %br - =number_to_currency price_line.ca_discount_comptant_ht + -# -if price_line_block.discount_comptant + -# %td.numeraire + -# =price_line.discount_comptant_percent.to_s+"%" + -# %br + -# =number_to_currency price_line.ca_discount_comptant_ht - -if price_line_block.remise_enrobage_ok - %td.numeraire - =price_line.discount_enrobage_percent.to_s+"%" - %br - =number_to_currency price_line.ca_discount_enrobage_ht - -else - %td.numeraire - =price_line.discount_ecole_percent.to_s+"%" - %br - =number_to_currency price_line.ca_discount_ecole_ht + -# -if price_line_block.remise_enrobage_ok + -# %td.numeraire + -# =price_line.discount_enrobage_percent.to_s+"%" + -# %br + -# =number_to_currency price_line.ca_discount_enrobage_ht + -# -else + -# %td.numeraire + -# =price_line.discount_ecole_percent.to_s+"%" + -# %br + -# =number_to_currency price_line.ca_discount_ecole_ht - -if @price_document.label != "Avoir" - %td.numeraire + -# -if @price_document.label != "Avoir" + -# %td.numeraire - =number_to_currency price_line.ca_price_u_kg_net_ht - -else - %td.numeraire - =number_to_currency price_line.ca_price_u_ht + -# =number_to_currency price_line.ca_price_u_kg_net_ht + -# -else + -# %td.numeraire + -# =number_to_currency price_line.ca_price_u_ht - %td.numeraire - =number_to_currency price_line.tot_amount_ht + -# %td.numeraire + -# =number_to_currency price_line.tot_amount_ht - -if !@bl - %table.table{:style => "width:auto;float:right;border-top:0;"} + -# -if !@bl + -# %table.table{:style => "width:auto;float:right;border-top:0;"} - -if @price_document.label != "Avoir" - %tr - %th{:style => "border-top:0;"} - Poids total : -    - %td.numeraire{:style => "border-top:0;"} - ="#{price_line_block.weight_tot}Kg" - %tr - %th Total remises U. HT : - %td.numeraire - =number_to_currency price_line_block.cumul_discount_ht + -# -if @price_document.label != "Avoir" + -# %tr + -# %th{:style => "border-top:0;"} + -# Poids total : + -#    + -# %td.numeraire{:style => "border-top:0;"} + -# ="#{price_line_block.weight_tot}Kg" + -# %tr + -# %th Total remises U. HT : + -# %td.numeraire + -# =number_to_currency price_line_block.cumul_discount_ht - %tr - %th - Total HT - %td.numeraire - =number_to_currency price_line_block.tot_lines_ht + -# %tr + -# %th + -# Total HT + -# %td.numeraire + -# =number_to_currency price_line_block.tot_lines_ht - -if @price_document.label != "Avoir" - -if price_line_block.tot_discount_ht != 0.0 - %tr - %th - Remise commerciale exceptionnelle (HT - ="(#{price_line_block.ct_tot_discount_percent}%)" - %td.numeraire - =number_to_currency price_line_block.tot_discount_ht + -# -if @price_document.label != "Avoir" + -# -if price_line_block.tot_discount_ht != 0.0 + -# %tr + -# %th + -# Remise commerciale exceptionnelle (HT + -# ="(#{price_line_block.ct_tot_discount_percent}%)" + -# %td.numeraire + -# =number_to_currency price_line_block.tot_discount_ht - %tr - %th - Frais de port HT - ="(TVA #{price_line_block.fdp_tva_rate}%)" - %td.numeraire - =number_to_currency price_line_block.tot_fdp_ht + -# %tr + -# %th + -# Frais de port HT + -# ="(TVA #{price_line_block.fdp_tva_rate}%)" + -# %td.numeraire + -# =number_to_currency price_line_block.tot_fdp_ht - %tr - %th - Total HT Net - %td.numeraire - =number_to_currency price_line_block.tot_amount_ht + -# %tr + -# %th + -# Total HT Net + -# %td.numeraire + -# =number_to_currency price_line_block.tot_amount_ht - %tr - %th - Total TVA - %td.numeraire - =number_to_currency price_line_block.tot_amount_tva + -# %tr + -# %th + -# Total TVA + -# %td.numeraire + -# =number_to_currency price_line_block.tot_amount_tva - %tr - %th - Total TTC - %td.numeraire - =number_to_currency price_line_block.tot_amount_ttc + -# %tr + -# %th + -# Total TTC + -# %td.numeraire + -# =number_to_currency price_line_block.tot_amount_ttc - %tr - %th -   - %th + -# %tr + -# %th + -#   + -# %th - %tr - %th - Net à payer - %td.numeraire - =number_to_currency price_line_block.tot_amount_ttc - -else + -# %tr + -# %th + -# Net à payer + -# %td.numeraire + -# =number_to_currency price_line_block.tot_amount_ttc + -# -else - %table.table{:style => "width:auto;float:right;border-top:0;"} + -# %table.table{:style => "width:auto;float:right;border-top:0;"} - %tr - %th{:style => "border-top:0;"} - Poids total : -    - %td.numeraire{:style => "border-top:0;"} - ="#{price_line_block.weight_tot}Kg" + -# %tr + -# %th{:style => "border-top:0;"} + -# Poids total : + -#    + -# %td.numeraire{:style => "border-top:0;"} + -# ="#{price_line_block.weight_tot}Kg" - -if !@bl - %br - %br - %table.table{:style => "width:auto;"} - %tr - %th - Taux - %br - TVA - %th Montant HT Net - %th Montant TVA - -tva_rates = {} + -# -if !@bl + -# %br + -# %br + -# %table.table{:style => "width:auto;"} + -# %tr + -# %th + -# Taux + -# %br + -# TVA + -# %th Montant HT Net + -# %th Montant TVA + -# -tva_rates = {} - -price_line_block.price_lines.each do |pl| + -# -price_line_block.price_lines.each do |pl| - -tva_rates[pl.tva_account_value.to_s] = tva_rates[pl.tva_account_value.to_s] || {:montant => 0.0, :tva => 0.0} + -# -tva_rates[pl.tva_account_value.to_s] = tva_rates[pl.tva_account_value.to_s] || {:montant => 0.0, :tva => 0.0} - -tva_rates[pl.tva_account_value.to_s][:montant] += pl.tot_amount_ht.to_f - (pl.tot_amount_ht.to_f * ((price_line_block.ct_tot_discount_percent and price_line_block.ct_tot_discount_percent != 0.0) ? (price_line_block.ct_tot_discount_percent.to_f/100) : 0.0)) + -# -tva_rates[pl.tva_account_value.to_s][:montant] += pl.tot_amount_ht.to_f - (pl.tot_amount_ht.to_f * ((price_line_block.ct_tot_discount_percent and price_line_block.ct_tot_discount_percent != 0.0) ? (price_line_block.ct_tot_discount_percent.to_f/100) : 0.0)) - -tva_rates[pl.tva_account_value.to_s][:tva] += pl.tot_amount_tva.to_f - (pl.tot_amount_tva.to_f * ((price_line_block.ct_tot_discount_percent and price_line_block.ct_tot_discount_percent != 0.0) ? (price_line_block.ct_tot_discount_percent.to_f/100) : 0.0.to_f)) + -# -tva_rates[pl.tva_account_value.to_s][:tva] += pl.tot_amount_tva.to_f - (pl.tot_amount_tva.to_f * ((price_line_block.ct_tot_discount_percent and price_line_block.ct_tot_discount_percent != 0.0) ? (price_line_block.ct_tot_discount_percent.to_f/100) : 0.0.to_f)) - -tva_rates[price_line_block.fdp_tva_rate.to_s] = tva_rates[price_line_block.fdp_tva_rate.to_s] || {:montant => 0.0, :tva => 0.0} + -# -tva_rates[price_line_block.fdp_tva_rate.to_s] = tva_rates[price_line_block.fdp_tva_rate.to_s] || {:montant => 0.0, :tva => 0.0} - -tva_rates[price_line_block.fdp_tva_rate.to_s][:montant] += price_line_block.tot_fdp_ht + -# -tva_rates[price_line_block.fdp_tva_rate.to_s][:montant] += price_line_block.tot_fdp_ht - -tva_rates[price_line_block.fdp_tva_rate.to_s][:tva] += price_line_block.tot_fdp_tva + -# -tva_rates[price_line_block.fdp_tva_rate.to_s][:tva] += price_line_block.tot_fdp_tva - -tva_rates.each do |key, value| - %tr - %td - ="#{key}%" - %td - =number_to_currency value[:montant] + -# -tva_rates.each do |key, value| + -# %tr + -# %td + -# ="#{key}%" + -# %td + -# =number_to_currency value[:montant] - %td - =number_to_currency value[:tva] - -if @bl - %div{:style => "width:60%;"} - =simple_format price_line_block.bl_comment + -# %td + -# =number_to_currency value[:tva] + -# -if @bl + -# %div{:style => "width:60%;"} + -# =simple_format price_line_block.bl_comment - -if !@bl and @price_document.label != "Avoir" - %br - %br + -# -if !@bl and @price_document.label != "Avoir" + -# %br + -# %br - %table.table{:style => "width:auto;"} - %tr - %th - Échéance - %th Mode de paiement - %th - Montant net - %tr - %td - -if @price_document.label == "Facture" - =l @price_document.payment_end_at + -# %table.table{:style => "width:auto;"} + -# %tr + -# %th + -# Échéance + -# %th Mode de paiement + -# %th + -# Montant net + -# %tr + -# %td + -# -if @price_document.label == "Facture" + -# =l @price_document.payment_end_at - -else - =price_line_block.payment_delais.to_i - jours - %td - =price_line_block.p_payment_type.name if price_line_block.p_payment_type - %td - =number_to_currency price_line_block.tot_amount_ttc - .clear - -if @price_document.label == "Facture" - %p.legals{:style => "text-align:center;font-size:10px;margin-top:10px;olwen_demo_app"} - Pas d'escompte pour paiement anticipé, passée la date d'échéance, tout paiement différé entraine l'application d'une pénalité de 3 fois le taux d'intérêt légal. - (loi 2008-776 du 04/08/2008) ainsi qu'une indemnité forfaitaire pour frais de recouvrement de 40 euros (Décret 2012-1115 du 02/10/2012). + -# -else + -# =price_line_block.payment_delais.to_i + -# jours + -# %td + -# =price_line_block.p_payment_type.name if price_line_block.p_payment_type + -# %td + -# =number_to_currency price_line_block.tot_amount_ttc + -# .clear + -# -if @price_document.label == "Facture" + -# %p.legals{:style => "text-align:center;font-size:10px;margin-top:10px;olwen_demo_app"} + -# Pas d'escompte pour paiement anticipé, passée la date d'échéance, tout paiement différé entraine l'application d'une pénalité de 3 fois le taux d'intérêt légal. + -# (loi 2008-776 du 04/08/2008) ainsi qu'une indemnité forfaitaire pour frais de recouvrement de 40 euros (Décret 2012-1115 du 02/10/2012). - .clear \ No newline at end of file + -# .clear \ No newline at end of file diff --git a/app/views/admin/price_line_blocks/_form.html.haml b/app/views/admin/price_line_blocks/_form.html.haml index 62518b3..a600eef 100644 --- a/app/views/admin/price_line_blocks/_form.html.haml +++ b/app/views/admin/price_line_blocks/_form.html.haml @@ -67,8 +67,10 @@ .qi_row .qi_pannel.qi_plain.padding.row -if !@avoir - = f.input :ct_tot_discount_percent, :label => "Réduction pied de page (%) :"#, :input_html => {:class => "input_price_line_block_ct_tot_discount_percent"} - = f.input :ct_tot_fdp_ht, :label => "Frais de port personnalisés :" + .col-3 + = f.input :ct_tot_discount_percent, :label => "Réduction pied de page (%) :"#, :input_html => {:class => "input_price_line_block_ct_tot_discount_percent"} + .col-3 + = f.input :ct_tot_fdp_ht, :label => "Frais de port personnalisés :" -if current_admin.has_permission?("payments") @@ -94,5 +96,5 @@ :javascript $('.p_product_ref_select').select2(); $('.add_lines').click(function() { - $('.p_product_ref_select').last().select2(}); + $('.p_product_ref_select').last().select2(); }); \ No newline at end of file diff --git a/db/migrate/20211112130721_add_tva_type_to_p_article.rb b/db/migrate/20211112130721_add_tva_type_to_p_article.rb new file mode 100644 index 0000000..dfeaabe --- /dev/null +++ b/db/migrate/20211112130721_add_tva_type_to_p_article.rb @@ -0,0 +1,5 @@ +class AddTvaTypeToPArticle < ActiveRecord::Migration[6.0] + def change + add_reference :p_articles, :tva_type, index: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 4128f51..bb52740 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_11_03_085623) do +ActiveRecord::Schema.define(version: 2021_11_12_130721) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -999,8 +999,10 @@ ActiveRecord::Schema.define(version: 2021_11_03_085623) do t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.bigint "p_grade_id" + t.bigint "tva_type_id" t.index ["p_grade_id"], name: "index_p_articles_on_p_grade_id" t.index ["p_product_ref_id"], name: "index_p_articles_on_p_product_ref_id" + t.index ["tva_type_id"], name: "index_p_articles_on_tva_type_id" end create_table "p_bank_accounts", force: :cascade do |t|