feat: update TDS config, RBI reserve returns, current products, and dormancy reports

This commit is contained in:
2026-09-24 18:07:54 +05:30
parent 1eaa8cc8cf
commit be35f3cbc3
66 changed files with 5474 additions and 565 deletions
@@ -60,4 +60,75 @@ export class RbiCircularsService {
getShareCapitalReturnYears(): Observable<any> {
return this.http.get('/shareproducts/capital-return/financial-years');
}
/**
* Form 1 — CRR, computed live from the ledger for the fortnight the reporting date falls in.
*
* The DTL base and the balances maintained are read as at different dates: the base lags by 45
* days (snapped back to a reporting Friday), the holdings are as at the reporting date itself.
* The response's `basis` block states both, so the lag is auditable rather than implied.
*
* @param reportingDate yyyy-MM-dd. Defaults to the current business date on the backend.
* @param officeId Optional — scopes every figure to one office.
*/
getForm1(reportingDate?: string, officeId?: number): Observable<any> {
let params = new HttpParams();
if (reportingDate) {
params = params.set('reportingDate', reportingDate);
}
if (officeId != null) {
params = params.set('officeId', String(officeId));
}
return this.http.get('/rbireservereturn/form1', { params });
}
/**
* Form 9 — SLR, computed live on the month-end position. Any date within a month resolves to that
* month's end, since the return reports the position at close.
*/
getForm9(reportingDate?: string, officeId?: number): Observable<any> {
let params = new HttpParams();
if (reportingDate) {
params = params.set('reportingDate', reportingDate);
}
if (officeId != null) {
params = params.set('officeId', String(officeId));
}
return this.http.get('/rbireservereturn/form9', { params });
}
/**
* OSS 1 — Return on Assets and Liabilities, computed live from the ledger.
*
* Every figure is a closing balance as at the quarter end; the bank's own particulars come from
* the institution profile. Any date inside a quarter resolves to that quarter, so a caller never
* has to know which day a quarter ends on.
*
* @param quarterEndDate yyyy-MM-dd — any date in the quarter. Defaults to the business date.
* @param officeId Optional — scopes every figure to one office.
*/
getOss1(quarterEndDate?: string, officeId?: number): Observable<any> {
return this.http.get('/ossreturn/oss1', { params: this.ossParams(quarterEndDate, officeId) });
}
/**
* OSS 2 — Return on Earnings, computed live from the ledger.
*
* Earnings lines report the movement over the quarter rather than a closing balance, so the same
* accounts read as balances would carry forward every earlier quarter's income as well.
*/
getOss2(quarterEndDate?: string, officeId?: number): Observable<any> {
return this.http.get('/ossreturn/oss2', { params: this.ossParams(quarterEndDate, officeId) });
}
private ossParams(quarterEndDate?: string, officeId?: number): HttpParams {
let params = new HttpParams();
if (quarterEndDate) {
params = params.set('quarterEndDate', quarterEndDate);
}
if (officeId != null) {
params = params.set('officeId', String(officeId));
}
return params;
}
}