Skip to content

Commit 593eded

Browse files
committed
FINERACT-2649: revert Month enum, fix swagger, remove HashMap wrappers, simplify runAt
1 parent 13dc9db commit 593eded

39 files changed

Lines changed: 720 additions & 818 deletions

File tree

fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanRepaymentStepDef.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@
4141
import org.apache.fineract.client.models.GetLoansLoanIdRepaymentPeriod;
4242
import org.apache.fineract.client.models.GetLoansLoanIdResponse;
4343
import org.apache.fineract.client.models.GetLoansLoanIdTransactions;
44-
import org.apache.fineract.client.models.GetLoansLoanIdTransactionsTemplateResponse;
4544
import org.apache.fineract.client.models.GetLoansLoanIdTransactionsTransactionIdResponse;
4645
import org.apache.fineract.client.models.GetUsersUserIdResponse;
46+
import org.apache.fineract.client.models.LoanTransactionData;
4747
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsRequest;
4848
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsResponse;
4949
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsTransactionIdRequest;
@@ -631,10 +631,10 @@ public void adjustNthRepayment(String nthItemStr, String transactionDate, String
631631

632632
public Double getLoanTransactionAmountToPayOff(PostLoansResponse loanResponse, String transactionDate) {
633633
long loanId1 = loanResponse.getLoanId();
634-
GetLoansLoanIdTransactionsTemplateResponse response = ok(
634+
LoanTransactionData response = ok(
635635
() -> fineractClient.loanTransactions().retrieveTemplateLoanTransaction(loanId1, Map.<String, Object>of("command",
636636
"prepayLoan", "dateFormat", DATE_FORMAT, "transactionDate", transactionDate, "locale", DEFAULT_LOCALE)));
637-
return response.getAmount();
637+
return response.getAmount() != null ? response.getAmount().doubleValue() : null;
638638
}
639639

640640
@When("Loan Pay-off is made on {string}")

fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanTransactionsApiResource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public class LoanTransactionsApiResource {
132132
+ "\n" + "loans/1/transactions/template?command=charge-off" + "\n" + "loans/1/transactions/template?command=downPayment" + "\n"
133133
+ "loans/1/transactions/template?command=interest-refund")
134134
@ApiResponses({
135-
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = LoanTransactionsApiResourceSwagger.GetLoansLoanIdTransactionsTemplateResponse.class))) })
135+
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = LoanTransactionData.class))) })
136136
public String retrieveTransactionTemplate(@PathParam("loanId") @Parameter(description = "loanId", required = true) final Long loanId,
137137
@QueryParam("command") @Parameter(description = "command") final String commandParam, @Context final UriInfo uriInfo,
138138
@QueryParam("dateFormat") @Parameter(description = "dateFormat") final String rawDateFormat,
@@ -162,7 +162,7 @@ public String retrieveTransactionTemplate(@PathParam("loanId") @Parameter(descri
162162
+ "\n" + "loans/1/transactions/template?command=charge-off" + "\n" + "loans/1/transactions/template?command=downPayment" + "\n"
163163
+ "loans/1/transactions/template?command=interest-refund")
164164
@ApiResponses({
165-
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = LoanTransactionsApiResourceSwagger.GetLoansLoanIdTransactionsTemplateResponse.class))) })
165+
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = LoanTransactionData.class))) })
166166
public String retrieveTransactionTemplate(
167167
@PathParam("loanExternalId") @Parameter(description = "loanExternalId", required = true) final String loanExternalId,
168168
@QueryParam("command") @Parameter(description = "command") final String commandParam, @Context final UriInfo uriInfo,

fineract-provider/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626

2727
import java.math.BigDecimal;
2828
import java.time.LocalDate;
29-
import java.time.Month;
3029
import java.time.OffsetDateTime;
3130
import java.time.ZoneId;
3231
import java.util.Arrays;
@@ -205,7 +204,7 @@ public void testGetLastUserTransaction() {
205204
@Test
206205
public void testTransactionComparator() {
207206
final Loan loan = new Loan();
208-
LocalDate today = LocalDate.of(2023, Month.OCTOBER, 12);
207+
LocalDate today = LocalDate.of(2023, 10, 12);
209208
OffsetDateTime now = DateUtils.getAuditOffsetDateTime();
210209

211210
LoanTransaction lt1 = new LoanTransaction();
@@ -275,7 +274,7 @@ private LoanCharge buildLoanCharge() {
275274
loanCharge.setAmountOutstanding(new BigDecimal(100));
276275
loanCharge.setChargeTime(ChargeTimeType.TRANCHE_DISBURSEMENT.getValue());
277276
loanCharge.setChargeCalculation(ChargeCalculationType.FLAT.getValue());
278-
loanCharge.setDueDate(LocalDate.of(2022, Month.JUNE, 27));
277+
loanCharge.setDueDate(LocalDate.of(2022, 6, 27));
279278
loanCharge.setChargePaymentMode(ChargePaymentMode.REGULAR.getValue());
280279
loanCharge.setPercentage(null);
281280
loanCharge.setAmountPercentageAppliedTo(null);

integration-tests/src/test/java/org/apache/fineract/integrationtests/AdvancedPaymentAllocationLoanRepaymentScheduleTest.java

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@
5353
import org.apache.fineract.client.models.GetLoansLoanIdRepaymentPeriod;
5454
import org.apache.fineract.client.models.GetLoansLoanIdResponse;
5555
import org.apache.fineract.client.models.GetLoansLoanIdTransactions;
56-
import org.apache.fineract.client.models.GetLoansLoanIdTransactionsTemplateResponse;
5756
import org.apache.fineract.client.models.GetLoansLoanIdTransactionsTransactionIdResponse;
5857
import org.apache.fineract.client.models.LoanProduct;
58+
import org.apache.fineract.client.models.LoanTransactionData;
5959
import org.apache.fineract.client.models.PaymentAllocationOrder;
6060
import org.apache.fineract.client.models.PostClientsResponse;
6161
import org.apache.fineract.client.models.PostCreateRescheduleLoansRequest;
@@ -278,8 +278,8 @@ public void uc2() {
278278
assertTrue(loanDetails.getStatus().getOverpaid());
279279

280280
// Loan Repayment (after) Overpaid
281-
GetLoansLoanIdTransactionsTemplateResponse transactionAfter = loanTransactionHelper
282-
.retrieveTransactionTemplate(loanResponse.getLoanId(), "repayment", DATETIME_PATTERN, "15 February 2023", LOCALE);
281+
LoanTransactionData transactionAfter = loanTransactionHelper.retrieveTransactionTemplate(loanResponse.getLoanId(), "repayment",
282+
DATETIME_PATTERN, "15 February 2023", LOCALE);
283283
assertNotNull(transactionAfter);
284284
});
285285
}
@@ -350,8 +350,8 @@ public void uc3() {
350350
assertTrue(loanDetails.getStatus().getOverpaid());
351351

352352
// Loan Repayment (after) Overpaid
353-
GetLoansLoanIdTransactionsTemplateResponse transactionAfter = loanTransactionHelper
354-
.retrieveTransactionTemplate(loanResponse.getLoanId(), "repayment", DATETIME_PATTERN, "15 February 2023", LOCALE);
353+
LoanTransactionData transactionAfter = loanTransactionHelper.retrieveTransactionTemplate(loanResponse.getLoanId(), "repayment",
354+
DATETIME_PATTERN, "15 February 2023", LOCALE);
355355
assertNotNull(transactionAfter);
356356
});
357357
}
@@ -487,14 +487,14 @@ public void repaymentTemplateReturnsNextUnpaidInstallmentAmount() {
487487
// Repayment template must point to installment 3 (next unpaid), not installment 2 (fully paid)
488488
// Before the fix, this would return 0.0 because the query always picked the lowest installment
489489
// number with outstanding balance, which after partial repayment could be a fully satisfied one
490-
final GetLoansLoanIdTransactionsTemplateResponse transactionTemplate = loanTransactionHelper
491-
.retrieveTransactionTemplate(loanResponse.getLoanId(), "repayment", DATETIME_PATTERN, "16 January 2023", LOCALE);
490+
final LoanTransactionData transactionTemplate = loanTransactionHelper.retrieveTransactionTemplate(loanResponse.getLoanId(),
491+
"repayment", DATETIME_PATTERN, "16 January 2023", LOCALE);
492492
assertNotNull(transactionTemplate);
493-
assertEquals(125.0, transactionTemplate.getAmount());
494-
assertEquals(125.0, transactionTemplate.getPrincipalPortion());
495-
assertEquals(0.0, transactionTemplate.getInterestPortion());
496-
assertEquals(0.0, transactionTemplate.getFeeChargesPortion());
497-
assertEquals(0.0, transactionTemplate.getPenaltyChargesPortion());
493+
assertEquals(125.0, transactionTemplate.getAmount().doubleValue());
494+
assertEquals(125.0, transactionTemplate.getPrincipalPortion().doubleValue());
495+
assertEquals(0.0, transactionTemplate.getInterestPortion().doubleValue());
496+
assertEquals(0.0, transactionTemplate.getFeeChargesPortion().doubleValue());
497+
assertEquals(0.0, transactionTemplate.getPenaltyChargesPortion().doubleValue());
498498
});
499499
}
500500

@@ -5933,22 +5933,22 @@ public void uc153() {
59335933
.externalId(transactionExternalId).chargeOffReasonId((long) chargeOffReasonId));
59345934

59355935
// Loan Prepayment (before) Charge-Off transaction - With Interest Recalculation
5936-
GetLoansLoanIdTransactionsTemplateResponse transactionBefore = loanTransactionHelper
5937-
.retrieveTransactionTemplate(createdLoanId.get(), "prepayLoan", "dd MMMM yyyy", "15 February 2024", "en");
5938-
assertEquals(88.88, transactionBefore.getAmount());
5939-
assertEquals(86.11, transactionBefore.getPrincipalPortion());
5940-
assertEquals(2.77, transactionBefore.getInterestPortion());
5941-
assertEquals(0.00, transactionBefore.getFeeChargesPortion());
5942-
assertEquals(0.00, transactionBefore.getPenaltyChargesPortion());
5936+
LoanTransactionData transactionBefore = loanTransactionHelper.retrieveTransactionTemplate(createdLoanId.get(), "prepayLoan",
5937+
"dd MMMM yyyy", "15 February 2024", "en");
5938+
assertEquals(88.88, transactionBefore.getAmount().doubleValue());
5939+
assertEquals(86.11, transactionBefore.getPrincipalPortion().doubleValue());
5940+
assertEquals(2.77, transactionBefore.getInterestPortion().doubleValue());
5941+
assertEquals(0.00, transactionBefore.getFeeChargesPortion().doubleValue());
5942+
assertEquals(0.00, transactionBefore.getPenaltyChargesPortion().doubleValue());
59435943

59445944
// Loan Prepayment (after) Charge-Off transaction - WithOut Interest Recalculation
5945-
GetLoansLoanIdTransactionsTemplateResponse transactionAfter = loanTransactionHelper
5946-
.retrieveTransactionTemplate(createdLoanId.get(), "prepayLoan", "dd MMMM yyyy", "01 March 2024", "en");
5947-
assertEquals(104.67, transactionAfter.getAmount());
5948-
assertEquals(86.11, transactionAfter.getPrincipalPortion());
5949-
assertEquals(18.56, transactionAfter.getInterestPortion());
5950-
assertEquals(0.00, transactionAfter.getFeeChargesPortion());
5951-
assertEquals(0.00, transactionAfter.getPenaltyChargesPortion());
5945+
LoanTransactionData transactionAfter = loanTransactionHelper.retrieveTransactionTemplate(createdLoanId.get(), "prepayLoan",
5946+
"dd MMMM yyyy", "01 March 2024", "en");
5947+
assertEquals(104.67, transactionAfter.getAmount().doubleValue());
5948+
assertEquals(86.11, transactionAfter.getPrincipalPortion().doubleValue());
5949+
assertEquals(18.56, transactionAfter.getInterestPortion().doubleValue());
5950+
assertEquals(0.00, transactionAfter.getFeeChargesPortion().doubleValue());
5951+
assertEquals(0.00, transactionAfter.getPenaltyChargesPortion().doubleValue());
59525952
});
59535953

59545954
}

integration-tests/src/test/java/org/apache/fineract/integrationtests/BaseLoanIntegrationTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@
6666
import org.apache.fineract.client.models.GetLoansLoanIdResponse;
6767
import org.apache.fineract.client.models.GetLoansLoanIdStatus;
6868
import org.apache.fineract.client.models.GetLoansLoanIdTransactions;
69-
import org.apache.fineract.client.models.GetLoansLoanIdTransactionsTemplateResponse;
7069
import org.apache.fineract.client.models.JournalEntryTransactionItem;
7170
import org.apache.fineract.client.models.LoanApprovedAmountHistoryData;
7271
import org.apache.fineract.client.models.LoanPointInTimeData;
72+
import org.apache.fineract.client.models.LoanTransactionData;
7373
import org.apache.fineract.client.models.PaymentAllocationOrder;
7474
import org.apache.fineract.client.models.PostChargesResponse;
7575
import org.apache.fineract.client.models.PostLoanProductsRequest;
@@ -283,14 +283,14 @@ protected void verifyLoanStatus(GetLoansLoanIdResponse loanDetails, Function<Get
283283
Assertions.assertTrue(actualValue);
284284
}
285285

286-
protected GetLoansLoanIdTransactionsTemplateResponse getPrepayAmount(Long loanId, String date) {
286+
protected LoanTransactionData getPrepayAmount(Long loanId, String date) {
287287
return ok(fineractClient().loanTransactions.retrieveTemplateLoanTransaction(loanId, "prepayLoan", DATETIME_PATTERN, date, "en",
288288
null));
289289
}
290290

291291
protected Long verifyPrepayAmountByRepayment(Long loanId, String date) {
292-
GetLoansLoanIdTransactionsTemplateResponse prepayAmount = getPrepayAmount(loanId, date);
293-
Double amountToPrepayLoan = prepayAmount.getAmount();
292+
LoanTransactionData prepayAmount = getPrepayAmount(loanId, date);
293+
Double amountToPrepayLoan = prepayAmount.getAmount() != null ? prepayAmount.getAmount().doubleValue() : null;
294294
Long repaymentId = null;
295295
if (amountToPrepayLoan != null && amountToPrepayLoan > 0) {
296296
PostLoansLoanIdTransactionsResponse repayment = loanTransactionHelper.makeLoanRepayment(loanId, "repayment", date,

0 commit comments

Comments
 (0)