Ralph Hopman created FINERACT-2498:
--------------------------------------
Summary: Add GROUP as a Guarantor Type to Support Group Savings
Accounts as Loan Collateral
Key: FINERACT-2498
URL: https://issues.apache.org/jira/browse/FINERACT-2498
Project: Apache Fineract
Issue Type: Improvement
Components: Savings
Reporter: Ralph Hopman
Assignee: Ralph Hopman
Currently, the guarantor functionality only supports three types:
* *CUSTOMER (1)* - Existing clients
* *STAFF (2)* - Staff members
* *EXTERNAL (3)* - External persons
The system allows *group savings accounts* to be used as loan collateral
through guarantors, but there is no proper GROUP guarantor type. This causes
validation failures when attempting to use a group savings account as
collateral because the validation logic tries to find a *client* with the
group's ID, resulting in "entity not found" errors when client and group IDs
don't overlap.
The test {{testOnHoldTransactionsApiForGroupSavingsAccount}} in
{{GroupSavingsIntegrationTest}} currently fails in CI when there are
non-overlapping IDs between {{m_client}} and {{m_group}} tables.
Tests and implementations incorrectly use {{guarantorTypeId = 1}}
(CUSTOMER/CLIENT) with a group entity ID, which only works by coincidence when
client and group IDs happen to overlap.
h2. Proposed Solution
Add *GROUP (4)* as a new guarantor type with proper validation support
throughout the codebase to correctly handle group savings accounts as loan
collateral.
This solution is {*}backward compatible{*}: Existing API clients using types 1,
2, or 3 will continue to work unchanged. Type 4 is purely additive.
h2. Testing
# Integration test
{{GroupSavingsIntegrationTest.testOnHoldTransactionsApiForGroupSavingsAccount}}
should pass with non-overlapping client/group IDs
# New test using {{GuarantorTestBuilder.existingGroupWithGuaranteeAmount()}}
to test group guarantors
--
This message was sent by Atlassian Jira
(v8.20.10#820010)