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:
@@ -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 ──────────────────────────────────────────────────────
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user