The structured coverage map distinguishes specified examples from missing category coverage. Every required rule names its proving scenarios in the structured rule coverage register. A scenario’s executable binding applies only to the cited assertions; the transition and permission registers retain the combinations that still need explicit proof.
Write off an unpaid 80.00 bill, reverse the write-off, move the opposing record to another eligible batch and allocate an 80.00 receipt to the restored bill.
The restored 80.00 debt can be paid; retained abandonment and opposing records explain the change, while the batch move changes no debt. The complete chain remains proposed until one executable run proves its combined outcomes.
Coverage
Rulecovered
Transitiongap: FND-ACC-TRX-069
Validationcovered
Permissioncovered
Edgegap: FND-ACC-TRX-069
Failuregap: FND-ACC-TRX-069
Boundarygap: FND-ACC-TRX-069
Concurrencygap: FND-ACC-TRX-069
Invariantgap: FND-ACC-TRX-069
Interactioncovered
Test Scenarios
7 scenarios proving CAP-ACC-TRX-004; 5 bound to an existing test.
[
{
"do": "Write off the draft and request 40.01 on the line.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/write-offs/write-offs.integration.spec.js#it writes nothing: no write-off, no ledger line, no fact, no event"
}
]
Expected
Neither attempt writes an adjustment or changes debt.
[
{
"do": "Abandon one line and part of the next, then its remaining amount.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/write-offs/write-offs.integration.spec.js#it makes the whole line written_off and keeps the partly written-off line and the invoice open"
}
]
Expected
Line standing changes first and invoice standing changes after all debt is abandoned.
[
{
"do": "Reverse it, repeat that reversal and attempt reversal of the opposing document.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/write-offs/write-offs.integration.spec.js#it answers the reversal: a second write-off, numbered next, its lines negating the first’s"
}
]
Expected
The next numbered document restores balances; later reversals are denied.
[
{
"do": "Create a write-off, attempt self-approval and approve as another person.",
"provenance": "proposed",
"source": "services-accounting:docs/architecture/accounting-2.0/02-decisions.md#D-5"
}
]
Expected
The proposed flow waits, rejects self-approval and issues after independent approval.
[
{
"do": "Attempt creation and reversal and inspect available actions.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/e2e/write-offs.e2e.spec.js#it is refused the create and the reverse 403 permission_missing"
}
]
Expected
Mutations are denied and actions empty while the record remains readable.
An isolated workspace has eligible customers, products, matching accounts, an open period and two open batches. Each branch owns separate financial records.
Steps
[
{
"do": "Write off an unpaid 80.00 bill, reverse the write-off, move the opposing record to another eligible batch and allocate an 80.00 receipt to the restored bill.",
"provenance": "proposed",
"source": "services-accounting:modules/transactions/tests/integration/services/write-offs/write-offs.integration.spec.js#it writes nothing: no write-off, no ledger line, no fact, no event; services-accounting:modules/transactions/tests/integration/services/write-offs/write-offs.integration.spec.js#it answers the reversal: a second write-off, numbered next, its lines negating the first’s; rhythm-v2-docs:specs/accounting/transactions/design/workflows/WF-ACC-TRX-004-write-off-a-balance-and-restore-it.md#WF-ACC-TRX-004; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-004-write-off-an-uncollectable-balance-and-restore-it.md#BR-CAP-ACC-TRX-004-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-004-write-off-an-uncollectable-balance-and-restore-it.md#BR-CAP-ACC-TRX-004-05; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-008-put-a-payment-s-money-on-the-right-invoices.md#BR-CAP-ACC-TRX-008-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-008-put-a-payment-s-money-on-the-right-invoices.md#BR-CAP-ACC-TRX-008-04; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-015-move-a-transaction-to-another-batch-and-correct-its-details.md#BR-CAP-ACC-TRX-015-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-015-move-a-transaction-to-another-batch-and-correct-its-details.md#BR-CAP-ACC-TRX-015-03"
}
]
Expected
The restored 80.00 debt can be paid; retained abandonment and opposing records explain the change, while the batch move changes no debt.
Data
Separate command keys, two customers, invoice lines, receipts and credit; controlled processor outcomes and a fixed calendar where the branch requires them.