Creacion del funcionamiento para generar el reporte general

main
Felix Morales 5 days ago
parent 7f35bc9d02
commit b5eba08ffa
  1. 8
      Contracts/Reportes/Facturacion/IReportesFacturacionRepository.cs
  2. 54
      Controllers/Reportes/Facturacion/ReportesFacturacionController.cs
  3. 1
      Controllers/Utils/ReportesController.cs
  4. 32
      DTO/Reportes/Facturacion/DTOReporteGeneralFacturacion.cs
  5. 3
      Program.cs
  6. 34
      Repository/Reportes/Facturacion/ReportesFacturacionRepository.cs

@ -0,0 +1,8 @@
using CORRESPONSALBackend.DTO.Reportes;
using CORRESPONSALBackend.DTO.Reportes.Facturacion;
namespace CORRESPONSALBackend.Contracts.Reportes.Facturacion{
public interface IReportesFacturacionRepository{
public Task<IEnumerable<DTOReporteGeneralFacturacion>> GetCuentasFacturadas(DTOReporteCorresponsales data);
}
}

@ -0,0 +1,54 @@
using CORRESPONSALBackend.Contracts.Reportes.Facturacion;
using CORRESPONSALBackend.DTO.Reportes;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using OfficeOpenXml;
using OfficeOpenXml.Table;
namespace CORRESPONSALBackend.Controllers.Reportes.Facturacion{
[Authorize]
[ApiController]
[Route("api/[controller]")]
public class ReportesFacturacionController : ControllerBase{
private readonly IReportesFacturacionRepository _cuentasRepo;
public ReportesFacturacionController(IReportesFacturacionRepository cuentasRepo){
_cuentasRepo = cuentasRepo;
}
[HttpGet("CuentasFacturadas")]
public async Task<IActionResult> GetCuentasFacturadas([FromQuery] DTOReporteCorresponsales data){
try{
var cuentas = await _cuentasRepo.GetCuentasFacturadas(data);
return Ok(cuentas);
}catch(Exception ex){
return BadRequest(ex.Message);
}
}
[HttpGet("FacturacionExcel")]
public async Task<IActionResult> GetFacturacionExcel([FromQuery] DTOReporteCorresponsales data ){
try{
var traficos = await _cuentasRepo.GetCuentasFacturadas(data);
var today = DateTime.Now;
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (ExcelPackage excelPackage = new ExcelPackage()){
var worksheet = excelPackage.Workbook.Worksheets.Add("sheet1");
worksheet.Cells["A1"].LoadFromCollection(traficos, true);
//Se crea la tabla en el rango de celdas donde se mostrara la inforamcion.
ExcelRange range = worksheet.Cells[1, 1,traficos.Count() + 1, 27];
ExcelTable tab = worksheet.Tables.Add(range, "Table1");
tab.TableStyle = TableStyles.Light1;
worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();
excelPackage.Workbook.Calculate();
var stream = new MemoryStream();
excelPackage.SaveAs(stream);
stream.Position = 0;
return File(stream, "application/octet-stream", $"ReporteFacturacion_{today.Day}-{today.Month}-{today.Year}.xlsx");
}
}catch(Exception ex){
return BadRequest(ex.Message);
}
}
}
}

@ -6,6 +6,7 @@ using CORRESPONSALBackend.DTO.Corresponsales;
namespace CORRESPONSALBackend.Controllers
{
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class ReportesController : ControllerBase

@ -0,0 +1,32 @@
namespace CORRESPONSALBackend.DTO.Reportes.Facturacion{
public class DTOReporteGeneralFacturacion
{
public string Trafico { get; set; }
public string Corresponsal { get; set; }
public string Aduana { get; set; }
public int Patente { get; set; }
public string PedimentoCorreponsal { get; set; }
public string PedimentoCorresponsalR1 { get; set; }
public string FechaPago { get; set; }
public string FechaAnticipo { get; set; }
public double SumaAnticipoCorresponsalFinanciado { get; set; }
public string FechaAlta { get; set; }
public string UsuarioAlta { get; set; }
public int Cliente { get; set; }
public string Nombrecliente { get; set; }
public string Cuenta { get; set; }
public string TipoOperacion { get; set; }
public string Terminado { get; set; }
public string FechaRegistroContabilizar { get; set; }
public string FechaContabilizado { get; set; }
public string FechaFacturado { get; set; }
public string FechaFacturaCorresponsal { get; set; }
public string FechaCruce { get; set; }
public string MotivoCuentaRechazadaContabilidad { get; set; }
public string MotivoCuentaRechazadaFacturacion { get; set; }
public string MotivoSolicitaReapertura { get; set; }
public string SolicitudReaperturaAutorizada { get; set; }
public string EstatusOperacion { get; set; }
public string CargoShipper { get; set; }
}
}

@ -55,6 +55,8 @@ using CORRESPONSALBackend.Services.Reportes;
using CORRESPONSALBackend.Contracts.ArchivoElectronico;
using CORRESPONSALBackend.Services;
using CORRESPONSALBackend.Repository.Reportes.Alen;
using CORRESPONSALBackend.Contracts.Reportes.Facturacion;
using CORRESPONSALBackend.Repository.Reportes.Facturacion;
var builder = WebApplication.CreateBuilder(args);
@ -81,6 +83,7 @@ builder.Services.AddScoped<IReportesAlenService, ReportesAlenService>();
builder.Services.AddScoped<IReportesAlenRepository, ReportesAlenRepository>();
builder.Services.AddScoped<IReporteCuentasCerradasRepository, ReporteCuentasCerradasRepository>();
builder.Services.AddScoped<IReporteCuentasCerradasService, ReporteCuentasCerradasService>();
builder.Services.AddScoped<IReportesFacturacionRepository, ReportesFacturacionRepository>();
// Corresponsalias
builder.Services.AddScoped<IContabilidadCorresponsaliasRepository, ContabilidadCorresponsaliasRepository>();
builder.Services.AddScoped<ICorresponsaliasContenedoresRepository, CorresponsaliasContenedoresRepository>();

@ -0,0 +1,34 @@
using System.Data;
using CORRESPONSALBackend.Context;
using CORRESPONSALBackend.Contracts.Reportes.Facturacion;
using CORRESPONSALBackend.DTO.Reportes;
using CORRESPONSALBackend.DTO.Reportes.Facturacion;
using Dapper;
namespace CORRESPONSALBackend.Repository.Reportes.Facturacion{
public class ReportesFacturacionRepository : IReportesFacturacionRepository
{
private readonly DapperContext _context;
public ReportesFacturacionRepository(DapperContext context) { _context = context; }
public async Task<IEnumerable<DTOReporteGeneralFacturacion>> GetCuentasFacturadas(DTOReporteCorresponsales data)
{
var query = "[Reportes.Facturacion.GetCuentasFacturadas]";
using var connection = _context.CreateConnection();
var entrada = await connection.QueryAsync<DTOReporteGeneralFacturacion>(query, new
{
@Inicio = data.Inicio,
@Fin = data.Fin,
@NoCliente = data.NoCliente,
@TipoOperacion = data.TipoOperacion,
@IdCorresponsal = data.IdCorresponsal,
@Patente = data.Patente,
@Aduana = data.Aduana,
@Pedimento = data.Pedimento,
@Proceso = data.Proceso,
@Modo = data.Modo
},
commandType: CommandType.StoredProcedure);
return entrada;
}
}
}
Loading…
Cancel
Save