cout_dossier_termines_by_month for groupe_instructeurs

Co-authored-by: Christophe Robillard <christophe.robillard@beta.gouv.fr>
This commit is contained in:
simon lehericey 2021-05-26 18:17:07 +02:00 committed by Christophe Robillard
parent 83d60c7b63
commit f2ba83a704
2 changed files with 15 additions and 5 deletions

View file

@ -6,12 +6,12 @@ module Instructeurs
@procedure = procedure
@average_dossier_weight = procedure.average_dossier_weight
@count_dossiers_termines_by_month = Traitement.count_dossiers_termines_by_month(@procedure)
@count_dossiers_termines_by_month = Traitement.count_dossiers_termines_by_month(groupe_instructeurs)
@nb_dossiers = @count_dossiers_termines_by_month.sum { |count_by_month| count_by_month["count"] }
@poids_total = @nb_dossiers * @average_dossier_weight
@archives = Archive
.for_groupe_instructeur(current_instructeur.groupe_instructeurs.where(procedure: @procedure))
.for_groupe_instructeur(groupe_instructeurs)
.to_a
end
@ -38,10 +38,20 @@ module Instructeurs
end
end
def procedure_id
params[:procedure_id]
end
def groupe_instructeurs
current_instructeur
.groupe_instructeurs
.where(procedure_id: procedure_id)
end
def procedure
current_instructeur
.procedures
.find(params[:procedure_id])
.find(procedure_id)
end
end
end

View file

@ -19,10 +19,10 @@ class Traitement < ApplicationRecord
.where("traitements.processed_at + (procedures.duree_conservation_dossiers_dans_ds * INTERVAL '1 month') - INTERVAL :expires_in < :now", { now: Time.zone.now, expires_in: Dossier::INTERVAL_BEFORE_EXPIRATION })
end
def self.count_dossiers_termines_by_month(procedure)
def self.count_dossiers_termines_by_month(groupe_instructeurs)
last_traitements_per_dossier = Traitement
.select('max(traitements.processed_at) as processed_at')
.where(dossier: procedure.dossiers.termine)
.where(dossier: Dossier.termine.where(groupe_instructeur: groupe_instructeurs))
.group(:dossier_id)
.to_sql