Corrigir dados de vigência em notificações

This commit is contained in:
Eduardo Lopes 2026-02-02 10:51:03 -03:00
parent 71ab348bc3
commit aca7f4e74a
1 changed files with 43 additions and 14 deletions

View File

@ -29,6 +29,10 @@ public class NotificationsController : ControllerBase
join vigencia in _db.VigenciaLines.AsNoTracking()
on notification.VigenciaLineId equals vigencia.Id into vigencias
from vigencia in vigencias.DefaultIfEmpty()
let vigenciaByLinha = _db.VigenciaLines.AsNoTracking()
.Where(v => notification.Linha != null && v.Linha == notification.Linha)
.OrderByDescending(v => v.UpdatedAt)
.FirstOrDefault()
orderby notification.Data descending
select new NotificationDto
{
@ -42,13 +46,23 @@ public class NotificationsController : ControllerBase
Lida = notification.Lida,
LidaEm = notification.LidaEm,
VigenciaLineId = notification.VigenciaLineId,
Cliente = notification.Cliente ?? vigencia.Cliente,
Linha = notification.Linha ?? vigencia.Linha,
Conta = vigencia.Conta,
Usuario = notification.Usuario ?? vigencia.Usuario,
PlanoContrato = vigencia.PlanoContrato,
DtEfetivacaoServico = vigencia.DtEfetivacaoServico,
DtTerminoFidelizacao = vigencia.DtTerminoFidelizacao
Cliente = notification.Cliente
?? (vigencia != null ? vigencia.Cliente : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.Cliente : null),
Linha = notification.Linha
?? (vigencia != null ? vigencia.Linha : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.Linha : null),
Conta = (vigencia != null ? vigencia.Conta : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.Conta : null),
Usuario = notification.Usuario
?? (vigencia != null ? vigencia.Usuario : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.Usuario : null),
PlanoContrato = (vigencia != null ? vigencia.PlanoContrato : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.PlanoContrato : null),
DtEfetivacaoServico = (vigencia != null ? vigencia.DtEfetivacaoServico : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.DtEfetivacaoServico : null),
DtTerminoFidelizacao = (vigencia != null ? vigencia.DtTerminoFidelizacao : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.DtTerminoFidelizacao : null)
})
.ToListAsync();
@ -119,15 +133,30 @@ public class NotificationsController : ControllerBase
join vigencia in _db.VigenciaLines.AsNoTracking()
on notification.VigenciaLineId equals vigencia.Id into vigencias
from vigencia in vigencias.DefaultIfEmpty()
let vigenciaByLinha = _db.VigenciaLines.AsNoTracking()
.Where(v => notification.Linha != null && v.Linha == notification.Linha)
.OrderByDescending(v => v.UpdatedAt)
.FirstOrDefault()
orderby notification.ReferenciaData descending, notification.Data descending
select new NotificationExportRow(
vigencia.Conta,
notification.Linha ?? vigencia.Linha,
notification.Cliente ?? vigencia.Cliente,
notification.Usuario ?? vigencia.Usuario,
vigencia.PlanoContrato,
vigencia.DtEfetivacaoServico,
notification.ReferenciaData ?? vigencia.DtTerminoFidelizacao,
(vigencia != null ? vigencia.Conta : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.Conta : null),
notification.Linha
?? (vigencia != null ? vigencia.Linha : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.Linha : null),
notification.Cliente
?? (vigencia != null ? vigencia.Cliente : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.Cliente : null),
notification.Usuario
?? (vigencia != null ? vigencia.Usuario : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.Usuario : null),
(vigencia != null ? vigencia.PlanoContrato : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.PlanoContrato : null),
(vigencia != null ? vigencia.DtEfetivacaoServico : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.DtEfetivacaoServico : null),
notification.ReferenciaData
?? (vigencia != null ? vigencia.DtTerminoFidelizacao : null)
?? (vigenciaByLinha != null ? vigenciaByLinha.DtTerminoFidelizacao : null),
notification.Tipo))
.ToListAsync();