Fix(Suscripciones): Insert en db arreglado y muestra en UI tipo factura
All checks were successful
Optimized Build and Deploy / remote-build-and-deploy (push) Successful in 3m25s

- 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.
This commit is contained in:
2025-08-13 15:53:34 -03:00
parent e95c851e5b
commit 057310ca47
4 changed files with 15 additions and 7 deletions

View File

@@ -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."); throw new ArgumentNullException(nameof(transaction), "La transacción o su conexión no pueden ser nulas.");
} }
const string sqlInsert = @" 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.* 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<Factura>(sqlInsert, nuevaFactura, transaction); return await transaction.Connection.QuerySingleAsync<Factura>(sqlInsert, nuevaFactura, transaction);
} }

View File

@@ -17,7 +17,7 @@ namespace GestionIntegral.Api.Services.Suscripciones
private readonly DbConnectionFactory _connectionFactory; private readonly DbConnectionFactory _connectionFactory;
private readonly ILogger<DebitoAutomaticoService> _logger; private readonly ILogger<DebitoAutomaticoService> _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"; private const string ORIGEN_EMPRESA = "EMPRESA";
public DebitoAutomaticoService( public DebitoAutomaticoService(

View File

@@ -171,10 +171,13 @@ namespace GestionIntegral.Api.Services.Suscripciones
DescuentoAplicado = descuentoPromocionesTotal, DescuentoAplicado = descuentoPromocionesTotal,
ImporteFinal = importeFinal, ImporteFinal = importeFinal,
EstadoPago = "Pendiente", EstadoPago = "Pendiente",
EstadoFacturacion = "Pendiente de Facturar" EstadoFacturacion = "Pendiente de Facturar",
TipoFactura = "Mensual"
}; };
var facturaCreada = await _facturaRepository.CreateAsync(nuevaFactura, transaction); 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}"); if (facturaCreada == null) throw new DataException($"No se pudo crear la factura para suscriptor ID {idSuscriptor} y empresa ID {idEmpresa}");
facturasCreadas.Add(facturaCreada); facturasCreadas.Add(facturaCreada);
foreach (var detalle in detallesParaFactura) foreach (var detalle in detallesParaFactura)
{ {

View File

@@ -135,7 +135,7 @@ namespace GestionIntegral.Api.Services.Suscripciones
if (periodoSuscripcion <= ultimoPeriodo) 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); 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, IdSuscriptor = creada.IdSuscriptor,
Periodo = creada.FechaInicio.ToString("yyyy-MM"), Periodo = creada.FechaInicio.ToString("yyyy-MM"),
FechaEmision = DateTime.Now.Date, FechaEmision = DateTime.Now.Date,
FechaVencimiento = DateTime.Now.AddDays(10).Date, // Vencimiento corto FechaVencimiento = DateTime.Now.AddDays(10).Date,
ImporteBruto = importeProporcional, ImporteBruto = importeProporcional,
ImporteFinal = importeProporcional, ImporteFinal = importeProporcional,
EstadoPago = "Pendiente", EstadoPago = "Pendiente",
EstadoFacturacion = "Pendiente de Facturar", EstadoFacturacion = "Pendiente de Facturar",
TipoFactura = "Alta" // Marcamos la factura como de tipo "Alta" TipoFactura = "Alta"
}; };
var facturaCreada = await _facturaRepository.CreateAsync(facturaDeAlta, transaction); var facturaCreada = await _facturaRepository.CreateAsync(facturaDeAlta, transaction);