Commit Graph
407 Commits
Author SHA1 Message Date
AdityaandClaude Opus 4.6 b4429d04b0 Add Client CKYC backend module with all source, migrations, and static resources
Includes CKYC batch processing, KYC proof types, non-CKYC client APIs,
ReKYC handler, SFTP upload service, and DB migrations (0250-0255).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 13:42:21 +05:30
AdityaandClaude Opus 4.6 011239f399 Fix KYC update on verified records and client address duplication
- Allow KYC updates on VERIFIED records with mandatory remarks for audit trail;
  reset PAN verification when PAN number changes, moving status to IN_PROGRESS
- Fix client address duplicates: deactivate old addresses of same type on
  create/update, persist isActive flag (missing save), filter reads by is_active

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 15:00:37 +05:30
AdityaandClaude Opus 4.6 87e132f93d Add extended fields to ClientNonPersonDetails: authorizedSignatory, additionalInfo, dateOfRegistration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 15:06:45 +05:30
AdityaandClaude Opus 4.6 90c21d40c1 Add CIF number, Occupation Category & Occupation fields to Client module
- Added mandatory unique CIF number (auto-generated as CIF+padded ID)
- Added Occupation Category dropdown (6 categories: Salaried, Business, Professional, Agriculture, Student, Others)
- Added Occupation dropdown (54 occupations mapped to categories)
- Both stored in m_code/m_code_value tables (same pattern as Gender)
- Visible in client create/update API and personal data view
- Includes Liquibase migrations 0227 & 0228
- Added Postman collection for User Management APIs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 18:51:26 +05:30
AdityaandClaude Opus 4.6 ba5365d4af Add all CBS custom modules: KYC, Sanctions, RBI Feed, OpenProject, Mobile Lookup, Charges, Avro schemas
Includes all prior work not yet committed on this branch:
- KYC module (LincPay eKYC: PAN, Aadhaar OTP, GSTIN verification)
- Sanctions screening (UN Security Council consolidated list)
- RBI Feed integration with scheduled jobs
- OpenProject API integration
- Mobile lookup service
- Charge module enhancements (current account support)
- Client family member nominee fields
- Avro schema updates
- Liquibase migrations 0216-0224
- Postman collections for OpenProject, RBI Feeds, Sanctions
- SQL seed scripts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 17:54:10 +05:30
AdityaandClaude Opus 4.6 78f37257a7 Add CFCFRMS (MHA/I4C) Bank API and Simulator module
CFCFRMS integration for cyber fraud complaint management:
- Bank-side: complaint CRUD, lien/freeze/resolve actions, escalation, audit trail, dashboard stats
- Simulator (I4C/MHA): push complaints, hold directives, bulk push, receive updates/escalations, account/transaction verification, bank performance metrics
- Domain: ComplaintTicket, ComplaintAuditLog, CfcfrmsSimulatorLog entities
- Liquibase 0226: 3 tables (MySQL+PostgreSQL), indexes, permissions
- Seed data: 13 realistic complaint tickets + 5 simulator log entries
- JAX-RS endpoints at /v1/cfcfrms/complaints/* and /v1/simulator/cfcfrms/*
- Full Swagger @Operation annotations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 17:49:54 +05:30
AdityaandClaude Opus 4.6 6a464291d5 Add Current Account module mirroring Savings Account infrastructure
- CurrentAccount entity (@DiscriminatorValue 400) extending SavingsAccount
- 4 JAX-RS API resources: /v1/currentaccounts, /v1/currentproducts, transactions, charges
- 38 command handlers delegating to existing savings services
- ~35 CommandWrapperBuilder methods for current account commands
- DB migration 0225 with 67 permissions (CURRENTACCOUNT, CURRENTPRODUCT, CURRENTACCOUNTCHARGE)
- DepositsApiConstants and DepositAccountType enum updated for CURRENT_DEPOSIT

Reuses existing m_savings_account table (deposit_type_enum=400), GL accounting,
interest calculation, and all savings write/read services — no code duplication.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:16:36 +05:30
yuwatidoraandAleksandar Vidakovic 701cfae60b FINERACT 2289: New command processing - Working Days
command base test fix
2026-02-20 21:39:41 +01:00
Ralph HopmanandAdam Saghy 4467f91382 FINERACT-2496: Add Batch API Support for Creating Savings Account Charges 2026-02-19 11:33:27 +00:00
airajenaandAdam Saghy 41da36b1f4 FINERACT-2028: Add audit logging for manual scheduler job execution 2026-02-19 11:25:49 +00:00
Satish11012007andAdam Saghy 89487a8ace FINERACT-1266: Fix potential NPE in determineInterestPostingPeriods 2026-02-19 11:23:42 +00:00
DeathGun44andAdam Saghy ca3e980543 FINERACT-2003: Enforce password reset on first login
:wq
2026-02-19 11:14:17 +00:00
Aleksandar VidakovicandAleksandar Vidakovic ae3e2a6343 FINERACT-2245: New command processing - mix taxonomy 2026-02-18 20:26:51 +01:00
Ashhar Ahmad KhanandAdam Saghy a8ba79d19a FINERACT-2468: Fix datatable operations in PostgreSQL non-public schemas
Use current_schema instead of hardcoded 'public' in getTableIndexes()
and isTablePresent() methods to support multi-tenant PostgreSQL
deployments where datatables reside in tenant-specific schemas.

This fixes:
- GET /datatables returning 404 for new datatables
- Datatable save operations failing with 'Datatable not found'

Root cause: Index metadata queries were looking in 'public' schema
while table columns query correctly used current_schema, causing
inconsistent behavior in GenericDataServiceImpl.

Changes:
- PostgreSQLQueryService.getTableIndexes(): Use current_schema
- PostgreSQLQueryService.isTablePresent(): Use current_schema

Testing:
- All unit tests pass (93/93 in fineract-core)
- Manual PostgreSQL verification confirms fix works correctly
2026-02-18 15:38:50 +00:00
Aleksandar VidakovicandGitHub 3a842ecb9a FINERACT-2243: New command processing - payment type (#5506) 2026-02-18 08:19:29 -06:00
Prakash M SandAdam Saghy 9ca717ffd2 Added empty Line after Class name to pass spotlessJavaCheck 2026-02-18 09:11:08 +00:00
Prakash M SandAdam Saghy b0ec0a667c Removed Trailing spaces in empty lines 2026-02-18 09:11:08 +00:00
Prakash M SandAdam Saghy 2c008e0e65 Aligned formatting with Spotless requirements 2026-02-18 09:11:08 +00:00
Prakash M SandAdam Saghy 8e376c097a Add unit test for SavingsHelper to handle null posting type 2026-02-18 09:11:08 +00:00
Prakash M SandAdam Saghy 2f17c20dfd Add null check for postingPeriodType in SavingsHelper 2026-02-18 09:11:08 +00:00
Abdelrahman MostafaandAdam Saghy 92f8b3d0d4 FINERACT-2491: Refactor SavingsEnumerations to use switch expression 2026-02-17 14:11:32 +00:00
airajenaandAdam Saghy 7daf4b8a84 FINERACT-2005: Prohibit password re-use with configurable global setting 2026-02-17 11:57:28 +00:00
054d18b020 FINERACT-2461: Replace SQL string concatenation with parameterized queries
Fix ~30 SQL injection vulnerabilities across datatable services by
replacing string concatenation with JDBC parameterized queries (?).

Files changed:
- DatatableWriteServiceImpl: parameterized DELETE, INSERT, SELECT queries
- DatatableUtil: parameterized dataScopedSQL, office join conditions
- GenericDataService/Impl: added parameterized fillResultsetRowData overload
- DatatableReadServiceImpl: parameterized countDatatableEntries
- WriteSurveyServiceImpl: removed duplicate vulnerable getPermissionSql
- DepositAccountReadPlatformServiceImpl: added pagination validation

Tests added:
- DatatableUtilTest: 11 tests for parameterized dataScopedSQL and joins
- DatatableWriteServiceImplTest: 7 tests for parameterized CRUD queries
- DatatableReadServiceImplCountTest: 1 test for parameterized count query

Do good with AI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 11:51:55 +00:00
Aleksandar VidakovicandAleksandar Vidakovic 2ff0c62f40 FINERACT-2246: New command processing - document management 2026-02-16 14:56:40 +01:00
Ralph HopmanandGitHub 05662e64d5 FINERACT-2473: Add available balance to group accounts endpoint (#5468) 2026-02-14 16:15:34 -06:00
Ralph HopmanandGitHub 4bb5c02b19 FINERACT-2488: Fix duplicate results in /api/v2/clients/search (#5485) 2026-02-14 13:05:13 -06:00
Jose Alberto HernandezandAleksandar Vidakovic 356dd07ca0 FINERACT-1932: Fineract modularization - fineract-security 2026-02-12 14:01:38 +01:00
Jose Alberto HernandezandAdam Saghy 955222ee82 FINERACT-2421: External Asset Owner create api 2026-02-12 10:58:24 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 02fb166b5b FINERACT-2239: New command processing - resource notes 2026-02-11 00:15:27 +01:00
Jose Alberto HernandezandAdam Saghy 28f63cc20e FINERACT-2418: Loan Originator data with codevalues 2026-02-09 16:42:53 +01:00
8d064ddf6c FINERACT-2452: New command processing - audit
Co-Authored-By: Adam Saghy <adam.saghy@dpc.hu>
Co-Authored-By: Yu Wati Nyi <nyi22y@mtholyoke.edu>
2026-02-05 12:55:05 +01:00
Jose Alberto HernandezandAdam Saghy 1d1876edfd FINERACT-2421: Disbursement charge amount incorrect calculation 2026-02-05 10:41:19 +01:00
Attila BudaiandAdam Saghy 2620c61afa FINERACT-2418: add originator global config 2026-02-05 10:39:41 +01:00
Attila BudaiandAdam Saghy ef12056e5d FINERACT-2418: add originatior association 2026-02-03 14:58:28 +01:00
Attila BudaiandAdam Saghy 3b5ea96f5e FINERACT-2418: add originatior loan mapping 2026-02-03 14:58:28 +01:00
Aman MittalandAdam Saghy 1c90880b7a FINERACT-2421: Refractor - remove ApiResponses annotations (Phase 7) 2026-02-02 19:27:39 +01:00
Adam Saghy 0fd0f977eb FINERACT-2421: Allow hyphens in query params of Batch API calls 2026-01-30 11:37:58 +01:00
Aman-MittalandAdam Saghy 8b24325f84 FINERACT-2421: Refractor redundant and some deprecated code as per new Java 21 style (Phase 5) 2026-01-23 12:15:46 +01:00
Attila BudaiandAdam Saghy 87cad91aa8 FINERACT-2418: add origination-api-skeleton 2026-01-21 13:13:04 +01:00
Adam Saghy 0cb23ac5c5 FINERACT-2437: Decrease the number of compilation warnings 2026-01-20 11:35:33 +01:00
Attila BudaiandAdam Saghy f83ea7ea15 FINERACT-2418: create the loan origination module 2026-01-19 14:14:20 +01:00
Adam Saghy 0891adb267 FINERACT-2421: Rework code value handling in E2E 2026-01-16 17:59:14 +01:00
Adam Saghy 633acf204b FINERACT-2421: Allow reage preview API via Batch API 2026-01-15 13:35:54 +01:00
airajenaandAdam Saghy 07d67493df FINERACT-1266: Fix NullPointerException in SavingsHelper.determineInterestPostingPeriods 2026-01-15 10:10:29 +01:00
airajenaandAdam Saghy d94050d476 FINERACT-2421: Add unit tests for SQLBuilder 2026-01-15 10:08:15 +01:00
Aira JenaandGitHub 3ba476fdc4 FINERACT-2421: Add unit tests for ExternalIdFactory (#5276)
* FINERACT-2421: Add unit tests for ExternalIdFactory

* FINERACT-2421: Fix ambiguous method reference in ExternalIdFactoryTest

Cast null to String to resolve ambiguous method call between
produce(String) and produce(List<String>) overloads.
2026-01-15 10:07:17 +01:00
airajenaandAdam Saghy eaf843a3ac FINERACT-2421: Fix GRETERTHAN typo in ConditionType enum 2026-01-12 13:50:40 +01:00
Víctor RomeroandAdam Saghy ed32c133cc Revert "[#FINERACT-2422] standardize use of aging vs. ageing (#5289)"
This reverts commit 61034e6041.
2026-01-09 16:12:22 +01:00
Aman-MittalandAdam Saghy d1e456ef43 FINERACT-2421: Refractor redundant and some deprecated code as per new Java 21 style (Phase 4) 2026-01-08 22:32:39 +01:00
Kengne-yvanaandGitHub 61034e6041 [#FINERACT-2422] standardize use of aging vs. ageing (#5289) 2026-01-08 10:43:21 -06:00