Table of Contents

Class StockReservationsController

Namespace
KadicErp.WebApi.Controllers.Inventory
Assembly
KadicErp.WebApi.dll
[ApiController]
[Authorize]
[Route("api/inventory/stock-reservations")]
public class StockReservationsController : ControllerBase
Inheritance
object
ControllerBase
StockReservationsController

Constructors

StockReservationsController(IMediator, ICurrentUser, ITenantIdContext, IStringLocalizer<GeneralMessages>)

public StockReservationsController(IMediator mediator, ICurrentUser currentUser, ITenantIdContext tenantContext, IStringLocalizer<GeneralMessages> localizer)

Parameters

mediator IMediator
currentUser ICurrentUser
tenantContext ITenantIdContext
localizer IStringLocalizer<GeneralMessages>

Methods

Cancel(Guid, CancelStockReservationCommand, CancellationToken)

Cancelar una reserva

[HttpPost("{id:guid}/cancel")]
[Authorize(Policy = "INVENTORY_STOCK_RESERVATIONS_CANCEL")]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(Error), 400)]
[ProducesResponseType(typeof(Error), 403)]
[ProducesResponseType(typeof(Error), 404)]
[ProducesResponseType(typeof(Error), 409)]
public Task<IActionResult> Cancel(Guid id, CancelStockReservationCommand command, CancellationToken cancellationToken)

Parameters

id Guid
command CancelStockReservationCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

Consume(Guid, ConsumeStockReservationCommand, CancellationToken)

Consumir una reserva (marcar como despachada)

[HttpPost("{id:guid}/consume")]
[Authorize(Policy = "INVENTORY_STOCK_RESERVATIONS_CONSUME")]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(Error), 400)]
[ProducesResponseType(typeof(Error), 403)]
[ProducesResponseType(typeof(Error), 404)]
[ProducesResponseType(typeof(Error), 409)]
public Task<IActionResult> Consume(Guid id, ConsumeStockReservationCommand command, CancellationToken cancellationToken)

Parameters

id Guid
command ConsumeStockReservationCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

Create(CreateStockReservationCommand, CancellationToken)

Crear una nueva reserva de inventario

[HttpPost]
[Authorize(Policy = "INVENTORY_STOCK_RESERVATIONS_CREATE")]
[ProducesResponseType(typeof(Guid), 201)]
[ProducesResponseType(typeof(Error), 400)]
[ProducesResponseType(typeof(Error), 404)]
[ProducesResponseType(typeof(Error), 409)]
public Task<IActionResult> Create(CreateStockReservationCommand command, CancellationToken cancellationToken)

Parameters

command CreateStockReservationCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetById(Guid, CancellationToken)

Obtener una reserva por ID

[HttpGet("{id:guid}")]
[Authorize(Policy = "INVENTORY_STOCK_RESERVATIONS_VIEW")]
[ProducesResponseType(typeof(StockReservationDto), 200)]
[ProducesResponseType(typeof(Error), 404)]
public Task<IActionResult> GetById(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetBySource(string, Guid, CancellationToken)

Obtener reservas por documento origen

[HttpGet("source")]
[Authorize(Policy = "INVENTORY_STOCK_RESERVATIONS_VIEW")]
[ProducesResponseType(typeof(IEnumerable<object>), 200)]
public Task<IActionResult> GetBySource(string sourceType, Guid sourceId, CancellationToken cancellationToken)

Parameters

sourceType string
sourceId Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetByWarehouse(Guid, CancellationToken, Guid?)

Obtener reservas por almacén

[HttpGet("warehouse/{warehouseId:guid}")]
[Authorize(Policy = "INVENTORY_STOCK_RESERVATIONS_VIEW")]
[ProducesResponseType(typeof(IEnumerable<object>), 200)]
public Task<IActionResult> GetByWarehouse(Guid warehouseId, CancellationToken cancellationToken, Guid? statusId = null)

Parameters

warehouseId Guid
cancellationToken CancellationToken
statusId Guid?

Returns

Task<IActionResult>

GetByWarehouseAndItem(Guid, Guid, CancellationToken, Guid?)

Obtener reservas por tenant (actual), almacen e item

[HttpGet("warehouse/{warehouseId:guid}/item/{itemId:guid}")]
[Authorize(Policy = "INVENTORY_STOCK_RESERVATIONS_VIEW")]
[ProducesResponseType(typeof(IEnumerable<StockReservationDetailsDto>), 200)]
public Task<IActionResult> GetByWarehouseAndItem(Guid warehouseId, Guid itemId, CancellationToken cancellationToken, Guid? statusId = null)

Parameters

warehouseId Guid
itemId Guid
cancellationToken CancellationToken
statusId Guid?

Returns

Task<IActionResult>