Finalización de Reportes y arreglos varios de controles y comportamientos...

This commit is contained in:
2025-06-03 13:45:20 -03:00
parent 99532b03f1
commit 062cc05fd0
67 changed files with 4523 additions and 993 deletions

View File

@@ -449,5 +449,46 @@ namespace GestionIntegral.Api.Services.Reportes
return (Enumerable.Empty<ListadoDistribucionDistSimpleDto>(), Enumerable.Empty<ListadoDistribucionDistPromedioDiaDto>(), "Error interno al generar el reporte.");
}
}
public async Task<(
IEnumerable<LiquidacionCanillaDetalleDto> Detalles,
IEnumerable<LiquidacionCanillaGananciaDto> Ganancias,
string? Error
)> ObtenerDatosTicketLiquidacionAsync(DateTime fecha, int idCanilla)
{
try
{
var detallesTask = _reportesRepository.GetLiquidacionCanillaDetalleAsync(fecha, idCanilla);
var gananciasTask = _reportesRepository.GetLiquidacionCanillaGananciasAsync(fecha, idCanilla);
await Task.WhenAll(detallesTask, gananciasTask);
var detalles = await detallesTask;
var ganancias = await gananciasTask;
if ((detalles == null || !detalles.Any()) && (ganancias == null || !ganancias.Any()))
{
// Podrías optar por no devolver error aquí si es válido que uno de los dos esté vacío
// y manejarlo en el controlador o el RDLC.
}
// Convertir fechas a UTC si es necesario para el RDLC (aunque estos DTOs no tienen fechas)
return (
detalles ?? Enumerable.Empty<LiquidacionCanillaDetalleDto>(),
ganancias ?? Enumerable.Empty<LiquidacionCanillaGananciaDto>(),
null
);
}
catch (Exception ex)
{
_logger.LogError(ex, "Error en ReportesService al obtener datos para Ticket Liquidación Canilla. Fecha: {Fecha}, Canilla: {IdCanilla}", fecha, idCanilla);
return (
Enumerable.Empty<LiquidacionCanillaDetalleDto>(),
Enumerable.Empty<LiquidacionCanillaGananciaDto>(),
"Error interno al obtener los datos para el ticket de liquidación."
);
}
}
}
}