This is an automated email from the ASF dual-hosted git repository.
arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 9ba17bf79a FINERACT-2326: Delinquent section in loan details using
associations
9ba17bf79a is described below
commit 9ba17bf79a284c9c9ebf480240bc92fc450b43c2
Author: Jose Alberto Hernandez <[email protected]>
AuthorDate: Fri Aug 29 22:29:22 2025 -0500
FINERACT-2326: Delinquent section in loan details using associations
---
.../test/messaging/event/EventCheckHelper.java | 2 +-
.../test/stepdef/loan/LoanDelinquencyStepDef.java | 18 +++++++++---------
.../apache/fineract/test/stepdef/loan/LoanStepDef.java | 4 ++--
.../portfolio/loanaccount/api/LoansApiResource.java | 7 ++++++-
4 files changed, 18 insertions(+), 13 deletions(-)
diff --git
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/event/EventCheckHelper.java
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/event/EventCheckHelper.java
index 7109585595..ec1e1fcef8 100644
---
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/event/EventCheckHelper.java
+++
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/event/EventCheckHelper.java
@@ -499,7 +499,7 @@ public class EventCheckHelper {
}
public void loanAccountDelinquencyPauseChangedBusinessEventCheck(Long
loanId) throws IOException {
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "all", "", "").execute();
List<GetLoansLoanIdDelinquencyPausePeriod>
delinquencyPausePeriodsActual = loanDetails.body().getDelinquent()
.getDelinquencyPausePeriods();
diff --git
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanDelinquencyStepDef.java
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanDelinquencyStepDef.java
index 504633f829..65d186c6e3 100644
---
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanDelinquencyStepDef.java
+++
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanDelinquencyStepDef.java
@@ -94,7 +94,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef {
Response<PostLoansResponse> loanResponse =
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
long loanId = loanResponse.body().getLoanId();
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetails);
Integer loanStatus = loanDetails.body().getStatus().getId();
@@ -517,7 +517,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef
{
Response<PostLoansResponse> loanResponse =
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
long loanId = loanResponse.body().getLoanId();
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetails);
List<GetLoansLoanIdLoanInstallmentLevelDelinquency>
installmentLevelDelinquency = loanDetails.body().getDelinquent()
.getInstallmentLevelDelinquency() == null ? null :
loanDetails.body().getDelinquent().getInstallmentLevelDelinquency();
@@ -534,7 +534,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef
{
String expectedDelinquencyRangeValue =
expectedDelinquencyRange.getValue();
expectedValuesList.set(0, expectedDelinquencyRangeValue);
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetails);
String actualDelinquencyRangeValue =
loanDetails.body().getDelinquencyRange() == null ? "NO_DELINQUENCY"
: loanDetails.body().getDelinquencyRange().getClassification();
@@ -559,7 +559,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef
{
String expectedDelinquencyRangeValue =
expectedDelinquencyRange.getValue();
expectedValuesList.set(0, expectedDelinquencyRangeValue);
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetails);
String actualDelinquencyRangeValue =
loanDetails.body().getDelinquencyRange() == null ? "NO_DELINQUENCY"
@@ -581,7 +581,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef
{
Response<PostLoansResponse> loanResponse =
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
long loanId = loanResponse.body().getLoanId();
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetails);
List<GetLoansLoanIdLoanInstallmentLevelDelinquency>
installmentLevelDelinquency = loanDetails.body().getDelinquent()
.getInstallmentLevelDelinquency();
@@ -612,7 +612,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef
{
long loanId = loanResponse.body().getLoanId();
List<List<String>> expectedData = table.asLists();
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetails);
List<GetLoansLoanIdDelinquencyPausePeriod> delinquencyPausePeriods =
loanDetails.body().getDelinquent()
@@ -639,7 +639,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef
{
Response<PostLoansResponse> loanResponse =
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
long loanId = loanResponse.body().getLoanId();
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetails);
String actualDate =
FORMATTER.format(loanDetails.body().getDelinquent().getNextPaymentDueDate());
@@ -669,7 +669,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef
{
Response<PostLoansResponse> loanResponse =
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
long loanId = loanResponse.body().getLoanId();
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
DelinquencyRangeData delinquencyRange =
loanDetails.body().getDelinquencyRange();
GetLoansLoanIdDelinquencySummary delinquent =
loanDetails.body().getDelinquent();
@@ -741,7 +741,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef
{
Response<PostLoansResponse> loanResponse =
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
long loanId = loanResponse.body().getLoanId();
- Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetails);
Double expectedLastRepaymentAmount1 =
Double.valueOf(expectedLastRepaymentAmount);
diff --git
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
index 9b715b1d8d..9193440837 100644
---
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
+++
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
@@ -2210,7 +2210,7 @@ public class LoanStepDef extends AbstractStepDef {
Response<PostLoansResponse> loanCreateResponse =
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
long loanId = loanCreateResponse.body().getLoanId();
- Response<GetLoansLoanIdResponse> loanDetailsResponse =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ Response<GetLoansLoanIdResponse> loanDetailsResponse =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetailsResponse);
testContext().set(TestContextKey.LOAN_RESPONSE, loanDetailsResponse);
@@ -3299,7 +3299,7 @@ public class LoanStepDef extends AbstractStepDef {
assert loanResponse.body() != null;
final long loanId = loanResponse.body().getLoanId();
- final Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "", "", "").execute();
+ final Response<GetLoansLoanIdResponse> loanDetails =
loansApi.retrieveLoan(loanId, false, "collection", "", "").execute();
ErrorHelper.checkSuccessfulApiCall(loanDetails);
assert loanDetails.body() != null;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java
index 5861a8d7ab..7e9ca5252c 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java
@@ -1037,7 +1037,7 @@ public class LoansApiResource {
List<LoanTermVariationsData> loanTermVariations = null;
Collection<LoanCollateralResponseData> loanCollateralManagements;
Collection<LoanCollateralManagementData> loanCollateralManagementData
= new ArrayList<>();
- CollectionData collectionData =
this.delinquencyReadPlatformService.calculateLoanCollectionData(resolvedLoanId);
+ CollectionData collectionData = null;
final Set<String> mandatoryResponseParameters = new HashSet<>();
final Set<String> associationParameters =
ApiParameterHelper.extractAssociationsForResponseIfProvided(uriInfo.getQueryParameters());
@@ -1062,6 +1062,11 @@ public class LoansApiResource {
}
}
+ if
(associationParameters.contains(DataTableApiConstant.collectionAssociateParamName))
{
+
mandatoryResponseParameters.add(DataTableApiConstant.collectionAssociateParamName);
+ collectionData =
this.delinquencyReadPlatformService.calculateLoanCollectionData(resolvedLoanId);
+ }
+
if
(associationParameters.contains(DataTableApiConstant.transactionsAssociateParamName))
{
mandatoryResponseParameters.add(DataTableApiConstant.transactionsAssociateParamName);
loanRepayments =
this.loanReadPlatformService.retrieveLoanTransactions(resolvedLoanId);