Class PhysicalCountsController
- Namespace
- KadicErp.WebApi.Controllers.Inventory
- Assembly
- KadicErp.WebApi.dll
[Route("api/inventory/physical-counts")]
[Authorize]
[ApiController]
public class PhysicalCountsController : ControllerBase
- Inheritance
-
objectControllerBasePhysicalCountsController
Constructors
PhysicalCountsController(ISender, ICurrentUser, ITenantIdContext, IStringLocalizer<GeneralMessages>)
public PhysicalCountsController(ISender sender, ICurrentUser currentUser, ITenantIdContext tenantContext, IStringLocalizer<GeneralMessages> localizer)
Parameters
senderISendercurrentUserICurrentUsertenantContextITenantIdContextlocalizerIStringLocalizer<GeneralMessages>
Methods
Cancel(Guid, CancelPhysicalCountRequest?, CancellationToken)
Cancels a physical count (only if not Confirmed).
[HttpPost("{id:guid}/cancel")]
[Authorize(Policy = "INVENTORY_PHYSICAL_COUNTS_CANCEL")]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(object), 400)]
[ProducesResponseType(typeof(object), 404)]
public Task<IActionResult> Cancel(Guid id, CancelPhysicalCountRequest? request = null, CancellationToken cancellationToken = default)
Parameters
idGuidrequestCancelPhysicalCountRequestcancellationTokenCancellationToken
Returns
- Task<IActionResult>
Confirm(Guid, ConfirmPhysicalCountRequest, CancellationToken)
Confirms a physical count, updating WarehouseStock and creating adjustment movements.
[HttpPost("{id:guid}/confirm")]
[Authorize(Policy = "INVENTORY_PHYSICAL_COUNTS_CONFIRM")]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(object), 400)]
[ProducesResponseType(typeof(object), 404)]
public Task<IActionResult> Confirm(Guid id, ConfirmPhysicalCountRequest request, CancellationToken cancellationToken = default)
Parameters
idGuidrequestConfirmPhysicalCountRequestcancellationTokenCancellationToken
Returns
- Task<IActionResult>
Create(CreatePhysicalCountCommand, CancellationToken)
Creates a new physical count in InProgress status.
[HttpPost]
[Authorize(Policy = "INVENTORY_PHYSICAL_COUNTS_CREATE")]
[ProducesResponseType(typeof(Result<Guid>), 201)]
[ProducesResponseType(typeof(Result), 400)]
public Task<IActionResult> Create(CreatePhysicalCountCommand command, CancellationToken cancellationToken = default)
Parameters
commandCreatePhysicalCountCommandcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetAll(PaginatorRequestDto, Guid?, string?, CancellationToken)
Gets a paginated list of physical counts with optional filters.
[HttpGet]
[Authorize(Policy = "INVENTORY_PHYSICAL_COUNTS_VIEW")]
[ProducesResponseType(typeof(PaginatorResponseDto<PhysicalCountDto>), 200)]
public Task<IActionResult> GetAll(PaginatorRequestDto paginator, Guid? warehouseId = null, string? status = null, CancellationToken cancellationToken = default)
Parameters
paginatorPaginatorRequestDtowarehouseIdGuid?statusstringcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetById(Guid, CancellationToken)
Gets a physical count by ID including its lines.
[HttpGet("{id:guid}")]
[Authorize(Policy = "INVENTORY_PHYSICAL_COUNTS_VIEW")]
[ProducesResponseType(typeof(PhysicalCountDto), 200)]
[ProducesResponseType(typeof(object), 404)]
public Task<IActionResult> GetById(Guid id, CancellationToken cancellationToken = default)
Parameters
idGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>
Update(Guid, UpdatePhysicalCountCommand, CancellationToken)
Updates notes and lines of a physical count (only Draft or InProgress).
[HttpPut("{id:guid}")]
[Authorize(Policy = "INVENTORY_PHYSICAL_COUNTS_UPDATE")]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(object), 400)]
[ProducesResponseType(typeof(object), 404)]
public Task<IActionResult> Update(Guid id, UpdatePhysicalCountCommand command, CancellationToken cancellationToken = default)
Parameters
idGuidcommandUpdatePhysicalCountCommandcancellationTokenCancellationToken
Returns
- Task<IActionResult>