Skip to content

Journal Entry Templates

Backlog fieldValue
Story IDAP-ACC-007
EpicAccounting
Story typeMaster data / configuration
Review statusDraft - business analyst and business owner review required
Source evidenceAppsPortal.Apis controller, application command/query handlers, validators, domain entities, and matching MFE workflow where available
Last source review2026-07-10

User story

As accountants, I want to reuse controlled journal structures so that recurring entries are faster and consistent.

Acceptance criteria

  1. Only authorized users can view or execute the feature's actions.
  2. Required business data, active dependencies, tenant/branch scope, and current document state are validated.
  3. Invalid requests return actionable validation errors without applying a partial change.
  4. Search, list, view, print, and export operations use the same authorized business scope.
  5. Material create, edit, status, approval, posting, reversal, and integration actions are auditable where applicable.
  6. Financial or stock effects are applied atomically and no more than once.

Business rules

Required

Template name/type and at least one balanced template structure are required.

Optional or conditional

Default descriptions, amounts, accounts, currencies, and cost centers may be optional placeholders where the page permits.

Action behavior

Using a template copies values into a Draft journal; it does not post automatically.

Blocking rule or downstream effect

Inactive/deleted templates do not alter journals previously created from them.

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
(module default)AccountingDashboardComponentDashboardNo route-level permission/guard found in source windowFeature token matchapps/accounting/src/app/remote-entry/dashboard/dashboard.module.ts:10
(module default)LayoutPageComponentList/navigationNo route-level permission/guard found in source windowFeature token matchapps/accounting/src/app/remote-entry/entry.routes.ts:6
(module default)MainChartOfAccountComponentList/navigationPermission: AppAccountingPermissions.ChartOfAccounts_List; Guards: PolicyAuthGuardFeature token matchapps/accounting/src/app/remote-entry/account/account.module.ts:39
addAddChartComponentAddPermission: AppAccountingPermissions.ChartOfAccounts_Add; Guards: PolicyAuthGuardFeature token matchapps/accounting/src/app/remote-entry/account/account.module.ts:49
chartofaccountsMainComponentList/navigationPermission: AppAccountingPermissions.ChartOfAccounts_List; Guards: PolicyAuthGuardFeature token matchapps/accounting/src/app/remote-entry/account/account.module.ts:30
import/:errorTypeListFileComponentImportPermission: AppAccountingPermissions.CostCenters_List; Guards: PolicyAuthGuardFeature token matchapps/accounting/src/app/remote-entry/account/account.module.ts:59
income-statementIncomeStatementComponentList/navigationNo route-level permission/guard found in source windowFeature token matchapps/accounting/src/app/remote-entry/report/report-routing.module.ts:18
masterdataLazy-loaded routeList/navigationNo route-level permission/guard found in source windowFeature token matchapps/accounting/src/app/remote-entry/entry.routes.ts:25
transactionsLazy-loaded routeList/navigationNo route-level permission/guard found in source windowFeature token matchapps/accounting/src/app/remote-entry/entry.routes.ts:18

Observed frontend fields and validation

ComponentControlObserved frontend ruleComponent source
AddChartComponentaccountActivationVisible control; optional or API-dependentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentaccountCodeVisible control; optional or API-dependentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentaccountSectionIdRequired in component validatorapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentaccountTypeIdConditionally required/validated in componentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentcostCenterConfigVisible control; optional or API-dependentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentcurrencyIdConditionally required/validated in componentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponenthasNoChildConditionally required/validated in componentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentlevelIdVisible control; optional or API-dependentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentnameRequired in component validatorapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentnameArRequired in component validatorapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentnatureIdRequired in component validatorapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentparentIdVisible control; optional or API-dependentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentperiodicActiveFromConditionally required/validated in componentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentperiodicActiveToConditionally required/validated in componentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponenttagsVisible control; optional or API-dependentapps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
HeaderReportStatementComponentBranchesVisible control; optional or API-dependentapps/accounting/src/app/remote-entry/report/component/header-report-statement/header-report-statement.component.ts
HeaderReportStatementComponentrangeRequired in component validatorapps/accounting/src/app/remote-entry/report/component/header-report-statement/header-report-statement.component.ts
HeaderReportStatementComponentviewZeroBalanceVisible control; optional or API-dependentapps/accounting/src/app/remote-entry/report/component/header-report-statement/header-report-statement.component.ts

Observed frontend actions

ComponentClick action/handlerBusiness review requirementComponent source
AccountingDashboardComponentreSortAccountsDocument 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/dashboard/pages/accounting-dashboard/accounting-dashboard.component.ts
AccountingDashboardComponentreSortCostCentersDocument 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/dashboard/pages/accounting-dashboard/accounting-dashboard.component.ts
AddChartComponentcancelLeave or close without persisting; warn when the current form has unsaved changes and restore the prior list/filter context.apps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentonSubmitValidate the concrete form and line collection, prevent duplicate submission, persist once, show API field/business errors in context, and navigate/refresh only after success.apps/accounting/src/app/remote-entry/account/components/add-chart/add-chart.component.ts
AddChartComponentopenCostAllocationDocument 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/account/components/add-chart/add-chart.component.ts
ChartOfAccountTreeComponentaddChildDocument 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/account/pages/chart-of-account/chart-of-account-tree/chart-of-account-tree.component.ts
ChartOfAccountTreeComponentdeleteAccountAvailable 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/account/pages/chart-of-account/chart-of-account-tree/chart-of-account-tree.component.ts
ChartOfAccountTreeComponenteditAccountOpen 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/account/pages/chart-of-account/chart-of-account-tree/chart-of-account-tree.component.ts
ChartOfAccountTreeComponenthandleTabClickDocument 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/account/pages/chart-of-account/chart-of-account-tree/chart-of-account-tree.component.ts
ChartOfAccountTreeComponentnewChildDocument 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/account/pages/chart-of-account/chart-of-account-tree/chart-of-account-tree.component.ts
ChartOfAccountTreeComponenttoggelTreeDocument 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/account/pages/chart-of-account/chart-of-account-tree/chart-of-account-tree.component.ts
HeaderReportStatementComponentprintTableGenerate 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/report/component/header-report-statement/header-report-statement.component.ts
MainChartOfAccountComponenteditModeOpen 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/account/pages/chart-of-account/main-chart-of-account/main-chart-of-account.component.ts
MainChartOfAccountComponentRedirectToConfigurationDocument 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/account/pages/chart-of-account/main-chart-of-account/main-chart-of-account.component.ts

Page-specific frontend acceptance criteria

  1. (module default) - Dashboard: Load authorized summary values consistently with source reports, support exposed date/branch filters, and handle empty/error states. Security observed: No route-level permission/guard found in source window
  2. (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.ChartOfAccounts_List; Guards: PolicyAuthGuard
  3. add - Add: Render permitted fields, required indicators, defaults, dependent lookups, validation, Save/Cancel, loading, success, and API-error states. Security observed: Permission: AppAccountingPermissions.ChartOfAccounts_Add; Guards: PolicyAuthGuard
  4. chartofaccounts - 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.ChartOfAccounts_List; Guards: PolicyAuthGuard
  5. import/:errorType - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Permission: AppAccountingPermissions.CostCenters_List; Guards: PolicyAuthGuard
  6. income-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: No route-level permission/guard found in source window
  7. masterdata - 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: No route-level permission/guard found in source window
  8. transactions - 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: No route-level permission/guard found in source window

Internal Documentation — Microtec