diff --git a/app/jobs/auto_archive_procedure_job.rb b/app/jobs/auto_archive_procedure_job.rb index 7791dbc13..df688bb74 100644 --- a/app/jobs/auto_archive_procedure_job.rb +++ b/app/jobs/auto_archive_procedure_job.rb @@ -3,11 +3,10 @@ class AutoArchiveProcedureJob < ApplicationJob def perform(*args) Procedure.publiees.where("auto_archive_on <= ?", Date.today).each do |procedure| - gestionnaire = procedure.gestionnaire_for_cron_job - - procedure.dossiers.state_en_construction.find_each do |dossier| - dossier.passer_en_instruction!(gestionnaire) - end + procedure + .dossiers + .state_en_construction + .find_each(&:passer_automatiquement_en_instruction!) procedure.archive! end diff --git a/app/jobs/auto_receive_dossiers_for_procedure_job.rb b/app/jobs/auto_receive_dossiers_for_procedure_job.rb index f55de439f..0dfd2c386 100644 --- a/app/jobs/auto_receive_dossiers_for_procedure_job.rb +++ b/app/jobs/auto_receive_dossiers_for_procedure_job.rb @@ -3,17 +3,18 @@ class AutoReceiveDossiersForProcedureJob < ApplicationJob def perform(procedure_id, state) procedure = Procedure.find(procedure_id) - gestionnaire = procedure.gestionnaire_for_cron_job case state when Dossier.states.fetch(:en_instruction) - procedure.dossiers.state_en_construction.find_each do |dossier| - dossier.passer_en_instruction!(gestionnaire) - end + procedure + .dossiers + .state_en_construction + .find_each(&:passer_automatiquement_en_instruction!) when Dossier.states.fetch(:accepte) - procedure.dossiers.state_en_construction.find_each do |dossier| - dossier.accepter!(gestionnaire, '') - end + procedure + .dossiers + .state_en_construction + .find_each(&:accepter_automatiquement!) else raise "Receiving Procedure##{procedure_id} in invalid state \"#{state}\"" end diff --git a/app/models/procedure.rb b/app/models/procedure.rb index c57d42a87..e082683b2 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -350,12 +350,6 @@ class Procedure < ApplicationRecord where.not(aasm_state: :archivee).where("path LIKE ?", "%#{path}%") end - def gestionnaire_for_cron_job - administrateur_email = administrateur.email - gestionnaire = Gestionnaire.find_by(email: administrateur_email) - gestionnaire || gestionnaires.first - end - def populate_champ_stable_ids TypeDeChamp.where(procedure: self, stable_id: nil).find_each do |type_de_champ| type_de_champ.update_column(:stable_id, type_de_champ.id) diff --git a/spec/jobs/auto_archive_procedure_job_spec.rb b/spec/jobs/auto_archive_procedure_job_spec.rb index 3d3b58b05..2103f8a8a 100644 --- a/spec/jobs/auto_archive_procedure_job_spec.rb +++ b/spec/jobs/auto_archive_procedure_job_spec.rb @@ -40,6 +40,7 @@ RSpec.describe AutoArchiveProcedureJob, type: :job do it { expect(dossier1.state).to eq Dossier.states.fetch(:brouillon) expect(dossier2.state).to eq Dossier.states.fetch(:en_instruction) + expect(dossier2.dossier_operation_logs.pluck(:gestionnaire_id, :operation, :automatic_operation)).to match([[nil, 'passer_en_instruction', true]]) expect(dossier3.state).to eq Dossier.states.fetch(:en_instruction) expect(dossier4.state).to eq Dossier.states.fetch(:en_instruction) expect(dossier5.state).to eq Dossier.states.fetch(:en_instruction) diff --git a/spec/jobs/auto_receive_dossiers_for_procedure_job_spec.rb b/spec/jobs/auto_receive_dossiers_for_procedure_job_spec.rb index ae4e06676..a2ab0a799 100644 --- a/spec/jobs/auto_receive_dossiers_for_procedure_job_spec.rb +++ b/spec/jobs/auto_receive_dossiers_for_procedure_job_spec.rb @@ -13,13 +13,17 @@ RSpec.describe AutoReceiveDossiersForProcedureJob, type: :job do before do Timecop.freeze(date) - nouveau_dossier1 - nouveau_dossier2 - dossier_recu - dossier_brouillon + dossiers = [ + nouveau_dossier1, + nouveau_dossier2, + dossier_recu, + dossier_brouillon + ] create(:attestation_template, procedure: procedure) AutoReceiveDossiersForProcedureJob.new.perform(procedure.id, state) + + dossiers.each(&:reload) end after { Timecop.return } @@ -29,17 +33,18 @@ RSpec.describe AutoReceiveDossiersForProcedureJob, type: :job do let(:state) { Dossier.states.fetch(:en_instruction) } it { - expect(nouveau_dossier1.reload.en_instruction?).to be true - expect(nouveau_dossier1.reload.en_instruction_at).to eq(date) + expect(nouveau_dossier1.en_instruction?).to be true + expect(nouveau_dossier1.en_instruction_at).to eq(date) + expect(nouveau_dossier1.dossier_operation_logs.pluck(:gestionnaire_id, :operation, :automatic_operation)).to match([[nil, 'passer_en_instruction', true]]) - expect(nouveau_dossier2.reload.en_instruction?).to be true - expect(nouveau_dossier2.reload.en_instruction_at).to eq(date) + expect(nouveau_dossier2.en_instruction?).to be true + expect(nouveau_dossier2.en_instruction_at).to eq(date) - expect(dossier_recu.reload.en_instruction?).to be true - expect(dossier_recu.reload.en_instruction_at).to eq(instruction_date) + expect(dossier_recu.en_instruction?).to be true + expect(dossier_recu.en_instruction_at).to eq(instruction_date) - expect(dossier_brouillon.reload.brouillon?).to be true - expect(dossier_brouillon.reload.en_instruction_at).to eq(nil) + expect(dossier_brouillon.brouillon?).to be true + expect(dossier_brouillon.en_instruction_at).to eq(nil) } end @@ -47,23 +52,24 @@ RSpec.describe AutoReceiveDossiersForProcedureJob, type: :job do let(:state) { Dossier.states.fetch(:accepte) } it { - expect(nouveau_dossier1.reload.accepte?).to be true - expect(nouveau_dossier1.reload.en_instruction_at).to eq(date) - expect(nouveau_dossier1.reload.processed_at).to eq(date) - expect(nouveau_dossier1.reload.attestation).to be_present + expect(nouveau_dossier1.accepte?).to be true + expect(nouveau_dossier1.en_instruction_at).to eq(date) + expect(nouveau_dossier1.processed_at).to eq(date) + expect(nouveau_dossier1.attestation).to be_present + expect(nouveau_dossier1.dossier_operation_logs.pluck(:gestionnaire_id, :operation, :automatic_operation)).to match([[nil, 'accepter', true]]) - expect(nouveau_dossier2.reload.accepte?).to be true - expect(nouveau_dossier2.reload.en_instruction_at).to eq(date) - expect(nouveau_dossier2.reload.processed_at).to eq(date) - expect(nouveau_dossier2.reload.attestation).to be_present + expect(nouveau_dossier2.accepte?).to be true + expect(nouveau_dossier2.en_instruction_at).to eq(date) + expect(nouveau_dossier2.processed_at).to eq(date) + expect(nouveau_dossier2.attestation).to be_present - expect(dossier_recu.reload.en_instruction?).to be true - expect(dossier_recu.reload.en_instruction_at).to eq(instruction_date) - expect(dossier_recu.reload.processed_at).to eq(nil) + expect(dossier_recu.en_instruction?).to be true + expect(dossier_recu.en_instruction_at).to eq(instruction_date) + expect(dossier_recu.processed_at).to eq(nil) - expect(dossier_brouillon.reload.brouillon?).to be true - expect(dossier_brouillon.reload.en_instruction_at).to eq(nil) - expect(dossier_brouillon.reload.processed_at).to eq(nil) + expect(dossier_brouillon.brouillon?).to be true + expect(dossier_brouillon.en_instruction_at).to eq(nil) + expect(dossier_brouillon.processed_at).to eq(nil) } end end