Skip to content

ATS-ACC-TRX-017Explain a customer’s current financial position: Capability Test Specification

Markdown

ATS-ACC-TRX-017

Explain a customer’s current financial position: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaAccountingModuleTransactionsRevision2

Read atservices-accounting f47cb263

Coverage

  • Rule covered
  • Transition not-applicable
  • Validation covered
  • Permission covered
  • Edge gap: FND-ACC-TRX-082
  • Failure gap: FND-ACC-TRX-082
  • Boundary covered
  • Concurrency gap: FND-ACC-TRX-082
  • Invariant covered
  • Interaction covered

Test Scenarios

8 scenarios proving CAP-ACC-TRX-017; 6 bound to an existing test.

01 Summary currency groups reconcile with open itemsinvariantapitest
Proves
BR-CAP-ACC-TRX-017-01 INV-DOM-ACC-TRX-005-06
Preconditions
USD and EUR bills coexist with held receipts and credit.
Steps
[ { "do": "Request current standing.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it answers, as of today, its two open invoices (owing 9000), the overdue one (4000), the check’s 1000 unapplied, the 1500 credit, a net position of 6500" } ]
Expected
Currency groups separately explain debt, overdue value, money and net position consistent with as-of items.
Data
Two supported currencies.
Bound to
services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it answers, as of today, its two open invoices (owing 9000), the overdue one (4000), the check’s 1000 unapplied, the 1500 credit, a net position of 6500
services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it agrees with the aging’s as-of read for the customer: the same open items, the same amounts
services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it answers one row per currency, the EUR invoice as its own row where 1.0 threw, in code order
Source
services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it answers, as of today, its two open invoices (owing 9000), the overdue one (4000), the check’s 1000 unapplied, the 1500 credit, a net position of 6500
02 Due today remains currentboundaryunittest
Proves
BR-CAP-ACC-TRX-017-02 INV-DOM-ACC-TRX-005-07
Preconditions
Invoices are due today and yesterday.
Steps
[ { "do": "Calculate the customer summary.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/unit/rules/customer-summary.spec.js#it counts an invoice due today as not yet overdue, and one due yesterday as overdue" } ]
Expected
Only the earlier date contributes to overdue debt.
Data
Two due-date boundary examples.
Bound to
services-accounting:modules/transactions/tests/unit/rules/customer-summary.spec.js#it counts an invoice due today as not yet overdue, and one due yesterday as overdue
Source
services-accounting:modules/transactions/tests/unit/rules/customer-summary.spec.js#it counts an invoice due today as not yet overdue, and one due yesterday as overdue
03 Primary-organization payables differ from own summaryinteractionapitest
Proves
BR-CAP-ACC-TRX-017-03 INV-DOM-ACC-TRX-005-08
Preconditions
One contact has primary affiliation and another only secondary affiliation.
Steps
[ { "do": "Read summaries and payable populations.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it keeps the contact’s figures its own: Acme’s invoices are not counted in Ivy’s summary (1.0’s balances.js)" } ]
Expected
Own summary excludes organization debt; primary payables include it and secondary payables do not.
Data
Primary and secondary CRM ties.
Bound to
services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it keeps the contact’s figures its own: Acme’s invoices are not counted in Ivy’s summary (1.0’s balances.js)
services-accounting:modules/transactions/tests/integration/services/invoices/payable-invoices.integration.spec.js#it describes the primary affiliate’s own open invoices, oldest first, then its organization’s, the totals summed
services-accounting:modules/transactions/tests/integration/services/invoices/payable-invoices.integration.spec.js#it describes only a secondary affiliate’s own invoices: only the primary affiliation is the contact’s organization
Source
services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it keeps the contact’s figures its own: Acme’s invoices are not counted in Ivy’s summary (1.0’s balances.js)
04 Payable description excludes inactive billingvalidationapitest
Proves
BR-CAP-ACC-TRX-017-05
Preconditions
Draft, void and outstanding real bills belong to one contact.
Steps
[ { "do": "Describe eligible payment targets.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/invoices/payable-invoices.integration.spec.js#it leaves out the contact’s draft and its void invoice" } ]
Expected
Only real outstanding debt appears with card and bank choices.
Data
Invoices of each standing.
Bound to
services-accounting:modules/transactions/tests/integration/services/invoices/payable-invoices.integration.spec.js#it allows cards and e-checks for an invoice with no order, with no Commerce settings and no fee under a policy of none (the unit’s rule shown), the invoice as the API answers it
Source
services-accounting:modules/transactions/tests/integration/services/invoices/payable-invoices.integration.spec.js#it leaves out the contact’s draft and its void invoice
05 Fee quote uses eligible tender value onceruleapitest
Proves
BR-CAP-ACC-TRX-017-06
Preconditions
Required-fee billing includes a single bill and two customer bills.
Steps
[ { "do": "Quote card, check and combined customer tender.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/invoices/payable-invoices.integration.spec.js#it quotes the card fee of a required invoice by its unit’s rule, on the balance or on the amount tendered, and none for a check" } ]
Expected
Balance or requested tender determines the card fee, check adds none and combined value pays one fee.
Data
A unit fee rule.
Bound to
services-accounting:modules/transactions/tests/integration/services/invoices/payable-invoices.integration.spec.js#it quotes the card fee of a required invoice by its unit’s rule, on the balance or on the amount tendered, and none for a check
services-accounting:modules/transactions/tests/integration/services/invoices/payable-invoices.integration.spec.js#it quotes the totals’ card fee for a customer whose invoices bear the fee: the rule once over the card amount
Source
services-accounting:modules/transactions/tests/integration/services/invoices/payable-invoices.integration.spec.js#it quotes the card fee of a required invoice by its unit’s rule, on the balance or on the amount tendered, and none for a check
06 Summary access and empty standing are distinctpermissionapitest
Proves
BR-CAP-ACC-TRX-017-07
Preconditions
One identity lacks read authority and a customer has no open items.
Steps
[ { "do": "Request each summary.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/e2e/customer-summary.e2e.spec.js#it reads with accounting.invoices.read alone and refuses a principal without it (403 permission_missing)" } ]
Expected
Unauthorized request fails and authorized empty standing returns no currency groups.
Data
Permission and empty-customer examples.
Bound to
services-accounting:modules/transactions/tests/e2e/customer-summary.e2e.spec.js#it reads with accounting.invoices.read alone and refuses a principal without it (403 permission_missing)
services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it answers no currencies and no activity date for a customer with nothing open (1.0’s zero balance), and for a customer CRM does not know
Source
services-accounting:modules/transactions/tests/e2e/customer-summary.e2e.spec.js#it reads with accounting.invoices.read alone and refuses a principal without it (403 permission_missing)
07 Payment-plan hold should preserve aginginteractionapiproposed
Proves
BR-CAP-ACC-TRX-017-08
Preconditions
Billing places an outstanding invoice on a plan.
Steps
[ { "do": "Set hold, inspect standing and clear hold.", "provenance": "proposed", "source": "services-accounting:docs/architecture/accounting-2.0/02-decisions.md#C-9" } ]
Expected
The proposed summary identifies the plan without changing dates or aging, then restores collections eligibility.
Data
A Billing service caller.
Source
services-accounting:docs/architecture/accounting-2.0/02-decisions.md#C-9
08 Current standing and captured aging keep distinct cutoffsinteractionapiproposed
Proves
BR-CAP-ACC-TRX-017-01 BR-CAP-ACC-TRX-017-02 BR-CAP-ACC-TRX-016-06 BR-CAP-ACC-TRX-018-02 BR-CAP-ACC-TRX-018-05 BR-CAP-ACC-TRX-019-01 BR-CAP-ACC-TRX-019-03
Preconditions
An isolated workspace has eligible customers, products, matching accounts, an open period and two open batches. Each branch owns separate financial records.
Steps
[ { "do": "Set customer-default terms, create an 80.00 bill, inspect its transaction row and current summary, then capture month-end aging. Record a backdated 20.00 reduction after the cutoff and read both surfaces again.", "provenance": "proposed", "source": "services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it answers, as of today, its two open invoices (owing 9000), the overdue one (4000), the check’s 1000 unapplied, the 1500 credit, a net position of 6500; services-accounting:modules/transactions/tests/unit/rules/customer-summary.spec.js#it counts an invoice due today as not yet overdue, and one due yesterday as overdue; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-016-find-transactions-and-see-what-can-be-done-next.md#BR-CAP-ACC-TRX-016-06; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-05; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-019-record-a-customer-s-collection-terms.md#BR-CAP-ACC-TRX-019-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-019-record-a-customer-s-collection-terms.md#BR-CAP-ACC-TRX-019-03" } ]
Expected
Terms establish the due date used for overdue classification; current debt becomes 60.00 while the earlier capture remains 80.00; current transaction rows agree with the summary.
Data
Separate command keys, two customers, invoice lines, receipts and credit; controlled processor outcomes and a fixed calendar where the branch requires them.
Source
services-accounting:modules/transactions/tests/integration/services/customers/customer-summary.integration.spec.js#it answers, as of today, its two open invoices (owing 9000), the overdue one (4000), the check’s 1000 unapplied, the 1500 credit, a net position of 6500; services-accounting:modules/transactions/tests/unit/rules/customer-summary.spec.js#it counts an invoice due today as not yet overdue, and one due yesterday as overdue; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-016-find-transactions-and-see-what-can-be-done-next.md#BR-CAP-ACC-TRX-016-06; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-05; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-019-record-a-customer-s-collection-terms.md#BR-CAP-ACC-TRX-019-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-019-record-a-customer-s-collection-terms.md#BR-CAP-ACC-TRX-019-03

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.