Skip to content

CAP-ACC-PRD-013Record the follow-up work a purchase needs

Markdown

CAP-ACC-PRD-013

Record the follow-up work a purchase needs

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationPartially observed

KindCapabilityProduct areaAccountingModuleProductsRevision5

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
Follow-up instructions remain attached to the purchased product.
Surfaces
consoleapi
Intent sources
services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#R22

Controls

25 controls apply, from the corpus control catalogue.

TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-IAM-006 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-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-LOG-005 TC-PI-001 TC-PI-002 TC-PI-003 TC-PI-005

Permissions

KeyChecked atScope
accounting.products.updateapitenant

Business Rules

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

IdRuleKindEnforced atProvenance
01
Proposed
A task instruction requires a name and CRM task type and may include description, queue, assignee and a nonnegative delay in days, weeks or months.
validationapi, databasetest
02must prove
Proposed
Task types and queues must exist in the workspace and be active when newly assigned, while previously held inactive choices remain acceptable.
validationservicetest
services-accounting:modules/products/tests/integration/services/persistence/products.features.integration.spec.js#keeps a task type and a queue that became inactive while the product held them
03must prove
Proposed
Assignee values must match the Rhythm user identity format, with no check that a user exists.
validationapi, databasetest
services-accounting:modules/products/tests/e2e/product-features.e2e.spec.js#refuses an assignee that is not a Platform user id
04must prove
Proposed
A product stores at most twenty task instructions and replaces or clears the whole collection on save.
validationapi, servicetest
05
Proposed
Documented responsibility assigns task creation at purchase to Orders and excludes staff task instructions from the portal projection.
policydocumented
06
Proposed
The console edits task instructions in a dialog and selects assignees from a user chooser.
policyconsoledocumented

Scenarios

IdGivenWhenThenProvenance
01A certification product needs fulfillment follow-up.Staff store a certificate-mailing instruction due seven days after purchase.The product returns those instructions, while purchase-time task creation remains an Orders responsibility.observed

Edge Cases

IdGivenWhenThenProvenance
02CRM deactivates a type already used by a product’s task instructions.Staff correct only the product description.The held type remains, while a new assignment of that inactive type fails.test
services-accounting:modules/products/tests/integration/services/persistence/products.features.integration.spec.js#keeps a task type and a queue that became inactive while the product held them

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.