Merge pull request #10836 from mfo/US/fix-mistake-changing-dossier-repasser-en-construciton
ETQ administrateur, je ne souhaite pas voir des dossiers en instruction repasser en construction pour une donnée qui ne m'est pas necessaire
This commit is contained in:
commit
d16a40b6aa
4 changed files with 84 additions and 7 deletions
|
@ -26,13 +26,15 @@ module Maintenance
|
|||
champ.code = formated_results.first[:value]
|
||||
champ.save!
|
||||
else # otherwise, we can't find the expected departement
|
||||
champ.code_departement = nil
|
||||
champ.code_postal = nil
|
||||
champ.external_id = nil
|
||||
champ.value = nil
|
||||
champ.save(validate: false)
|
||||
if champ.dossier.en_construction?
|
||||
champ.code_departement = nil
|
||||
champ.code_postal = nil
|
||||
champ.external_id = nil
|
||||
champ.value = nil
|
||||
champ.save(validate: false)
|
||||
|
||||
ask_user_correction(champ)
|
||||
ask_user_correction(champ)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Maintenance
|
||||
class ResolvePendingCorrectionForDossierWithInvalidCommuneExternalIdTask < MaintenanceTasks::Task
|
||||
DEFAULT_INSTRUCTEUR_EMAIL = ENV.fetch('DEFAULT_INSTRUCTEUR_EMAIL') { CONTACT_EMAIL }
|
||||
|
||||
no_collection
|
||||
|
||||
def process
|
||||
DossierCorrection.joins(:commentaire)
|
||||
.where(commentaire: { instructeur_id: current_instructeur.id })
|
||||
.where(resolved_at: nil)
|
||||
.find_each do |dossier_correction|
|
||||
penultimate_traitement, last_traitement = *dossier_correction.dossier.traitements.last(2)
|
||||
dossier_correction.resolve!
|
||||
|
||||
if last_traitement_by_us?(last_traitement) && last_transition_to_en_construction?(last_traitement, penultimate_traitement)
|
||||
dossier_correction.dossier.passer_en_instruction(instructeur: current_instructeur) if dossier_correction.dossier.validate(:champs_public_value)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def current_instructeur
|
||||
@current_instructeur = User.find_by(email: DEFAULT_INSTRUCTEUR_EMAIL).instructeur
|
||||
end
|
||||
|
||||
def current_instructeur_id
|
||||
current_instructeur.id
|
||||
end
|
||||
|
||||
def current_instructeur_email
|
||||
current_instructeur.email
|
||||
end
|
||||
|
||||
def last_traitement_by_us?(traitement)
|
||||
traitement.instructeur_email == DEFAULT_INSTRUCTEUR_EMAIL
|
||||
end
|
||||
|
||||
def last_transition_to_en_construction?(last_traitement, penultimate_traitement)
|
||||
last_traitement.state == "en_construction" && penultimate_traitement.state == 'en_instruction'
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue