Skip to content

Item Card Report

Backlog fieldValue
Story IDINV-DASH-011
EpicInventory
Story typeDashboard
Review statusDraft - business analyst and business owner review required
Source evidenceInventory MFE route/form, Inventory.Apis controller, application command/query handlers, validators, domain entities, and posting services
Last source review2026-07-10

Purpose

Show the chronological movement and running balance of one item variant across selected warehouses.

User stories

  • As an inventory controller, I want to select an item variant and one or more warehouses so that I can trace every movement.
  • As an auditor, I want opening, inbound, outbound, and running quantities/costs tied to source documents.
  • As a user, I want to print the displayed item card for review or filing.

Acceptance criteria

  1. An item variant and at least one warehouse are required.
  2. Results are grouped by warehouse and ordered chronologically with deterministic tie-breaking.
  3. Every row identifies its source transaction and movement direction.
  4. Running balances reconcile with the opening balance and displayed movements.
  5. Changing item or warehouse selection refreshes the report without mixing cached results.
  6. Print output reflects the selected item, warehouses, scope, and localization.
  7. View and print actions follow report permissions.

Inputs and action behavior

  • Required: one item/variant and at least one warehouse.
  • Read-only derived fields: selected item detail and item UOM.
  • Optional: From Date and To Date; when both are used, From cannot be later than To.
  • View loads one table per selected warehouse and caches each warehouse result only for the current filter context.
  • Changing item/warehouse/date clears incompatible cached results.
  • Print sends the selected item-variant ID, warehouse IDs, and date filters to the server-generated printout.
  • There is no posting or data mutation from this report.

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/pageComponentModeRoute permission/guardMapping confidenceSource
edit/add-item-definitionItemCatalogTabsComponentAddPermission: AppInventoryPermissions.Items_Add; Guards: PolicyAuthGuardFeature token matchapps/inventory/src/app/remote-entry/items/items.module.ts:92
item-card-reportItemCardComponentReport/printNo route-level permission/guard found in source windowFeature token matchapps/inventory/src/app/remote-entry/reports/reports.module.ts:17
item-definitionMainItemDefinitionComponentList/navigationPermission: AppInventoryPermissions.Items_List; Guards: PolicyAuthGuardFeature token matchapps/inventory/src/app/remote-entry/items/items.module.ts:72

Observed frontend fields and validation

ComponentControlObserved frontend ruleComponent source
ItemCardComponentfromDateVisible control; optional or API-dependentapps/inventory/src/app/remote-entry/reports/pages/item-card/item-card.component.ts
ItemCardComponentitemDetailVisible control; optional or API-dependentapps/inventory/src/app/remote-entry/reports/pages/item-card/item-card.component.ts
ItemCardComponentitemIdRequired in component validatorapps/inventory/src/app/remote-entry/reports/pages/item-card/item-card.component.ts
ItemCardComponentitemUomVisible control; optional or API-dependentapps/inventory/src/app/remote-entry/reports/pages/item-card/item-card.component.ts
ItemCardComponenttoDateVisible control; optional or API-dependentapps/inventory/src/app/remote-entry/reports/pages/item-card/item-card.component.ts
ItemCardComponentwarehouseIdRequired in component validatorapps/inventory/src/app/remote-entry/reports/pages/item-card/item-card.component.ts

Observed frontend actions

ComponentClick action/handlerBusiness review requirementComponent source
ItemCardComponentonRouteToTransactionDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/inventory/src/app/remote-entry/reports/pages/item-card/item-card.component.ts
ItemCardComponentopenDialogOpen 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/item-card/item-card.component.ts
ItemCardComponentprintTableGenerate 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/item-card/item-card.component.ts
ItemCardComponentviewItemTransactionOpen 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/item-card/item-card.component.ts
ItemCatalogTabsComponentonRouteDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/inventory/src/app/remote-entry/items/pages/item-definition/item-catalog-tabs/item-catalog-tabs.component.ts

Page-specific frontend acceptance criteria

  1. edit/add-item-definition - Add: Render permitted fields, required indicators, defaults, dependent lookups, validation, Save/Cancel, loading, success, and API-error states. Security observed: Permission: AppInventoryPermissions.Items_Add; Guards: PolicyAuthGuard
  2. item-card-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
  3. item-definition - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppInventoryPermissions.Items_List; Guards: PolicyAuthGuard

Internal Documentation — Microtec