revert(backend): eliminar handlers/endpoints/excepciones de reserva de numero ADM-008
Eliminar SecuenciaComprobante entity, TipoComprobante enum, DeadlockTransientException, PuntoDeVentaInactivoException, carpetas Reservar/ y ProximoNumero/ de Application, métodos ReservarNumeroAsync/GetUltimoNumeroAsync del repositorio, endpoints POST /secuencias/.../reservar y GET /secuencias/.../proximo del controller, y mapping PuntoDeVentaInactivoException del ExceptionFilter.
This commit is contained in:
@@ -1,34 +0,0 @@
|
||||
using SIGCM2.Domain.Enums;
|
||||
|
||||
namespace SIGCM2.Domain.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// Lleva el correlativo de números de comprobante por (PuntoDeVentaId × TipoComprobante).
|
||||
/// La reserva atómica la ejecuta usp_ReservarNumeroComprobante directamente en BD.
|
||||
/// Este objeto es un helper de lectura/proyección.
|
||||
/// </summary>
|
||||
public sealed class SecuenciaComprobante
|
||||
{
|
||||
public int PuntoDeVentaId { get; }
|
||||
public TipoComprobante TipoComprobante { get; }
|
||||
public int UltimoNumero { get; }
|
||||
public DateTime FechaCreacion { get; }
|
||||
public DateTime? FechaModificacion { get; }
|
||||
|
||||
/// <summary>El próximo número disponible (read-only, sin modificar el estado).</summary>
|
||||
public int ProximoNumero => UltimoNumero + 1;
|
||||
|
||||
public SecuenciaComprobante(
|
||||
int puntoDeVentaId,
|
||||
TipoComprobante tipoComprobante,
|
||||
int ultimoNumero,
|
||||
DateTime fechaCreacion,
|
||||
DateTime? fechaModificacion)
|
||||
{
|
||||
PuntoDeVentaId = puntoDeVentaId;
|
||||
TipoComprobante = tipoComprobante;
|
||||
UltimoNumero = ultimoNumero;
|
||||
FechaCreacion = fechaCreacion;
|
||||
FechaModificacion = fechaModificacion;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
namespace SIGCM2.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Tipos de comprobante AFIP soportados por ADM-008.
|
||||
/// Valor TINYINT persistido en BD (CHECK TipoComprobante BETWEEN 1 AND 6).
|
||||
/// Migración a tabla maestra diferida a FAC-001.
|
||||
/// </summary>
|
||||
public enum TipoComprobante : byte
|
||||
{
|
||||
FacturaA = 1,
|
||||
FacturaB = 2,
|
||||
FacturaC = 3,
|
||||
NotaCreditoA = 4,
|
||||
NotaCreditoB = 5,
|
||||
NotaCreditoC = 6,
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
namespace SIGCM2.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Thrown by Infrastructure when a database deadlock (SQL 1205) is detected.
|
||||
/// Allows Application handlers to retry without referencing SqlClient.
|
||||
/// </summary>
|
||||
public sealed class DeadlockTransientException : DomainException
|
||||
{
|
||||
public DeadlockTransientException()
|
||||
: base("Se detectó un deadlock en la base de datos. Reintentando operación.") { }
|
||||
|
||||
public DeadlockTransientException(Exception innerException)
|
||||
: base("Se detectó un deadlock en la base de datos. Reintentando operación.", innerException) { }
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
namespace SIGCM2.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Thrown when a mutation (reserva) is attempted on an inactive PuntoDeVenta.
|
||||
/// </summary>
|
||||
public sealed class PuntoDeVentaInactivoException : DomainException
|
||||
{
|
||||
public int PuntoDeVentaId { get; }
|
||||
|
||||
public PuntoDeVentaInactivoException(int puntoDeVentaId)
|
||||
: base($"El punto de venta {puntoDeVentaId} está inactivo. No se pueden realizar operaciones hasta reactivarlo.")
|
||||
{
|
||||
PuntoDeVentaId = puntoDeVentaId;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user