feat(rbi-reserve,savings): Form 1/Form 9 returns UI, branch-wise interest posting reports and summary

- Reports > Interest Posting Reports: per branch and product, generate/regenerate
  at any time, approve; branch column, HO-on-behalf marker, posted txn per account
- Reports > Interest Posting Summary (branch-wise) for the head office, with Excel export
- Day Close warns and disables Close Day while the branch's interest report is unapproved
- Savings product accounting: Interest On Savings (expense), Savings Interest Payable
  and Paid (liability rows, required)
- RBI Form 1 statutory and Form 9 return screens, reserve config updates
- Interest posting report GETs exempted from the response cache

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-01 13:20:01 +05:30
co-authored by Claude Opus 5.5
parent 4f02f24aae
commit b6994c0b76
39 changed files with 4407 additions and 245 deletions
+16
View File
@@ -76,6 +76,22 @@ const routes: Routes = [
loadComponent: () =>
import('../interest-report/interest-report.component').then((m) => m.InterestReportComponent)
},
{
path: 'interest-posting-summary',
data: { title: 'Interest Posting Summary', breadcrumb: 'Interest Posting Summary' },
loadComponent: () =>
import('../interest-posting-summary/interest-posting-summary.component').then(
(m) => m.InterestPostingSummaryComponent
)
},
{
path: 'interest-posting',
data: { title: 'Interest Posting Reports', breadcrumb: 'Interest Posting Reports' },
loadComponent: () =>
import('../interest-posting-report/interest-posting-report.component').then(
(m) => m.InterestPostingReportComponent
)
},
{
path: 'dormancy',
data: { title: 'Inactive, Dormant & DEAF', breadcrumb: 'Inactive, Dormant & DEAF' },