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:
co-authored by
Claude Opus 4.7
parent
634003a75c
commit
12bfc81219
@@ -22,7 +22,13 @@
|
||||
<strong>{{ reportingDateStr }}</strong>
|
||||
<span>Reporting Fortnight (45-day lag)</span>
|
||||
</div>
|
||||
<a class="rbi-circular-btn" href="https://www.rbi.org.in/scripts/bs_circularindexdisplay.aspx" target="_blank" rel="noopener noreferrer" matTooltip="View RBI Circulars">
|
||||
<a
|
||||
class="rbi-circular-btn"
|
||||
href="https://www.rbi.org.in/scripts/bs_circularindexdisplay.aspx"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
matTooltip="View RBI Circulars"
|
||||
>
|
||||
<fa-icon icon="external-link-alt"></fa-icon>
|
||||
RBI Circulars
|
||||
</a>
|
||||
@@ -56,8 +62,8 @@
|
||||
</div>
|
||||
<div class="summary-card sc-crr">
|
||||
<div class="sc-label">CRR Required ({{ crrRate }}%)</div>
|
||||
<div class="sc-value">₹{{ crrRequired | number:'1.0-0' }}<span class="cr">Cr</span></div>
|
||||
<div class="sc-sub">SLR Req: ₹{{ slrRequired | number:'1.0-0' }} Cr ({{ slrRate }}%)</div>
|
||||
<div class="sc-value">₹{{ crrRequired | number: '1.0-0' }}<span class="cr">Cr</span></div>
|
||||
<div class="sc-sub">SLR Req: ₹{{ slrRequired | number: '1.0-0' }} Cr ({{ slrRate }}%)</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -104,11 +110,15 @@
|
||||
<td class="mono">{{ item.code }}</td>
|
||||
<td class="right amt amt-demand">{{ item.opening }}</td>
|
||||
<td class="right amt amt-demand">{{ item.current }}</td>
|
||||
<td class="right" [class.up]="item.changeDir === 'up'" [class.dn]="item.changeDir === 'dn'">{{ item.change }}</td>
|
||||
<td class="right" [class.up]="item.changeDir === 'up'" [class.dn]="item.changeDir === 'dn'">
|
||||
{{ item.change }}
|
||||
</td>
|
||||
<td>
|
||||
<span class="status-chip"
|
||||
<span
|
||||
class="status-chip"
|
||||
[class.chip-active]="item.status === 'Active'"
|
||||
[class.chip-overdue]="item.status === 'Overdue' || item.status === 'Unclaimed'">
|
||||
[class.chip-overdue]="item.status === 'Overdue' || item.status === 'Unclaimed'"
|
||||
>
|
||||
{{ item.status }}
|
||||
</span>
|
||||
</td>
|
||||
@@ -155,11 +165,15 @@
|
||||
<td class="mono">{{ item.code }}</td>
|
||||
<td class="right amt amt-time">{{ item.opening }}</td>
|
||||
<td class="right amt amt-time">{{ item.current }}</td>
|
||||
<td class="right" [class.up]="item.changeDir === 'up'" [class.dn]="item.changeDir === 'dn'">{{ item.change }}</td>
|
||||
<td class="right" [class.up]="item.changeDir === 'up'" [class.dn]="item.changeDir === 'dn'">
|
||||
{{ item.change }}
|
||||
</td>
|
||||
<td>
|
||||
<span class="status-chip"
|
||||
<span
|
||||
class="status-chip"
|
||||
[class.chip-active]="item.status === 'Active'"
|
||||
[class.chip-locked]="item.status === 'Locked'">
|
||||
[class.chip-locked]="item.status === 'Locked'"
|
||||
>
|
||||
{{ item.status }}
|
||||
</span>
|
||||
</td>
|
||||
@@ -206,14 +220,20 @@
|
||||
<td class="mono">{{ item.code }}</td>
|
||||
<td class="right amt amt-asset">{{ item.opening }}</td>
|
||||
<td class="right amt amt-asset">{{ item.current }}</td>
|
||||
<td class="right" [class.up]="item.changeDir === 'up'" [class.dn]="item.changeDir === 'dn'">{{ item.change }}</td>
|
||||
<td><span class="status-chip chip-active">{{ item.status }}</span></td>
|
||||
<td class="right" [class.up]="item.changeDir === 'up'" [class.dn]="item.changeDir === 'dn'">
|
||||
{{ item.change }}
|
||||
</td>
|
||||
<td>
|
||||
<span class="status-chip chip-active">{{ item.status }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="3"><strong>Total Assets with Banking System</strong> <span class="deduct-tag">( Deducted from NDTL )</span></td>
|
||||
<td colspan="3">
|
||||
<strong>Total Assets with Banking System</strong> <span class="deduct-tag">( Deducted from NDTL )</span>
|
||||
</td>
|
||||
<td class="right foot-asset">7,600.70</td>
|
||||
<td class="right foot-asset">8,240.20</td>
|
||||
<td class="right up">+639.50</td>
|
||||
@@ -226,7 +246,9 @@
|
||||
|
||||
<!-- SLR - Liquid Assets Table -->
|
||||
@if (activeTab === 'slr') {
|
||||
<div class="section-desc">SLR = (Liquid Assets / NDTL) × 100 — RBI Sec 24(2A) of Banking Regulation Act, 1949</div>
|
||||
<div class="section-desc">
|
||||
SLR = (Liquid Assets / NDTL) × 100 — RBI Sec 24(2A) of Banking Regulation Act, 1949
|
||||
</div>
|
||||
<div class="table-wrap">
|
||||
<table>
|
||||
<thead>
|
||||
@@ -250,11 +272,17 @@
|
||||
<div class="item-sub">{{ item.sub }}</div>
|
||||
</td>
|
||||
<td class="mono">{{ item.code }}</td>
|
||||
<td><span class="status-chip chip-slr">{{ item.category }}</span></td>
|
||||
<td>
|
||||
<span class="status-chip chip-slr">{{ item.category }}</span>
|
||||
</td>
|
||||
<td class="right amt amt-slr">{{ item.opening }}</td>
|
||||
<td class="right amt amt-slr">{{ item.current }}</td>
|
||||
<td class="right" [class.up]="item.changeDir === 'up'" [class.dn]="item.changeDir === 'dn'">{{ item.change }}</td>
|
||||
<td><span class="status-chip chip-active">{{ item.status }}</span></td>
|
||||
<td class="right" [class.up]="item.changeDir === 'up'" [class.dn]="item.changeDir === 'dn'">
|
||||
{{ item.change }}
|
||||
</td>
|
||||
<td>
|
||||
<span class="status-chip chip-active">{{ item.status }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
@@ -286,9 +314,9 @@
|
||||
<div class="formula-term-sub">Net Demand & Time</div>
|
||||
</div>
|
||||
<div class="formula-op">×</div>
|
||||
<div class="formula-term" style="border-color:#e2e8f0;background:#f8fafc;">
|
||||
<div class="formula-term-label" style="color:#64748b;">100</div>
|
||||
<div class="formula-term-val" style="color:#334155;">100</div>
|
||||
<div class="formula-term" style="border-color: #e2e8f0; background: #f8fafc">
|
||||
<div class="formula-term-label" style="color: #64748b">100</div>
|
||||
<div class="formula-term-val" style="color: #334155">100</div>
|
||||
<div class="formula-term-sub"> </div>
|
||||
</div>
|
||||
<div class="formula-op equals">=</div>
|
||||
@@ -304,20 +332,25 @@
|
||||
<div class="slr-status-bar">
|
||||
<div class="slr-status-left">
|
||||
<div class="slr-status-title">SLR Compliance Status</div>
|
||||
<div class="slr-status-desc">Actual: {{ slrActualPercent }}% · Required: {{ slrRate }}.00% · NDTL: ₹{{ ndtl | number:'1.2-2' }} Cr</div>
|
||||
<div class="slr-status-desc">
|
||||
Actual: {{ slrActualPercent }}% · Required: {{ slrRate }}.00% · NDTL: ₹{{
|
||||
ndtl | number: '1.2-2'
|
||||
}}
|
||||
Cr
|
||||
</div>
|
||||
</div>
|
||||
<div class="slr-status-calcs">
|
||||
<div class="slr-calc">
|
||||
<div class="slr-calc-label">SLR Required ({{ slrRate }}%)</div>
|
||||
<div class="slr-calc-val">₹{{ slrRequired | number:'1.2-2' }} Cr</div>
|
||||
<div class="slr-calc-val">₹{{ slrRequired | number: '1.2-2' }} Cr</div>
|
||||
</div>
|
||||
<div class="slr-calc">
|
||||
<div class="slr-calc-label">Liquid Assets Held</div>
|
||||
<div class="slr-calc-val">₹{{ totalLiquidAssets | number:'1.2-2' }} Cr</div>
|
||||
<div class="slr-calc-val">₹{{ totalLiquidAssets | number: '1.2-2' }} Cr</div>
|
||||
</div>
|
||||
<div class="slr-calc">
|
||||
<div class="slr-calc-label">Surplus</div>
|
||||
<div class="slr-calc-val surplus">₹{{ slrSurplus | number:'1.2-2' }} Cr</div>
|
||||
<div class="slr-calc-val surplus">₹{{ slrSurplus | number: '1.2-2' }} Cr</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -325,29 +358,31 @@
|
||||
|
||||
<!-- NDTL Formula Block -->
|
||||
<div class="formula-block">
|
||||
<div class="formula-title">NDTL Computation — Formula Breakdown · Data as of {{ reportingDateStr }}</div>
|
||||
<div class="formula-title">
|
||||
NDTL Computation — Formula Breakdown · Data as of {{ reportingDateStr }}
|
||||
</div>
|
||||
<div class="formula-row">
|
||||
<div class="formula-term ft-demand">
|
||||
<div class="formula-term-label">Demand Liabilities</div>
|
||||
<div class="formula-term-val">₹{{ totalDemand | number:'1.2-2' }}</div>
|
||||
<div class="formula-term-val">₹{{ totalDemand | number: '1.2-2' }}</div>
|
||||
<div class="formula-term-sub">16 line items</div>
|
||||
</div>
|
||||
<div class="formula-op">+</div>
|
||||
<div class="formula-term ft-time">
|
||||
<div class="formula-term-label">Time Liabilities</div>
|
||||
<div class="formula-term-val">₹{{ totalTime | number:'1.2-2' }}</div>
|
||||
<div class="formula-term-val">₹{{ totalTime | number: '1.2-2' }}</div>
|
||||
<div class="formula-term-sub">13 line items</div>
|
||||
</div>
|
||||
<div class="formula-op minus">−</div>
|
||||
<div class="formula-term ft-asset">
|
||||
<div class="formula-term-label">Assets with Banking</div>
|
||||
<div class="formula-term-val">₹{{ totalBankingAssets | number:'1.2-2' }}</div>
|
||||
<div class="formula-term-val">₹{{ totalBankingAssets | number: '1.2-2' }}</div>
|
||||
<div class="formula-term-sub">3 line items</div>
|
||||
</div>
|
||||
<div class="formula-op equals">=</div>
|
||||
<div class="formula-term ft-ndtl">
|
||||
<div class="formula-term-label">NDTL</div>
|
||||
<div class="formula-term-val">₹{{ ndtl | number:'1.2-2' }}</div>
|
||||
<div class="formula-term-val">₹{{ ndtl | number: '1.2-2' }}</div>
|
||||
<div class="formula-term-sub">CRR & SLR base</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -357,20 +392,22 @@
|
||||
<div class="crr-bar">
|
||||
<div class="crr-text">
|
||||
<div class="crr-title">CRR & SLR Reserve Requirements — RBI Computation on NDTL</div>
|
||||
<div class="crr-desc">Based on NDTL of ₹{{ ndtl | number:'1.2-2' }} Cr · Data as of {{ reportingDateStr }} (45-day lag)</div>
|
||||
<div class="crr-desc">
|
||||
Based on NDTL of ₹{{ ndtl | number: '1.2-2' }} Cr · Data as of {{ reportingDateStr }} (45-day lag)
|
||||
</div>
|
||||
</div>
|
||||
<div class="crr-calcs">
|
||||
<div class="crr-calc">
|
||||
<div class="crr-calc-label">CRR @ {{ crrRate }}.00%</div>
|
||||
<div class="crr-calc-val">₹{{ crrRequired | number:'1.2-2' }} Cr</div>
|
||||
<div class="crr-calc-val">₹{{ crrRequired | number: '1.2-2' }} Cr</div>
|
||||
</div>
|
||||
<div class="crr-calc">
|
||||
<div class="crr-calc-label">SLR @ {{ slrRate }}.00%</div>
|
||||
<div class="crr-calc-val">₹{{ slrRequired | number:'1.2-2' }} Cr</div>
|
||||
<div class="crr-calc-val">₹{{ slrRequired | number: '1.2-2' }} Cr</div>
|
||||
</div>
|
||||
<div class="crr-calc">
|
||||
<div class="crr-calc-label">Total Reserve</div>
|
||||
<div class="crr-calc-val">₹{{ totalReserve | number:'1.2-2' }} Cr</div>
|
||||
<div class="crr-calc-val">₹{{ totalReserve | number: '1.2-2' }} Cr</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user