Appearance
Journal Entries
| Backlog field | Value |
|---|---|
| Story ID | AP-ACC-006 |
| Epic | Accounting |
| Story type | Business workflow |
| Review status | Draft - business analyst and business owner review required |
| Source evidence | AppsPortal.Apis controller, application command/query handlers, validators, domain entities, and matching MFE workflow where available |
| Last source review | 2026-07-10 |
User story
As accountants, I want to create, edit, post, reverse, view, print, and export balanced journals so that financial events are recorded with a complete audit trail.
Posting reference: AppsPortal Posting Ledger explains debit/credit construction. Delegation and Interaction Contracts explains module ownership, delegated commands, linked records, commit boundaries, and reversal propagation.
Acceptance criteria
- Only authorized users can view or execute the feature's actions.
- Required business data, active dependencies, tenant/branch scope, and current document state are validated.
- Invalid requests return actionable validation errors without applying a partial change.
- Search, list, view, print, and export operations use the same authorized business scope.
- Material create, edit, status, approval, posting, reversal, and integration actions are auditable where applicable.
- Financial or stock effects are applied atomically and no more than once.
Posting details
- Re-load the Draft journal and validate the transaction date is in an open period.
- Validate every account is active and postable, each line has either debit or credit, currencies/rates are valid, cost-center allocations are valid, and total local debits equal total local credits.
- Posting does not delegate stock, customer, vendor, or payment work. Accounting owns the complete effect.
- Mark the journal Posted and make its lines effective in the ledger, Trial Balance, account statements, cost-center reports, and financial statements.
- Commit status and lines together. Reverse creates a new linked journal with debits and credits exchanged; it never edits the original Posted journal.
General ledger posting
| Line type | Debit | Credit | Result |
|---|---|---|---|
| Debit line | Selected postable GL | - | Increases/decreases balance by account nature. |
| Credit line | - | Selected postable GL | Opposite ledger direction. |
| Reversal | Original credit accounts | Original debit accounts | New linked journal; original remains unchanged. |
Other module and document effects
| Area | Effect | Conditional/no effect |
|---|---|---|
| Accounting reports | Updates ledger, Trial Balance, statements, cost centers, and financial statements. | Unposted Draft has no report balance effect. |
| Inventory/Sales/Purchase/Finance | No delegated subledger or stock document. | Manual journal does not create stock, customer/vendor due balances, or cash hub movement. |
Core acceptance scenarios
- Given a balanced Draft journal in an open period with active posting accounts, when an authorized accountant clicks Post, then the journal becomes Posted and its debit/credit and cost-center lines become effective in GL reports.
- Given the journal is unbalanced, uses invalid accounts, or the period is closed, when the operation is attempted, then Post is rejected and no line becomes effective.
- Given the same Post request is retried after success, when the source is no longer Draft, then no duplicate journal, stock, balance, payment, or lifecycle effect is created.
Required and optional data
Required: journal date/open period, type/source, sequence/reference, at least two active posting lines, valid leaf accounts, currency/rate, and balanced local debits/credits. Each line has either debit or credit, not both. Description, cost-center allocations, tags, and attachments are optional/conditional. Cost-center percentages must total the required allocation.
Post/reverse/unpost behavior
- Saving creates Draft with no ledger balance effect.
- Posting validates balance, accounts, period, dimensions, and source lock; it marks Posted and makes lines effective in account/cost-center reports.
- Unpost returns an eligible direct journal to Draft only when policy, source, period, and downstream references allow it.
- Reverse creates a new linked journal with debit/credit signs exchanged; it preserves the original Posted record and marks reversal linkage so the same journal cannot be reversed twice.
- Source-generated payment journals use dedicated reversal commands and must match source document ID/code.
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 |
|---|---|---|---|---|---|
| (module default) | JournalEntryListComponent | List/navigation | Permission: AppAccountingPermissions.JournalEntries_List; Guards: PolicyAuthGuard | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:44 |
| account-statement | AccountStatementComponent | List/navigation | Permission: AppAccountingPermissions.AccountStatement_ReportView; Guards: PolicyAuthGuard | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:131 |
| add | CreateJournalEntryComponent | Add | Permission: AppAccountingPermissions.JournalEntries_Add; Guards: PolicyAuthGuard | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:54 |
| add/:journalId | CreateJournalEntryComponent | Add | Permission: AppAccountingPermissions.ALL, AppAccountingPermissions.JournalEntries_Add; Guards: PolicyAuthGuard | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:65 |
| edit/:id | EditJournalEntryComponent | Edit | Permission: AppAccountingPermissions.JournalEntries_Edit; Guards: PolicyAuthGuard, preventPostedGuard | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:86 |
| journalentry | MainJournalComponent | List/navigation | Permission: AppAccountingPermissions.JournalEntries_List; Guards: PolicyAuthGuard | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:33 |
| sequence | SequenceComponent | Sequence | No route-level permission/guard found in source window | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:189 |
| sequence | SequenceComponent | Sequence | Guards: PolicyAuthGuard | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:98 |
| trial-balance | TrialBlanceComponent | List/navigation | Permission: AppAccountingPermissions.TrialBalance_ReportView; Guards: PolicyAuthGuard | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:110 |
| view/:id | ViewJournalEntryComponent | View/detail | Permission: AppAccountingPermissions.JournalEntries_View; Guards: PolicyAuthGuard | Explicit frontend feature rule | apps/accounting/src/app/remote-entry/journal-entry/journal-entry.module.ts:75 |
Observed frontend fields and validation
| Component | Control | Observed frontend rule | Component source |
|---|---|---|---|
| AccountStatementComponent | Accounts | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | Branches | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | costCenters | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | dateFrom | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | dateTo | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | posted | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | unposted | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| CreateJournalEntryComponent | description | Required in component validator | apps/accounting/src/app/remote-entry/journal-entry/pages/create-journal-entry/create-journal-entry.component.ts |
| CreateJournalEntryComponent | isHeaderDescriptionCopied | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/create-journal-entry/create-journal-entry.component.ts |
| CreateJournalEntryComponent | journalDate | Required in component validator | apps/accounting/src/app/remote-entry/journal-entry/pages/create-journal-entry/create-journal-entry.component.ts |
| CreateJournalEntryComponent | refrenceNumber | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/create-journal-entry/create-journal-entry.component.ts |
| EditJournalEntryComponent | description | Required in component validator | apps/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | isHeaderDescriptionCopied | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | journalDate | Required in component validator | apps/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | referenceNumber | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| JournalEntryListComponent | created_by | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | range | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | sourceDocument | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | status | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | type | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| TrialBlanceComponent | Accounts | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | allowZero | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | Branches | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | dateFrom | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | dateTo | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | levelNumber | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | posted | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | unposted | Visible control; optional or API-dependent | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
Observed frontend actions
| Component | Click action/handler | Business review requirement | Component source |
|---|---|---|---|
| AccountStatementComponent | export | Export the currently authorized filtered result set with business columns, locale formatting, and no records outside the user scope. | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | getAccountingReports | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | openDialog | 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/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | 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/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | routeTo | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| AccountStatementComponent | routeToView | 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/accounting/src/app/remote-entry/journal-entry/pages/report/account-statement/account-statement.component.ts |
| CreateJournalEntryComponent | createVat | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/create-journal-entry/create-journal-entry.component.ts |
| CreateJournalEntryComponent | deleteLine | Available only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure. | apps/accounting/src/app/remote-entry/journal-entry/pages/create-journal-entry/create-journal-entry.component.ts |
| CreateJournalEntryComponent | onOpenCostPopup | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/create-journal-entry/create-journal-entry.component.ts |
| CreateJournalEntryComponent | openAttachments | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/create-journal-entry/create-journal-entry.component.ts |
| CreateJournalEntryComponent | openDialog | 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/accounting/src/app/remote-entry/journal-entry/pages/create-journal-entry/create-journal-entry.component.ts |
| EditJournalEntryComponent | createVat | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | deleteJournalEntryLine | Available only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure. | apps/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | duplicateViewedEntry | 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/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | onDiscard | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | onOpenCostPopup | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | openAttachments | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | openDialog | 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/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | routeToPaymentInView | 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/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| EditJournalEntryComponent | routeToPaymentOutView | 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/accounting/src/app/remote-entry/journal-entry/pages/edit-journal-entry/edit-journal-entry.component.ts |
| JournalEntryListComponent | filter | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | onAdd | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | onDelete | Available only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure. | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | onEdit | Open the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return. | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | onPost | Available only for a postable Draft and Post permission; confirm the document, prevent a second submission, call the posting API, and refresh status, journal/stock links, and row actions. Failure must keep the pre-post state. | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | onUnPost | Available only for a postable Draft and Post permission; confirm the document, prevent a second submission, call the posting API, and refresh status, journal/stock links, and row actions. Failure must keep the pre-post state. | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | printout | 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/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | routeToSequence | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | routeToView | 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/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | toggle | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| JournalEntryListComponent | viewJournal | 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/accounting/src/app/remote-entry/journal-entry/pages/journal-entry-list/journal-entry-list.component.ts |
| TrialBlanceComponent | exportToCSV | Export the currently authorized filtered result set with business columns, locale formatting, and no records outside the user scope. | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | getTrialBalanceSwitcher | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | 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/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| TrialBlanceComponent | routeTo | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/report/trial-blance/trial-blance.component.ts |
| ViewJournalEntryComponent | duplicateViewedEntry | 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/accounting/src/app/remote-entry/journal-entry/pages/components/view-journal-entry/view-journal-entry.component.ts |
| ViewJournalEntryComponent | onReverseViewedJournalEntry | 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/accounting/src/app/remote-entry/journal-entry/pages/components/view-journal-entry/view-journal-entry.component.ts |
| ViewJournalEntryComponent | openAttachments | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/components/view-journal-entry/view-journal-entry.component.ts |
| ViewJournalEntryComponent | openCostPopup | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/components/view-journal-entry/view-journal-entry.component.ts |
| ViewJournalEntryComponent | routeTo | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/accounting/src/app/remote-entry/journal-entry/pages/components/view-journal-entry/view-journal-entry.component.ts |
| ViewJournalEntryComponent | routeToSourceView | 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/accounting/src/app/remote-entry/journal-entry/pages/components/view-journal-entry/view-journal-entry.component.ts |
Page-specific frontend acceptance criteria
- (module default) - 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: AppAccountingPermissions.JournalEntries_List; Guards: PolicyAuthGuard
- account-statement - 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: AppAccountingPermissions.AccountStatement_ReportView; Guards: PolicyAuthGuard
- add - Add: Render permitted fields, required indicators, defaults, dependent lookups, validation, Save/Cancel, loading, success, and API-error states. Security observed: Permission: AppAccountingPermissions.JournalEntries_Add; Guards: PolicyAuthGuard
- add/:journalId - Add: Render permitted fields, required indicators, defaults, dependent lookups, validation, Save/Cancel, loading, success, and API-error states. Security observed: Permission: AppAccountingPermissions.ALL, AppAccountingPermissions.JournalEntries_Add; Guards: PolicyAuthGuard
- edit/:id - Edit: Load the identified record, enforce state/permission field locks, preserve concurrency identity, validate changes, and return without losing filters. Security observed: Permission: AppAccountingPermissions.JournalEntries_Edit; Guards: PolicyAuthGuard, preventPostedGuard
- journalentry - 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: AppAccountingPermissions.JournalEntries_List; Guards: PolicyAuthGuard
- sequence - Sequence: Show current numbering scope and permit only authorized, valid sequence configuration without retroactively renumbering posted documents. Security observed: Guards: PolicyAuthGuard
- trial-balance - 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: AppAccountingPermissions.TrialBalance_ReportView; Guards: PolicyAuthGuard
- view/:id - View/detail: Load an authorized immutable/detail representation with status-aware actions, linked records, print/export where exposed, and not-found/forbidden handling. Security observed: Permission: AppAccountingPermissions.JournalEntries_View; Guards: PolicyAuthGuard