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() join vigencia in _db.VigenciaLines.AsNoTracking()
on notification.VigenciaLineId equals vigencia.Id into vigencias on notification.VigenciaLineId equals vigencia.Id into vigencias
from vigencia in vigencias.DefaultIfEmpty() 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 orderby notification.Data descending
select new NotificationDto select new NotificationDto
{ {
@ -42,13 +46,23 @@ public class NotificationsController : ControllerBase
Lida = notification.Lida, Lida = notification.Lida,
LidaEm = notification.LidaEm, LidaEm = notification.LidaEm,
VigenciaLineId = notification.VigenciaLineId, VigenciaLineId = notification.VigenciaLineId,
Cliente = notification.Cliente ?? vigencia.Cliente, Cliente = notification.Cliente
Linha = notification.Linha ?? vigencia.Linha, ?? (vigencia != null ? vigencia.Cliente : null)
Conta = vigencia.Conta, ?? (vigenciaByLinha != null ? vigenciaByLinha.Cliente : null),
Usuario = notification.Usuario ?? vigencia.Usuario, Linha = notification.Linha
PlanoContrato = vigencia.PlanoContrato, ?? (vigencia != null ? vigencia.Linha : null)
DtEfetivacaoServico = vigencia.DtEfetivacaoServico, ?? (vigenciaByLinha != null ? vigenciaByLinha.Linha : null),
DtTerminoFidelizacao = vigencia.DtTerminoFidelizacao 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(); .ToListAsync();
@ -119,15 +133,30 @@ public class NotificationsController : ControllerBase
join vigencia in _db.VigenciaLines.AsNoTracking() join vigencia in _db.VigenciaLines.AsNoTracking()
on notification.VigenciaLineId equals vigencia.Id into vigencias on notification.VigenciaLineId equals vigencia.Id into vigencias
from vigencia in vigencias.DefaultIfEmpty() 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 orderby notification.ReferenciaData descending, notification.Data descending
select new NotificationExportRow( select new NotificationExportRow(
vigencia.Conta, (vigencia != null ? vigencia.Conta : null)
notification.Linha ?? vigencia.Linha, ?? (vigenciaByLinha != null ? vigenciaByLinha.Conta : null),
notification.Cliente ?? vigencia.Cliente, notification.Linha
notification.Usuario ?? vigencia.Usuario, ?? (vigencia != null ? vigencia.Linha : null)
vigencia.PlanoContrato, ?? (vigenciaByLinha != null ? vigenciaByLinha.Linha : null),
vigencia.DtEfetivacaoServico, notification.Cliente
notification.ReferenciaData ?? vigencia.DtTerminoFidelizacao, ?? (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)) notification.Tipo))
.ToListAsync(); .ToListAsync();