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>
508 lines
13 KiB
TypeScript
508 lines
13 KiB
TypeScript
/**
|
||
* 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/.
|
||
*/
|
||
|
||
import { Component, inject } from '@angular/core';
|
||
import { CommonModule, DecimalPipe } from '@angular/common';
|
||
import { MatDialogRef, MatDialogModule } from '@angular/material/dialog';
|
||
import { MatButtonModule } from '@angular/material/button';
|
||
import { MatTabsModule } from '@angular/material/tabs';
|
||
import { MatTooltipModule } from '@angular/material/tooltip';
|
||
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
||
|
||
@Component({
|
||
selector: 'mifosx-crr-slr-dialog',
|
||
standalone: true,
|
||
templateUrl: './crr-slr-dialog.component.html',
|
||
styleUrls: ['./crr-slr-dialog.component.scss'],
|
||
imports: [
|
||
CommonModule,
|
||
DecimalPipe,
|
||
MatDialogModule,
|
||
MatButtonModule,
|
||
MatTabsModule,
|
||
MatTooltipModule,
|
||
FaIconComponent
|
||
]
|
||
})
|
||
export class CrrSlrDialogComponent {
|
||
private dialogRef = inject(MatDialogRef<CrrSlrDialogComponent>);
|
||
|
||
activeTab: 'demand' | 'time' | 'assets' | 'slr' = 'demand';
|
||
|
||
/** Reporting fortnight date — 45 days before current date */
|
||
today = new Date();
|
||
reportingDate: Date;
|
||
reportingDateStr: string;
|
||
|
||
/** NDTL & Reserve computations */
|
||
readonly totalDemand = 12843.5;
|
||
readonly totalTime = 64618.0;
|
||
readonly totalBankingAssets = 8240.2;
|
||
readonly ndtl = 69221.3; // Demand + Time - Banking Assets
|
||
readonly crrRate = 3; // Current RBI CRR rate (%)
|
||
readonly slrRate = 18; // Current RBI SLR rate (%)
|
||
readonly crrRequired = 69221.3 * 0.03; // ₹2,076.64 Cr
|
||
readonly slrRequired = 69221.3 * 0.18; // ₹12,459.83 Cr
|
||
readonly totalLiquidAssets = 13238.8;
|
||
readonly slrActualPercent = +((13238.8 / 69221.3) * 100).toFixed(2); // 19.12%
|
||
readonly slrSurplus = +(13238.8 - 69221.3 * 0.18).toFixed(2); // 778.97
|
||
readonly totalReserve = +(69221.3 * 0.03 + 69221.3 * 0.18).toFixed(2); // 14,536.47
|
||
|
||
constructor() {
|
||
// CRR/SLR uses data from 45 days ago
|
||
const lagDays = 45;
|
||
this.reportingDate = new Date(this.today);
|
||
this.reportingDate.setDate(this.reportingDate.getDate() - lagDays);
|
||
this.reportingDateStr = this.reportingDate.toLocaleDateString('en-IN', {
|
||
day: '2-digit',
|
||
month: 'short',
|
||
year: 'numeric'
|
||
});
|
||
}
|
||
|
||
demandLiabilities = [
|
||
{
|
||
sl: '01',
|
||
name: 'Current Account Deposits',
|
||
sub: 'Corporate & individual CA balances',
|
||
code: '2001-CA',
|
||
opening: '3,842.50',
|
||
current: '4,120.75',
|
||
change: '+278.25',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '02',
|
||
name: 'Savings Bank Deposits (Withdrawable)',
|
||
sub: 'Demand portion — 10% of SB balance',
|
||
code: '2002-SB',
|
||
opening: '1,240.00',
|
||
current: '1,318.40',
|
||
change: '+78.40',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '03',
|
||
name: 'Demand Drafts Payable',
|
||
sub: 'Issued DDs outstanding for payment',
|
||
code: '2003-DD',
|
||
opening: '284.20',
|
||
current: '311.60',
|
||
change: '+27.40',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '04',
|
||
name: "Banker's Cheques / Pay Orders",
|
||
sub: 'Issued pay orders pending encashment',
|
||
code: '2004-PO',
|
||
opening: '198.75',
|
||
current: '176.30',
|
||
change: '-22.45',
|
||
changeDir: 'dn',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '05',
|
||
name: 'Credit Balance in Cash Credit Accounts',
|
||
sub: 'CC accounts in credit position',
|
||
code: '2005-CC',
|
||
opening: '542.10',
|
||
current: '618.90',
|
||
change: '+76.80',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '06',
|
||
name: 'Overdue Fixed Deposits',
|
||
sub: 'FDs past maturity — treated as demand',
|
||
code: '2006-OFD',
|
||
opening: '89.40',
|
||
current: '112.85',
|
||
change: '+23.45',
|
||
changeDir: 'dn',
|
||
status: 'Overdue'
|
||
},
|
||
{
|
||
sl: '07',
|
||
name: 'Interest Payable on Demand Deposits',
|
||
sub: 'Accrued interest on CA/SB',
|
||
code: '2007-INT',
|
||
opening: '34.20',
|
||
current: '38.55',
|
||
change: '+4.35',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '08',
|
||
name: 'Margins held against Letters of Credit',
|
||
sub: 'Withdrawable LC margin deposits',
|
||
code: '2008-LCM',
|
||
opening: '412.60',
|
||
current: '388.20',
|
||
change: '-24.40',
|
||
changeDir: 'dn',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '09',
|
||
name: 'Margins held against Bank Guarantees',
|
||
sub: 'Withdrawable BG margin deposits',
|
||
code: '2009-BGM',
|
||
opening: '318.40',
|
||
current: '342.10',
|
||
change: '+23.70',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '10',
|
||
name: 'Security Deposits (Withdrawable)',
|
||
sub: 'EMD / SD refundable on demand',
|
||
code: '2010-SD',
|
||
opening: '124.80',
|
||
current: '118.60',
|
||
change: '-6.20',
|
||
changeDir: 'dn',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '11',
|
||
name: 'Unclaimed Deposits (Demand Portion)',
|
||
sub: 'Balances unclaimed >10 years',
|
||
code: '2011-UCD',
|
||
opening: '56.30',
|
||
current: '59.40',
|
||
change: '+3.10',
|
||
changeDir: 'dn',
|
||
status: 'Unclaimed'
|
||
},
|
||
{
|
||
sl: '12',
|
||
name: 'Inter-Bank Demand Deposits',
|
||
sub: 'Demand deposits from other banks',
|
||
code: '2012-IBD',
|
||
opening: '2,840.00',
|
||
current: '3,120.50',
|
||
change: '+280.50',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '13',
|
||
name: 'Clearing Adjustments / Balances',
|
||
sub: 'Net clearing settlement balances',
|
||
code: '2013-CLR',
|
||
opening: '186.40',
|
||
current: '210.80',
|
||
change: '+24.40',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '14',
|
||
name: 'Outstanding Payment Instruments',
|
||
sub: 'Cheques issued but not yet presented',
|
||
code: '2014-OPI',
|
||
opening: '142.60',
|
||
current: '158.90',
|
||
change: '+16.30',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '15',
|
||
name: 'Demand Liabilities towards Other Banks',
|
||
sub: 'Nostro / Vostro demand obligations',
|
||
code: '2015-DLB',
|
||
opening: '984.20',
|
||
current: '1,048.60',
|
||
change: '+64.40',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '16',
|
||
name: 'Deposits Repayable on Demand',
|
||
sub: 'Miscellaneous on-demand deposits',
|
||
code: '2016-DRD',
|
||
opening: '618.30',
|
||
current: '698.05',
|
||
change: '+79.75',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
}
|
||
];
|
||
|
||
timeLiabilities = [
|
||
{
|
||
sl: '01',
|
||
name: 'Fixed Deposits (FD)',
|
||
sub: '7 days to 10 years · 6.5–7.2%',
|
||
code: '3001-FD',
|
||
opening: '28,420.50',
|
||
current: '29,184.30',
|
||
change: '+763.80',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '02',
|
||
name: 'Recurring Deposits (RD)',
|
||
sub: 'Monthly instalment · 6.0–6.8%',
|
||
code: '3002-RD',
|
||
opening: '4,218.60',
|
||
current: '4,412.80',
|
||
change: '+194.20',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '03',
|
||
name: 'Time Liability Portion of Savings',
|
||
sub: '90% of SB balance treated as time',
|
||
code: '3003-SBT',
|
||
opening: '10,840.20',
|
||
current: '11,204.60',
|
||
change: '+364.40',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '04',
|
||
name: 'Reinvestment Deposits',
|
||
sub: 'Cumulative interest plans · 7.0%',
|
||
code: '3004-RID',
|
||
opening: '1,842.40',
|
||
current: '1,918.70',
|
||
change: '+76.30',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '05',
|
||
name: 'Staff Security Deposits (Fixed Period)',
|
||
sub: 'Employee security deposits — locked',
|
||
code: '3005-SSD',
|
||
opening: '84.60',
|
||
current: '86.40',
|
||
change: '+1.80',
|
||
changeDir: 'up',
|
||
status: 'Locked'
|
||
},
|
||
{
|
||
sl: '06',
|
||
name: 'Margin Money for Guarantees / LC',
|
||
sub: 'LC/BG margins — fixed lock-in period',
|
||
code: '3006-MGM',
|
||
opening: '620.80',
|
||
current: '644.20',
|
||
change: '+23.40',
|
||
changeDir: 'up',
|
||
status: 'Locked'
|
||
},
|
||
{
|
||
sl: '07',
|
||
name: 'Certificates of Deposit (CD)',
|
||
sub: 'Issued to corporates / FIs · 7.35%',
|
||
code: '3007-CD',
|
||
opening: '3,840.00',
|
||
current: '3,920.50',
|
||
change: '+80.50',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '08',
|
||
name: 'Interest Accrued on Time Deposits',
|
||
sub: 'Accrued but unpaid interest on FD/RD',
|
||
code: '3008-IAT',
|
||
opening: '842.60',
|
||
current: '918.40',
|
||
change: '+75.80',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '09',
|
||
name: 'Long-term Deposits',
|
||
sub: 'Tenor >5 years · 7.5%',
|
||
code: '3009-LTD',
|
||
opening: '5,620.40',
|
||
current: '5,818.60',
|
||
change: '+198.20',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '10',
|
||
name: 'Tax Saving Deposits',
|
||
sub: 'Sec 80C FDs — 5-year lock-in · 6.8%',
|
||
code: '3010-TSD',
|
||
opening: '1,240.80',
|
||
current: '1,318.40',
|
||
change: '+77.60',
|
||
changeDir: 'up',
|
||
status: 'Locked'
|
||
},
|
||
{
|
||
sl: '11',
|
||
name: 'Foreign Currency Deposits',
|
||
sub: 'FCNR(B), RFC — USD/EUR/GBP',
|
||
code: '3011-FCD',
|
||
opening: '2,184.60',
|
||
current: '2,348.20',
|
||
change: '+163.60',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '12',
|
||
name: 'Time Liabilities to Other Banks',
|
||
sub: 'Inter-bank term deposits — call money',
|
||
code: '3012-TLB',
|
||
opening: '1,840.20',
|
||
current: '1,924.40',
|
||
change: '+84.20',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '13',
|
||
name: 'Term Borrowings',
|
||
sub: 'Bonds, debentures, refinance · 8.1%',
|
||
code: '3013-TBR',
|
||
opening: '1,018.40',
|
||
current: '1,118.50',
|
||
change: '+100.10',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
}
|
||
];
|
||
|
||
bankingAssets = [
|
||
{
|
||
sl: '01',
|
||
name: 'Balances with Other Banks',
|
||
sub: 'Nostro / Vostro balances — SBI, PNB, BOB',
|
||
code: '4001-BWB',
|
||
opening: '3,840.20',
|
||
current: '4,112.40',
|
||
change: '+272.20',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '02',
|
||
name: 'Money at Call with Banks',
|
||
sub: 'Overnight & short-notice call money',
|
||
code: '4002-MCB',
|
||
opening: '2,180.50',
|
||
current: '2,418.60',
|
||
change: '+238.10',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
},
|
||
{
|
||
sl: '03',
|
||
name: 'Loans to Banks (Inter-Bank Lending)',
|
||
sub: 'Term loans & credit lines to SCBs',
|
||
code: '4003-LTB',
|
||
opening: '1,580.00',
|
||
current: '1,709.20',
|
||
change: '+129.20',
|
||
changeDir: 'up',
|
||
status: 'Active'
|
||
}
|
||
];
|
||
|
||
liquidAssets = [
|
||
{
|
||
sl: '01',
|
||
name: 'Central Government Securities',
|
||
sub: 'G-Secs held in HTM, AFS & HFT portfolios',
|
||
code: '5001-CGS',
|
||
opening: '6,840.50',
|
||
current: '7,218.40',
|
||
change: '+377.90',
|
||
changeDir: 'up',
|
||
status: 'Active',
|
||
category: 'G-Sec'
|
||
},
|
||
{
|
||
sl: '02',
|
||
name: 'State Development Loans (SDLs)',
|
||
sub: 'State govt bonds — various maturities',
|
||
code: '5002-SDL',
|
||
opening: '2,420.30',
|
||
current: '2,584.60',
|
||
change: '+164.30',
|
||
changeDir: 'up',
|
||
status: 'Active',
|
||
category: 'SDL'
|
||
},
|
||
{
|
||
sl: '03',
|
||
name: 'Treasury Bills (91/182/364 day)',
|
||
sub: 'Short-term govt securities — discounted',
|
||
code: '5003-TB',
|
||
opening: '1,840.20',
|
||
current: '1,962.80',
|
||
change: '+122.60',
|
||
changeDir: 'up',
|
||
status: 'Active',
|
||
category: 'T-Bill'
|
||
},
|
||
{
|
||
sl: '04',
|
||
name: 'Gold (valued at current market)',
|
||
sub: 'Gold reserves held per RBI valuation norms',
|
||
code: '5004-GLD',
|
||
opening: '680.40',
|
||
current: '724.60',
|
||
change: '+44.20',
|
||
changeDir: 'up',
|
||
status: 'Active',
|
||
category: 'Gold'
|
||
},
|
||
{
|
||
sl: '05',
|
||
name: 'Special Deposit Scheme with RBI',
|
||
sub: 'Deposits placed under SDS — SLR eligible',
|
||
code: '5005-SDS',
|
||
opening: '420.00',
|
||
current: '420.00',
|
||
change: '0.00',
|
||
changeDir: 'up',
|
||
status: 'Active',
|
||
category: 'RBI Dep'
|
||
},
|
||
{
|
||
sl: '06',
|
||
name: 'NABARD / SIDBI / NHB Bonds',
|
||
sub: 'PSE bonds approved as SLR-eligible',
|
||
code: '5006-PSE',
|
||
opening: '310.80',
|
||
current: '328.40',
|
||
change: '+17.60',
|
||
changeDir: 'up',
|
||
status: 'Active',
|
||
category: 'PSE Bond'
|
||
}
|
||
];
|
||
|
||
close(): void {
|
||
this.dialogRef.close();
|
||
}
|
||
}
|