feat: add Current Account module, DIP verification, charges integration, and translations

- Current Account module with full CRUD, transactions, charges, hold/release, block/unblock
- Current Products management under Products module
- DIP mobile number verification with real API call to /lookup/check
- Sanctions verification dialog
- Charges support for Current Account (chargeAppliesTo=5) in create/edit
- Fixed permissions from SAVINGSACCOUNT to CURRENTACCOUNT across all current account components
- Added all missing translation keys for Current Account in en-US.json

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Aditya
2026-03-17 18:23:37 +05:30
co-authored by Claude Opus 4.6
parent 73aa69ee02
commit 0a32d7135e
210 changed files with 15048 additions and 155 deletions
+19
View File
@@ -490,6 +490,15 @@ export class ClientsService {
return this.http.post(`/clients/${clientId}/kyc`, kycData);
}
/**
* Screen a client name against the UN Security Council consolidated sanctions list.
* @param name The name to screen
* @returns Observable with screening result (status: FLAGGED or CLEAR)
*/
screenSanctions(name: string): Observable<any> {
return this.http.post('/sanctions/screen', { name });
}
/**
* Updates existing KYC details for a client.
* @param clientId Client ID
@@ -550,6 +559,16 @@ export class ClientsService {
return this.http.post(`/clients/${clientId}/ckyc/documents`, formData);
}
/**
* Check mobile number against the DIP (Digital Intelligence Platform) MNRL.
* Calls an external service directly, bypassing Fineract interceptors.
* @param mobileNo Mobile number to verify
*/
checkDipLookup(mobileNo: string): Observable<any> {
const httpParams = new HttpParams().set('mobileNumber', mobileNo);
return this.http.get('/lookup/check', { params: httpParams });
}
getClientForm60(clientId: string): Observable<any> {
return this.http.get(`/clients/${clientId}/form60`);
}