using GestionIntegral.Api.Dtos.Reportes; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace GestionIntegral.Api.Services.Reportes { public interface IReportesService { Task<(IEnumerable Data, string? Error)> ObtenerExistenciaPapelAsync(DateTime fechaDesde, DateTime fechaHasta, int? idPlanta, bool consolidado); Task<(IEnumerable Data, string? Error)> ObtenerMovimientoBobinasAsync(DateTime fechaDesde, DateTime fechaHasta, int idPlanta); Task<(IEnumerable Detalle, IEnumerable Totales, string? Error)> ObtenerMovimientoBobinasPorEstadoAsync(DateTime fechaDesde, DateTime fechaHasta, int idPlanta); // Reporte Listado Distribucion General (RR002) Task<(IEnumerable Resumen, IEnumerable Promedios, string? Error)> ObtenerListadoDistribucionGeneralAsync(int idPublicacion, DateTime fechaDesde, DateTime fechaHasta); // Reporte Listado Distribucion Canillas (RR002) Task<(IEnumerable Simple, IEnumerable Promedios, string? Error)> ObtenerListadoDistribucionCanillasAsync(int idPublicacion, DateTime fechaDesde, DateTime fechaHasta); // Reporte Listado Distribucion Canillas con Importes (RR002) Task<(IEnumerable Data, string? Error)> ObtenerListadoDistribucionCanillasConImporteAsync(int idPublicacion, DateTime fechaDesde, DateTime fechaHasta, bool esAccionista); // Reportes Venta Mensual Secretaria Task<(IEnumerable Data, string? Error)> ObtenerVentaMensualSecretariaElDiaAsync(DateTime fechaDesde, DateTime fechaHasta); Task<(IEnumerable Data, string? Error)> ObtenerVentaMensualSecretariaElPlataAsync(DateTime fechaDesde, DateTime fechaHasta); Task<(IEnumerable Data, string? Error)> ObtenerVentaMensualSecretariaTirDevoAsync(DateTime fechaDesde, DateTime fechaHasta); // Reporte Distribucion Canillas (MC005) - Este es un reporte más complejo Task<( IEnumerable Canillas, IEnumerable CanillasAcc, IEnumerable CanillasAll, IEnumerable CanillasFechaLiq, IEnumerable CanillasAccFechaLiq, IEnumerable CtrlDevolucionesRemitos, // Para SP_ObtenerCtrlDevoluciones IEnumerable CtrlDevolucionesParaDistCan, // Para SP_DistCanillasCantidadEntradaSalida IEnumerable CtrlDevolucionesOtrosDias, // <--- NUEVO para SP_DistCanillasCantidadEntradaSalidaOtrosDias string? Error )> ObtenerReporteDistribucionCanillasAsync(DateTime fecha, int idEmpresa); // Reporte Tiradas por Publicación y Secciones (RR008) Task<(IEnumerable Data, string? Error)> ObtenerTiradasPublicacionesSeccionesAsync(int idPublicacion, DateTime fechaDesde, DateTime fechaHasta, int idPlanta); Task<(IEnumerable Data, string? Error)> ObtenerTiradasPublicacionesSeccionesConsolidadoAsync(int idPublicacion, DateTime fechaDesde, DateTime fechaHasta); // Reporte Consumo Bobinas por Seccion (RR007) Task<(IEnumerable Data, string? Error)> ObtenerConsumoBobinasPorSeccionAsync(DateTime fechaDesde, DateTime fechaHasta, int idPlanta); Task<(IEnumerable Data, string? Error)> ObtenerConsumoBobinasPorSeccionConsolidadoAsync(DateTime fechaDesde, DateTime fechaHasta); // Reporte Consumo Bobinas por Publicacion (RR007) - Consolidado Task<(IEnumerable Data, string? Error)> ObtenerConsumoBobinasPorPublicacionAsync(DateTime fechaDesde, DateTime fechaHasta); // Reporte Comparativa Consumo Bobinas (RR007) Task<(IEnumerable Data, string? Error)> ObtenerComparativaConsumoBobinasAsync(DateTime fechaInicioMesA, DateTime fechaFinMesA, DateTime fechaInicioMesB, DateTime fechaFinMesB, int idPlanta); Task<(IEnumerable Data, string? Error)> ObtenerComparativaConsumoBobinasConsolidadoAsync(DateTime fechaInicioMesA, DateTime fechaFinMesA, DateTime fechaInicioMesB, DateTime fechaFinMesB); // DTOs para ReporteCuentasDistribuidores Task<( IEnumerable EntradasSalidas, IEnumerable DebitosCreditos, IEnumerable Pagos, IEnumerable Saldos, string? Error )> ObtenerReporteCuentasDistribuidorAsync(int idDistribuidor, int idEmpresa, DateTime fechaDesde, DateTime fechaHasta); Task<(IEnumerable Simple, IEnumerable Promedios, string? Error)> ObtenerListadoDistribucionDistribuidoresAsync(int idDistribuidor, int idPublicacion, DateTime fechaDesde, DateTime fechaHasta); Task<(IEnumerable Detalles, IEnumerable Ganancias, string? Error)> ObtenerDatosTicketLiquidacionAsync(DateTime fecha, int idCanilla); Task<(IEnumerable Data, string? Error)> ObtenerReporteMensualDiariosAsync(DateTime fechaDesde, DateTime fechaHasta, bool esAccionista); Task<(IEnumerable Data, string? Error)> ObtenerReporteMensualPorPublicacionAsync(DateTime fechaDesde, DateTime fechaHasta, bool esAccionista); Task<(IEnumerable Data, string? Error)> ObtenerFacturasParaReportePublicidad(int anio, int mes); Task<(IEnumerable Data, string? Error)> ObtenerReporteDistribucionSuscripcionesAsync(DateTime fechaDesde, DateTime fechaHasta); } }