48 lines
1.5 KiB
Ruby
48 lines
1.5 KiB
Ruby
require Rails.root.join("lib", "tasks", "task_helper")
|
|
|
|
namespace :re_routing_dossiers do
|
|
desc <<~EOD
|
|
Given an procedure id in argument, run the RoutingEngine again for all "en construction" dossiers of the procedure
|
|
ex: rails re_routing_dossiers:run\[85869\]
|
|
EOD
|
|
|
|
task :run, [:procedure_id] => :environment do |_t, args|
|
|
procedure = Procedure.find_by(id: args[:procedure_id])
|
|
|
|
dossiers = procedure.dossiers.state_en_construction
|
|
|
|
progress = ProgressReport.new(dossiers.count)
|
|
|
|
assignment_mode = DossierAssignment.modes.fetch(:tech)
|
|
|
|
dossiers.each do |dossier|
|
|
RoutingEngine.compute(dossier, assignment_mode:)
|
|
|
|
rake_puts "Dossier #{dossier.id} routed to groupe instructeur #{dossier.groupe_instructeur.label}"
|
|
|
|
progress.inc
|
|
end
|
|
progress.finish
|
|
end
|
|
|
|
desc <<~EOD
|
|
Given an procedure id in argument, reset value of forced_groupe_instructeur to false for all dossiers en_construction.
|
|
ex: rails re_routing_dossiers:reset_forced_groupe_instructeur\[85869\]
|
|
EOD
|
|
task :reset_forced_groupe_instructeur, [:procedure_id] => :environment do |_t, args|
|
|
procedure = Procedure.find_by(id: args[:procedure_id])
|
|
|
|
dossiers = procedure.dossiers.state_en_construction
|
|
|
|
progress = ProgressReport.new(dossiers.count)
|
|
|
|
dossiers.each do |dossier|
|
|
if dossier.update(forced_groupe_instructeur: false)
|
|
rake_puts "Dossier #{dossier.id} updated with forced_groupe_instructeur to false"
|
|
|
|
progress.inc
|
|
end
|
|
end
|
|
progress.finish
|
|
end
|
|
end
|