2019-12-19 00:50:43 +01:00

292 lines
7.6 KiB
Plaintext

-@date = Date.parse("2019-10-01")
.qi_header
Sociétés détectées
.qi_row
.qi_pannel.qi_plain.padding
%p
Cartes restant à traiter :
%strong
=VContact.where(:enabled => true, :nbr_mvt => nil).count
%h3 Stats générales
.table-area
%table.table.table-hover
%tr
%td Nombre de sociétés
%td.numeraire
%strong=Societe.count
%tr
%td Nombre de sociétés valides
%td.numeraire
%strong=Societe.where(:enabled => true).count
%tr
%td
Nombre de cartes retrouvées
%td.numeraire
=VContact.where("codemanaginn LIKE 'CCV%'").count
%tr
%td
Nombre de cartes appartenants à des sociétés valides
%td.numeraire
%strong=VContact.where("codemanaginn LIKE 'CCV%'").where(:enabled => true).count
-echantillon1 = VContact.where(:enabled => true)
-echantillon2 = VContact.where(:enabled => true).where("last_volume_at < ?", @date - 10.year)
-echantillon3 = VContact.where(:enabled => true).where("last_volume_at < ?", @date - 5.year)
-echantillon4 = VContact.where(:enabled => true).where("last_volume_at < ?", @date - 2.year)
%h3 Chifres clés
%table.table{:style => "width:auto;"}
%tr
%th
%th années
%th Nbr
%th Primes
%tr
%th Sur toutes les cartes actives
%td
%td.numeraire= echantillon1.count
%td.numeraire=number_to_currency echantillon1.sum(:prime)
%tr
%th
Sur cartes n'ayant pas eu d'activité depuis
%td.numeraire 2 ans
%td.numeraire= echantillon4.count
%td.numeraire=number_to_currency echantillon4.sum(:prime)
%tr
%th
Sur cartes n'ayant pas eu d'activité depuis
%td.numeraire 5 ans
%td.numeraire= echantillon3.count
%td.numeraire=number_to_currency echantillon3.sum(:prime)
%tr
%th
Sur cartes n'ayant pas eu d'activité depuis
%td.numeraire 10 ans
%td.numeraire= echantillon2.count
%td.numeraire=number_to_currency echantillon2.sum(:prime)
%h3 Chifres interessants
%table.table{:style => "width:auto;"}
%tr
%th Cartes n'ayant jamais eu de mouvement
%td=VContact.where(:enabled => true, :nbr_mvt => 0).count
%tr
%th Cartes avec % de remise nul
%td=VContact.where(:enabled => true,:ac_rate => 0.0).count
%tr
%th Société sans seuil de déclenchement
%td=VContact.where(:enabled => true,:ac_rate => 0.0).group(:codeproprietaire).map {|a| a.codeproprietaire}.join(", ")
%h3 Cartes ayant une prime négative :
%table.table
=render VContact.where(:enabled => true).where("prime < 0.0").order("codeproprietaire")
-if false
-@soc_ids = VContact.where("codemanaginn LIKE 'CCV%'").group(:codeproprietaire).map{|a| a.codeproprietaire}
=@soc_ids = (@soc_ids-["", nil])
-@valid_soc_ids = Societe.where(:socmanaginn => @soc_ids).group(:socmanaginn).map{|a| a.socmanaginn}
%p
Date de référence :
%strong
=l @date
%table.table
%tr
%td Nombre de sociétés valides
%td=@valid_soc_ids.size
%tr
%td Nombre de sociétés invalides
%td=@soc_ids.size - @valid_soc_ids.size
%tr
%td
Nombre de cartes retrouvées
%td
=VContact.where("codemanaginn LIKE 'CCV%'").count
%tr
%td
Nombre de cartes appartenants à des sociétés valides
%td
=VContact.where("codemanaginn LIKE 'CCV%'").where(:codeproprietaire => @valid_soc_ids).count
%p
Nombre de cartes non traitées :
=VContact.where("codemanaginn LIKE 'CCV%' and prime is null").count
%p
Total des primes :
-echantillon1 = VContact.where("codemanaginn LIKE 'CCV%'")
-echantillon2 = VContact.where("codemanaginn LIKE 'CCV%'").where("last_volume_at < ?", @date - 10.year)
-echantillon3 = VContact.where("codemanaginn LIKE 'CCV%'").where("last_volume_at < ?", @date - 5.year)
-echantillon4 = VContact.where("codemanaginn LIKE 'CCV%'").where("last_volume_at < ?", @date - 2.year)
%strong= VContact.where("codemanaginn LIKE 'CCV%' and prime < 0.0").sum("prime")
%table.table
=#render VContact.where("codemanaginn LIKE 'CCV%' and prime < 0.0")
%table.table{:style => "width:auto;"}
%tr
%th
%th années
%th Nbr
%th Primes
%tr
%th Total
%td
%td= echantillon1.count
%td=number_to_currency echantillon1.sum(:prime)
%tr
%th
Sur cartes n'ayant pas eu d'activité depuis
%td 10 ans
%td= echantillon2.count
%td=number_to_currency echantillon2.sum(:prime)
%tr
%th
Sur cartes n'ayant pas eu d'activité depuis
%td 5 ans
%td= echantillon3.count
%td=number_to_currency echantillon3.sum(:prime)
%tr
%th
Sur cartes n'ayant pas eu d'activité depuis
%td 2 ans
%td= echantillon4.count
%td=number_to_currency echantillon4.sum(:prime)
%table.table
-VContact.where("codemanaginn LIKE 'CCV%' and prime is null").order("rand()").limit(1000000).each do |v_contact|
-societe = Societe.where(:socmanaginn => v_contact.codeproprietaire).first
-seuils = SeuilDeclencheur.where(:codedeclencheur => "MGD00000004", :socmanaginn => v_contact.codeproprietaire).where("datefin > ?", @date)
-#seuil_vidanges = SeuilDeclencheur.where(:codedeclencheur => "MGD00000005", :socmanaginn => v_contact.codeproprietaire).where("datefin > ?", @date)
-seuil = seuils.first
-if seuil
-rate = ((seuil.valba.to_f / seuil.valseuil.to_f) * 100.0).round(2) if seuil.valba? and seuil.valseuil.to_f > 0.0
-else
-rate = 0.0
-cagnotte = VolumePeriodique.where(:codemanaginn => v_contact.codemanaginn, :codeindicateur => "MGI000000001").where("datereception <= ?", @date).sum(:valeur)
-prime = (cagnotte * (rate/100)).round(2)
-#vidanges = VolumePeriodique.where(:codemanaginn => v_contact.codemanaginn, :codeindicateur => "MGI000000003").where("datereception <= ?", @date).sum(:valeur)
-#seuil_vidange = seuil_vidanges.first
-last_date = nil
-last = VolumePeriodique.where(:codemanaginn => v_contact.codemanaginn).order("datereception DESC").first
-if last
-last_date = last.datereception
-v_contact.rate = rate
-v_contact.cagnotte = cagnotte
-v_contact.prime = prime
-#v_contact.nbr_vidanges = vidanges
-if false
-if seuil_vidange
-v_contact.vidanges_seuil = seuil_vidange.valseuil.to_i
-v_contact.vidanges_offerte = seuil_vidange.valba
- v_contact.last_volume_at = last_date
-v_contact.save
-if false and societe
%tr
%td- v_contact.codemanaginn
%td
=v_contact.prenom
=v_contact.nom
%td= v_contact.codeproprietaire
%td
=societe.nom if societe
%td
= seuils.count
%td
=rate
="%"
%td
=number_to_currency cagnotte
%td
=number_to_currency prime
%td
=vidanges
%td
=last_date