Compare commits
No commits in common. 'main' and 'feature/ConsolidarPedimentos_20231229' have entirely different histories.
@ -1,9 +0,0 @@ |
|||||||
using CORRESPONSALBackend.DTO.ArchivoElectronico; |
|
||||||
using GEMCO.Backend.Models.Reportes; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Contracts.ArchivoElectronico{ |
|
||||||
public interface IArchivoElectronicoRepository |
|
||||||
{ |
|
||||||
public Task<List<RptPedimentosPagadosAEO>> getRptPedimentoPagadosAEO(DTOAEPeriodo dTOData); |
|
||||||
} |
|
||||||
} |
|
@ -1,5 +0,0 @@ |
|||||||
namespace CORRESPONSALBackend.Contracts.ArchivoElectronico{ |
|
||||||
public interface IArchivoElectronicoService{ |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
@ -1,7 +0,0 @@ |
|||||||
using CORRESPONSALBackend.Models.Catalogos; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Contracts.Catalogos{ |
|
||||||
public interface ICatTiposContenedoresRepository{ |
|
||||||
public Task<IEnumerable<CatTiposContenedores>> Get(); |
|
||||||
} |
|
||||||
} |
|
@ -1,11 +0,0 @@ |
|||||||
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,6 +0,0 @@ |
|||||||
namespace CORRESPONSALBackend.Contracts.Corresponsalias.Services{ |
|
||||||
public interface ICorresponsaliasTraficosService{ |
|
||||||
public Task<List<string[]>> ReadTxtFacturasAlen(int fileId); |
|
||||||
public Task<string> GetTxtFacturacionData(int idTrafico); |
|
||||||
} |
|
||||||
} |
|
@ -1,16 +0,0 @@ |
|||||||
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); |
|
||||||
} |
|
||||||
} |
|
@ -1,5 +0,0 @@ |
|||||||
namespace CORRESPONSALBackend.Contracts.Reportes.Alen{ |
|
||||||
public interface IReportesAlenRepository{ |
|
||||||
public Task<IEnumerable<DTOReporteFacturasTraficosConsolidados>> GetFacturasTraficoConsolidado(int idTrafico, string referencia); |
|
||||||
} |
|
||||||
} |
|
@ -1,8 +0,0 @@ |
|||||||
using CORRESPONSALBackend.Models.Corresponsales; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Contracts.Reportes.Alen{ |
|
||||||
public interface IReportesAlenService{ |
|
||||||
public Task<MemoryStream> GetRelacionFacturas(ITrafico trafico, IEnumerable<CorresponsalFacturas> facturas, IEnumerable<CorresponsalesContenedores> contenedores); |
|
||||||
public Task<MemoryStream> GetReporteFacturasTraficoConsolidado(string referencia); |
|
||||||
} |
|
||||||
} |
|
@ -1,7 +0,0 @@ |
|||||||
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); |
|
||||||
} |
|
||||||
} |
|
@ -1,7 +0,0 @@ |
|||||||
using CORRESPONSALBackend.DTO.Reportes.CuentasCerradas; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Contracts.Reportes.CuentasCerradas{ |
|
||||||
public interface IReporteCuentasCerradasService{ |
|
||||||
public Task<MemoryStream> GetExcel(IEnumerable<DTOCuentasCerradas> cuentas); |
|
||||||
} |
|
||||||
} |
|
@ -1,8 +0,0 @@ |
|||||||
using CORRESPONSALBackend.DTO.Reportes; |
|
||||||
using CORRESPONSALBackend.DTO.Reportes.Facturacion; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Contracts.Reportes.Facturacion{ |
|
||||||
public interface IReportesFacturacionRepository{ |
|
||||||
public Task<IEnumerable<DTOReporteGeneralFacturacion>> GetCuentasFacturadas(DTOReporteCorresponsales data); |
|
||||||
} |
|
||||||
} |
|
@ -1,7 +0,0 @@ |
|||||||
using CORRESPONSALBackend.DTO.Corresponsales; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Contracts.Reportes{ |
|
||||||
public interface ITraficosClientesService{ |
|
||||||
public Task<MemoryStream> GetExcel(IEnumerable<DTOCorresponsalTrafico> traficos); |
|
||||||
} |
|
||||||
} |
|
@ -1,22 +0,0 @@ |
|||||||
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; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,57 +0,0 @@ |
|||||||
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); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,252 +0,0 @@ |
|||||||
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); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,54 +0,0 @@ |
|||||||
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); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,30 +0,0 @@ |
|||||||
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); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
@ -1,58 +0,0 @@ |
|||||||
using CORRESPONSALBackend.Contracts.Corresponsalias; |
|
||||||
using CORRESPONSALBackend.Contracts.Reportes.Alen; |
|
||||||
using Microsoft.AspNetCore.Authorization; |
|
||||||
using Microsoft.AspNetCore.Mvc; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Controllers.Reportes{ |
|
||||||
[Authorize] |
|
||||||
[Route("api/[controller]")]
|
|
||||||
[ApiController] |
|
||||||
public class ReportesAlenController : ControllerBase{ |
|
||||||
|
|
||||||
private readonly ICorresponsaliasTraficosRepository _traficosRepository; |
|
||||||
private readonly ICorresponsaliasFacturasRepository _facturasRepository; |
|
||||||
private readonly ICorresponsaliasContenedoresRepository _contenedoresRepository; |
|
||||||
private readonly IReportesAlenService _reportesAlenService; |
|
||||||
public ReportesAlenController(ICorresponsaliasTraficosRepository traficosRepository, ICorresponsaliasFacturasRepository facturasRepository, |
|
||||||
IReportesAlenService reportesAlenService, ICorresponsaliasContenedoresRepository contenedoresRepository){ |
|
||||||
_traficosRepository = traficosRepository; |
|
||||||
_facturasRepository = facturasRepository; |
|
||||||
_contenedoresRepository = contenedoresRepository; |
|
||||||
_reportesAlenService = reportesAlenService; |
|
||||||
} |
|
||||||
|
|
||||||
[HttpGet("RelacionFacturas")] |
|
||||||
public async Task<IActionResult> GetRelacionFacturas([FromQuery] string referencia){ |
|
||||||
try{ |
|
||||||
var trafico = await _traficosRepository.GetByReferencia(referencia); |
|
||||||
var facturas = await _facturasRepository.GetAll(trafico.id); |
|
||||||
var contenedores = await _contenedoresRepository.GetAll(trafico.id); |
|
||||||
var stream = await _reportesAlenService.GetRelacionFacturas(trafico, facturas, contenedores); |
|
||||||
if(stream.Length > 0){ |
|
||||||
stream.Position = 0; |
|
||||||
return File(stream,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml", $"RelacionFacturas.xlsx"); |
|
||||||
}else{ |
|
||||||
throw new Exception("Ocurrio un error al generar el reporte, intentelo de nuevo"); |
|
||||||
} |
|
||||||
}catch(Exception ex){ |
|
||||||
return BadRequest(ex.Message); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
[HttpGet("FacturasConsolidados")] |
|
||||||
public async Task<IActionResult> FacturasConsolidados([FromQuery] string referencia){ |
|
||||||
try{ |
|
||||||
var trafico = await _traficosRepository.GetByReferencia(referencia); |
|
||||||
var stream = await _reportesAlenService.GetReporteFacturasTraficoConsolidado(referencia); |
|
||||||
if(stream.Length > 0){ |
|
||||||
stream.Position = 0; |
|
||||||
return File(stream,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml", $"FacturasConsolidado_{trafico.FolioGemco}.xlsx"); |
|
||||||
}else{ |
|
||||||
throw new Exception("Ocurrio un error al generar el reporte, intentelo de nuevo"); |
|
||||||
} |
|
||||||
}catch(Exception ex){ |
|
||||||
return BadRequest(ex.Message); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,93 +0,0 @@ |
|||||||
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); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,11 +0,0 @@ |
|||||||
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; } |
|
||||||
} |
|
||||||
} |
|
@ -1,50 +0,0 @@ |
|||||||
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;} = ""; |
|
||||||
} |
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
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;} = ""; |
|
||||||
} |
|
||||||
} |
|
@ -1,20 +0,0 @@ |
|||||||
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; } |
|
||||||
} |
|
@ -1,26 +0,0 @@ |
|||||||
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;} */ |
|
||||||
} |
|
||||||
} |
|
@ -1,32 +0,0 @@ |
|||||||
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; } |
|
||||||
} |
|
||||||
} |
|
@ -1,6 +0,0 @@ |
|||||||
namespace CORRESPONSALBackend.Models.Catalogos{ |
|
||||||
public class CatTiposContenedores { |
|
||||||
public int id { get; set; } |
|
||||||
public string Descripcion { get; set; } |
|
||||||
} |
|
||||||
} |
|
@ -1,39 +0,0 @@ |
|||||||
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; |
|
||||||
} |
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
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; } |
|
||||||
} |
|
||||||
} |
|
@ -1,31 +0,0 @@ |
|||||||
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(); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,23 +0,0 @@ |
|||||||
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; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,85 +0,0 @@ |
|||||||
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 |
|
||||||
}); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,138 +0,0 @@ |
|||||||
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; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,22 +0,0 @@ |
|||||||
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; |
|
||||||
} |
|
||||||
} |
|
@ -1,28 +0,0 @@ |
|||||||
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; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,34 +0,0 @@ |
|||||||
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; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,7 +0,0 @@ |
|||||||
using CORRESPONSALBackend.Contracts.ArchivoElectronico; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Services{ |
|
||||||
public class ArchivoElectronicoService : IArchivoElectronicoService{ |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
@ -1,115 +0,0 @@ |
|||||||
using System.Globalization; |
|
||||||
using System.Text.RegularExpressions; |
|
||||||
using CORRESPONSALBackend.Contracts; |
|
||||||
using CORRESPONSALBackend.Contracts.Catalogos; |
|
||||||
using CORRESPONSALBackend.Contracts.Corresponsalias; |
|
||||||
using CORRESPONSALBackend.Contracts.Corresponsalias.Services; |
|
||||||
using CORRESPONSALBackend.Contracts.Utils; |
|
||||||
using CORRESPONSALBackend.Models; |
|
||||||
using CORRESPONSALBackend.Models.Utils; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Services.Corresponsalias.Traficos{ |
|
||||||
public class CorresponsaliasTraficosService : ICorresponsaliasTraficosService |
|
||||||
{ |
|
||||||
private readonly IFileManagerRepository _fileManagerRepo; |
|
||||||
private readonly IFilePaths4ProcessRepository _RepoRelativePath; |
|
||||||
private readonly ICorresponsaliasTraficosRepository _Repo; |
|
||||||
private readonly IProveedoresRepository _proveedoresRepository; |
|
||||||
private readonly ICorresponsaliasFacturasRepository _facturasRepository; |
|
||||||
private readonly ICorresponsaliasContenedoresRepository _contenedoresRepository; |
|
||||||
private readonly IClientesRepository _clientesRepository; |
|
||||||
private readonly ICatCentrosCostosRepository _centrosCostosRepository; |
|
||||||
private readonly ITiposMercanciaRepository _tiposMercanciaRepository; |
|
||||||
private readonly IConfiguration _config; |
|
||||||
private readonly string RootPathCorresponsales; |
|
||||||
|
|
||||||
public CorresponsaliasTraficosService(IFileManagerRepository fileManagerRepo, IFilePaths4ProcessRepository RepoRelativePath, IConfiguration config, |
|
||||||
ICorresponsaliasTraficosRepository Repo, IClientesRepository clientesRepository, |
|
||||||
IProveedoresRepository proveedoresRepository, ICorresponsaliasFacturasRepository facturasRepository, ICorresponsaliasContenedoresRepository contenedoresRepository, |
|
||||||
ICatCentrosCostosRepository centrosCostosRepository, ITiposMercanciaRepository tiposMercanciaRepository){ |
|
||||||
_fileManagerRepo = fileManagerRepo; |
|
||||||
_RepoRelativePath = RepoRelativePath; |
|
||||||
_Repo = Repo; |
|
||||||
_proveedoresRepository = proveedoresRepository; |
|
||||||
_facturasRepository = facturasRepository; |
|
||||||
_contenedoresRepository = contenedoresRepository; |
|
||||||
_clientesRepository = clientesRepository; |
|
||||||
_centrosCostosRepository = centrosCostosRepository; |
|
||||||
_tiposMercanciaRepository = tiposMercanciaRepository; |
|
||||||
_config = config; |
|
||||||
RootPathCorresponsales = _config.GetValue<string>("AllFiles"); |
|
||||||
} |
|
||||||
public async Task<List<string[]>> ReadTxtFacturasAlen(int fileId) |
|
||||||
{ |
|
||||||
FileManager recFound = await _fileManagerRepo.getFileById(fileId); |
|
||||||
FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(recFound.Proceso); |
|
||||||
string filePath = RootPathCorresponsales + RelativePath.Path + recFound.NombreArchivo; |
|
||||||
if(System.IO.File.Exists(filePath)){ |
|
||||||
try{ |
|
||||||
var fileContent = File.ReadAllText(filePath); |
|
||||||
string[] GCs = fileContent.Split("\r\n"); |
|
||||||
List<string[]> facturas = new List<string[]>(); |
|
||||||
foreach(var gc in GCs){ |
|
||||||
facturas.Add(gc.Split('|')); |
|
||||||
} |
|
||||||
File.Delete(filePath); |
|
||||||
return facturas; |
|
||||||
}catch(Exception ex){ |
|
||||||
File.Delete(filePath); |
|
||||||
throw new Exception(ex.Message); |
|
||||||
} |
|
||||||
}else{ |
|
||||||
return new List<string[]>(); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
public async Task<string> GetTxtFacturacionData(int idTrafico) |
|
||||||
{ |
|
||||||
try{ |
|
||||||
var trafico = await _Repo.Get(idTrafico); |
|
||||||
trafico.DescripcionMercancia = Regex.Replace(trafico.DescripcionMercancia, @"\t|\n|\r", ""); |
|
||||||
var tiposMercancia = await _tiposMercanciaRepository.GetAll(); |
|
||||||
var tipoMercancia = tiposMercancia.First(x => trafico.PedimentoObligatorio == 1 ? x.id == trafico.idTipoMercancia : x.id == 15); |
|
||||||
var facturas = await _facturasRepository.GetAll(idTrafico); |
|
||||||
string NombreProveedor = ""; |
|
||||||
var proveedores = await _proveedoresRepository.GetAll(0); |
|
||||||
var contenedores = await _contenedoresRepository.GetAll(idTrafico); |
|
||||||
var clientes = await _clientesRepository.getAllClientes(0); |
|
||||||
var cliente = clientes.First(x => x.sClave == trafico.IdCliente); |
|
||||||
var centroCostos = await _centrosCostosRepository.Get(trafico.IdCliente); |
|
||||||
int IdCteFacturacion = centroCostos.ClienteFacturacion; |
|
||||||
var cteFacturacion = clientes.FirstOrDefault(x => x.sClave == IdCteFacturacion, new IClientes()); |
|
||||||
string fileData = $"\"{trafico.FolioGemco}\"|{(IdCteFacturacion == trafico.IdCliente || IdCteFacturacion == 0 ? trafico.IdCliente : IdCteFacturacion)}|{trafico.Patente}|{trafico.Pedimento}|{trafico.TipoCambio}|"; |
|
||||||
fileData += $"{(trafico.FechaPago != null ? DateTime.ParseExact(trafico.FechaPago, "MM/dd/yyyy hh:mm:ss",CultureInfo.InvariantCulture).ToString("yyyy-MM-dd") : "/ / : :")}|"; |
|
||||||
fileData += $"0|0|0|0|0|0|0.00|\"{trafico.Aduana}\"|\"{trafico.Clave}\"|{trafico.TipoOperacion}|"; |
|
||||||
fileData += $"\"C\"|{trafico.ValorFacturaDls}|{trafico.ValorFacturaDls! * trafico.TipoCambio!}|{trafico.ValorAduanaMN}|\"{(trafico.DescripcionMercancia.Length >= 100 ? trafico.DescripcionMercancia.Substring(0,100): trafico.DescripcionMercancia)}\"|"; |
|
||||||
fileData += $"{trafico.Kilos}|{trafico.Kilos! * 2.20462}|{trafico.CantidadFracciones}|\"{(trafico.SemaforoFiscal == 0 ? "R" : "V")}\"|"; |
|
||||||
if(facturas.Count() > 0){ |
|
||||||
var factura = facturas.First(x => x.IdTrafico == idTrafico); |
|
||||||
NombreProveedor = proveedores.First(x => x.id == factura.Proveedor).Nombre; |
|
||||||
NombreProveedor = NombreProveedor.Length >= 50 ? NombreProveedor.Substring(0, 50) : NombreProveedor; |
|
||||||
string[] foliosArray = facturas.Select(x => x.Factura).ToArray(); |
|
||||||
string folios = string.Join(",", foliosArray); |
|
||||||
string [] pedidosArray = facturas.Where(x => x.Pedido != "").Select(x => x.Pedido).ToArray(); |
|
||||||
string pedidos = pedidosArray.Length > 0 ? string.Join(",", pedidosArray) : ""; |
|
||||||
fileData += $"{facturas.Count()}|\"{(folios.Length >= 25 ? folios.Substring(0,25) : folios)}\"|0|\"{NombreProveedor}\"|\"{(pedidos.Length >= 60 ? pedidos.Substring(0,60) : pedidos)}\"|"; |
|
||||||
}else{ |
|
||||||
fileData += $"0|\"\"|0|\"\"|\"\"|"; |
|
||||||
} |
|
||||||
fileData += $"{trafico.Bultos}|0|0|"; |
|
||||||
fileData += $"{(trafico.FechaDesaduanamiento != "" ? trafico.FechaDesaduanamiento.Substring(0,10) : "/ / : :")}|"; |
|
||||||
fileData += $"{contenedores.Count()}|0|\"\"|"; |
|
||||||
fileData += $"{(trafico.FechaDesaduanamiento != "" ? trafico.FechaDesaduanamiento.Substring(0,10) : "/ / : :")}|"; |
|
||||||
fileData += $"{tipoMercancia.Clave}|0|0|\"\"|\"\"|\"\"|\"\"|/ /|F|F|F|F|0|0|F|0.00|F|0|\"\"|\"\"|"; |
|
||||||
fileData += $"{(trafico.FechaPago != null ? DateTime.ParseExact(trafico.FechaPago, "MM/dd/yyyy hh:mm:ss",CultureInfo.InvariantCulture).ToString("yyyy-MM-dd") : "/ / : :")}|"; |
|
||||||
fileData += $"\"\"|\"\"|0|\"{(IdCteFacturacion == trafico.IdCliente || IdCteFacturacion == 0 ? cliente!.sRazonSocial.Split("|")[0].Trim() : cteFacturacion!.sRazonSocial.Split("|")[0].Trim())}\"|"; |
|
||||||
fileData += $"{(IdCteFacturacion == trafico.IdCliente || IdCteFacturacion == 0 ? cliente!.sRFC : cteFacturacion.sRFC)}|\"\"|\"\"|\"\"|\"\"|\"\"|\"\"|\"\"|\"{NombreProveedor}\"|"; |
|
||||||
fileData += $"0|\"\"|\"\"|\"\"|\"\"|\"\"|\"\"|\"\"|\"\"|{trafico.ValorFacturaDls}|\"\"|\"\"|336|\"\"|/ / : :|{DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss")}|{DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss")}|"; |
|
||||||
fileData += $"0|\"\"|\"\"|\"\"|0|0|0|F|\"\"|0|\"\"|\"\"|0|0|0|0|\"\"|\"{centroCostos.CentroCostos.Trim()}\""; |
|
||||||
return fileData; |
|
||||||
}catch(Exception ex){ |
|
||||||
throw new Exception(ex.Message); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,103 +0,0 @@ |
|||||||
using CORRESPONSALBackend.Contracts.Corresponsalias; |
|
||||||
using CORRESPONSALBackend.Contracts.Reportes.Alen; |
|
||||||
using CORRESPONSALBackend.Models.Corresponsales; |
|
||||||
using OfficeOpenXml; |
|
||||||
using OfficeOpenXml.Table; |
|
||||||
|
|
||||||
namespace CORRESPONSALBackend.Services.Reportes.Alen{ |
|
||||||
public class ReportesAlenService : IReportesAlenService |
|
||||||
{ |
|
||||||
private readonly ICorresponsaliasTraficosRepository _traficosRepo; |
|
||||||
private readonly IReportesAlenRepository _repo; |
|
||||||
public ReportesAlenService(ICorresponsaliasTraficosRepository traficosRepo, IReportesAlenRepository repo){ |
|
||||||
_traficosRepo = traficosRepo; |
|
||||||
_repo = repo; |
|
||||||
} |
|
||||||
public async Task<MemoryStream> GetRelacionFacturas(ITrafico trafico, IEnumerable<CorresponsalFacturas> facturas, IEnumerable<CorresponsalesContenedores> contenedores) |
|
||||||
{ |
|
||||||
try{ |
|
||||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; |
|
||||||
using (ExcelPackage excelPackage = new ExcelPackage()){ |
|
||||||
var worksheet = excelPackage.Workbook.Worksheets.Add("sheet1"); |
|
||||||
worksheet.Cells["A1"].Value = "Numero de Remesa"; |
|
||||||
worksheet.Cells["B1"].Value = "Numero de Factura"; |
|
||||||
worksheet.Cells["C1"].Value = "Folio Fiscal"; |
|
||||||
worksheet.Cells["D1"].Value = "Fecha de Factura"; |
|
||||||
worksheet.Cells["E1"].Value = "Numero de COVE"; |
|
||||||
worksheet.Cells["F1"].Value = "Valor Factura"; |
|
||||||
worksheet.Cells["G1"].Value = "Entrega"; |
|
||||||
worksheet.Cells["H1"].Value = "Transporte"; |
|
||||||
worksheet.Cells["I1"].Value = "Pedimento"; |
|
||||||
worksheet.Cells["J1"].Value = "Fecha-Hora Cruce"; |
|
||||||
worksheet.Cells["K1"].Value = "Fecha Cuenta Corresponsal"; |
|
||||||
worksheet.Cells["L1"].Value = "Honorarios"; |
|
||||||
worksheet.Cells["M1"].Value = "Maniobras"; |
|
||||||
worksheet.Cells["N1"].Value = "Validacion"; |
|
||||||
worksheet.Cells["O1"].Value = "Contraprestacion"; |
|
||||||
worksheet.Cells["P1"].Value = "Prevalidacion"; |
|
||||||
worksheet.Cells["Q1"].Value = "IVA"; |
|
||||||
worksheet.Cells["R1"].Value = "Total M.N. por Operacion"; |
|
||||||
int currentRow = 2; |
|
||||||
foreach(var factura in facturas){ |
|
||||||
var fechaCruce = factura.IdContenedor != null && factura.IdContenedor != 0 ? contenedores.FirstOrDefault(x => x.id == factura.IdContenedor).FSemaforo : ""; |
|
||||||
worksheet.Cells[$"A{currentRow}"].Value = $"{trafico.FolioGemco}-{currentRow-1}"; |
|
||||||
worksheet.Cells[$"B{currentRow}"].Value = factura.Factura; |
|
||||||
worksheet.Cells[$"C{currentRow}"].Value = factura.UUID; |
|
||||||
worksheet.Cells[$"D{currentRow}"].Value = factura.FechaFactura; |
|
||||||
worksheet.Cells[$"E{currentRow}"].Value = factura.COVE; |
|
||||||
worksheet.Cells[$"F{currentRow}"].Value = factura.ValorFacturaDls; |
|
||||||
worksheet.Cells[$"G{currentRow}"].Value = factura.Entrega; |
|
||||||
worksheet.Cells[$"H{currentRow}"].Value = factura.Transporte; |
|
||||||
worksheet.Cells[$"I{currentRow}"].Value = trafico.Pedimento; |
|
||||||
worksheet.Cells[$"J{currentRow}"].Value = fechaCruce; |
|
||||||
worksheet.Cells[$"K{currentRow}"].Value = trafico.FechaCuenta; |
|
||||||
worksheet.Cells[$"L{currentRow}"].Value = "$0.00"; |
|
||||||
worksheet.Cells[$"M{currentRow}"].Value = "$0.00"; |
|
||||||
worksheet.Cells[$"N{currentRow}"].Value = "$0.00"; |
|
||||||
worksheet.Cells[$"O{currentRow}"].Value = "$0.00"; |
|
||||||
worksheet.Cells[$"P{currentRow}"].Value = "$0.00"; |
|
||||||
worksheet.Cells[$"Q{currentRow}"].Value = "$0.00"; |
|
||||||
worksheet.Cells[$"R{currentRow}"].Value = "$0.00"; |
|
||||||
currentRow++; |
|
||||||
} |
|
||||||
//Se crea la tabla en el rango de celdas donde se mostrara la inforamcion. |
|
||||||
ExcelRange range = worksheet.Cells[1, 1,facturas.Count() + 1, 18]; |
|
||||||
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); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
public async Task<MemoryStream> GetReporteFacturasTraficoConsolidado(string referencia) |
|
||||||
{ |
|
||||||
try{ |
|
||||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; |
|
||||||
using (ExcelPackage excelPackage = new ExcelPackage()){ |
|
||||||
var worksheet = excelPackage.Workbook.Worksheets.Add("sheet1"); |
|
||||||
var trafico = await _traficosRepo.GetByReferencia(referencia); |
|
||||||
var facturas = await _repo.GetFacturasTraficoConsolidado(trafico.id, referencia); |
|
||||||
worksheet.Cells["A1"].LoadFromCollection(facturas, true); |
|
||||||
ExcelRange range = worksheet.Cells[1, 1,facturas.Count() + 1, 18]; |
|
||||||
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); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,43 +0,0 @@ |
|||||||
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); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,63 +0,0 @@ |
|||||||
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