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:
2026-04-17 14:16:09 -03:00
parent 40482caf7b
commit 7d432a949a
15 changed files with 0 additions and 281 deletions

View File

@@ -7,11 +7,8 @@ using SIGCM2.Application.PuntosDeVenta.Create;
using SIGCM2.Application.PuntosDeVenta.Deactivate;
using SIGCM2.Application.PuntosDeVenta.GetById;
using SIGCM2.Application.PuntosDeVenta.List;
using SIGCM2.Application.PuntosDeVenta.ProximoNumero;
using SIGCM2.Application.PuntosDeVenta.Reactivate;
using SIGCM2.Application.PuntosDeVenta.Reservar;
using SIGCM2.Application.PuntosDeVenta.Update;
using SIGCM2.Domain.Enums;
namespace SIGCM2.Api.Controllers;
@@ -160,34 +157,6 @@ public sealed class PuntosDeVentaController : ControllerBase
return NoContent();
}
/// <summary>Reserves the next sequential number for a given PdV and TipoComprobante.</summary>
[HttpPost("{id:int}/secuencias/{tipoComprobante}/reservar")]
[RequirePermission("administracion:puntos_de_venta:gestionar")]
[ProducesResponseType(typeof(ReservaNumeroDto), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status403Forbidden)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status409Conflict)]
public async Task<IActionResult> ReservarNumero([FromRoute] int id, [FromRoute] TipoComprobante tipoComprobante)
{
var command = new ReservarNumeroCommand(id, tipoComprobante);
var result = await _dispatcher.Send<ReservarNumeroCommand, ReservaNumeroDto>(command);
return Ok(result);
}
/// <summary>Returns the next available number (read-only, no reservation).</summary>
[HttpGet("{id:int}/secuencias/{tipoComprobante}/proximo")]
[RequirePermission("administracion:puntos_de_venta:gestionar")]
[ProducesResponseType(typeof(ProximoNumeroDto), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status403Forbidden)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<IActionResult> GetProximoNumero([FromRoute] int id, [FromRoute] TipoComprobante tipoComprobante)
{
var query = new GetProximoNumeroQuery(id, tipoComprobante);
var result = await _dispatcher.Send<GetProximoNumeroQuery, ProximoNumeroDto>(query);
return Ok(result);
}
}
// ── Request body records ──────────────────────────────────────────────────────

View File

@@ -244,18 +244,6 @@ public sealed class ExceptionFilter : IExceptionFilter
context.ExceptionHandled = true;
break;
case PuntoDeVentaInactivoException puntoDeVentaInactivoEx:
context.Result = new ObjectResult(new
{
error = "punto_de_venta_inactivo",
message = puntoDeVentaInactivoEx.Message
})
{
StatusCode = StatusCodes.Status409Conflict
};
context.ExceptionHandled = true;
break;
case NumeroAFIPDuplicadoException numeroAFIPDupEx:
context.Result = new ObjectResult(new
{