feat: add 11 banking compliance & accounting report modules

Adds dialog components and feature modules for RBI/banking compliance,
KYC, and accounting reports. Wires them into the shell menu (RBI,
General Ledger, CKYC Mgmt, Others, Insurance) and dashboard cards.

Dialog components (lazy-loaded MatDialog):
- PSL Returns (Form III) — dashboard card + RBI menu
- ALM Statement of Structural Liquidity (Form ALM-1) — RBI menu
- CIMS / XBRL Returns (OSS-2 / PSA / RAL / RCP-UCB) — RBI menu, shared
  dialog with form-pill switcher
- CIC DQR (CIBIL / Experian / Equifax / CRIF, 72-col TUDF) — Others menu
  + dashboard card
- CKYC Compliance Reports (Re-KYC / Risk Review / CERSAI) — CKYC Mgmt
- Accounting Reports (P&L / Balance Sheet / Comparative B/S / GL DR/CR
  / Misc Expense Ledger) — General Ledger menu

Feature modules (Route.withShell):
- DEAF (/deaf): Form I, Form II, Annex 4, accounts register
- DICGC (/dicgc): Slab Report, SAHAY Depositor List
- FIU-IND (/fiu): FINnet 2.0 Statement of Financial Transactions
- SFT (/sft): Income Tax Section 285BA SFT
- CKYC Reports (/ckyc/ckyc-reports): standalone dashboard

UI:
- Theme-colored icons on 22 wired menu links across 5 menus —
  visually distinguishes wired (colored) from placeholder (gray) links.
- Backdrop classes per dialog in main.scss.

All using dummy data (Bharat Urban Bank Ltd, Karthik Kamath as Principal
Officer, dummy customer names) — no real bank or customer references.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Aditya
2026-04-29 18:59:50 +05:30
co-authored by Claude Opus 4.7
parent 634003a75c
commit 12bfc81219
61 changed files with 22207 additions and 725 deletions
+475
View File
@@ -0,0 +1,475 @@
/**
* Copyright since 2025 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/**
* Sample DEAF data — schema and totals match the actual CIBIL/RBI return template.
* Bank/customer/officer/auditor names are dummy placeholders.
*
* Three RBI-prescribed reports:
* Form I — Monthly Return of unclaimed deposits transferred to DEAF (filed online by 15th)
* Form II — Same return submitted as original hardcopy
* Annex 4 — Refund Claim Form (when bank claims back from DEAF for paid-out customer refunds)
*/
export interface DeafFormRow {
/** 1=Opening, 2=Wrongly reported earlier, 3=Transferred this month, 4=Claims settled, 5=Net, 6=Total at end */
sl: number;
particulars: string;
/** (a) Interest Bearing Deposits */
ibdAccounts: number;
ibdAmount: number;
/** (b) Non-Interest Bearing Deposits */
nibdAccounts: number;
nibdAmount: number;
/** (c) Other Credits (Non-Interest bearing) */
ocAccounts: number;
ocAmount: number;
/** (d) Total = (a) + (b) + (c) */
totalAccounts: number;
totalAmount: number;
}
export interface DeafForm {
bankName: string;
bankDeafCode: string;
remittedThroughSponsor: 'Y' | 'N';
sponsorBankName: string;
monthYear: string;
dateOfTransfer: string;
rows: DeafFormRow[];
/** Authorized officer + auditor (signature block) */
officer: string;
officerDesignation: string;
auditor: string;
auditorAddress: string;
}
export interface DeafClaim {
slNo: number;
ibdPrincipal: number;
ibdInterest: number;
ibdTotal: number;
nibdAccounts: number;
nibdAmount: number;
ocAccounts: number;
ocAmount: number;
grandTotalAccounts: number;
grandTotalAmount: number;
}
export interface DeafEligibleAccount {
acNo: string;
customerName: string;
acType: 'SB' | 'CA' | 'FD' | 'RD' | 'BG' | 'DD' | 'PO';
branch: string;
openedDate: string;
lastTxnDate: string;
inactiveYears: number;
/** IBD = Interest Bearing Deposit; NIBD = Non-Interest Bearing; OC = Other Credit */
bucket: 'IBD' | 'NIBD' | 'OC';
principal: number;
interest: number;
total: number;
status: 'eligible-this-month' | 'transferred' | 'claim-pending' | 'refunded';
transferredOn?: string;
}
/** Form I — Dec 2025 cycle */
export const FORM_I: DeafForm = {
bankName: 'Bharat Urban Bank Ltd, Mumbai Main Branch',
bankDeafCode: '1100',
remittedThroughSponsor: 'Y',
sponsorBankName: 'State Bank of India',
monthYear: '12/2025',
dateOfTransfer: '29-12-2025',
officer: 'Anjali Mehta',
officerDesignation: 'Chief Executive Officer',
auditor: 'Karthik Kamath',
auditorAddress: '12 MG Road, Worli, Mumbai 400018',
rows: [
{
sl: 1,
particulars: 'Opening balance of accounts transferred to the Fund at the beginning of the month',
ibdAccounts: 1208,
ibdAmount: 2571461.6,
nibdAccounts: 138,
nibdAmount: 177338.98,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 1346,
totalAmount: 2748800.58
},
{
sl: 2,
particulars: 'Accounts if any wrongly reported in past and rectified during this month',
ibdAccounts: 10,
ibdAmount: 7582.7,
nibdAccounts: 0,
nibdAmount: 0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 10,
totalAmount: 7582.7
},
{
sl: 3,
particulars:
'Accounts transferred to the DEA Fund during this month (incl. inadvertently omitted in previous month)',
ibdAccounts: 0,
ibdAmount: 0,
nibdAccounts: 0,
nibdAmount: 0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 0,
totalAmount: 0
},
{
sl: 4,
particulars: 'Claims settled and refund received from the DEA Fund during this month (only the principal)',
ibdAccounts: 2,
ibdAmount: 9177.0,
nibdAccounts: 0,
nibdAmount: 0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 2,
totalAmount: 9177.0
},
{
sl: 5,
particulars: 'Net amount transferred to the Fund during the month (2 + 3 − 4)',
ibdAccounts: 8,
ibdAmount: -1594.3,
nibdAccounts: 0,
nibdAmount: 0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 8,
totalAmount: -1594.3
},
{
sl: 6,
particulars: 'Total amount with the Fund at the end of the month (1 + 5)',
ibdAccounts: 1216,
ibdAmount: 2569867.3,
nibdAccounts: 138,
nibdAmount: 177338.98,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 1354,
totalAmount: 2747206.28
}
]
};
/** Form II — Jan 2026 (head office consolidated) */
export const FORM_II: DeafForm = {
bankName: 'Bharat Urban Bank Ltd, Head Office',
bankDeafCode: '1100',
remittedThroughSponsor: 'Y',
sponsorBankName: 'State Bank of India',
monthYear: '01/2026',
dateOfTransfer: '15-01-2026',
officer: 'Anjali Mehta',
officerDesignation: 'Chief Executive Officer',
auditor: 'Karthik Kamath',
auditorAddress: '12 MG Road, Worli, Mumbai 400018',
rows: [
{
sl: 1,
particulars: 'Opening balance at the beginning of the month',
ibdAccounts: 699,
ibdAmount: 2040493.18,
nibdAccounts: 140,
nibdAmount: 187649.0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 839,
totalAmount: 2228142.18
},
{
sl: 2,
particulars: 'Accounts and amount inadvertently omitted in previous month return and transferred this month',
ibdAccounts: 0,
ibdAmount: 0,
nibdAccounts: 0,
nibdAmount: 0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 0,
totalAmount: 0
},
{
sl: 3,
particulars: 'Accounts and amount due and transferred to the Fund during this month',
ibdAccounts: 5,
ibdAmount: 19956.75,
nibdAccounts: 0,
nibdAmount: 0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 5,
totalAmount: 19956.75
},
{
sl: 4,
particulars: 'Accounts and amount claimed during the previous month and paid from the Fund during this month',
ibdAccounts: 0,
ibdAmount: 0,
nibdAccounts: 0,
nibdAmount: 0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 0,
totalAmount: 0
},
{
sl: 5,
particulars: 'Total amount transferred less amount paid from the Fund during the month (2 + 3 − 4)',
ibdAccounts: 5,
ibdAmount: 19956.75,
nibdAccounts: 0,
nibdAmount: 0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 5,
totalAmount: 19956.75
},
{
sl: 6,
particulars: 'Total amount with the Fund at the end of the month (1 + 5)',
ibdAccounts: 704,
ibdAmount: 2060449.93,
nibdAccounts: 140,
nibdAmount: 187649.0,
ocAccounts: 0,
ocAmount: 0,
totalAccounts: 844,
totalAmount: 2248098.93
}
]
};
/** Annex 4 — Refund claim form (Jan 2026) */
export const REFUND_CLAIMS: {
bankName: string;
bankDeafCode: string;
currentAcWithRbi: string;
sponsorBank: string;
month: string;
year: string;
firstSignatory: string;
firstDesignation: string;
secondSignatory: string;
secondDesignation: string;
auditor: string;
rows: DeafClaim[];
} = {
bankName: 'Bharat Urban Bank Ltd',
bankDeafCode: '1100',
currentAcWithRbi: '03010200099001',
sponsorBank: 'State Bank of India',
month: 'January',
year: '2026',
firstSignatory: 'Vikram Singh',
firstDesignation: 'IT Manager',
secondSignatory: 'Rohan Malhotra',
secondDesignation: 'Clerk / Cashier',
auditor: 'Karthik Kamath',
rows: [
{
slNo: 4,
ibdPrincipal: 5754.0,
ibdInterest: 457,
ibdTotal: 6211.0,
nibdAccounts: 0,
nibdAmount: 0,
ocAccounts: 0,
ocAmount: 0,
grandTotalAccounts: 4,
grandTotalAmount: 6211.0
}
]
};
/** Eligible / transferred / claimed accounts list (dummy customers across multiple branches) */
export const ELIGIBLE_ACCOUNTS: DeafEligibleAccount[] = [
{
acNo: '110001301002013',
customerName: 'RAVI KUMAR SHARMA',
acType: 'SB',
branch: 'Mumbai Main',
openedDate: '12-04-2010',
lastTxnDate: '15-03-2016',
inactiveYears: 10,
bucket: 'IBD',
principal: 4250.0,
interest: 312.5,
total: 4562.5,
status: 'eligible-this-month'
},
{
acNo: '110001301004221',
customerName: 'PRIYA PATEL',
acType: 'SB',
branch: 'Pune FC Road',
openedDate: '08-09-2009',
lastTxnDate: '20-01-2016',
inactiveYears: 10,
bucket: 'IBD',
principal: 1850.75,
interest: 132.0,
total: 1982.75,
status: 'eligible-this-month'
},
{
acNo: '110001302001145',
customerName: 'ARJUN DESHMUKH',
acType: 'FD',
branch: 'Nagpur Dharampeth',
openedDate: '01-01-2011',
lastTxnDate: '01-01-2016',
inactiveYears: 10,
bucket: 'IBD',
principal: 25000.0,
interest: 4180.0,
total: 29180.0,
status: 'eligible-this-month'
},
{
acNo: '110001301005612',
customerName: 'VIKRAM REDDY',
acType: 'SB',
branch: 'Bengaluru Jayanagar',
openedDate: '25-07-2008',
lastTxnDate: '12-12-2015',
inactiveYears: 10,
bucket: 'IBD',
principal: 8350.5,
interest: 654.0,
total: 9004.5,
status: 'eligible-this-month'
},
{
acNo: '110001303002284',
customerName: 'LAKSHMI IYER',
acType: 'RD',
branch: 'Bengaluru Indiranagar',
openedDate: '15-06-2010',
lastTxnDate: '15-06-2015',
inactiveYears: 10,
bucket: 'IBD',
principal: 12500.0,
interest: 1850.0,
total: 14350.0,
status: 'eligible-this-month'
},
{
acNo: '110001305000412',
customerName: 'NIRAV SHAH',
acType: 'DD',
branch: 'Ahmedabad Satellite',
openedDate: '03-10-2014',
lastTxnDate: '03-10-2014',
inactiveYears: 11,
bucket: 'NIBD',
principal: 3450.0,
interest: 0,
total: 3450.0,
status: 'eligible-this-month'
},
{
acNo: '110001301001780',
customerName: 'KAVITA VERMA',
acType: 'SB',
branch: 'Lucknow Gomti Nagar',
openedDate: '11-02-2008',
lastTxnDate: '11-09-2014',
inactiveYears: 11,
bucket: 'IBD',
principal: 6240.0,
interest: 478.0,
total: 6718.0,
status: 'transferred',
transferredOn: '15-12-2025'
},
{
acNo: '110001302002091',
customerName: 'KARTHIK SUBRAMANIAN',
acType: 'FD',
branch: 'Chennai Valasaravakkam',
openedDate: '04-08-2009',
lastTxnDate: '04-08-2014',
inactiveYears: 11,
bucket: 'IBD',
principal: 18500.0,
interest: 2725.0,
total: 21225.0,
status: 'transferred',
transferredOn: '15-11-2025'
},
{
acNo: '110001301008764',
customerName: 'SAMEER KAPOOR',
acType: 'SB',
branch: 'Delhi Greater Kailash',
openedDate: '17-05-2009',
lastTxnDate: '17-05-2014',
inactiveYears: 11,
bucket: 'IBD',
principal: 4587.0,
interest: 290.0,
total: 4877.0,
status: 'transferred',
transferredOn: '15-09-2024'
},
{
acNo: '110001302003145',
customerName: 'ABHISHEK BANERJEE',
acType: 'FD',
branch: 'Kolkata Salt Lake',
openedDate: '22-03-2010',
lastTxnDate: '22-03-2015',
inactiveYears: 10,
bucket: 'IBD',
principal: 15000.0,
interest: 2150.0,
total: 17150.0,
status: 'claim-pending'
},
{
acNo: '110001301010224',
customerName: 'GAURAV THAKUR',
acType: 'SB',
branch: 'Shimla Sector 4',
openedDate: '08-12-2008',
lastTxnDate: '08-06-2014',
inactiveYears: 11,
bucket: 'IBD',
principal: 3275.0,
interest: 195.0,
total: 3470.0,
status: 'claim-pending'
},
{
acNo: '110001302004088',
customerName: 'MANMOHAN SINGH GILL',
acType: 'FD',
branch: 'Amritsar Model Town',
openedDate: '19-09-2009',
lastTxnDate: '19-09-2014',
inactiveYears: 11,
bucket: 'IBD',
principal: 8500.0,
interest: 1124.0,
total: 9624.0,
status: 'refunded',
transferredOn: '15-04-2024'
}
];