diff --git a/app/views/admin/price_documents/analyse_reponses.html.haml b/app/views/admin/price_documents/analyse_reponses.html.haml
index 489baa2..96050ca 100644
--- a/app/views/admin/price_documents/analyse_reponses.html.haml
+++ b/app/views/admin/price_documents/analyse_reponses.html.haml
@@ -8,148 +8,160 @@
= @price_document.list_designaton
-=form_tag '/'
-.qi_pannel.padding.new_table_container
- .table-slider
- .inner
+=semantic_form_for [:admin, @price_document], :html => {:class => "qi_price_form"}, :remote => false do |form|
+ =form.semantic_fields_for :price_line_block do |f|
+ - price_line_block = f.object
+ .qi_pannel.padding.new_table_container
+ .table-slider
+ .inner
- .table-area{:style => "overflow:auto;"}
- .table-area-inner
- .freezeTable
- %table.table.table-striped.table-hover.table-bordered.data_table
- %thead.header
- %tr
- -nb_resp = @price_document_responses.count
- %th{colspan: 12}
- Consultation
- %th{colspan: nb_resp}
- Fournisseurs
- .btn.btn-light.ml-4#reset-radio
- reset
-
- %tr
- %th
- Qté à
- %br
- satisfaire
- %th
- Qté consultée
- %th
- Produit
- %th
- Référence
- %th
- Couleur
- %th
- Type
- %br
- chargeur
- %th
- Target hors
- %br
- Sorecop
- %th
- Px d'achat
- %br
- référence
- %th
- Marge
- %br
- théorique
- %br
- référence
- %br
- par zone
- %th
- Fours.
- %br
- de référence
- %th
- Date
- %br
- px référence
- %th.limit
- Spec
-
- -@price_document_responses.each do |resp|
- %th
- =resp.p_fournisseur.name
-
-
- %tbody
- -price_lines = @price_document.price_line_block.price_lines
- -consult_price_lines = @price_document.price_line_block.price_lines
- -price_lines.each do |price_line|
+ .table-area{:style => "overflow:auto;"}
+ .table-area-inner
+ .freezeTable
+ %table.table.table-striped.table-hover.table-bordered.data_table
+ %thead.header
%tr
- %td
- =# ATTENTION ! On a plus accès direct aux commandes qui on engendré cette demande de prix. donc plus accès aux délais différent entre les différentes commades pour une ref donée
- / ∑
- / =price_line.qte.to_i
- / %br
- - if price_line.cc_wish_date.present? && price_line.cc_wish_date < Date.today + 20.days
- %span.red
- =ic(:fire)
- =price_line.qte.to_i
- - else
- %span.darkblue
- =ic(:hourglass)
- =price_line.qte.to_i
- %td.ref_tr
- Qté en comm
- %td
- = price_line.p_product_ref.p_product.name
- %td
- =link_to [:admin, price_line.p_product_ref] do
- = price_line.p_product_ref.ct_sub_name
- = price_line.p_product_ref.p_product_color.name
+ -nb_resp = @price_document_responses.count
+ %th{colspan: 12}
+ Consultation
+ %th{colspan: nb_resp}
+ Fournisseurs
+ .btn.btn-light.ml-4#reset-radio
+ reset
- %td
- = price_line.p_product_ref.p_product_color.color if price_line.p_product_ref and price_line.p_product_ref.p_product_color
- %td
- = price_line.p_product_power.name if price_line.p_product_power
- %td
- / Target hors Sorecop
- %td
- / Px d'achat de référence
- %td
- / Marge théorique de référence par zone
- %td
- / Fournisseurs de référence
- %td
- / Date du px de référence
- %td.limit
- / spec
+ %tr
+ %th
+ Qté à
+ %br
+ satisfaire
+ %th
+ Qté consultée
+ %th
+ Produit
+ %th
+ Référence
+ %th
+ Couleur
+ %th
+ Type
+ %br
+ chargeur
+ %th
+ Target hors
+ %br
+ Sorecop
+ %th
+ Px d'achat
+ %br
+ référence
+ %th
+ Marge
+ %br
+ théorique
+ %br
+ référence
+ %br
+ par zone
+ %th
+ Fours.
+ %br
+ de référence
+ %th
+ Date
+ %br
+ px référence
+ %th.limit
+ Spec
- - @price_document_responses.each do |resp|
- -line = resp.price_line_block.price_lines.where(p_product_ref: price_line.p_product_ref).first
- -cell = []
+ -@price_document_responses.each do |resp|
+ %th
+ -if resp.p_fournisseur
+ =resp.p_fournisseur.name
- - if line.qte_available.to_i > 0
- -if line.qte_available >= price_line.qte.to_i
- - cell << "Qté dispo : #{line.qte_available.to_i}"
- -else
- - cell << "#{ic(:warning, class: "orange")} Qté dispo : #{line.qte_available.to_i} (#{line.qte_available.to_i - price_line.qte.to_i})"
- - cell << "PA: #{line.ct_u_price_ht} €"
- - # mp = calcul de la marge prévisionelle TODO
- - line.id.odd? ? mp = 0.17 : mp = 0.11
- - if mp.present?
- -if mp > 0.15
- - cell << "#{ic(:check)} MP: #{mp * 100} %"
+
+ %tbody
+ -# price_lines = f.object.price_lines
+
+ -consult_price_lines = @price_document.price_line_block.price_lines
+ =f.semantic_fields_for :price_lines do |form|
+ - price_line = form.object
+ -#price_lines = @price_document.price_line_block.price_lines
+ -#price_lines.each do |price_line|
+
+ %tr
+ %td
+ =# ATTENTION ! On a plus accès direct aux commandes qui on engendré cette demande de prix. donc plus accès aux délais différent entre les différentes commades pour une ref donée
+ / ∑
+ / =price_line.qte.to_i
+ / %br
+ - if price_line.cc_wish_date.present? && price_line.cc_wish_date < Date.today + 20.days
+ %span.red
+ =ic(:fire)
+ =price_line.qte.to_i
+ - else
+ %span.darkblue
+ =ic(:hourglass)
+ =price_line.qte.to_i
+ %td.ref_tr
+ Qté en comm
+ %td
+ = price_line.p_product_ref.p_product.name
+ %td
+ =link_to [:admin, price_line.p_product_ref] do
+ = price_line.p_product_ref.ct_sub_name
+ = price_line.p_product_ref.p_product_color.name
+
+ %td
+ = price_line.p_product_ref.p_product_color.color if price_line.p_product_ref and price_line.p_product_ref.p_product_color
+ %td
+ = price_line.p_product_power.name if price_line.p_product_power
+ %td
+ / Target hors Sorecop
+ %td
+ / Px d'achat de référence
+ %td
+ / Marge théorique de référence par zone
+ %td
+ / Fournisseurs de référence
+ %td
+ / Date du px de référence
+ %td.limit
+ / spec
+
+ =form.input :selected_price_line_id, collection: PriceLine.where(:price_line_ref_id => form.object.id).all, as: :radio, :member_label => :id
+ =debug form.object.id
+ - @price_document_responses.each do |resp|
+ -line = resp.price_line_block.price_lines.where(p_product_ref: price_line.p_product_ref).first
+ -cell = []
+
+ - if line.qte_available.to_i > 0
+ -if line.qte_available >= price_line.qte.to_i
+ - cell << "Qté dispo : #{line.qte_available.to_i}"
+ -else
+ - cell << "#{ic(:warning, class: "orange")} Qté dispo : #{line.qte_available.to_i} (#{line.qte_available.to_i - price_line.qte.to_i})"
+ - cell << "PA: #{line.ct_u_price_ht} €"
+ - # mp = calcul de la marge prévisionelle TODO
+ - line.id.odd? ? mp = 0.17 : mp = 0.11
+ - if mp.present?
+ -if mp > 0.15
+ - cell << "#{ic(:check)} MP: #{mp * 100} %"
+ -else
+ - cell << "#{ic(:times, class: "red")} MP: #{mp * 100} %"
-else
- - cell << "#{ic(:times, class: "red")} MP: #{mp * 100} %"
- -else
- - cell << "pas dispo"
- -if line.comment.present?
- - display_comment = ""
- - if line.comment.length > 10
- - display_comment = "#{line.comment[0..10]} (..)"
- - else
- - display_comment = line.comment
- - cell << "#{ic('info-circle')} #{display_comment}#{line.comment}"
+ - cell << "pas dispo"
+ -if line.comment.present?
+ - display_comment = ""
+ - if line.comment.length > 10
+ - display_comment = "#{line.comment[0..10]} (..)"
+ - else
+ - display_comment = line.comment
+ - cell << "#{ic('info-circle')} #{display_comment}#{line.comment}"
- %td.p-0
- = radio_button_tag "ref_price_selected_#{price_line.p_product_ref.id}", line.id, false, class: "category-selector"
- = label_tag "ref_price_selected_#{price_line.p_product_ref.id}_#{line.id}", sanitize(cell.join('
')), class: "p-2 m-auto"
+ %td.p-0
+ = "reponse price_line ID : #{line.id}"
+ =#form.input :selected_price_offer, as: :radio
+ = radio_button_tag "ref_price_selected_#{price_line.p_product_ref.id}", line.id, false, class: "category-selector"
+ = label_tag "ref_price_selected_#{price_line.p_product_ref.id}_#{line.id}", sanitize(cell.join('
')), class: "p-2 m-auto"
=submit_tag 'valider la selection', class: "btn btn-primary"
diff --git a/db/migrate/20210907083709_add_selected_price_offer_to_price_lines.rb b/db/migrate/20210907083709_add_selected_price_offer_to_price_lines.rb
new file mode 100644
index 0000000..0654371
--- /dev/null
+++ b/db/migrate/20210907083709_add_selected_price_offer_to_price_lines.rb
@@ -0,0 +1,5 @@
+class AddSelectedPriceOfferToPriceLines < ActiveRecord::Migration[6.0]
+ def change
+ add_column :price_lines, :selected_price_line_id, :integer
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index e1898e3..3107c6a 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_08_30_091804) do
+ActiveRecord::Schema.define(version: 2021_09_07_083709) do
create_table "accounting_zones", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t|
t.string "name"
@@ -2544,6 +2544,7 @@ ActiveRecord::Schema.define(version: 2021_08_30_091804) do
t.boolean "eu"
t.boolean "fullkit"
t.boolean "lang_start"
+ t.integer "selected_price_line_id"
end
create_table "quote_contents", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t|