Appearance
Stock Transfer Report
| Backlog field | Value |
|---|---|
| Story ID | INV-DASH-015 |
| Epic | Inventory |
| Story type | Dashboard |
| Review status | Draft - business analyst and business owner review required |
| Source evidence | Inventory MFE route/form, Inventory.Apis controller, application command/query handlers, validators, domain entities, and posting services |
| Last source review | 2026-07-10 |
Purpose
Analyze stock transfers between warehouses by date, status, warehouse, item, and document.
User stories
- As a manager, I want to review transfers between selected warehouses so that I can monitor internal stock movement.
- As an auditor, I want transfer status, quantities, and source/destination details linked to the document.
- As a user, I want to export or print the filtered results.
Acceptance criteria
- Filters support the applicable date, status, source/destination warehouse, category, and item criteria.
- Each row identifies transfer document, date, status, source, destination, item, unit, and quantity.
- Source and destination are never presented as the same warehouse for a valid transfer.
- Totals reconcile with the displayed detail rows.
- Print/export use the same filters, sorting, scope, and localization as the screen.
- View, export, and print actions follow report permissions.
Inputs and action behavior
Item variants, issued warehouse, target warehouse, status, From Date, and To Date are optional. Empty filters return all authorized matching transfers. From Date cannot be later than To Date.
View, Export, and Print must use identical filters and status interpretation. The report is read-only; opening a row may navigate to the source transfer but cannot bypass its View permission.
Frontend page coverage
The following UI coverage is sourced from the pulled MFE route configuration. A Module-level supporting artifact mapping is evidence of a reachable screen, but requires BA confirmation that it belongs to this story rather than a more specific feature story.
| Route/page | Component | Mode | Route permission/guard | Mapping confidence | Source |
|---|---|---|---|---|---|
| stock-transfer-report | StockTransferReportComponent | Report/print | Permission: AppInventoryPermissions.SlowMovingItem_Export , AppInventoryPermissions.SlowMovingItem_Printout , AppInventoryPermissions.SlowMovingItem_ReportView; Guards: PolicyAuthGuard | Feature token match | apps/inventory/src/app/remote-entry/reports/reports.module.ts:33 |
Observed frontend fields and validation
| Component | Control | Observed frontend rule | Component source |
|---|---|---|---|
| StockTransferReportComponent | fromDate | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | issuedWarehouseId | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | itemVariantIds | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | status | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | targetWarehouseId | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | toDate | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
Observed frontend actions
| Component | Click action/handler | Business review requirement | Component source |
|---|---|---|---|
| StockTransferReportComponent | onViewReport | Open the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data. | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | openItemSearchDialog | Open the item/lookup/tracking dialog with the current warehouse, item, UOM, and remaining quantity context; accepted values must return to the correct line and cancel must not mutate it. | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | printTable | Generate the printout for the selected record and authorized branch/tenant; use posted/current values and surface print, template, ZATCA/ETA, or popup failures without changing transaction state. | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | routeToStockIn | Navigate only when the transaction produced a linked Stock In/Stock Out record and Inventory view permission is available; service-only/no-stock cases expose no stock link. | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | routeToStockOut | Navigate only when the transaction produced a linked Stock In/Stock Out record and Inventory view permission is available; service-only/no-stock cases expose no stock link. | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
| StockTransferReportComponent | routeToStockTransfer | Navigate only when the transaction produced a linked Stock In/Stock Out record and Inventory view permission is available; service-only/no-stock cases expose no stock link. | apps/inventory/src/app/remote-entry/reports/pages/stock-transfer-report/stock-transfer-report.component.ts |
Page-specific frontend acceptance criteria
- stock-transfer-report - Report/print: Expose documented filters, validation, empty/loading/error states, authorized results, totals, drill-through, print, and export behavior where present. Security observed: Permission: AppInventoryPermissions.SlowMovingItem_Export , AppInventoryPermissions.SlowMovingItem_Printout , AppInventoryPermissions.SlowMovingItem_ReportView; Guards: PolicyAuthGuard