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>