Skip to content

Inventory Balance Report

Backlog fieldValue
Story IDINV-DASH-010
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

Report current inventory quantity and value by item, variant, category, and warehouse.

User stories

  • As a manager, I want to filter inventory balances by warehouse/category/item so that I can evaluate current stock.
  • As an accountant, I want quantity and valuation totals so that I can reconcile inventory with the general ledger.
  • As a user, I want to print or export the filtered result.

Acceptance criteria

  1. Filters restrict results to the user's authorized company/branch scope.
  2. Results identify item, variant, unit, warehouse, quantity, unit cost, and total value where applicable.
  3. Detail values sum to displayed report totals under the same rounding policy.
  4. Zero-balance inclusion follows the selected filter/policy.
  5. Export and print use the same effective filters and totals as the on-screen report.
  6. View, export, and print actions follow report permissions.

Inputs and action behavior

Warehouse IDs, item IDs, category IDs, From Date, and To Date are optional filters in the current page. Empty filters mean all authorized matching data. Date range must be chronologically valid.

  • View: queries balances using the current filters and calculates displayed totals.
  • Export: downloads the same authorized filter scope in the selected export format.
  • Print: requests the server printout with the same filters.
  • The report is read-only and creates no stock or GL effect.

Balance quantity/value must be calculated as of the selected date logic; the product owner must confirm whether From Date means movements within a period or contributes to an opening balance.

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
inventory-balance-reportBalanceReportComponentReport/printNo route-level permission/guard found in source windowFeature token matchapps/inventory/src/app/remote-entry/reports/reports.module.ts:25
reportsLazy-loaded routeReport/printNo route-level permission/guard found in source windowFeature token matchapps/inventory/src/app/remote-entry/entry.routes.ts:34

Observed frontend fields and validation

ComponentControlObserved frontend ruleComponent source
BalanceReportComponentcategoryIdVisible control; optional or API-dependentapps/inventory/src/app/remote-entry/reports/pages/balance-report/balance-report.component.ts
BalanceReportComponentfromDateVisible control; optional or API-dependentapps/inventory/src/app/remote-entry/reports/pages/balance-report/balance-report.component.ts
BalanceReportComponentitemsIdsVisible control; optional or API-dependentapps/inventory/src/app/remote-entry/reports/pages/balance-report/balance-report.component.ts
BalanceReportComponenttoDateVisible control; optional or API-dependentapps/inventory/src/app/remote-entry/reports/pages/balance-report/balance-report.component.ts
BalanceReportComponentwarehouseIdsVisible control; optional or API-dependentapps/inventory/src/app/remote-entry/reports/pages/balance-report/balance-report.component.ts

Observed frontend actions

ComponentClick action/handlerBusiness review requirementComponent source
BalanceReportComponentonViewInventoryBalanceOpen 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/balance-report/balance-report.component.ts
BalanceReportComponentopenDialogOpen 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/balance-report/balance-report.component.ts
BalanceReportComponentprintTableGenerate 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/balance-report/balance-report.component.ts

Page-specific frontend acceptance criteria

  1. inventory-balance-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
  2. reports - 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

Internal Documentation — Microtec