docs(client-detail): D38 redesign decision + STATUS in-progress note

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
main
Thomas Joise 2 days ago
parent 8c653eb41a
commit 343fa94efd

@ -47,6 +47,14 @@ directory via a multi-agent web-lookup (D35). **Login history** (D36): every sig
owner **Login history** screen; an invited user is sent to Profile to change their default
password on first sign-in.
**In progress (D38, branch `feat/client-detail-redesign`).** Client 360 Modules + Payments
redesign: **per-module onboarding templates** (SMS/RTGS/Mobile App), a **horizontal status line**
that auto-drives `client_module.status`, advance/balance steps **linked to real payments**, module
details as a read-only **50/50 sheet**, **per-module document lists** with a **bulk SMS purchase**
proforma, and a Payments **Outstanding** panel (issued invoices + sent/accepted proformas; drafts
excluded) with a settled-to-document column, plus a **stalled-onboarding** flag. Backend complete
(Tasks 18, 446 tests green); frontend building; responsive + red-team pass gates the merge (D38).
## Verification state
| Check | Result |

@ -616,3 +616,24 @@ a "VANITHA … SOCIETY" is Vanitha, not the generic Society), backfilled by a po
applied to new/edited clients via `categoryFromName`. Clients screen gains a Category filter +
column. Live backfill: 135 Service Bank, 38 Employees, 15 Vanitha, 14 Store, 12 Agricultural,
11 Urban, …
## D38 — Client Detail redesign: module lifecycle, status line & payments context (2026-07-20)
Reworks the Client 360 Modules + Payments tabs around how the business actually runs. **Per-module
onboarding templates** (config over code, `project.milestone_template:<CODE>` resolved per module →
global → code fallback): SMS / RTGS / Mobile App each get their own step list, seeded and
owner-editable; a one-time migration swaps existing projects onto their new list preserving mapped
ticks. The onboarding checklist becomes a **horizontal status line** whose ticks **auto-drive the
coarse `client_module.status`** (Installation→installed, Training→trained, Go-live→live; never
downgrades), so the status dropdown stops being hand-set. Advance/Balance payment steps **link to a
real payment** (`project_milestone.payment_id`; step date mirrors `received_on`). Module details
render as a read-only **50/50 sheet** (Access | Details) with one Edit per group — no always-on
input boxes. Each module block lists **its own documents** (line-item match) with type labels
(Quote / Renewal / **Bulk top-up** / Invoice); SMS gains a **bulk-credit purchase** proforma
(`source='bulk_sms_topup'`, priced via the usage rate card) distinct from a subscription renewal
(`source='module_renewal'`). The Payments tab gains an **Outstanding** panel (issued invoices with a
balance + **sent/accepted** proformas — un-issued drafts excluded, owner decision — plus advance on
account) and a "Settled → document" column per payment; the money engine is unchanged (read-only
ledger extension). A **stalled-onboarding** query surfaces projects parked past a threshold for the
dashboard/MIS. Spec + plans under `docs/superpowers/`. **Status:** landing on branch
`feat/client-detail-redesign` — backend complete (Tasks 18, 446 tests green), frontend in progress;
a responsive + red-team alignment pass gates the merge.

Loading…
Cancel
Save