From b32321ea865a5be8ad4c7b8b0f58682f365c206b Mon Sep 17 00:00:00 2001 From: Felix Morales Date: Wed, 3 Jan 2024 17:01:10 -0600 Subject: [PATCH] =?UTF-8?q?Ordenar=20las=20facturas=20en=20base=20a=20la?= =?UTF-8?q?=20fecha=20del=20contenedor=20y=20tomar=20la=20fecha=20m=C3=A1s?= =?UTF-8?q?=20reciente=20de=20los=20contenedores=20para=20tomarla=20como?= =?UTF-8?q?=20fecha=20de=20desaduanamiento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Corresponsalias/TraficosController.cs | 80 ++++++++++--------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/Controllers/Corresponsalias/TraficosController.cs b/Controllers/Corresponsalias/TraficosController.cs index a982daf..7b59b08 100644 --- a/Controllers/Corresponsalias/TraficosController.cs +++ b/Controllers/Corresponsalias/TraficosController.cs @@ -9,6 +9,7 @@ using CORRESPONSALBackend.Repository.Corresponsalias; using CORRESPONSALBackend.DTO.Reportes; using CORRESPONSALBackend.Contracts.Corresponsalias.Services; using CORRESPONSALBackend.Contracts.Catalogos; +using System.Globalization; namespace CORRESPONSALBackend.Controllers.Corresponsalias { @@ -164,47 +165,50 @@ namespace CORRESPONSALBackend.Controllers.Corresponsalias var proveedores = await _proveedoresRepository.GetAll(0); proveedores.ToList(); 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.FechaPago = DateTime.Parse(facturas[0][7]).ToString("yyyy/MM/dd"); - trafico.Clave = facturas[0][8]; - trafico.TipoCambio = double.Parse(facturas[0][15]); - trafico.CantidadFracciones = int.Parse(facturas[0][21]); - trafico.DescripcionMercancia = facturas[0][14]; - trafico.Observaciones = facturas[0][48]; + trafico.Pedimento = int.Parse(facturasOrdenadas[0][6]); + trafico.FechaPago = facturasOrdenadas[0][7]; + trafico.Clave = facturasOrdenadas[0][8]; + trafico.TipoCambio = double.Parse(facturasOrdenadas[0][15]); + trafico.CantidadFracciones = int.Parse(facturasOrdenadas[0][21]); + trafico.DescripcionMercancia = facturasOrdenadas[0][14]; + trafico.Observaciones = facturasOrdenadas[0][48]; + trafico.FechaDesaduanamiento = facturasOrdenadas[0][22]; await _Repo.Append(trafico); } - foreach(var factura in facturas){ - //Crear modelo de contenedor y asignar los datos en la factura actual - CorresponsalesContenedores nuevoContenedor = new CorresponsalesContenedores(){ - id = 0, - IdTrafico = idTrafico, - Contenedor = factura[32], - 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 proveedorFactura = proveedores.FirstOrDefault(p => p.Nombre == factura[10]); - CorresponsalFacturas nuevaFactura = new CorresponsalFacturas(){ - id = 0, - Factura = factura[13], - IdTrafico = idTrafico, - ValorFacturaDls = double.Parse(factura[16]), - Proveedor = proveedorFactura.id, - Pedido = factura[29], - FechaFactura = factura[7], - Activo = true, - Code = 0, - FolioGEMCO = "", - COVE = factura[50], - Entrega = factura[52], - Transporte = factura[51], - UUID = factura[33], - IdContenedor = contenedorGuardado.id - }; - await _facturasRepository.Append(nuevaFactura); - + foreach(var factura in facturasOrdenadas){ + if (!new List() { " ", "-", "_" }.Contains(factura[13]) && !String.IsNullOrEmpty(factura[13])){ + //Crear modelo de contenedor y asignar los datos en la factura actual + CorresponsalesContenedores nuevoContenedor = new CorresponsalesContenedores(){ + id = 0, + IdTrafico = idTrafico, + Contenedor = factura[32], + 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 proveedorFactura = proveedores.FirstOrDefault(p => p.Nombre == factura[10]); + CorresponsalFacturas nuevaFactura = new CorresponsalFacturas(){ + id = 0, + Factura = factura[13], + IdTrafico = idTrafico, + ValorFacturaDls = double.Parse(factura[16]), + Proveedor = proveedorFactura.id, + Pedido = factura[29], + FechaFactura = factura[7], + Activo = true, + Code = 0, + FolioGEMCO = "", + COVE = factura[50], + Entrega = factura[52], + Transporte = factura[51], + UUID = factura[33], + IdContenedor = contenedorGuardado.id + }; + await _facturasRepository.Append(nuevaFactura); + } } return new OkObjectResult(new {trafico, facturas = await _facturasRepository.GetAll(idTrafico), contenedores = await _contenedoresRepository.GetAll(idTrafico)}); }catch(Exception ex){