Table of Contents

Class InventoryReportsController

Namespace
KadicErp.WebApi.Controllers.AdminReporting.Reports
Assembly
KadicErp.WebApi.dll
[ApiController]
public class InventoryReportsController : ControllerBase
Inheritance
object
ControllerBase
InventoryReportsController

Constructors

InventoryReportsController(IMediator, IReportExportService)

public InventoryReportsController(IMediator mediator, IReportExportService exportService)

Parameters

mediator IMediator
exportService IReportExportService

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

request ReportExportRequest

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

warehouseId Guid?

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

warehouseId Guid?
itemId Guid?
dateFrom DateOnly?
dateTo DateOnly?
page int
pageSize int

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

warehouseId Guid?
dateFrom DateOnly?
dateTo DateOnly?
page int
pageSize int

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

warehouseId Guid?
minDaysIdle int
page int
pageSize int

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

page int
pageSize int

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

warehouseId Guid?
dateFrom DateOnly?
dateTo DateOnly?
status string
page int
pageSize int

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

warehouseId Guid?
page int
pageSize int

Returns

Task<IActionResult>