Class InventoryReportsController
- Namespace
- KadicErp.WebApi.Controllers.AdminReporting.Reports
- Assembly
- KadicErp.WebApi.dll
[ApiController]
public class InventoryReportsController : ControllerBase
- Inheritance
-
objectControllerBaseInventoryReportsController
Constructors
InventoryReportsController(IMediator, IReportExportService)
public InventoryReportsController(IMediator mediator, IReportExportService exportService)
Parameters
mediatorIMediatorexportServiceIReportExportService
Methods
Export(ReportExportRequest)
Exports an inventory report as CSV, Excel, or PDF. Pass report=stock-valuation|movement-history|stock-by-warehouse|transfer-listing|physical-count-variance|slow-moving. AccountId carries itemId; Search carries status filter; GroupBy carries minDaysIdle (parsed as int, default 90). BranchId is intentionally ignored — tenant isolation is enforced via ITenantIdContext.
[HttpPost("api/admin-reporting/reports/inventory/export")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_EXPORT")]
public Task<IActionResult> Export(ReportExportRequest request)
Parameters
requestReportExportRequest
Returns
- Task<IActionResult>
GetInventorySummary(Guid?)
Returns aggregated inventory KPIs: total SKUs, stock value, items below reorder, items at zero.
[HttpGet("api/admin-reporting/reports/inventory/summary")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_INVENTORY_VIEW")]
public Task<IActionResult> GetInventorySummary(Guid? warehouseId)
Parameters
warehouseIdGuid?
Returns
- Task<IActionResult>
GetMovementHistory(Guid?, Guid?, DateOnly?, DateOnly?, int, int)
Returns warehouse movement history. Optionally filter by warehouse, item, and date range.
[HttpGet("api/admin-reporting/reports/inventory/movement-history")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_INVENTORY_VIEW")]
public Task<IActionResult> GetMovementHistory(Guid? warehouseId, Guid? itemId, DateOnly? dateFrom, DateOnly? dateTo, int page = 1, int pageSize = 50)
Parameters
warehouseIdGuid?itemIdGuid?dateFromDateOnly?dateToDateOnly?pageintpageSizeint
Returns
- Task<IActionResult>
GetPhysicalCountVariance(Guid?, DateOnly?, DateOnly?, int, int)
Returns physical count variance per line (system qty vs counted qty).
[HttpGet("api/admin-reporting/reports/inventory/physical-count-variance")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_INVENTORY_VIEW")]
public Task<IActionResult> GetPhysicalCountVariance(Guid? warehouseId, DateOnly? dateFrom, DateOnly? dateTo, int page = 1, int pageSize = 50)
Parameters
warehouseIdGuid?dateFromDateOnly?dateToDateOnly?pageintpageSizeint
Returns
- Task<IActionResult>
GetSlowMovingItems(Guid?, int, int, int)
Returns inventoried items with no movement for at least minDaysIdle days (default 90).
[HttpGet("api/admin-reporting/reports/inventory/slow-moving")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_INVENTORY_VIEW")]
public Task<IActionResult> GetSlowMovingItems(Guid? warehouseId, int minDaysIdle = 90, int page = 1, int pageSize = 50)
Parameters
warehouseIdGuid?minDaysIdleintpageintpageSizeint
Returns
- Task<IActionResult>
GetStockByWarehouse(int, int)
Returns aggregated stock totals grouped by warehouse (item count, total qty, total value).
[HttpGet("api/admin-reporting/reports/inventory/stock-by-warehouse")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_INVENTORY_VIEW")]
public Task<IActionResult> GetStockByWarehouse(int page = 1, int pageSize = 50)
Parameters
pageintpageSizeint
Returns
- Task<IActionResult>
GetStockTransferListing(Guid?, DateOnly?, DateOnly?, string?, int, int)
Returns stock transfer lines. Filter by warehouse (source or destination), date range, and status code.
[HttpGet("api/admin-reporting/reports/inventory/transfer-listing")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_INVENTORY_VIEW")]
public Task<IActionResult> GetStockTransferListing(Guid? warehouseId, DateOnly? dateFrom, DateOnly? dateTo, string? status, int page = 1, int pageSize = 50)
Parameters
warehouseIdGuid?dateFromDateOnly?dateToDateOnly?statusstringpageintpageSizeint
Returns
- Task<IActionResult>
GetStockValuation(Guid?, int, int)
Returns current stock valuation per item per warehouse (qty on hand * unit cost).
[HttpGet("api/admin-reporting/reports/inventory/stock-valuation")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_INVENTORY_VIEW")]
public Task<IActionResult> GetStockValuation(Guid? warehouseId, int page = 1, int pageSize = 50)
Parameters
warehouseIdGuid?pageintpageSizeint
Returns
- Task<IActionResult>