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:
@@ -189,6 +189,23 @@ export class BranchDayComponent implements OnInit {
|
||||
return this.totalOf(this.closeCounts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Savings products whose interest posting report is due today and not yet approved. The close is
|
||||
* refused by the backend while any is pending; this only says so before the user tries.
|
||||
*/
|
||||
interestPending: string[] = [];
|
||||
|
||||
private checkInterestReports(): void {
|
||||
if (!this.openDay?.businessDate) {
|
||||
this.interestPending = [];
|
||||
return;
|
||||
}
|
||||
this.service
|
||||
.interestDayCloseCheck(this.openDay.businessDate, this.openDay.officeId)
|
||||
.pipe(catchError(() => of(null)))
|
||||
.subscribe((res) => (this.interestPending = res?.pendingProducts ?? []));
|
||||
}
|
||||
|
||||
load(): void {
|
||||
this.loading = true;
|
||||
this.errorMsg = '';
|
||||
@@ -210,6 +227,7 @@ export class BranchDayComponent implements OnInit {
|
||||
this.canOperate = !!res?.canOperate;
|
||||
this.openDate = this.today;
|
||||
this.checkFirstOpenCashMigration();
|
||||
this.checkInterestReports();
|
||||
});
|
||||
|
||||
this.service
|
||||
|
||||
Reference in New Issue
Block a user