126 lines
4.8 KiB
Plaintext
126 lines
4.8 KiB
Plaintext
.qi_header
|
|
%h1
|
|
ODR
|
|
%span
|
|
|
|
Statistiques
|
|
%span
|
|
=@m_odr.p_customer.show_name
|
|
="-"
|
|
=@m_odr.name
|
|
|
|
|
|
.qi_row
|
|
.qi_pannel.qi_plain.padding
|
|
|
|
%div{:style => "overflow:auto;"}
|
|
-@m_odr_reps = @m_odr.m_odr_reps
|
|
|
|
%table.table.table-striped.table-hover.table-bordered
|
|
%tr
|
|
%th
|
|
%th{:rowspan => 2} Nombre de participation
|
|
-@m_odr_reps.group(:state).each do |state|
|
|
%th{:style => "font-weight:normal", :colspan => 5+(@m_odr.m_odr_brands.count*2)+(@m_odr.m_odr_products.count*2)}
|
|
Etat :
|
|
=state_helper state.state
|
|
|
|
%tr
|
|
%th
|
|
|
|
-@m_odr_reps.group(:state).each do |state|
|
|
%th Nbr participation
|
|
%th Nbr pneus
|
|
|
|
-@m_odr_reps.group(:qte).order(:qte).each do |qte|
|
|
%th
|
|
Nbr part. avec
|
|
=qte.qte
|
|
pneus
|
|
|
|
-@m_odr.m_odr_brands.each do |m_odr_brand|
|
|
%th
|
|
=m_odr_brand.name
|
|
Nbr part.
|
|
%th
|
|
=m_odr_brand.name
|
|
Nbr pneus
|
|
|
|
|
|
-m_odr_brand.m_odr_products.each do |m_odr_product|
|
|
%th
|
|
=m_odr_product.name
|
|
Nbr part.
|
|
%th
|
|
=m_odr_product.name
|
|
Nbr pneus
|
|
|
|
|
|
|
|
%th Total remises
|
|
-m_odr_reps = @m_odr_reps
|
|
%tr
|
|
%td Général
|
|
%td=m_odr_reps.count
|
|
-@m_odr_reps.group(:state).each do |state|
|
|
%td
|
|
=m_odr_reps.where(:state => state.state).count
|
|
%td
|
|
=m_odr_reps.where(:state => state.state).sum(:qte)
|
|
|
|
-@m_odr_reps.group(:qte).order(:qte).each do |qte|
|
|
%th
|
|
=m_odr_reps.where(:state => state.state, :qte => qte.qte).count
|
|
|
|
|
|
-@m_odr.m_odr_brands.each do |m_odr_brand|
|
|
%td=m_odr_reps.where(:state => state.state, :m_odr_product_id => m_odr_brand.m_odr_products.ids).count
|
|
%td=m_odr_reps.where(:state => state.state, :m_odr_product_id => m_odr_brand.m_odr_products.ids).sum(:qte)
|
|
|
|
-m_odr_brand.m_odr_products.each do |m_odr_product|
|
|
%td=m_odr_reps.where(:state => state.state, :m_odr_product_id => m_odr_product.id).count
|
|
%td=m_odr_reps.where(:state => state.state, :m_odr_product_id => m_odr_product.id).sum(:qte)
|
|
|
|
%td.numeraire{:style => ("color:red;" if total = m_odr_reps.where(:state => state.state).sum(:cc_remise) and total == 0.0)}
|
|
=number_to_currency total
|
|
|
|
-nbr_participations_for_places = []
|
|
-nbr_pneus_for_places = []
|
|
|
|
-@m_odr_reps.group(:m_odr_place_id).joins(:m_odr_place).order("m_odr_places.name").each do |place|
|
|
-m_odr_reps = @m_odr_reps.where(:m_odr_place_id => place.m_odr_place_id)
|
|
|
|
%tr
|
|
%td=place.m_odr_place.name
|
|
%td=m_odr_reps.count
|
|
-@m_odr_reps.group(:state).each do |state|
|
|
%td
|
|
=p = m_odr_reps.where(:state => state.state).count
|
|
-nbr_participations_for_places << p if p > 0
|
|
%td
|
|
=q = m_odr_reps.where(:state => state.state).sum(:qte)
|
|
-nbr_pneus_for_places << q if p > 0
|
|
-@m_odr_reps.group(:qte).order(:qte).each do |qte|
|
|
%th
|
|
=m_odr_reps.where(:state => state.state, :qte => qte.qte).count
|
|
|
|
-@m_odr.m_odr_brands.each do |m_odr_brand|
|
|
%td=m_odr_reps.where(:state => state.state, :m_odr_product_id => m_odr_brand.m_odr_products.ids).count
|
|
%td=m_odr_reps.where(:state => state.state, :m_odr_product_id => m_odr_brand.m_odr_products.ids).sum(:qte)
|
|
|
|
-m_odr_brand.m_odr_products.each do |m_odr_product|
|
|
%td=m_odr_reps.where(:state => state.state, :m_odr_product_id => m_odr_product.id).count
|
|
%td=m_odr_reps.where(:state => state.state, :m_odr_product_id => m_odr_product.id).sum(:qte)
|
|
|
|
%td.numeraire{:style => ("color:red;" if total = m_odr_reps.where(:state => state.state).sum(:cc_remise) and total == 0.0)}
|
|
=number_to_currency total
|
|
|
|
|
|
|
|
|
|
%p
|
|
Moyenne participation / point de vente avec participation :
|
|
=(nbr_participations_for_places.inject{ |sum, el| sum + el }.to_f / nbr_participations_for_places.size).round(2)
|
|
%p
|
|
Moyenne nbr pneus / point de vente avec participation :
|
|
=(nbr_pneus_for_places.inject{ |sum, el| sum + el }.to_f / nbr_pneus_for_places.size).round(2) |