feat(investment,npa): RBI-grounded targets, GL-tracked interest posting, date/search pickers

- Correct Investment portfolio allocation and Loan Origination product-mix targets against
  RBI's UCB SLR/Non-SLR framework and PSL circulars, with a Target Basis column distinguishing
  RBI-mandated vs board-policy rows (Excel export included).
- Expand Investment holdings dataset with more near-term maturities so the Due-Date Diary
  reflects a realistic spread across FD/Govt Security/Non-SLR/Bond.
- Add From/To period-based Interest Calculation & Post (with GL selection for both posting and
  receiving) across the Investment Interest module, FD Entry and Bond Entry screens; fix a bug
  where a posted period kept re-appearing as due since accrual wasn't tracked per-holding.
- Add a reusable DD-MM-YYYY date-picker component and roll it out across all Investment date
  fields.
- NPA Summary Report: drop SMA-0/1/2 from the stage-wise table (kept in Day-wise Overdue only).
- NPA Recovery Report: add Account Type / NPA Category / Target-vs-Actual columns, a shared
  Account Type filter driving both the account picker and the register, and a searchable
  (fixed-position, not clipped by card overflow) account select for long lists.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-02 19:26:19 +05:30
co-authored by Claude Sonnet 5
parent d7f5bfe5f5
commit ebe67cc410
20 changed files with 1401 additions and 226 deletions
@@ -1470,16 +1470,30 @@ export function branchTargetAmount(branchCode: string): number {
return BRANCH_DISBURSEMENT_TARGET[branchCode] || 0;
}
/** Target product mix (% of total disbursement) — weighted towards secured Housing/Vehicle
* lending plus the priority-sector KCC/Cash Credit book, adding up to 100%. */
/**
* Target product mix (% of total disbursement). Two of these are genuinely RBI-mandated
* Priority Sector Lending sub-targets (RBI Master Direction — Priority Sector Lending: Targets
* and Classification, FIDD.CO.Plan.BC.13/04.09.01/2020-21, as extended to UCBs) —
* • Agriculture: 18% of Adjusted Net Bank Credit (ANBC) — mapped here to Kisan Credit Card.
* • Micro Enterprises: 7.5% of ANBC — mapped here to Cash Credit (MSME).
* RBI sets these as a % of the BANK'S WHOLE loan book (ANBC), not of any one product line's own
* disbursement — shown here against this module's own mix as the closest available proxy, since
* this demo has no bank-wide ANBC figure to check against. The remaining five products (Housing,
* Vehicle, Gold, Personal, Education) have no RBI-mandated minimum share of their own — Housing
* and Education are Priority-Sector-*eligible* within RBI's loan-amount ceilings but aren't
* separately targeted, and Vehicle/Gold/Personal aren't Priority Sector categories at all — so
* their split below is an internal business-plan assumption, not a regulatory requirement.
* (RBI's other PSL sub-targets — Weaker Sections 12%, overall PSL 40% — cut across products by
* borrower category rather than by loan type, so they aren't represented as their own row here.)
*/
export const PRODUCT_TARGET_PCT: Record<string, number> = {
PL: 12,
HL: 28,
HL: 30,
VL: 15,
GL: 10,
CC: 15,
KCC: 12,
EL: 8
GL: 12,
CC: 7.5, // RBI Micro Enterprises PSL sub-target
KCC: 18, // RBI Agriculture PSL sub-target
EL: 5.5
};
/** Target channel mix (% of disbursement) — the bank's push towards BC/Digital origination and