WIP analyse
This commit is contained in:
parent
9d24db2178
commit
8e1cc4b0a1
@ -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 << "<span class=green>#{ic(:check)} MP: #{mp * 100} %</span>"
|
||||
|
||||
%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 << "<span class=green>#{ic(:check)} MP: #{mp * 100} %</span>"
|
||||
-else
|
||||
- cell << "#{ic(:times, class: "red")} MP: #{mp * 100} %"
|
||||
-else
|
||||
- cell << "#{ic(:times, class: "red")} MP: #{mp * 100} %"
|
||||
-else
|
||||
- cell << "<span class=red>pas dispo</span>"
|
||||
-if line.comment.present?
|
||||
- display_comment = ""
|
||||
- if line.comment.length > 10
|
||||
- display_comment = "#{line.comment[0..10]} (..)"
|
||||
- else
|
||||
- display_comment = line.comment
|
||||
- cell << "<span class='info'>#{ic('info-circle')} #{display_comment}<span class='info-text'>#{line.comment}</span></span>"
|
||||
- cell << "<span class=red>pas dispo</span>"
|
||||
-if line.comment.present?
|
||||
- display_comment = ""
|
||||
- if line.comment.length > 10
|
||||
- display_comment = "#{line.comment[0..10]} (..)"
|
||||
- else
|
||||
- display_comment = line.comment
|
||||
- cell << "<span class='info'>#{ic('info-circle')} #{display_comment}<span class='info-text'>#{line.comment}</span></span>"
|
||||
|
||||
%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('<br>')), 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('<br>')), class: "p-2 m-auto"
|
||||
=submit_tag 'valider la selection', class: "btn btn-primary"
|
||||
|
||||
|
||||
|
@ -0,0 +1,5 @@
|
||||
class AddSelectedPriceOfferToPriceLines < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
add_column :price_lines, :selected_price_line_id, :integer
|
||||
end
|
||||
end
|
@ -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|
|
||||
|
Reference in New Issue
Block a user