namespace :after_party do desc 'Deployment task: fix_champ_etablissement' task fix_champ_etablissement: :environment do puts "Running deploy task 'fix_champ_etablissement'" etablissements = Etablissement.joins(:champ).where.not(dossier_id: nil).where('etablissements.created_at > ?', 1.month.ago) dossiers_modif = [] etablissements.find_each do |e| if e.dossier user = e.dossier.user dossier = e.dossier if user.dossiers.count == 1 && user.siret == e.champ.value e.update!(dossier_id: nil) dossier.reload.etablissement = e.reload.dup dossier.save! dossiers_modif << dossier.id fetch_api_entreprise_infos(dossier.etablissement.id, dossier.procedure.id, user.id) end end end puts "Nb dossiers modifiés: #{dossiers_modif.size}" AfterParty::TaskRecord.create version: '20200527124112' end def fetch_api_entreprise_infos(etablissement_id, procedure_id, user_id) [ ApiEntreprise::EntrepriseJob, ApiEntreprise::AssociationJob, ApiEntreprise::ExercicesJob, ApiEntreprise::EffectifsJob, ApiEntreprise::EffectifsAnnuelsJob, ApiEntreprise::AttestationSocialeJob, ApiEntreprise::BilansBdfJob ].each do |job| job.perform_later(etablissement_id, procedure_id) end ApiEntreprise::AttestationFiscaleJob.perform_later(etablissement_id, procedure_id, user_id) end end