IR56M recipient modal — click a contributing transaction to open its standalone detail
Why (owner, 2026-06-29)¶
"Can you also make it so that by clicking on the transactions shown in the IR56M modal, it shows the standalone Transactions Detail modal window?"
The IR56M recipient modal's page 0 (the "Contributing transactions" audit list, T-121) showed each bank transaction that rolls up to the recipient's YA total, but the rows were inert — no way to inspect a specific transaction while reviewing what's about to be declared.
What shipped¶
components/accounting/tax/IR56MRecipientModal.tsx — the audit-list table
(RecipientAuditList) now drills through: each row is clickable and opens the
standalone transaction detail at /transactions/[id] in a new browser tab.
- The row id is the bank-tx document id, already returned by
/api/accounting/ir56m/recipient-payments(itsidfield was added with the comment "lets a future drill-through open the tx in Accounting" — this is that drill-through). - New tab, not in-place navigation: the IR56M modal may be mid-edit, so opening a separate window keeps the filing context intact for cross-reference.
- Affordance: pointer cursor + native hover title + a "Click any row to open that transaction's full detail in a new tab" hint above the list.
Reuses the existing purpose-built /transactions/[id] page (the same standalone
detail the Bank Transaction Register XLSX links to). It is erl-scoped via
getTransaction, which matches IR56M's current erl scope.
Verification¶
- ✅ Attestation (Accounting (Diagnostics)): read
AGENTS.md; checked the board by scope, not UID — T-121 built the audit list but no task covered making its rows open the standalone detail. Tracking T-141. - Source: Accounting (Diagnostics) ·
https://claude.ai/code/session_01G58Y71noihrYCDEDMexmea NODE_OPTIONS=--max-old-space-size=4096 npx tsc --noEmitclean;npx vitest rungreen.
Note (separate finding, not in this task)¶
While tracing how transactions reach a recipient's IR56M, I confirmed the
candidate scan (lib/accounting/ir56m.ts / ir56m.server.ts) treats every
expense-type GL code as reportable remuneration — so non-remuneration expenses
like 6400 (Bank Charges & Fees) and 6520 (Staff Welfare & Events) paid to a
directory payee are swept into that payee's IR56M total. That is a scan-scope
question (an allow-list of true remuneration codes vs the whole expense set), to
be decided with the owner before any change — flagged, not changed here.
Blast Radius¶
IR56M recipient modal audit list only. No API, data-shape, or schedule-logic change — purely a click-through to an existing read-only detail page.
Commit index (backfilled 2026-07-01, best-effort · Coaching (Diagnostic))¶
Candidate related commits, auto-backfilled from git on main: commits whose message references this task's UID or a PR number it cites. Not verified — this squash-merged history can't yield a precise per-task list, so rows tagged (mentions only) name the task in passing (may be tangential) and untagged work commits may be missing. Treat as a starting point: verify, prune tangential rows, and append any real ones per the AGENTS.md "record every related SHA" policy.
- (no git-discoverable commit references this UID or its PRs — append real SHAs here as identified.)