Correccion - Mejora #5033
Actualizado por Oscar Abad hace alrededor de 1 año
Incluir tareas para la notificación a los usuarios involucrados de aquellos acuerdos que siguen abiertos pasada la fecha de finalización. Ya implementado en gor/lib/tareas.rb <pre> # Notificacion de acuerdos abiertos con fecha de finalizacion superada def self.notifica_acuerdos_abiertos Rails.logger.info "*** Notifica acuerdos abiertos (#{I18n.l(Time.now)})" acuerdos = Acuerdo.expirados_y_abiertos num_acuerdos = acuerdos.count if num_acuerdos > 0 Rails.logger.info "*** Hay #{num_acuerdos} acuerdos abiertos que han finalizado" acuerdos.each do |acuerdo| fecha_finalizacion = acuerdo.ultimos_datos.fecha_fin acuerdo.usuarios_notificacion.each do |destinatario| Rails.logger.info "[Tareas.notifica_acuerdos_abiertos] Enviando notificación de acuerdo expirado (#{acuerdo.id}) a '#{destinatario.correoe}'" begin AcuerdosMailer.acuerdo_expirado_abierto(destinatario, acuerdo).deliver_later rescue => e Rails.logger.error "[Tareas.notifica_acuerdos_abiertos] No se ha podido mandar el mail a '#{destinatario.correoe}': #{e.inspect}" end end end end end </pre> Ejecutándose cada semana en plugins/oei_erp/lib/clock.rb <pre> # Envia notificaciones de acuerdos abiertos todos los domingos a las 10.45h every(1.week, 'Convenios abiertos', at: 'Sunday 10:45') do |job| Tareas.notifica_acuerdos_abiertos end </pre> Según los datos de la BD anonimizada de producción: <pre> *** Notifica acuerdos abiertos (03/10/2023) *** Hay 635 acuerdos abiertos que han finalizado ... [Tareas.notifica_acuerdos_abiertos] Enviando notificación 2688 de acuerdo expirado (3257) </pre> Hay un error en la implementación (seguramente de un copia y pega), teniéndose que eliminar la línea: <pre> def acuerdo_expirado_abierto(usuario, acuerdo) ... @usuario_identificado = usuario_identificado </pre> Parece que la cantidad de correos a enviar es enorme. Acciones preventivas: 1.- Sólo enviar correos a los destinatarios directos de los correos. 2.- Se podría añadir una variable de configuración para enviar los correos o no.