From 057310ca474d2eda6cc44f8d86f6b43851877b1c Mon Sep 17 00:00:00 2001 From: dmolinari Date: Wed, 13 Aug 2025 15:53:34 -0300 Subject: [PATCH] Fix(Suscripciones): Insert en db arreglado y muestra en UI tipo factura MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Se arregla error al insertar en la db el registro de factura "Alta" - Se arregla UI por falla en la visualización del tipo de factura en la tabla de gestión de facturas. --- .../Data/Repositories/Suscripciones/FacturaRepository.cs | 9 +++++++-- .../Services/Suscripciones/DebitoAutomaticoService.cs | 2 +- .../Services/Suscripciones/FacturacionService.cs | 5 ++++- .../Services/Suscripciones/SuscripcionService.cs | 6 +++--- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Backend/GestionIntegral.Api/Data/Repositories/Suscripciones/FacturaRepository.cs b/Backend/GestionIntegral.Api/Data/Repositories/Suscripciones/FacturaRepository.cs index f62c7f6..9ec718e 100644 --- a/Backend/GestionIntegral.Api/Data/Repositories/Suscripciones/FacturaRepository.cs +++ b/Backend/GestionIntegral.Api/Data/Repositories/Suscripciones/FacturaRepository.cs @@ -59,10 +59,15 @@ namespace GestionIntegral.Api.Data.Repositories.Suscripciones { throw new ArgumentNullException(nameof(transaction), "La transacción o su conexión no pueden ser nulas."); } + const string sqlInsert = @" - INSERT INTO dbo.susc_Facturas (IdSuscriptor, Periodo, FechaEmision, FechaVencimiento, ImporteBruto, DescuentoAplicado, ImporteFinal, EstadoPago, EstadoFacturacion) + INSERT INTO dbo.susc_Facturas + (IdSuscriptor, Periodo, FechaEmision, FechaVencimiento, ImporteBruto, + DescuentoAplicado, ImporteFinal, EstadoPago, EstadoFacturacion, TipoFactura) OUTPUT INSERTED.* - VALUES (@IdSuscriptor, @Periodo, @FechaEmision, @FechaVencimiento, @ImporteBruto, @DescuentoAplicado, @ImporteFinal, @EstadoPago, @EstadoFacturacion);"; + VALUES + (@IdSuscriptor, @Periodo, @FechaEmision, @FechaVencimiento, @ImporteBruto, + @DescuentoAplicado, @ImporteFinal, @EstadoPago, @EstadoFacturacion, @TipoFactura);"; return await transaction.Connection.QuerySingleAsync(sqlInsert, nuevaFactura, transaction); } diff --git a/Backend/GestionIntegral.Api/Services/Suscripciones/DebitoAutomaticoService.cs b/Backend/GestionIntegral.Api/Services/Suscripciones/DebitoAutomaticoService.cs index 0dbecd0..c73600a 100644 --- a/Backend/GestionIntegral.Api/Services/Suscripciones/DebitoAutomaticoService.cs +++ b/Backend/GestionIntegral.Api/Services/Suscripciones/DebitoAutomaticoService.cs @@ -17,7 +17,7 @@ namespace GestionIntegral.Api.Services.Suscripciones private readonly DbConnectionFactory _connectionFactory; private readonly ILogger _logger; - private const string NRO_PRESTACION = "123456"; // Reemplazar por el número real + private const string NRO_PRESTACION = "26435"; // Reemplazar por el número real private const string ORIGEN_EMPRESA = "EMPRESA"; public DebitoAutomaticoService( diff --git a/Backend/GestionIntegral.Api/Services/Suscripciones/FacturacionService.cs b/Backend/GestionIntegral.Api/Services/Suscripciones/FacturacionService.cs index baaf2e5..9ae59df 100644 --- a/Backend/GestionIntegral.Api/Services/Suscripciones/FacturacionService.cs +++ b/Backend/GestionIntegral.Api/Services/Suscripciones/FacturacionService.cs @@ -171,10 +171,13 @@ namespace GestionIntegral.Api.Services.Suscripciones DescuentoAplicado = descuentoPromocionesTotal, ImporteFinal = importeFinal, EstadoPago = "Pendiente", - EstadoFacturacion = "Pendiente de Facturar" + EstadoFacturacion = "Pendiente de Facturar", + TipoFactura = "Mensual" }; + var facturaCreada = await _facturaRepository.CreateAsync(nuevaFactura, transaction); if (facturaCreada == null) throw new DataException($"No se pudo crear la factura para suscriptor ID {idSuscriptor} y empresa ID {idEmpresa}"); + facturasCreadas.Add(facturaCreada); foreach (var detalle in detallesParaFactura) { diff --git a/Backend/GestionIntegral.Api/Services/Suscripciones/SuscripcionService.cs b/Backend/GestionIntegral.Api/Services/Suscripciones/SuscripcionService.cs index 32a2874..018551f 100644 --- a/Backend/GestionIntegral.Api/Services/Suscripciones/SuscripcionService.cs +++ b/Backend/GestionIntegral.Api/Services/Suscripciones/SuscripcionService.cs @@ -135,7 +135,7 @@ namespace GestionIntegral.Api.Services.Suscripciones if (periodoSuscripcion <= ultimoPeriodo) { - _logger.LogInformation("Suscripción en período ya cerrado detectada para Suscriptor {IdSuscriptor}. Generando factura de alta pro-rata.", creada.IdSuscriptor); + _logger.LogInformation("Suscripción en período ya cerrado detectada. Generando factura de alta pro-rata."); decimal importeProporcional = await _facturacionService.CalcularImporteParaSuscripcion(creada, creada.FechaInicio.Year, creada.FechaInicio.Month, transaction); @@ -146,12 +146,12 @@ namespace GestionIntegral.Api.Services.Suscripciones IdSuscriptor = creada.IdSuscriptor, Periodo = creada.FechaInicio.ToString("yyyy-MM"), FechaEmision = DateTime.Now.Date, - FechaVencimiento = DateTime.Now.AddDays(10).Date, // Vencimiento corto + FechaVencimiento = DateTime.Now.AddDays(10).Date, ImporteBruto = importeProporcional, ImporteFinal = importeProporcional, EstadoPago = "Pendiente", EstadoFacturacion = "Pendiente de Facturar", - TipoFactura = "Alta" // Marcamos la factura como de tipo "Alta" + TipoFactura = "Alta" }; var facturaCreada = await _facturaRepository.CreateAsync(facturaDeAlta, transaction);