Compare commits
45 Commits
@ -0,0 +1,9 @@ |
||||
using CORRESPONSALBackend.DTO.ArchivoElectronico; |
||||
using GEMCO.Backend.Models.Reportes; |
||||
|
||||
namespace CORRESPONSALBackend.Contracts.ArchivoElectronico{ |
||||
public interface IArchivoElectronicoRepository |
||||
{ |
||||
public Task<List<RptPedimentosPagadosAEO>> getRptPedimentoPagadosAEO(DTOAEPeriodo dTOData); |
||||
} |
||||
} |
@ -0,0 +1,5 @@ |
||||
namespace CORRESPONSALBackend.Contracts.ArchivoElectronico{ |
||||
public interface IArchivoElectronicoService{ |
||||
|
||||
} |
||||
} |
@ -0,0 +1,7 @@ |
||||
using CORRESPONSALBackend.Models.Catalogos; |
||||
|
||||
namespace CORRESPONSALBackend.Contracts.Catalogos{ |
||||
public interface ICatTiposContenedoresRepository{ |
||||
public Task<IEnumerable<CatTiposContenedores>> Get(); |
||||
} |
||||
} |
@ -0,0 +1,9 @@ |
||||
using CORRESPONSALBackend.Models.Corresponsales; |
||||
|
||||
namespace CORRESPONSALBackend.Contracts.Corresponsalias{ |
||||
public interface ICorresponsaliasPedimentosConsolidadosRepository{ |
||||
public Task<IEnumerable<CorresponsalPedimentosConsolidados>> GetAll(int IdTrafico); |
||||
public Task<CorresponsalPedimentosConsolidados> Append(CorresponsalPedimentosConsolidados pedimento); |
||||
public Task Delete(int id); |
||||
} |
||||
} |
@ -0,0 +1,11 @@ |
||||
using CORRESPONSALBackend.DTO.Corresponsales; |
||||
using CORRESPONSALBackend.Models.Corresponsales; |
||||
|
||||
namespace CORRESPONSALBackend.Contracts.Corresponsalias{ |
||||
public interface ICorresponsaliasSolicitudesRepository{ |
||||
public Task<ITraficoSolicitud> AppendSolicitudReapertura(ITraficoSolicitud solicitud); |
||||
public Task<DTOTraficoSolicitud> GetSolicitudReapertura(int idTrafico); |
||||
public Task<ITraficoSolicitud> AppendSolicitudEliminarReferencia(ITraficoSolicitud solicitud); |
||||
public Task<DTOTraficoSolicitud> GetSolicitudEliminarReferencia(int idTrafico); |
||||
} |
||||
} |
@ -1,5 +1,6 @@ |
||||
namespace CORRESPONSALBackend.Contracts.Corresponsalias.Services{ |
||||
public interface ICorresponsaliasTraficosService{ |
||||
public Task<List<string[]>> ReadTxtFacturasAlen(int fileId); |
||||
public Task<string> GetTxtFacturacionData(int idTrafico); |
||||
} |
||||
} |
||||
|
@ -0,0 +1,16 @@ |
||||
using CORRESPONSALBackend.DTO.Reportes.Alen; |
||||
using CORRESPONSALBackend.Models.Clientes.Alen; |
||||
|
||||
namespace CORRESPONSALBackend.Contracts.Reportes.Alen{ |
||||
public interface IEstadosCuentaAlenRepository{ |
||||
public Task ClearData(); |
||||
public Task<IEnumerable<DTOEstadosCuentaAlen>> GetAll(DTOEstadosCuentaAlenFilters filters); |
||||
public Task<EstadosCuenta> Append (EstadosCuenta data); |
||||
|
||||
public Task<EstadosCuenta> GetByFolio (string Folio); |
||||
|
||||
public Task<EstadosCuenta> MarkAsProgramado (string NoMovimiento, string NoSerie); |
||||
public Task<EstadosCuenta> AppendOrdenCompra(DTOEstadosCuentaAlen data); |
||||
public Task<EstadosCuenta> AppendObservaciones(DTOEstadosCuentaAlen data); |
||||
} |
||||
} |
@ -0,0 +1,5 @@ |
||||
namespace CORRESPONSALBackend.Contracts.Reportes.Alen{ |
||||
public interface IReportesAlenRepository{ |
||||
public Task<IEnumerable<DTOReporteFacturasTraficosConsolidados>> GetFacturasTraficoConsolidado(int idTrafico, string referencia); |
||||
} |
||||
} |
@ -0,0 +1,7 @@ |
||||
using CORRESPONSALBackend.DTO.Reportes.CuentasCerradas; |
||||
|
||||
namespace CORRESPONSALBackend.Contracts.Reportes.CuentasCerradas{ |
||||
public interface IReporteCuentasCerradasRepository{ |
||||
public Task<IEnumerable<DTOCuentasCerradas>> GetCuentasCerradas(string Inicio, string Fin, int TipoOperacion, int NoCliente, int IdCorresponsal); |
||||
} |
||||
} |
@ -0,0 +1,7 @@ |
||||
using CORRESPONSALBackend.DTO.Reportes.CuentasCerradas; |
||||
|
||||
namespace CORRESPONSALBackend.Contracts.Reportes.CuentasCerradas{ |
||||
public interface IReporteCuentasCerradasService{ |
||||
public Task<MemoryStream> GetExcel(IEnumerable<DTOCuentasCerradas> cuentas); |
||||
} |
||||
} |
@ -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,7 @@ |
||||
using CORRESPONSALBackend.DTO.Corresponsales; |
||||
|
||||
namespace CORRESPONSALBackend.Contracts.Reportes{ |
||||
public interface ITraficosClientesService{ |
||||
public Task<MemoryStream> GetExcel(IEnumerable<DTOCorresponsalTrafico> traficos); |
||||
} |
||||
} |
@ -0,0 +1,22 @@ |
||||
using CORRESPONSALBackend.Contracts.Catalogos; |
||||
using CORRESPONSALBackend.Models.Catalogos; |
||||
using Microsoft.AspNetCore.Authorization; |
||||
using Microsoft.AspNetCore.Mvc; |
||||
|
||||
namespace CORRESPONSALBackend.Controllers.Catalogos{ |
||||
[Authorize] |
||||
[Route("api/Catalogos/[controller]")]
|
||||
public class CatTiposContenedoresController : Controller{ |
||||
private readonly ICatTiposContenedoresRepository _repo; |
||||
|
||||
public CatTiposContenedoresController(ICatTiposContenedoresRepository repo){ |
||||
_repo = repo; |
||||
} |
||||
|
||||
[HttpGet] |
||||
public async Task<IEnumerable<CatTiposContenedores>> Get(){ |
||||
var tipos = await _repo.Get(); |
||||
return tipos; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,42 @@ |
||||
using CORRESPONSALBackend.Contracts.Corresponsalias; |
||||
using CORRESPONSALBackend.Models.Corresponsales; |
||||
using Microsoft.AspNetCore.Authorization; |
||||
using Microsoft.AspNetCore.Mvc; |
||||
|
||||
namespace CORRESPONSALBackend.Controllers.Corresponsalias{ |
||||
[Authorize] |
||||
[Route("api/Corresponsalias/[controller]")]
|
||||
[ApiController] |
||||
public class PedimentosConsolidados : ControllerBase{ |
||||
private readonly ICorresponsaliasPedimentosConsolidadosRepository _repo; |
||||
public PedimentosConsolidados(ICorresponsaliasPedimentosConsolidadosRepository repo){ |
||||
_repo = repo; |
||||
} |
||||
|
||||
[HttpPost("Append")] |
||||
public async Task<IActionResult> Append([FromBody] CorresponsalPedimentosConsolidados data){ |
||||
try{ |
||||
var entrada = await _repo.Append(data); |
||||
return Ok(entrada); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
[HttpGet("GetAll")] |
||||
public async Task<IEnumerable<CorresponsalPedimentosConsolidados>> GetAll([FromQuery] int IdTrafico){ |
||||
var entrada = await _repo.GetAll(IdTrafico); |
||||
return entrada; |
||||
} |
||||
|
||||
[HttpDelete("Delete/{id}")] |
||||
public async Task<IActionResult> Delete(int id){ |
||||
try{ |
||||
await _repo.Delete(id); |
||||
return new OkObjectResult(new { respuesta = "Se elimino el registro" }); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,57 @@ |
||||
using CORRESPONSALBackend.Contracts.Corresponsalias; |
||||
using CORRESPONSALBackend.Models.Corresponsales; |
||||
using Microsoft.AspNetCore.Authorization; |
||||
using Microsoft.AspNetCore.Mvc; |
||||
|
||||
namespace CORRESPONSALBackend.Controllers.Corresponsalias{ |
||||
[Authorize] |
||||
[Route("api/Corresponsalias/[controller]")]
|
||||
[ApiController] |
||||
public class SolicitudesController : ControllerBase |
||||
{ |
||||
private readonly ICorresponsaliasSolicitudesRepository _Repo; |
||||
public SolicitudesController(ICorresponsaliasSolicitudesRepository Repo){ |
||||
_Repo = Repo; |
||||
} |
||||
|
||||
[HttpPost("Reapertura/Append")] |
||||
public async Task<IActionResult> AppendSolicitudReapertura([FromBody] ITraficoSolicitud solicitud){ |
||||
try{ |
||||
var response = await _Repo.AppendSolicitudReapertura(solicitud); |
||||
return Ok(response); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
[HttpGet("Reapertura/Get")] |
||||
public async Task<IActionResult> GetSolicitudReapertura([FromQuery] int idTrafico){ |
||||
try{ |
||||
var solicitud = await _Repo.GetSolicitudReapertura(idTrafico); |
||||
return Ok(solicitud); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
[HttpPost("EliminarCuenta/Append")] |
||||
public async Task<IActionResult> AppendSolicitudEliminarCuenta([FromBody] ITraficoSolicitud solicitud){ |
||||
try{ |
||||
var response = await _Repo.AppendSolicitudEliminarReferencia(solicitud); |
||||
return Ok(response); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
[HttpGet("EliminarCuenta/Get")] |
||||
public async Task<IActionResult> GetSolicitudEliminarCuenta([FromQuery] int idTrafico){ |
||||
try{ |
||||
var solicitud = await _Repo.GetSolicitudEliminarReferencia(idTrafico); |
||||
return Ok(solicitud); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,252 @@ |
||||
using System.Globalization; |
||||
using CORRESPONSALBackend.Contracts.Reportes.Alen; |
||||
using CORRESPONSALBackend.Contracts.Utils; |
||||
using CORRESPONSALBackend.DTO.Reportes.Alen; |
||||
using CORRESPONSALBackend.Models.Clientes.Alen; |
||||
using CORRESPONSALBackend.Models.Utils; |
||||
using Microsoft.AspNetCore.Authorization; |
||||
using Microsoft.AspNetCore.Mvc; |
||||
using OfficeOpenXml; |
||||
using OfficeOpenXml.Style; |
||||
using OfficeOpenXml.Table; |
||||
|
||||
namespace CORRESPONSALBackend.Controllers.Reportes.Alen{ |
||||
[Authorize] |
||||
[ApiController] |
||||
[Route("api/[controller]")]
|
||||
public class ReporteEstadosCuentaAlenController : ControllerBase{ |
||||
|
||||
private readonly IFileManagerRepository _Repo; |
||||
private readonly IFilePaths4ProcessRepository _RepoRelativePath; |
||||
private readonly IConfiguration _config; |
||||
private readonly string RootPathCorresponsales; |
||||
private readonly IEstadosCuentaAlenRepository _EstadosCuentaAlenRepo; |
||||
public ReporteEstadosCuentaAlenController(IFilePaths4ProcessRepository RepoRelativePath, IConfiguration config, IFileManagerRepository Repo, IEstadosCuentaAlenRepository EstadosCuentaAlenRepo){ |
||||
_Repo = Repo; |
||||
_RepoRelativePath = RepoRelativePath; |
||||
_config = config; |
||||
RootPathCorresponsales = _config.GetValue<string>("AllFiles"); |
||||
_EstadosCuentaAlenRepo = EstadosCuentaAlenRepo; |
||||
} |
||||
|
||||
[HttpPost("Append")] |
||||
public async Task<IActionResult> Append(IFormFile file){ |
||||
try{ |
||||
await _EstadosCuentaAlenRepo.ClearData(); |
||||
//Obtener la ruta del archivo |
||||
//Se obtiene la ruta del archivo |
||||
//FileManager recFound = await _Repo.getFileById(45); |
||||
FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(45); |
||||
|
||||
if(!System.IO.Directory.Exists(RootPathCorresponsales + RelativePath.Path)){ |
||||
System.IO.Directory.CreateDirectory(RootPathCorresponsales + RelativePath.Path); |
||||
} |
||||
|
||||
string filePath = RootPathCorresponsales + RelativePath.Path + file.FileName; |
||||
if(System.IO.File.Exists(filePath)){ |
||||
System.IO.File.Delete(filePath); |
||||
} |
||||
//Si es un archivo nuevo se guarda |
||||
using(var stream = System.IO.File.Create(filePath)){ |
||||
await file.CopyToAsync(stream); |
||||
} |
||||
//Leer el archivo con epplus |
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; |
||||
using(ExcelPackage package = new ExcelPackage(filePath)){ |
||||
var worksheet = package.Workbook.Worksheets.FirstOrDefault(); |
||||
int rowCount = 2; |
||||
worksheet.Column(18).Style.Numberformat.Format = "yyyy-mm-dd"; |
||||
worksheet.Column(19).Style.Numberformat.Format = "yyyy-mm-dd"; |
||||
worksheet.Column(20).Style.Numberformat.Format = "yyyy-mm-dd"; |
||||
while(string.IsNullOrWhiteSpace(worksheet?.Cells[rowCount, 4].Value?.ToString()) == false){ |
||||
EstadosCuenta estadoCuenta = new EstadosCuenta(){ |
||||
id=0, |
||||
TipoMovimiento = worksheet.Cells[rowCount, 1].Value != null ? worksheet.Cells[rowCount, 1].Value?.ToString() : "", |
||||
NoSerie = worksheet.Cells[rowCount, 2].Value != null ? worksheet.Cells[rowCount, 2].Value?.ToString() : "", |
||||
NoMovimiento = worksheet.Cells[rowCount, 3].Value != null ? worksheet.Cells[rowCount, 3].Value?.ToString() : "", |
||||
Trafico = worksheet.Cells[rowCount, 4].Value != null ? worksheet.Cells[rowCount, 4].Value?.ToString() : "", |
||||
Impexp = worksheet.Cells[rowCount, 5].Value != null ? worksheet.Cells[rowCount, 5].Value?.ToString() : "", |
||||
Aduana = worksheet.Cells[rowCount, 6].Value != null ? worksheet.Cells[rowCount, 6].Value?.ToString() : "", |
||||
Patente = worksheet.Cells[rowCount, 7].Value != null ? worksheet.Cells[rowCount, 7].Value?.ToString() : "", |
||||
Pedimento = worksheet.Cells[rowCount, 8].Value != null ? worksheet.Cells[rowCount, 8].Value?.ToString() : "", |
||||
Clave = worksheet.Cells[rowCount, 9].Value != null ? worksheet.Cells[rowCount, 9].Value?.ToString() : "", |
||||
NoCliente = worksheet.Cells[rowCount, 10].Value != null ? worksheet.Cells[rowCount, 10].Value?.ToString() : "", |
||||
NoCentro = worksheet.Cells[rowCount, 11].Value != null ? worksheet.Cells[rowCount, 11].Value?.ToString() : "", |
||||
SubCentro = worksheet.Cells[rowCount, 12].Value != null ? worksheet.Cells[rowCount, 12].Value?.ToString() : "", |
||||
Nombre = worksheet.Cells[rowCount, 13].Value != null ? worksheet.Cells[rowCount, 13].Value?.ToString() : "", |
||||
SubCtaNombre = worksheet.Cells[rowCount, 14].Value != null ? worksheet.Cells[rowCount, 14].Value?.ToString() : "", |
||||
TipoRangos = worksheet.Cells[rowCount, 15].Value != null ? worksheet.Cells[rowCount, 15].Value?.ToString() : "", |
||||
Cargos = worksheet.Cells[rowCount, 16].Value != null ? worksheet.Cells[rowCount, 16].Value?.ToString() : "", |
||||
Abonos = worksheet.Cells[rowCount, 17].Value != null ? worksheet.Cells[rowCount, 17].Value?.ToString() : "", |
||||
Fecha = worksheet.Cells[rowCount, 18].Value != null ? StringToDateTime(worksheet.Cells[rowCount, 18].Value?.ToString().Substring(0,10)) : "", |
||||
FechaPedimento = worksheet.Cells[rowCount, 19].Value != null ? StringToDateTime(worksheet.Cells[rowCount, 19].Value?.ToString().Substring(0,10)) : "", |
||||
FechaRev = worksheet.Cells[rowCount, 20].Value != null ? StringToDateTime(worksheet.Cells[rowCount, 20].Value?.ToString().Substring(0,10)) : "", |
||||
DiasPedimCta = worksheet.Cells[rowCount, 21].Value != null ? worksheet.Cells[rowCount, 21].Value?.ToString() : "", |
||||
DiasCtaRev = worksheet.Cells[rowCount, 22].Value != null ? worksheet.Cells[rowCount, 22].Value?.ToString() : "", |
||||
DiasRev = worksheet.Cells[rowCount, 23].Value != null ? worksheet.Cells[rowCount, 23].Value?.ToString() : "", |
||||
IvaAl = worksheet.Cells[rowCount, 24].Value != null ? worksheet.Cells[rowCount, 24].Value?.ToString() : "", |
||||
TotalFacturado = worksheet.Cells[rowCount, 25].Value != null ? worksheet.Cells[rowCount, 25].Value?.ToString() : "", |
||||
SaldoFinal = worksheet.Cells[rowCount, 26].Value != null ? worksheet.Cells[rowCount, 26].Value?.ToString() : "", |
||||
Anticipo = worksheet.Cells[rowCount, 27].Value != null ? worksheet.Cells[rowCount, 27].Value?.ToString() : "", |
||||
UUID = worksheet.Cells[rowCount, 28].Value != null ? worksheet.Cells[rowCount, 28].Value?.ToString() : "", |
||||
Descripcion = worksheet.Cells[rowCount, 29].Value != null ? worksheet.Cells[rowCount, 29].Value?.ToString() : "", |
||||
Remitente = worksheet.Cells[rowCount, 30].Value != null ? worksheet.Cells[rowCount, 30].Value?.ToString() : "", |
||||
Pedido = worksheet.Cells[rowCount, 31].Value != null ? worksheet.Cells[rowCount, 31].Value?.ToString() : "", |
||||
TipoMercancia = worksheet.Cells[rowCount, 32].Value != null ? worksheet.Cells[rowCount, 32].Value?.ToString() : "", |
||||
CampoAdicional5 = worksheet.Cells[rowCount, 33].Value != null ? worksheet.Cells[rowCount, 33].Value?.ToString() : "", |
||||
}; |
||||
var resp = await _EstadosCuentaAlenRepo.Append(estadoCuenta); |
||||
rowCount++; |
||||
} |
||||
} |
||||
return Ok(); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
private string StringToDateTime(string s){ |
||||
return DateTime.ParseExact(s, "dd/MM/yyyy",CultureInfo.InvariantCulture).ToString("yyyy-MM-dd"); |
||||
} |
||||
|
||||
[HttpGet("GetAll")] |
||||
public async Task<IActionResult> GetAll([FromQuery] DTOEstadosCuentaAlenFilters filters){ |
||||
try{ |
||||
var estados = await _EstadosCuentaAlenRepo.GetAll(filters); |
||||
return Ok(estados); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
[HttpPost("Export")] |
||||
public async Task<IActionResult> Export([FromBody] DTOEstadosCuentaAlen[] estados){ |
||||
try{ |
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; |
||||
using (ExcelPackage excelPackage = new ExcelPackage()){ |
||||
var worksheet = excelPackage.Workbook.Worksheets.Add("sheet1"); |
||||
int rowCount = 2; |
||||
worksheet.Cells[$"A1"].Value = "Serie"; |
||||
worksheet.Cells[$"B1"].Value = "Movimiento"; |
||||
worksheet.Cells[$"C1"].Value = "Fecha"; |
||||
worksheet.Cells[$"D1"].Value = "Trafico"; |
||||
worksheet.Cells[$"E1"].Value = "Aduana"; |
||||
worksheet.Cells[$"F1"].Value = "Patente"; |
||||
worksheet.Cells[$"G1"].Value = "Pedimento"; |
||||
worksheet.Cells[$"H1"].Value = "Cve. Pedim."; |
||||
worksheet.Cells[$"I1"].Value = "Impo/Expo"; |
||||
worksheet.Cells[$"J1"].Value = "No. Cte."; |
||||
worksheet.Cells[$"K1"].Value = "Nombre Cliente"; |
||||
worksheet.Cells[$"L1"].Value = "Cargos"; |
||||
worksheet.Cells[$"M1"].Value = "Abonos"; |
||||
worksheet.Cells[$"N1"].Value = "SaldoFinal"; |
||||
worksheet.Cells[$"O1"].Value = "% IVA"; |
||||
worksheet.Cells[$"P1"].Value = "Descripcion"; |
||||
worksheet.Cells[$"Q1"].Value = "Remitente"; |
||||
worksheet.Cells[$"R1"].Value = "Pedido"; |
||||
worksheet.Cells[$"S1"].Value = "Orden Compra"; |
||||
worksheet.Cells[$"T1"].Value = "Tipo Mcia"; |
||||
foreach (var estado in estados){ |
||||
worksheet.Cells[$"A{rowCount}"].Value = estado.Serie; |
||||
worksheet.Cells[$"B{rowCount}"].Value = estado.NoMovimiento; |
||||
worksheet.Cells[$"C{rowCount}"].Value = estado.Fecha; |
||||
worksheet.Cells[$"D{rowCount}"].Value = estado.Trafico; |
||||
worksheet.Cells[$"E{rowCount}"].Value = estado.Aduana; |
||||
worksheet.Cells[$"F{rowCount}"].Value = estado.Patente; |
||||
worksheet.Cells[$"G{rowCount}"].Value = estado.Pedimento; |
||||
worksheet.Cells[$"H{rowCount}"].Value = estado.Clave; |
||||
worksheet.Cells[$"I{rowCount}"].Value = estado.Impexp; |
||||
worksheet.Cells[$"J{rowCount}"].Value = estado.NoCliente; |
||||
worksheet.Cells[$"K{rowCount}"].Value = estado.Nombre; |
||||
worksheet.Cells[$"L{rowCount}"].Value = estado.Cargos; |
||||
worksheet.Cells[$"M{rowCount}"].Value = estado.Abonos; |
||||
worksheet.Cells[$"N{rowCount}"].Value = estado.SaldoFinal; |
||||
worksheet.Cells[$"O{rowCount}"].Value = estado.IvaAl; |
||||
worksheet.Cells[$"P{rowCount}"].Value = estado.Descripcion; |
||||
worksheet.Cells[$"Q{rowCount}"].Value = estado.Remitente; |
||||
worksheet.Cells[$"R{rowCount}"].Value = estado.Pedido; |
||||
worksheet.Cells[$"S{rowCount}"].Value = estado.OrdenCompra; |
||||
worksheet.Cells[$"T{rowCount}"].Value = estado.TipoMercancia; |
||||
rowCount++; |
||||
} |
||||
ExcelRange range = worksheet.Cells[1, 1,estados.Count() + 1, 20]; |
||||
ExcelTable tab = worksheet.Tables.Add(range, "Table1"); |
||||
tab.TableStyle = TableStyles.Light1; |
||||
worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns(); |
||||
worksheet.Cells[worksheet.Dimension.Address].Style.VerticalAlignment = ExcelVerticalAlignment.Center; |
||||
excelPackage.Workbook.Calculate(); |
||||
var stream = new MemoryStream(); |
||||
excelPackage.SaveAs(stream); |
||||
if(stream.Length > 0){ |
||||
stream.Position = 0; |
||||
return File(stream,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml", $"Reporte_Operaciones.xlsx"); |
||||
}else{ |
||||
throw new Exception("Ocurrio un error al generar el reporte, intentelo de nuevo"); |
||||
} |
||||
} |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
[HttpPost("AppendProgramacionesPago")] |
||||
public async Task<IActionResult> AppendProgramacionesPago(IFormFile file){ |
||||
try{ |
||||
FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(46); |
||||
|
||||
if(!System.IO.Directory.Exists(RootPathCorresponsales + RelativePath.Path)){ |
||||
System.IO.Directory.CreateDirectory(RootPathCorresponsales + RelativePath.Path); |
||||
} |
||||
|
||||
string filePath = RootPathCorresponsales + RelativePath.Path + file.FileName; |
||||
if(System.IO.File.Exists(filePath)){ |
||||
System.IO.File.Delete(filePath); |
||||
} |
||||
//Si es un archivo nuevo se guarda |
||||
using(var stream = System.IO.File.Create(filePath)){ |
||||
await file.CopyToAsync(stream); |
||||
} |
||||
//Leer el archivo con epplus |
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; |
||||
using(ExcelPackage package = new ExcelPackage(filePath)){ |
||||
var worksheet = package.Workbook.Worksheets.FirstOrDefault(); |
||||
int rowCount = 3; |
||||
while(string.IsNullOrWhiteSpace(worksheet?.Cells[rowCount, 2].Value?.ToString()) == false){ |
||||
//Quitar el prefijo de la serie del numero de cuenta. |
||||
string folio = worksheet.Cells[rowCount, 2].Value != null ? worksheet.Cells[rowCount, 2].Value?.ToString().Substring(1,5) : ""; |
||||
//Buscar el registro de la cuenta |
||||
var cuenta = await _EstadosCuentaAlenRepo.GetByFolio(folio); |
||||
if(cuenta.id != 0){ |
||||
//Hacer la llamada a al base de datos para actualizar el registro |
||||
cuenta = await _EstadosCuentaAlenRepo.MarkAsProgramado(cuenta.NoMovimiento, cuenta.NoSerie); |
||||
} |
||||
rowCount++; |
||||
} |
||||
} |
||||
return Ok(); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
[HttpPost("AppendOrdenCompra")] |
||||
public async Task<IActionResult> AppendOrdenCompra([FromBody] DTOEstadosCuentaAlen data){ |
||||
try{ |
||||
var trafico = await _EstadosCuentaAlenRepo.AppendOrdenCompra(data); |
||||
return Ok(trafico); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
[HttpPost("AppendObservaciones")] |
||||
public async Task<IActionResult> AppendObservaciones([FromBody] DTOEstadosCuentaAlen data){ |
||||
try{ |
||||
var trafico = await _EstadosCuentaAlenRepo.AppendObservaciones(data); |
||||
return Ok(trafico); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -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); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,30 @@ |
||||
using CORRESPONSALBackend.Contracts.Reportes.CuentasCerradas; |
||||
using Microsoft.AspNetCore.Authorization; |
||||
using Microsoft.AspNetCore.Mvc; |
||||
|
||||
namespace CORRESPONSALBackend.Controllers.Reportes{ |
||||
[Authorize] |
||||
[Route("api/[controller]")]
|
||||
[ApiController] |
||||
public class ReporteCuentasCerradasController : ControllerBase{ |
||||
private readonly IReporteCuentasCerradasService _service; |
||||
private readonly IReporteCuentasCerradasRepository _repository; |
||||
public ReporteCuentasCerradasController(IReporteCuentasCerradasService service, IReporteCuentasCerradasRepository repository){ |
||||
_service = service; |
||||
_repository = repository; |
||||
} |
||||
|
||||
[HttpGet("GetExcel")] |
||||
public async Task<IActionResult> ReporteCuentasCerradas([FromQuery] string Inicio, string Fin, int TipoOperacion, int NoCliente, int IdCorresponsal){ |
||||
try{ |
||||
var cuentas = await _repository.GetCuentasCerradas(Inicio, Fin, TipoOperacion, NoCliente, IdCorresponsal); |
||||
var stream = await _service.GetExcel(cuentas); |
||||
stream.Position = 0; |
||||
return File(stream, "application/octet-stream", $"Reporte.xlsx"); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
@ -0,0 +1,93 @@ |
||||
using CORRESPONSALBackend.Contracts.ArchivoElectronico; |
||||
using CORRESPONSALBackend.Contracts.Corresponsalias; |
||||
using CORRESPONSALBackend.Contracts.Utils; |
||||
using CORRESPONSALBackend.DTO.ArchivoElectronico; |
||||
using CORRESPONSALBackend.Models.Utils; |
||||
using CORRESPONSALBackend.Repository.Utils; |
||||
using GEMCO.Backend.Models.Reportes; |
||||
using Microsoft.AspNetCore.Mvc; |
||||
|
||||
namespace CORRESPONSALBackend.Controllers.Utils{ |
||||
[Route("api/[controller]")]
|
||||
[ApiController] |
||||
public class ArchivoElectronicoController : ControllerBase { |
||||
|
||||
private readonly IArchivoElectronicoRepository _AERepo; |
||||
private readonly IConfiguration _config; |
||||
private readonly IFilePaths4ProcessRepository _RepoRelativePath; |
||||
private readonly string RootPathCorresponsales; |
||||
private readonly ICorresponsaliasTraficosRepository _traficosRepository; |
||||
private readonly IFileManagerRepository _fileManagerRepo; |
||||
public ArchivoElectronicoController(IArchivoElectronicoRepository AERepo, IConfiguration config, |
||||
ICorresponsaliasTraficosRepository traficosRepository, IFilePaths4ProcessRepository RepoRelativePath, |
||||
IFileManagerRepository fileManagerRepo){ |
||||
_AERepo = AERepo; |
||||
_traficosRepository = traficosRepository; |
||||
_config = config; |
||||
_RepoRelativePath = RepoRelativePath; |
||||
_fileManagerRepo = fileManagerRepo; |
||||
RootPathCorresponsales = _config.GetValue<string>("AllFiles"); |
||||
} |
||||
|
||||
[HttpGet] |
||||
[Route("RptArchivoElectronicoOficial")] |
||||
public async Task<List<RptPedimentosPagadosAEO>> GetReporteArchivElectronicoOficial([FromQuery] DTOAEPeriodo DTOData) |
||||
{ |
||||
List<RptPedimentosPagadosAEO> data = await _AERepo.getRptPedimentoPagadosAEO(DTOData); |
||||
return data; |
||||
} |
||||
|
||||
[HttpPost] |
||||
[Route("DownloadZippedArchivosOficiales")] |
||||
public async Task<IActionResult> DownloadZippedArchivosOficiales([FromBody] DTOAEPeriodoSeleccion data){ |
||||
try{ |
||||
//Se obtiene la ruta donde se alojará temporalmente el zip |
||||
FilePaths4Process tempFilesRelativePath = await _RepoRelativePath.getPaths4ProcessById(44); // Path: Corresponsales\Zips\Facturacion\Entregas\ |
||||
var tempFilesPath = RootPathCorresponsales + tempFilesRelativePath.Path;// Path: C:data\Corresponsales\Zips\Clientes\ArchivosElectronicos |
||||
string tempFolderName = "ReporteArchivosElectronicos";//Nombre del folder Temporal |
||||
string tempFolderPath= tempFilesPath + $"{tempFolderName}\\";//ruta del folder temporal Path: C:data\Corresponsales\Zips\Clientes\ArchivosElectronicos\ReporteArchivosElectronicos |
||||
string zipFileName = $"{tempFolderName}.zip";//Nombre del zip final |
||||
var zipFilePath = tempFilesPath + zipFileName;//Ruta del zip final Path: C:data\Corresponsales\Zips\Clientes\ArchivosElectronicos\ReporteArchivosElectronicos.zip |
||||
|
||||
if(System.IO.File.Exists(zipFilePath)){//Si ya existe un zip de una descarga anterior lo borra |
||||
System.IO.File.Delete(zipFilePath); |
||||
} |
||||
|
||||
if(System.IO.Directory.Exists(tempFolderPath)){//Si ya existe la carpeta temporal de una descarga anterior la borra |
||||
System.IO.Directory.Delete(tempFolderPath, true); |
||||
} |
||||
|
||||
System.IO.Directory.CreateDirectory(tempFolderPath);//Se crea el folder temporal donde se pondran los archivos oficiales |
||||
foreach(var referencia in data.Referencias){ |
||||
var trafico = await _traficosRepository.GetByReferencia(referencia); |
||||
string folderAE = tempFolderPath + $"{referencia}\\";//Se obtiene el nombre de la subcarpeta del AE de cada referencia |
||||
if(System.IO.Directory.Exists(folderAE)){//Si existe la carpeta se borra |
||||
System.IO.Directory.Delete(folderAE); |
||||
} |
||||
System.IO.Directory.CreateDirectory(folderAE);//Se crea la carpeta |
||||
//Obtener la lista de archivos de la referencia actual. |
||||
var filesLog = await _fileManagerRepo.GetTraficoFiles(trafico.id); |
||||
var filteredFilesLog = filesLog.Where(x => new List<int>(){2,10,11,12,13,14,15,19,17,18,37,38,39,41}.Contains(x.Proceso)); |
||||
foreach(var fileLog in filteredFilesLog){ |
||||
FilePaths4Process fileRelativePath = await _RepoRelativePath.getPaths4ProcessById(fileLog.Proceso);//Se obtiene la ruta relativa donde debe estar alojado el archivo |
||||
var filePath = RootPathCorresponsales + fileRelativePath.Path + fileLog!.NombreArchivo;//Ahora se obtiene la ruta completa del archivo. |
||||
if(System.IO.File.Exists(filePath)){ |
||||
var bytes = await System.IO.File.ReadAllBytesAsync(filePath); |
||||
var originalFileStream = new MemoryStream(bytes); |
||||
using(var tempFileStream = System.IO.File.Create(folderAE + fileLog.NombreArchivo)){ |
||||
await originalFileStream.CopyToAsync(tempFileStream); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
System.IO.Compression.ZipFile.CreateFromDirectory(tempFolderPath, zipFilePath);//Se comprime la carpeta con los archivos electronicos de las referencias |
||||
Directory.Delete(tempFolderPath, true);//Se borra el folder temporal |
||||
var zipBytes = await System.IO.File.ReadAllBytesAsync(zipFilePath); |
||||
var zipStream = new MemoryStream(zipBytes); |
||||
return File(zipStream, "application/zip", zipFileName); |
||||
}catch(Exception ex){ |
||||
return BadRequest(ex.Message); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,11 @@ |
||||
namespace CORRESPONSALBackend.DTO.Corresponsales{ |
||||
public class DTOTraficoSolicitud{ |
||||
public int Id { get; set; } |
||||
public int IdTrafico { get; set; } |
||||
public int IdUsuarioSolicita { get; set; } |
||||
public string UsuarioSolicita { get; set; } |
||||
public string FechaSolicita { get; set; } |
||||
public string MotivoSolicita { get; set; } |
||||
public int Estado { get; set; } |
||||
} |
||||
} |
@ -0,0 +1,50 @@ |
||||
namespace CORRESPONSALBackend.DTO.Reportes.Alen{ |
||||
public class DTOEstadosCuentaAlen{ |
||||
public int id { get; set; } |
||||
public string? TipoMovimiento { get; set; } = ""; |
||||
public string? NoSerie { get; set; } = ""; |
||||
public string? NoMovimiento {get;set;} = ""; |
||||
public string? Trafico {get;set;} = ""; |
||||
public string? Impexp {get;set;} = ""; |
||||
public string? Aduana {get;set;} = ""; |
||||
public string? Patente {get;set;} = ""; |
||||
public string? Pedimento {get;set;} = ""; |
||||
public string? Clave {get;set;} = ""; |
||||
public string? NoCliente {get;set;} = ""; |
||||
public string? NoCentro {get;set;} = ""; |
||||
public string? SubCentro {get;set;} = ""; |
||||
public string? Nombre {get;set;} = ""; |
||||
public string? SubCtaNombre {get;set;} = ""; |
||||
public string? TipoRangos {get;set;} = ""; |
||||
public string? Cargos {get;set;} = ""; |
||||
public string? Abonos {get;set;} = ""; |
||||
public string? Fecha {get;set;} = ""; |
||||
public string? FechaPedimento {get;set;} = ""; |
||||
public string? FechaRev {get;set;} = ""; |
||||
public string? DiasPedimCta {get;set;} = ""; |
||||
public string? DiasCtaRev {get;set;} = ""; |
||||
public string? DiasRev {get;set;} = ""; |
||||
public string? IvaAl {get;set;} = ""; |
||||
public string? TotalFacturado {get;set;} = ""; |
||||
public string? SaldoFinal {get;set;} = ""; |
||||
public string? Anticipo {get;set;} = ""; |
||||
public string? UUID {get;set;} = ""; |
||||
public string? Descripcion {get;set;} = ""; |
||||
public string? Remitente {get;set;} = ""; |
||||
public string? Pedido {get;set;} = ""; |
||||
public string? TipoMercancia {get;set;} = ""; |
||||
public string? CampoAdicional5 {get;set;} = ""; |
||||
public int? IdPdf {get;set;}=0; |
||||
public string? Pdf {get;set;}=""; |
||||
public int? IdXml {get;set;}=0; |
||||
public string? Xml {get;set;}=""; |
||||
public int? IdNotasCargo {get;set;}=0; |
||||
public string? NotasCargo {get;set;}=""; |
||||
public bool? Programado {get;set;} = false; |
||||
public string? Serie {get;set;} = ""; |
||||
public int? IdOrdenCompra {get;set;} = 0; |
||||
public string? OrdenCompra {get;set;} = ""; |
||||
public int? IdObservaciones {get;set;} = 0; |
||||
public string? Observaciones {get;set;} = ""; |
||||
} |
||||
} |
@ -0,0 +1,13 @@ |
||||
namespace CORRESPONSALBackend.DTO.Reportes.Alen{ |
||||
public class DTOEstadosCuentaAlenFilters{ |
||||
public string? Trafico {get;set;}=""; |
||||
public string? Impexp {get;set;}=""; |
||||
public string? Aduana {get;set;}=""; |
||||
public string? Patente {get;set;}=""; |
||||
public string? Pedimento {get;set;}=""; |
||||
public string? Inicio {get;set;}=""; |
||||
public string? Fin {get;set;}=""; |
||||
public string? Remitente {get;set;}=""; |
||||
public string? Programado {get;set;} = ""; |
||||
} |
||||
} |
@ -0,0 +1,20 @@ |
||||
public class DTOReporteFacturasTraficosConsolidados{ |
||||
public string trafico { get; set; } |
||||
public string TipoOperacion { get; set; } |
||||
public string Cliente { get; set; } |
||||
public string Proveedor { get; set; } |
||||
public string Corresponsal { get; set; } |
||||
public string Aduana { get; set; } |
||||
public int Patente { get; set; } |
||||
public string Pedimento { get; set; } |
||||
public int PedimentoMaster { get; set; } |
||||
public string Fecha { get; set; } |
||||
public string Cuenta { get; set; } |
||||
public string Factura { get; set; } |
||||
public string Descripcion { get; set; } |
||||
public string Semaforo { get; set; } |
||||
public string ClavePedimento { get; set; } |
||||
public string TipoCambio { get; set; } |
||||
public string Operacion { get; set; } |
||||
public string Contenedor { get; set; } |
||||
} |
@ -0,0 +1,26 @@ |
||||
namespace CORRESPONSALBackend.DTO.Reportes.CuentasCerradas{ |
||||
public class DTOCuentasCerradas{ |
||||
public string Trafico { get; set; } |
||||
public string TipoOperacion { get; set; } |
||||
public string Cliente { get; set; } |
||||
public string Proveedor { get; set; } |
||||
public string Corresponsal { get; set; } |
||||
public string Aduana { get; set; } |
||||
public string Patente { get; set; } |
||||
public string Pedimento { get; set; } |
||||
public string FechaPago { get; set; } |
||||
public string Facturas { get; set; } |
||||
public string Descripcion { get; set; } |
||||
public string FechaAlta { get; set; } |
||||
public string Clave { get; set; } |
||||
public string ValorMn { get; set; } |
||||
public string ValorDls { get; set; } |
||||
public string TipoCambio { get; set; } |
||||
public string ValorComercial { get; set; } |
||||
public string Fracciones { get; set; } |
||||
public string TotalPagado { get; set; } |
||||
/* public string Caja { get; set; } |
||||
public string FechaCruce {get;set;} |
||||
public string Semaforo {get;set;} */ |
||||
} |
||||
} |
@ -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; } |
||||
} |
||||
} |
@ -0,0 +1,6 @@ |
||||
namespace CORRESPONSALBackend.Models.Catalogos{ |
||||
public class CatTiposContenedores { |
||||
public int id { get; set; } |
||||
public string Descripcion { get; set; } |
||||
} |
||||
} |
@ -0,0 +1,39 @@ |
||||
namespace CORRESPONSALBackend.Models.Clientes.Alen{ |
||||
public class EstadosCuenta{ |
||||
public int id { get; set; } |
||||
public string? TipoMovimiento { get; set; } = ""; |
||||
public string? NoSerie { get; set; } = ""; |
||||
public string? NoMovimiento {get;set;} = ""; |
||||
public string? Trafico {get;set;} = ""; |
||||
public string? Impexp {get;set;} = ""; |
||||
public string? Aduana {get;set;} = ""; |
||||
public string? Patente {get;set;} = ""; |
||||
public string? Pedimento {get;set;} = ""; |
||||
public string? Clave {get;set;} = ""; |
||||
public string? NoCliente {get;set;} = ""; |
||||
public string? NoCentro {get;set;} = ""; |
||||
public string? SubCentro {get;set;} = ""; |
||||
public string? Nombre {get;set;} = ""; |
||||
public string? SubCtaNombre {get;set;} = ""; |
||||
public string? TipoRangos {get;set;} = ""; |
||||
public string? Cargos {get;set;} = ""; |
||||
public string? Abonos {get;set;} = ""; |
||||
public string? Fecha {get;set;} = ""; |
||||
public string? FechaPedimento {get;set;} = ""; |
||||
public string? FechaRev {get;set;} = ""; |
||||
public string? DiasPedimCta {get;set;} = ""; |
||||
public string? DiasCtaRev {get;set;} = ""; |
||||
public string? DiasRev {get;set;} = ""; |
||||
public string? IvaAl {get;set;} = ""; |
||||
public string? TotalFacturado {get;set;} = ""; |
||||
public string? SaldoFinal {get;set;} = ""; |
||||
public string? Anticipo {get;set;} = ""; |
||||
public string? UUID {get;set;} = ""; |
||||
public string? Descripcion {get;set;} = ""; |
||||
public string? Remitente {get;set;} = ""; |
||||
public string? Pedido {get;set;} = ""; |
||||
public string? TipoMercancia {get;set;} = ""; |
||||
public string? CampoAdicional5 {get;set;} = ""; |
||||
public bool? Programado = false; |
||||
} |
||||
} |
@ -0,0 +1,11 @@ |
||||
namespace CORRESPONSALBackend.Models.Corresponsales{ |
||||
public class CorresponsalPedimentosConsolidados{ |
||||
public int Id { get; set; } |
||||
public int IdTrafico { get; set; } |
||||
public string Aduana { get; set; } |
||||
public int Patente { get; set; } |
||||
public int Pedimento { get; set; } |
||||
public string Clave { get; set; } |
||||
public DateTime? FechaPago { get; set; } = null; |
||||
} |
||||
} |
@ -0,0 +1,13 @@ |
||||
namespace CORRESPONSALBackend.Models.Corresponsales{ |
||||
public class ITraficoSolicitud{ |
||||
public int Id { get; set; } |
||||
public int IdTrafico { get; set; } |
||||
public int IdUsuarioSolicita { get; set; } |
||||
public string? FechaSolicita { get; set; } = null; |
||||
public string MotivoSolicita { get; set; } |
||||
public int IdUsuarioAutoriza { get; set; } |
||||
public string? FechaAutoriza { get; set; } = null; |
||||
public string MotivoRechazo { get; set; } |
||||
public short Estado { get; set; } |
||||
} |
||||
} |
@ -0,0 +1,31 @@ |
||||
using System.Data; |
||||
using CORRESPONSALBackend.Context; |
||||
using CORRESPONSALBackend.Contracts.ArchivoElectronico; |
||||
using CORRESPONSALBackend.DTO.ArchivoElectronico; |
||||
using Dapper; |
||||
using GEMCO.Backend.Models.Reportes; |
||||
|
||||
namespace CORRESPONSALBackend.Repository{ |
||||
public class ArchivoElectronicoRepository : IArchivoElectronicoRepository |
||||
{ |
||||
private readonly DapperContext _context; |
||||
public ArchivoElectronicoRepository(DapperContext context) { _context = context; } |
||||
public async Task<List<RptPedimentosPagadosAEO>> getRptPedimentoPagadosAEO(DTOAEPeriodo data) |
||||
{ |
||||
var query = "getRptArchivoElectronicoOficial"; |
||||
using (var connection = _context.CreateConnection()) |
||||
{ |
||||
var entrada = await connection.QueryAsync<RptPedimentosPagadosAEO>(query, |
||||
new |
||||
{ |
||||
@Anio = data.Anio, |
||||
@Mes = data.Mes, |
||||
@NoCliente = data.NoCliente, |
||||
@TipoOperacion = data.TipoOperacion |
||||
}, |
||||
commandType: CommandType.StoredProcedure); |
||||
return entrada.ToList(); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,23 @@ |
||||
using System.Data; |
||||
using CORRESPONSALBackend.Context; |
||||
using CORRESPONSALBackend.Contracts.Catalogos; |
||||
using CORRESPONSALBackend.Models.Catalogos; |
||||
using Dapper; |
||||
|
||||
namespace CORRESPONSALBackend.Repository.Catalogos{ |
||||
public class CatTiposContenedoresRepository : ICatTiposContenedoresRepository |
||||
{ |
||||
private readonly DapperContext _context; |
||||
|
||||
public CatTiposContenedoresRepository(DapperContext context){ |
||||
_context = context; |
||||
} |
||||
public async Task<IEnumerable<CatTiposContenedores>> Get() |
||||
{ |
||||
var query = "[Catalogo.CatTiposContenedores.Get]"; |
||||
var connection = _context.CreateConnection(); |
||||
var tipos = await connection.QueryAsync<CatTiposContenedores>(query, new {}, commandType: CommandType.StoredProcedure); |
||||
return tipos; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,45 @@ |
||||
using System.Data; |
||||
using CORRESPONSALBackend.Context; |
||||
using CORRESPONSALBackend.Contracts.Corresponsalias; |
||||
using CORRESPONSALBackend.Models.Corresponsales; |
||||
using Dapper; |
||||
|
||||
namespace CORRESPONSALBackend.Repository.Corresponsalias{ |
||||
public class CorresponsaliasPedimentosConsolidadosRepository : ICorresponsaliasPedimentosConsolidadosRepository{ |
||||
private readonly DapperContext _context; |
||||
public CorresponsaliasPedimentosConsolidadosRepository(DapperContext context) { _context = context; } |
||||
|
||||
public async Task<CorresponsalPedimentosConsolidados> Append(CorresponsalPedimentosConsolidados data) |
||||
{ |
||||
var query = "[Corresponsales.Trafico.Pedimento.Consolidados.Append]"; |
||||
using var connection = _context.CreateConnection(); |
||||
var entrada = await connection.QueryAsync<CorresponsalPedimentosConsolidados>(query, new |
||||
{ |
||||
data.Id, |
||||
data.IdTrafico, |
||||
data.Aduana, |
||||
data.Patente, |
||||
data.Pedimento, |
||||
data.Clave, |
||||
data.FechaPago |
||||
|
||||
}, |
||||
commandType: CommandType.StoredProcedure); |
||||
return entrada.First(); |
||||
} |
||||
|
||||
public async Task<IEnumerable<CorresponsalPedimentosConsolidados>> GetAll(int IdTrafico) |
||||
{ |
||||
var query = "[Corresponsales.Trafico.Pedimento.Consolidados.GetAll]"; |
||||
using var connection = _context.CreateConnection(); |
||||
var entrada = await connection.QueryAsync<CorresponsalPedimentosConsolidados>(query, new {IdTrafico}, commandType: CommandType.StoredProcedure); |
||||
return entrada; |
||||
} |
||||
|
||||
public async Task Delete(int id){ |
||||
var query = "[Corresponsales.Trafico.Pedimento.Consolidados.Delete]"; |
||||
using var connection = _context.CreateConnection(); |
||||
var entrada = await connection.QueryAsync<CorresponsalPedimentosConsolidados>(query, new {id}, commandType: CommandType.StoredProcedure); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,85 @@ |
||||
using System.Data; |
||||
using CORRESPONSALBackend.Context; |
||||
using CORRESPONSALBackend.Contracts.Corresponsalias; |
||||
using CORRESPONSALBackend.DTO.Corresponsales; |
||||
using CORRESPONSALBackend.Models.Corresponsales; |
||||
using Dapper; |
||||
|
||||
namespace CORRESPONSALBackend.Repository.Corresponsalias{ |
||||
public class CorresponsaliasSolicitudesRepository : ICorresponsaliasSolicitudesRepository |
||||
{ |
||||
private readonly DapperContext _context; |
||||
public CorresponsaliasSolicitudesRepository(DapperContext context) { _context = context; } |
||||
public async Task<ITraficoSolicitud> AppendSolicitudReapertura(ITraficoSolicitud solicitud) |
||||
{ |
||||
var query = "[Corresponsales.Trafico.SolicitudReapertura.Append]"; |
||||
using var connection = _context.CreateConnection(); |
||||
var response = await connection.QueryAsync<ITraficoSolicitud>(query, new { |
||||
@id =solicitud.Id, |
||||
@idTrafico = solicitud.IdTrafico, |
||||
@idUsuarioSolicita = solicitud.IdUsuarioSolicita, |
||||
@fechaSolicita = solicitud.FechaSolicita, |
||||
@motivoSolicita = solicitud.MotivoSolicita, |
||||
@idUsuarioAutoriza = solicitud.IdUsuarioAutoriza, |
||||
@fechaAutoriza = solicitud.FechaAutoriza, |
||||
@motivoRechazo = solicitud.MotivoRechazo, |
||||
@estado = solicitud.Estado |
||||
}, commandType: CommandType.StoredProcedure); |
||||
|
||||
return response.First(); |
||||
} |
||||
|
||||
public async Task<DTOTraficoSolicitud> GetSolicitudReapertura(int idTrafico) |
||||
{ |
||||
var query = "[Corresponsales.Trafico.SolicitudReapertura.Get]"; |
||||
using var connection = _context.CreateConnection(); |
||||
var response = await connection.QueryAsync<DTOTraficoSolicitud>(query, new { |
||||
@idTrafico = idTrafico |
||||
}, commandType: CommandType.StoredProcedure); |
||||
return response.FirstOrDefault(new DTOTraficoSolicitud{ |
||||
Id=0, |
||||
IdTrafico=idTrafico, |
||||
UsuarioSolicita= "", |
||||
FechaSolicita=null, |
||||
MotivoSolicita="", |
||||
Estado=1 |
||||
}); |
||||
} |
||||
|
||||
public async Task<ITraficoSolicitud> AppendSolicitudEliminarReferencia(ITraficoSolicitud solicitud) |
||||
{ |
||||
var query = "[Corresponsales.Trafico.Solicitud.EliminarCuenta.Append]"; |
||||
using var connection = _context.CreateConnection(); |
||||
var response = await connection.QueryAsync<ITraficoSolicitud>(query, new { |
||||
@id =solicitud.Id, |
||||
@idTrafico = solicitud.IdTrafico, |
||||
@idUsuarioSolicita = solicitud.IdUsuarioSolicita, |
||||
@fechaSolicita = solicitud.FechaSolicita, |
||||
@motivoSolicita = solicitud.MotivoSolicita, |
||||
@idUsuarioAutoriza = solicitud.IdUsuarioAutoriza, |
||||
@fechaAutoriza = solicitud.FechaAutoriza, |
||||
@motivoRechazo = solicitud.MotivoRechazo, |
||||
@estado = solicitud.Estado |
||||
}, commandType: CommandType.StoredProcedure); |
||||
|
||||
return response.First(); |
||||
} |
||||
|
||||
public async Task<DTOTraficoSolicitud> GetSolicitudEliminarReferencia(int idTrafico) |
||||
{ |
||||
var query = "[Corresponsales.Trafico.Solicitud.EliminarCuenta.Get]"; |
||||
using var connection = _context.CreateConnection(); |
||||
var response = await connection.QueryAsync<DTOTraficoSolicitud>(query, new { |
||||
@idTrafico = idTrafico |
||||
}, commandType: CommandType.StoredProcedure); |
||||
return response.FirstOrDefault(new DTOTraficoSolicitud{ |
||||
Id=0, |
||||
IdTrafico=idTrafico, |
||||
UsuarioSolicita= "", |
||||
FechaSolicita=null, |
||||
MotivoSolicita="", |
||||
Estado=1 |
||||
}); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,138 @@ |
||||
using System.Data; |
||||
using CORRESPONSALBackend.Context; |
||||
using CORRESPONSALBackend.Contracts.Reportes.Alen; |
||||
using CORRESPONSALBackend.DTO.Reportes.Alen; |
||||
using CORRESPONSALBackend.Models.Clientes.Alen; |
||||
using Dapper; |
||||
|
||||
namespace CORRESPONSALBackend.Repository.Reportes.Alen{ |
||||
public class EstadosCuentaAlenRepository : IEstadosCuentaAlenRepository |
||||
{ |
||||
|
||||
private readonly DapperContext _context; |
||||
private readonly IConfiguration _config; |
||||
public EstadosCuentaAlenRepository(DapperContext context, IConfiguration config) |
||||
{ |
||||
_context = context; |
||||
_config = config; |
||||
} |
||||
public async Task<EstadosCuenta> Append(EstadosCuenta data) |
||||
{ |
||||
var query = "[EstadosCuenta.Alen.Append]"; |
||||
using (var connection = _context.CreateConnection()) |
||||
{ |
||||
var estado = await connection.QueryAsync<EstadosCuenta>(query, new |
||||
{ |
||||
data.TipoMovimiento, |
||||
data.NoSerie, |
||||
data.NoMovimiento, |
||||
data.Trafico, |
||||
data.Impexp, |
||||
data.Aduana, |
||||
data.Patente, |
||||
data.Pedimento, |
||||
data.Clave, |
||||
data.NoCliente, |
||||
data.NoCentro, |
||||
data.SubCentro, |
||||
data.Nombre, |
||||
data.SubCtaNombre, |
||||
data.TipoRangos, |
||||
data.Cargos, |
||||
data.Abonos, |
||||
data.Fecha, |
||||
data.FechaPedimento, |
||||
data.FechaRev, |
||||
data.DiasPedimCta, |
||||
data.DiasCtaRev, |
||||
data.DiasRev, |
||||
data.IvaAl, |
||||
data.TotalFacturado, |
||||
data.SaldoFinal, |
||||
data.Anticipo, |
||||
data.UUID, |
||||
data.Descripcion, |
||||
data.Remitente, |
||||
data.Pedido, |
||||
data.TipoMercancia, |
||||
data.CampoAdicional5, |
||||
}, commandType: CommandType.StoredProcedure); |
||||
return estado.First(); |
||||
} |
||||
} |
||||
|
||||
public async Task<EstadosCuenta> AppendObservaciones(DTOEstadosCuentaAlen data) |
||||
{ |
||||
var query = "[EstadosCuenta.Alen.AppendObservaciones]"; |
||||
using (var connection = _context.CreateConnection()) |
||||
{ |
||||
var cuenta = await connection.QueryAsync<EstadosCuenta>(query, new {data.IdObservaciones, @NoCuenta = data.NoMovimiento, data.Observaciones}, commandType: CommandType.StoredProcedure); |
||||
return cuenta.First(); |
||||
} |
||||
} |
||||
|
||||
public async Task<EstadosCuenta> AppendOrdenCompra(DTOEstadosCuentaAlen data) |
||||
{ |
||||
var query = "[EstadosCuenta.Alen.AppendOrdenCompra]"; |
||||
using (var connection = _context.CreateConnection()) |
||||
{ |
||||
var cuenta = await connection.QueryAsync<EstadosCuenta>(query, new {data.IdOrdenCompra, @NoCuenta = data.NoMovimiento, data.OrdenCompra}, commandType: CommandType.StoredProcedure); |
||||
return cuenta.First(); |
||||
} |
||||
} |
||||
|
||||
public async Task ClearData() |
||||
{ |
||||
var query = "[EstadosCuenta.Alen.Clear]"; |
||||
using (var connection = _context.CreateConnection()) |
||||
{ |
||||
await connection.QueryAsync<DTOEstadosCuentaAlen>(query, new {}, commandType: CommandType.StoredProcedure); |
||||
} |
||||
} |
||||
|
||||
public async Task<IEnumerable<DTOEstadosCuentaAlen>> GetAll(DTOEstadosCuentaAlenFilters filters) |
||||
{ |
||||
var query = "[EstadosCuenta.Alen.GetAll]"; |
||||
using (var connection = _context.CreateConnection()) |
||||
{ |
||||
var estados = await connection.QueryAsync<DTOEstadosCuentaAlen>(query, new { |
||||
filters.Trafico, |
||||
filters.Impexp, |
||||
filters.Aduana, |
||||
filters.Patente, |
||||
filters.Pedimento, |
||||
filters.Inicio, |
||||
filters.Fin, |
||||
filters.Remitente, |
||||
filters.Programado |
||||
}, commandType: CommandType.StoredProcedure); |
||||
return estados; |
||||
} |
||||
} |
||||
|
||||
public async Task<EstadosCuenta> GetByFolio(string Folio) |
||||
{ |
||||
var query = "[EstadosCuenta.Alen.GetByFolio]"; |
||||
using (var connection = _context.CreateConnection()) |
||||
{ |
||||
var cuenta= await connection.QueryAsync<EstadosCuenta>(query, new { |
||||
@Folio |
||||
}, commandType: CommandType.StoredProcedure); |
||||
return cuenta.FirstOrDefault(new EstadosCuenta(){id=0}); |
||||
} |
||||
} |
||||
|
||||
public async Task<EstadosCuenta> MarkAsProgramado(string NoMovimiento, string NoSerie) |
||||
{ |
||||
var query = "[EstadosCuenta.Alen.MarkAsProgramado]"; |
||||
using (var connection = _context.CreateConnection()) |
||||
{ |
||||
var cuenta= await connection.QueryFirstOrDefaultAsync<EstadosCuenta>(query, new { |
||||
@NoCuenta = NoMovimiento, |
||||
@NoSerie = NoSerie |
||||
}, commandType: CommandType.StoredProcedure); |
||||
return cuenta; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,22 @@ |
||||
using System.Data; |
||||
using CORRESPONSALBackend.Context; |
||||
using CORRESPONSALBackend.Contracts.Reportes.Alen; |
||||
using Dapper; |
||||
|
||||
public class ReportesAlenRepository : IReportesAlenRepository |
||||
{ |
||||
private readonly DapperContext _context; |
||||
public ReportesAlenRepository(DapperContext context) { _context = context; } |
||||
public async Task<IEnumerable<DTOReporteFacturasTraficosConsolidados>> GetFacturasTraficoConsolidado(int idTrafico, string referencia) |
||||
{ |
||||
var query = "[Reportes.Alen.FacturasTraficosConsolidados]"; |
||||
using var connection = _context.CreateConnection(); |
||||
var entrada = await connection.QueryAsync<DTOReporteFacturasTraficosConsolidados>(query, new |
||||
{ |
||||
@IdTrafico = idTrafico, |
||||
@Referencia = referencia |
||||
}, |
||||
commandType: CommandType.StoredProcedure); |
||||
return entrada; |
||||
} |
||||
} |
@ -0,0 +1,28 @@ |
||||
using System.Data; |
||||
using CORRESPONSALBackend.Context; |
||||
using CORRESPONSALBackend.Contracts.Reportes.CuentasCerradas; |
||||
using CORRESPONSALBackend.DTO.Reportes.CuentasCerradas; |
||||
using Dapper; |
||||
|
||||
namespace CORRESPONSALBackend.Repository.Reportes.CuentasCerradas{ |
||||
public class ReporteCuentasCerradasRepository : IReporteCuentasCerradasRepository |
||||
{ |
||||
private readonly DapperContext _context; |
||||
public ReporteCuentasCerradasRepository(DapperContext context) { _context = context; } |
||||
public async Task<IEnumerable<DTOCuentasCerradas>> GetCuentasCerradas(string Inicio, string Fin, int TipoOperacion, int NoCliente, int IdCorresponsal) |
||||
{ |
||||
var query = "[Reportes.CuentasCerradas]"; |
||||
using var connection = _context.CreateConnection(); |
||||
var entrada = await connection.QueryAsync<DTOCuentasCerradas>(query, new |
||||
{ |
||||
@Inicio = Inicio, |
||||
@Fin = Fin, |
||||
@NoCliente = NoCliente, |
||||
@TipoOperacion = TipoOperacion, |
||||
@IdCorresponsal = IdCorresponsal |
||||
}, |
||||
commandType: CommandType.StoredProcedure); |
||||
return entrada; |
||||
} |
||||
} |
||||
} |
@ -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; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,7 @@ |
||||
using CORRESPONSALBackend.Contracts.ArchivoElectronico; |
||||
|
||||
namespace CORRESPONSALBackend.Services{ |
||||
public class ArchivoElectronicoService : IArchivoElectronicoService{ |
||||
|
||||
} |
||||
} |
@ -0,0 +1,43 @@ |
||||
using CORRESPONSALBackend.Contracts.Reportes.CuentasCerradas; |
||||
using CORRESPONSALBackend.DTO.Reportes.CuentasCerradas; |
||||
using OfficeOpenXml; |
||||
using OfficeOpenXml.Style; |
||||
using OfficeOpenXml.Table; |
||||
|
||||
namespace CORRESPONSALBackend.Services.Reportes.CuentasCerradas{ |
||||
public class ReporteCuentasCerradasService : IReporteCuentasCerradasService |
||||
{ |
||||
public async Task<MemoryStream> GetExcel(IEnumerable<DTOCuentasCerradas> cuentas) |
||||
{ |
||||
try{ |
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; |
||||
using (ExcelPackage excelPackage = new ExcelPackage()){ |
||||
var worksheet = excelPackage.Workbook.Worksheets.Add("sheet1"); |
||||
worksheet.Cells["A1"].LoadFromCollection(cuentas, true); |
||||
//Se crea la tabla en el rango de celdas donde se mostrara la inforamcion. |
||||
ExcelRange range = worksheet.Cells[1, 1,cuentas.Count() + 1, 19]; |
||||
ExcelTable tab = worksheet.Tables.Add(range, "Table1"); |
||||
tab.TableStyle = TableStyles.Light1; |
||||
worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns(); |
||||
worksheet.Column(10).Width = 100; |
||||
worksheet.Column(10).Style.WrapText = true; |
||||
worksheet.Column(11).Width = 100; |
||||
worksheet.Column(11).Style.WrapText = true; |
||||
/* worksheet.Column(19).Width = 100; |
||||
worksheet.Column(19).Style.WrapText = true; |
||||
worksheet.Column(20).Width = 100; |
||||
worksheet.Column(20).Style.WrapText = true; |
||||
worksheet.Column(21).Width = 100; |
||||
worksheet.Column(21).Style.WrapText = true; */ |
||||
worksheet.Cells[worksheet.Dimension.Address].Style.VerticalAlignment = ExcelVerticalAlignment.Center; |
||||
excelPackage.Workbook.Calculate(); |
||||
var stream = new MemoryStream(); |
||||
excelPackage.SaveAs(stream); |
||||
return stream; |
||||
} |
||||
}catch(Exception ex){ |
||||
throw new Exception(ex.Message); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,63 @@ |
||||
using CORRESPONSALBackend.Contracts.Reportes; |
||||
using CORRESPONSALBackend.DTO.Corresponsales; |
||||
using OfficeOpenXml; |
||||
using OfficeOpenXml.Table; |
||||
|
||||
namespace CORRESPONSALBackend.Services.Reportes{ |
||||
public class TraficosClientesService : ITraficosClientesService{ |
||||
public TraficosClientesService(){ |
||||
|
||||
} |
||||
|
||||
public async Task<MemoryStream> GetExcel(IEnumerable<DTOCorresponsalTrafico> traficos) |
||||
{ |
||||
try{ |
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; |
||||
using (ExcelPackage excelPackage = new ExcelPackage()){ |
||||
var worksheet = excelPackage.Workbook.Worksheets.Add("sheet1"); |
||||
worksheet.Cells["A1"].Value="Estado"; |
||||
worksheet.Cells["B1"].Value="Trafico"; |
||||
worksheet.Cells["C1"].Value="Fecha Registro"; |
||||
worksheet.Cells["D1"].Value="Usuario"; |
||||
worksheet.Cells["E1"].Value="Cliente"; |
||||
worksheet.Cells["F1"].Value="Tipo Operación"; |
||||
worksheet.Cells["G1"].Value="Estado Operación"; |
||||
worksheet.Cells["H1"].Value="Patente"; |
||||
worksheet.Cells["I1"].Value="Aduana"; |
||||
worksheet.Cells["J1"].Value="Pedimento"; |
||||
worksheet.Cells["K1"].Value="Fecha Pago"; |
||||
worksheet.Cells["L1"].Value="Fecha Desaduanado"; |
||||
worksheet.Cells["M1"].Value="Fecha Ultima Actualización"; |
||||
int currentRow=2; |
||||
foreach(var trafico in traficos){ |
||||
worksheet.Cells[$"A{currentRow}"].Value = trafico.Proceso == 1 ? "Por Terminar" : trafico.Proceso == 2 || trafico.Proceso == 3 ? "Despachado sin Facturar" : "Despachado y Facturado"; |
||||
worksheet.Cells[$"B{currentRow}"].Value = trafico.Trafico; |
||||
worksheet.Cells[$"C{currentRow}"].Value = trafico.FechaRegistro; |
||||
worksheet.Cells[$"D{currentRow}"].Value = trafico.sUsuario; |
||||
worksheet.Cells[$"E{currentRow}"].Value = trafico.sCliente; |
||||
worksheet.Cells[$"F{currentRow}"].Value = trafico.sTipoOperacion; |
||||
worksheet.Cells[$"G{currentRow}"].Value = trafico.sEstatus; |
||||
worksheet.Cells[$"H{currentRow}"].Value = trafico.Patente; |
||||
worksheet.Cells[$"I{currentRow}"].Value = trafico.Aduana; |
||||
worksheet.Cells[$"J{currentRow}"].Value = trafico.Pedimento; |
||||
worksheet.Cells[$"K{currentRow}"].Value = trafico.FechaPago; |
||||
worksheet.Cells[$"L{currentRow}"].Value = trafico.FechaDesaduanamiento; |
||||
worksheet.Cells[$"M{currentRow}"].Value = trafico.UltimaActualizacion; |
||||
currentRow++; |
||||
} |
||||
ExcelRange range = worksheet.Cells[1, 1,traficos.Count() + 1, 13]; |
||||
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 stream; |
||||
} |
||||
}catch(Exception ex){ |
||||
throw new Exception(ex.Message); |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue