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);