diff --git a/app/controllers/admin/price_documents_controller.rb b/app/controllers/admin/price_documents_controller.rb
index 2aed63a..b480168 100644
--- a/app/controllers/admin/price_documents_controller.rb
+++ b/app/controllers/admin/price_documents_controller.rb
@@ -598,5 +598,10 @@ class Admin::PriceDocumentsController < ApplicationController
def match_p_fournisseur
@price_document = PriceDocument.find(params[:id])
end
-
+
+ def analyse_reponses
+ @price_document = PriceDocument.find(params[:id])
+ @price_document_responses = PriceDocument.where(:doc_ref_id => @price_document.id )
+
+ end
end
diff --git a/app/models/price_line.rb b/app/models/price_line.rb
index 840396a..1d56221 100644
--- a/app/models/price_line.rb
+++ b/app/models/price_line.rb
@@ -2,6 +2,7 @@ class PriceLine < ApplicationRecord
belongs_to :price_line_block
belongs_to :p_product
belongs_to :p_product_ref
+ belongs_to :p_product_power
default_scope { order('position ASC') }
validates :p_product_ref_id, :presence => true, :if => :p_product_ref_needed?
diff --git a/app/models/price_line_block.rb b/app/models/price_line_block.rb
index c116b7c..14b7469 100644
--- a/app/models/price_line_block.rb
+++ b/app/models/price_line_block.rb
@@ -27,7 +27,7 @@ class PriceLineBlock < ApplicationRecord
SALE_BLOCKS = ["Demande de commande", "Bon de commande", "Devis", "Bon de livraison", "Facture", "Avoir"]
belongs_to :p_fournisseur
-
+ accepts_nested_attributes_for :p_fournisseur
def to_no_archive
if self.imported
diff --git a/app/views/admin/price_documents/analyse_reponses.html.haml b/app/views/admin/price_documents/analyse_reponses.html.haml
new file mode 100644
index 0000000..49acb65
--- /dev/null
+++ b/app/views/admin/price_documents/analyse_reponses.html.haml
@@ -0,0 +1,175 @@
+.qi_header
+ %h1
+ Achats
+ %span
+ Analyse des réponces à la consiltation n°
+ = link_to @price_document.d_number, admin_price_document_path(@price_document)
+ \-
+ = @price_document.list_designaton
+
+
+
+.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
+
+ %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|
+ %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 + 10.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
+ %td
+ = price_line.p_product_power.name
+ %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
+ / 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 = []
+
+ - 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
+ -cell << line.id.odd?
+ - if mp.present?
+ -if mp > 0.15
+ - cell << "#{ic(:check)} MP: #{mp * 100} %"
+ -else
+ - cell << "#{ic(:times, class: "red")} MP: #{mp * 100} %"
+ -else
+ - cell << "pas dispo"
+ -if line.comment.present?
+ - cell << "#{ic('info-circle')} #{line.comment}"
+ %td
+ =sanitize(cell.join('
'))
+
+
+
+
+
+
+
+
+:scss
+ .limit {
+ border-right:3px solid green !important;
+ }
+
+ .red {
+ color: red;
+ }
+ .green {
+ color: green;
+ }
+ .orange {
+ color: orange;
+ }
+ .darkgrey {
+ color: #darkgrey;
+ }
+ .darkblue {
+ color: darkblue;
+ }
+
+ .small-input {
+ max-width: 100px;
+ }
diff --git a/app/views/admin/price_documents/show.html.haml b/app/views/admin/price_documents/show.html.haml
index 3178d8e..c1be467 100644
--- a/app/views/admin/price_documents/show.html.haml
+++ b/app/views/admin/price_documents/show.html.haml
@@ -1,6 +1,8 @@
.qi_header
- .right
-
+ .right
+ -if @price_document.price_document_type_id == 1
+ =link_to ic("bar-chart")+" analyse des réponses", analyse_reponses_admin_price_document_path(@price_document), class: "btn btn-primary"
+
-if @price_document.price_document_type_id == 6 and !@price_document.stock_ok
= link_to i(:pencil), edit_admin_price_document_path(:id => @price_document.id, :public_edit => true) if !@price_document.stock_ok
@@ -50,7 +52,7 @@
%td
Avancement (%)
%td
- =@price_document.avancement
+ =@price_document.avancement.to_s + " %"
%tr
%td
Désignation
diff --git a/config/routes.rb b/config/routes.rb
index f511c3a..a0c1e29 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -616,6 +616,7 @@ Rails.application.routes.draw do
get :consult_edit
put :consult_update
get :match_p_fournisseur
+ get :analyse_reponses
end
collection do
get :search_to_affect