feat: add itemized claims and payments

This commit is contained in:
Marcel Peterkau
2026-06-21 18:20:55 +02:00
parent c717d6806b
commit 80d4d5ef90
12 changed files with 1049 additions and 6 deletions
+13
View File
@@ -61,4 +61,17 @@ CCMA performs all file writes, duplicate checks, audit events, and atomic update
the pending run ID. A failed run therefore cannot advance the stored counter or
silently resolve existing tasks.
## Claims and payments
Claims are stored in the member's `contributions.json`. A claim consists of
signed line items; fees increase and credits reduce its total. Payments remain
separate records and allocations connect one payment to one or more claims.
This supports partial payments, shared annual payments, unallocated credit, and
optional GnuCash transaction IDs without duplicating a bank transaction.
Claim status and outstanding balance are derived from line items and payment
allocations. Reminders are separate processes and only change the amount when
they explicitly add a fee line item. Every change is also appended to the
member's `events.jsonl` audit trail.
Do not place a real member store inside the source repository.