From f2ba83a7044eedd5d93476c223f7ca6bacd49b92 Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Wed, 26 May 2021 18:17:07 +0200 Subject: [PATCH] cout_dossier_termines_by_month for groupe_instructeurs Co-authored-by: Christophe Robillard --- .../instructeurs/archives_controller.rb | 16 +++++++++++++--- app/models/traitement.rb | 4 ++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/controllers/instructeurs/archives_controller.rb b/app/controllers/instructeurs/archives_controller.rb index 1637314a0..016e38825 100644 --- a/app/controllers/instructeurs/archives_controller.rb +++ b/app/controllers/instructeurs/archives_controller.rb @@ -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 diff --git a/app/models/traitement.rb b/app/models/traitement.rb index 72cf5be0e..68de4e412 100644 --- a/app/models/traitement.rb +++ b/app/models/traitement.rb @@ -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