[fix #3268] Jobs: use automatic_operation

This commit is contained in:
simon lehericey 2019-01-16 10:47:32 +01:00
parent 6ab2d124f9
commit 99bfd19b41
5 changed files with 45 additions and 44 deletions

View file

@ -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

View file

@ -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

View file

@ -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)