Appearance
Stock Out Report
| Backlog field | Value |
|---|---|
| Story ID | INV-DASH-014 |
| 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 outbound stock transactions and their item/tracking detail.
User stories
- As a manager, I want to filter Stock Out activity by status, category, warehouse, and item so that I can analyze consumption and adjustments.
- As an auditor, I want transaction, destination/reason, item, quantity, cost, tracking, and status detail.
- As a user, I want to open/print a source Stock Out and export or print the report.
Acceptance criteria
- Filters support status, item category, warehouse, and item variant plus applicable document/date criteria.
- Results include document identity/date, warehouse, reason/source, item/variant, unit, quantity, cost/total, tracking, and status where applicable.
- Totals reconcile with displayed rows under the configured rounding policy.
- Source-document print opens the selected Stock Out.
- Export and report print use the same filters, scope, and localization as the screen.
- View, export, report-print, and source-document-print actions follow permissions.
Inputs and action behavior
Statuses, item categories, warehouses, item variants, From Date, and To Date are optional filters. An empty selection means all authorized matching values. Date range must be valid.
- View: displays filtered detail and totals.
- Print report: produces the aggregate filtered report.
- Print source document: uses the selected Stock Out ID and requires source-document print permission.
- Export: uses the same filters/sort and selected format.
- No report action changes stock, cost, GL, status, or source records.
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-out-report | StockOutReportComponent | Report/print | No route-level permission/guard found in source window | Feature token match | apps/inventory/src/app/remote-entry/reports/reports.module.ts:51 |
Observed frontend fields and validation
| Component | Control | Observed frontend rule | Component source |
|---|---|---|---|
| StockOutReportComponent | ItemCategoryIds | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-out-report/stock-out-report.component.ts |
| StockOutReportComponent | itemVariantIds | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-out-report/stock-out-report.component.ts |
| StockOutReportComponent | statuses | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-out-report/stock-out-report.component.ts |
| StockOutReportComponent | warehouseIds | Visible control; optional or API-dependent | apps/inventory/src/app/remote-entry/reports/pages/stock-out-report/stock-out-report.component.ts |
Observed frontend actions
| Component | Click action/handler | Business review requirement | Component source |
|---|---|---|---|
| StockOutReportComponent | 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-out-report/stock-out-report.component.ts |
| StockOutReportComponent | 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-out-report/stock-out-report.component.ts |
| StockOutReportComponent | printReport | 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-out-report/stock-out-report.component.ts |
| StockOutReportComponent | routeToJournalView | 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-out-report/stock-out-report.component.ts |
| StockOutReportComponent | routeToSourceDocumentView | 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-out-report/stock-out-report.component.ts |
| StockOutReportComponent | routeToStockOutView | 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-out-report/stock-out-report.component.ts |
Page-specific frontend acceptance criteria
- stock-out-report - Report/print: Expose documented filters, validation, empty/loading/error states, authorized results, totals, drill-through, print, and export behavior where present. Security observed: No route-level permission/guard found in source window