Skip to content

CAP-ACC-BKS-005Maintain a business unit’s chart

Markdown

CAP-ACC-BKS-005

Maintain a business unit’s chart

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindCapabilityProduct areaAccountingModuleBooks, Business Units and Chart of AccountsRevision1

Read atservices-accounting f47cb263react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Account codes remain distinct within a unit and retain their identity.Referenced accounts remain available to dependent configuration and postings.
Surfaces
consoleapi
Intent sources
services-accounting:docs/milestones/plans/ACCT-M1-plan.md#2. Scopeservices-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D2services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#R4services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#R15

Controls

24 controls apply, from the corpus control catalogue.

TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-AZ-006 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-TEN-004 TC-DAT-001 TC-DAT-004 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-LOG-005 TC-PI-001 TC-PI-003 TC-PI-005

Permissions

KeyChecked atScope
accounting.gl-accounts.readapitenant
accounting.gl-accounts.createapitenant
accounting.gl-accounts.updateapitenant
accounting.gl-accounts.deleteapitenant

Business Rules

7 rules, 5 to be proved before approval. A rule's product intent is derived from its origin: 7 confirmed by a product decision, the rest inheriting this capability's confirmed.

IdRuleKindEnforced atProvenance
01must prove
Confirmed
GL codes are trimmed, upper-cased and unique within their unit; an omitted account identifier combines the unit with its lower-case code, while another unit may use the same code.
✓ A valid configuration completes the stated operation.✗ A conflicting configuration receives the stated refusal.
validationapi, service, databasetest
services-accounting:modules/books/tests/e2e/gl-accounts.e2e.spec.js#stores the code trimmed and upper-cased, under the id from the lower-cased code
02must prove
Confirmed
A saved GL account keeps its code, business unit and currency.
invariantservice, databasetest
services-accounting:modules/books/tests/e2e/gl-accounts.e2e.spec.js#answers 409 to a change of code, naming the column
03must prove
Confirmed
GL accounts use one of fourteen types, defaulting to income, and display the code followed by an optional name or the code alone.
validationapi, service, databasetest
services-accounting:modules/books/tests/e2e/gl-accounts.e2e.spec.js#answers 400 to an account type that is not one of the fourteen
04must prove
Confirmed
Deleting a referenced account is refused with its dependent kind identified, including receiving accounts, defaults, tax rates, product setups, revenue schedules, inter-entity mappings and posted records.
invariantservice, databasetest
services-accounting:modules/books/tests/integration/services/persistence/gl-accounts.integration.spec.js#translates the refusal of each restrict foreign key to a GL account into a 409 naming it
05must prove
Confirmed
An account serving a unit default cannot be deactivated or deleted, and the refusal identifies its purposes.
✗ A conflicting configuration receives the stated refusal.
invariantservice, databasetest
services-accounting:modules/books/tests/integration/services/persistence/gl-accounts.integration.spec.js#refuses deactivating the unit’s Accounts Receivable default, naming the purpose
06
Confirmed
Account lists order by unit and code, filter by unit, type, currency or activity, search code or name and allow at most 500 entries per page.
policyapi, servicetest
services-accounting:modules/books/tests/e2e/gl-accounts.e2e.spec.js#answers every account by business unit, then code
07
Confirmed
The console chart shows one unit with a single-row toolbar, no currency or type filter, and a Default Accounts header action beside Add GL Account.
policyconsoledocumented

Scenarios

IdGivenWhenThenProvenance
01An accountant enters the receivable code using a lower-case suffix.They save the account with no identifier supplied.The returned code uses an upper-case suffix, its identifier derives from the unit and code, and the code remains fixed.test
02A cash account is referenced by a bank account and the receivable default.The controller requests its deletion.The refusal identifies the bank and default dependencies.test

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.