Ordenar las facturas en base a la fecha del contenedor y tomar la fecha más reciente de los contenedores para tomarla como fecha de desaduanamiento

feature/ReportesContabilidad_FacturasTraficosConsolidadosAlen_20240116
Felix Morales 9 months ago
parent c5afa9e7b7
commit b32321ea86
  1. 80
      Controllers/Corresponsalias/TraficosController.cs

@ -9,6 +9,7 @@ using CORRESPONSALBackend.Repository.Corresponsalias;
using CORRESPONSALBackend.DTO.Reportes; using CORRESPONSALBackend.DTO.Reportes;
using CORRESPONSALBackend.Contracts.Corresponsalias.Services; using CORRESPONSALBackend.Contracts.Corresponsalias.Services;
using CORRESPONSALBackend.Contracts.Catalogos; using CORRESPONSALBackend.Contracts.Catalogos;
using System.Globalization;
namespace CORRESPONSALBackend.Controllers.Corresponsalias namespace CORRESPONSALBackend.Controllers.Corresponsalias
{ {
@ -164,47 +165,50 @@ namespace CORRESPONSALBackend.Controllers.Corresponsalias
var proveedores = await _proveedoresRepository.GetAll(0); var proveedores = await _proveedoresRepository.GetAll(0);
proveedores.ToList(); proveedores.ToList();
var facturas = await _traficosService.ReadTxtFacturasAlen(fileId); var facturas = await _traficosService.ReadTxtFacturasAlen(fileId);
var facturasOrdenadas = facturas.OrderByDescending(x => DateTime.ParseExact(x[22].Replace(" "," "), "MM/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture)).ToArray();
{ {
trafico.Pedimento = int.Parse(facturas[0][6]); trafico.Pedimento = int.Parse(facturasOrdenadas[0][6]);
trafico.FechaPago = DateTime.Parse(facturas[0][7]).ToString("yyyy/MM/dd"); trafico.FechaPago = facturasOrdenadas[0][7];
trafico.Clave = facturas[0][8]; trafico.Clave = facturasOrdenadas[0][8];
trafico.TipoCambio = double.Parse(facturas[0][15]); trafico.TipoCambio = double.Parse(facturasOrdenadas[0][15]);
trafico.CantidadFracciones = int.Parse(facturas[0][21]); trafico.CantidadFracciones = int.Parse(facturasOrdenadas[0][21]);
trafico.DescripcionMercancia = facturas[0][14]; trafico.DescripcionMercancia = facturasOrdenadas[0][14];
trafico.Observaciones = facturas[0][48]; trafico.Observaciones = facturasOrdenadas[0][48];
trafico.FechaDesaduanamiento = facturasOrdenadas[0][22];
await _Repo.Append(trafico); await _Repo.Append(trafico);
} }
foreach(var factura in facturas){ foreach(var factura in facturasOrdenadas){
//Crear modelo de contenedor y asignar los datos en la factura actual if (!new List<string>() { " ", "-", "_" }.Contains(factura[13]) && !String.IsNullOrEmpty(factura[13])){
CorresponsalesContenedores nuevoContenedor = new CorresponsalesContenedores(){ //Crear modelo de contenedor y asignar los datos en la factura actual
id = 0, CorresponsalesContenedores nuevoContenedor = new CorresponsalesContenedores(){
IdTrafico = idTrafico, id = 0,
Contenedor = factura[32], IdTrafico = idTrafico,
Semaforo = (byte?)(factura[45] == "VERDE" ? 2 : 1), Contenedor = factura[32],
FSemaforo = factura[22] Semaforo = (byte?)(factura[45] == "VERDE" ? 2 : 1),
}; FSemaforo = factura[22]
var contenedorGuardado = await _contenedoresRepository.Append(nuevoContenedor); };
//Crear modelo de factura y asignar los datos en la factura actual var contenedorGuardado = await _contenedoresRepository.Append(nuevoContenedor);
var proveedorFactura = proveedores.FirstOrDefault(p => p.Nombre == factura[10]); //Crear modelo de factura y asignar los datos en la factura actual
CorresponsalFacturas nuevaFactura = new CorresponsalFacturas(){ var proveedorFactura = proveedores.FirstOrDefault(p => p.Nombre == factura[10]);
id = 0, CorresponsalFacturas nuevaFactura = new CorresponsalFacturas(){
Factura = factura[13], id = 0,
IdTrafico = idTrafico, Factura = factura[13],
ValorFacturaDls = double.Parse(factura[16]), IdTrafico = idTrafico,
Proveedor = proveedorFactura.id, ValorFacturaDls = double.Parse(factura[16]),
Pedido = factura[29], Proveedor = proveedorFactura.id,
FechaFactura = factura[7], Pedido = factura[29],
Activo = true, FechaFactura = factura[7],
Code = 0, Activo = true,
FolioGEMCO = "", Code = 0,
COVE = factura[50], FolioGEMCO = "",
Entrega = factura[52], COVE = factura[50],
Transporte = factura[51], Entrega = factura[52],
UUID = factura[33], Transporte = factura[51],
IdContenedor = contenedorGuardado.id UUID = factura[33],
}; IdContenedor = contenedorGuardado.id
await _facturasRepository.Append(nuevaFactura); };
await _facturasRepository.Append(nuevaFactura);
}
} }
return new OkObjectResult(new {trafico, facturas = await _facturasRepository.GetAll(idTrafico), contenedores = await _contenedoresRepository.GetAll(idTrafico)}); return new OkObjectResult(new {trafico, facturas = await _facturasRepository.GetAll(idTrafico), contenedores = await _contenedoresRepository.GetAll(idTrafico)});
}catch(Exception ex){ }catch(Exception ex){

Loading…
Cancel
Save