FINERACT-1822: Fix Undo waive loan charge API response inconsistency
This commit is contained in:
+1
-1
@@ -350,7 +350,7 @@ final class LoanTransactionsApiResourceSwagger {
|
||||
@Schema(example = "95174ff9-1a75-4d72-a413-6f9b1cb988b7")
|
||||
public String externalId;
|
||||
@Schema(example = "28 June 2022")
|
||||
public String date;
|
||||
public LocalDate date;
|
||||
|
||||
}
|
||||
|
||||
|
||||
+12
@@ -479,6 +479,18 @@ public class LoanTransaction extends AbstractAuditableWithUTCDateTimeCustom {
|
||||
return this.principalPortion;
|
||||
}
|
||||
|
||||
public BigDecimal getInterestPortion() {
|
||||
return this.interestPortion;
|
||||
}
|
||||
|
||||
public BigDecimal getPenaltyChargesPortion() {
|
||||
return this.penaltyChargesPortion;
|
||||
}
|
||||
|
||||
public BigDecimal getFeeChargesPortion() {
|
||||
return this.feeChargesPortion;
|
||||
}
|
||||
|
||||
public Money getInterestPortion(final MonetaryCurrency currency) {
|
||||
return Money.of(currency, this.interestPortion);
|
||||
}
|
||||
|
||||
+3
-4
@@ -364,11 +364,10 @@ public class LoanChargeWritePlatformServiceImpl implements LoanChargeWritePlatfo
|
||||
|
||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanWaiveChargeUndoBusinessEvent(loanCharge));
|
||||
|
||||
// TODO: this needs to be fixed in the future! Principal portion is bigdecimal, interest portion is money, ...
|
||||
changes.put("principalPortion", loanTransaction.getPrincipalPortion());
|
||||
changes.put("interestPortion", loanTransaction.getInterestPortion(loan.getCurrency()));
|
||||
changes.put("feeChargesPortion", loanTransaction.getFeeChargesPortion(loan.getCurrency()));
|
||||
changes.put("penaltyChargesPortion", loanTransaction.getPenaltyChargesPortion(loan.getCurrency()));
|
||||
changes.put("interestPortion", loanTransaction.getInterestPortion());
|
||||
changes.put("feeChargesPortion", loanTransaction.getFeeChargesPortion());
|
||||
changes.put("penaltyChargesPortion", loanTransaction.getPenaltyChargesPortion());
|
||||
changes.put("outstandingLoanBalance", loanTransaction.getOutstandingLoanBalance());
|
||||
changes.put("id", loanTransaction.getId());
|
||||
changes.put("externalId", loanTransaction.getExternalId());
|
||||
|
||||
+11
-8
@@ -44,6 +44,8 @@ import org.apache.fineract.client.models.PostLoansLoanIdChargesResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsRequest;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsTransactionIdRequest;
|
||||
import org.apache.fineract.client.models.PutChargeTransactionChangesRequest;
|
||||
import org.apache.fineract.client.models.PutChargeTransactionChangesResponse;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdRequest;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.integrationtests.client.IntegrationTest;
|
||||
@@ -181,13 +183,13 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
assertEquals(waiveChargeExternalIdStr, response.getExternalId());
|
||||
|
||||
// Check whether an external id was generated
|
||||
HashMap undoWaiveLoanChargeResult = loanTransactionHelper.undoWaiveLoanCharge((long) loanId, waiveChargeExternalIdStr);
|
||||
assertEquals(waiveChargeExternalIdStr, undoWaiveLoanChargeResult.get("subResourceExternalId"));
|
||||
PutChargeTransactionChangesResponse undoWaiveLoanChargeResult = loanTransactionHelper.undoWaiveLoanCharge((long) loanId,
|
||||
waiveChargeExternalIdStr, new PutChargeTransactionChangesRequest());
|
||||
assertEquals(waiveChargeExternalIdStr, undoWaiveLoanChargeResult.getSubResourceExternalId());
|
||||
|
||||
response = loanTransactionHelper.getLoanTransactionDetails((long) loanId, waiveChargeExternalIdStr);
|
||||
assertEquals(waiveChargeExternalIdStr, response.getExternalId());
|
||||
response = loanTransactionHelper.getLoanTransactionDetails(loanExternalIdStr,
|
||||
Long.valueOf(undoWaiveLoanChargeResult.get("subResourceId").toString()));
|
||||
response = loanTransactionHelper.getLoanTransactionDetails(loanExternalIdStr, undoWaiveLoanChargeResult.getSubResourceId());
|
||||
assertEquals(waiveChargeExternalIdStr, response.getExternalId());
|
||||
response = loanTransactionHelper.getLoanTransactionDetails(loanExternalIdStr, waiveChargeExternalIdStr);
|
||||
assertEquals(waiveChargeExternalIdStr, response.getExternalId());
|
||||
@@ -199,8 +201,9 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
assertEquals(penalty1LoanChargeExternalId, waiveLoanChargeResult.getResourceExternalId());
|
||||
|
||||
// Check whether an external id was generated
|
||||
undoWaiveLoanChargeResult = loanTransactionHelper.undoWaiveLoanCharge(loanExternalIdStr, waiveLoanChargeResult.getSubResourceId());
|
||||
assertNotNull(undoWaiveLoanChargeResult.get("subResourceExternalId"));
|
||||
undoWaiveLoanChargeResult = loanTransactionHelper.undoWaiveLoanCharge(loanExternalIdStr, waiveLoanChargeResult.getSubResourceId(),
|
||||
new PutChargeTransactionChangesRequest());
|
||||
assertNotNull(undoWaiveLoanChargeResult.getSubResourceExternalId());
|
||||
|
||||
// Check whether an external id was generated
|
||||
waiveChargeExternalIdStr = UUID.randomUUID().toString();
|
||||
@@ -211,8 +214,8 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
|
||||
// Check whether an external id was generated
|
||||
undoWaiveLoanChargeResult = loanTransactionHelper.undoWaiveLoanCharge(loanExternalIdStr,
|
||||
waiveLoanChargeResult.getSubResourceExternalId());
|
||||
assertEquals(waiveChargeExternalIdStr, undoWaiveLoanChargeResult.get("subResourceExternalId"));
|
||||
waiveLoanChargeResult.getSubResourceExternalId(), new PutChargeTransactionChangesRequest());
|
||||
assertEquals(waiveChargeExternalIdStr, undoWaiveLoanChargeResult.getSubResourceExternalId());
|
||||
|
||||
// Check whether an external id was generated
|
||||
final PostLoansLoanIdTransactionsResponse repaymentResult = loanTransactionHelper.makeLoanRepayment(loanExternalIdStr,
|
||||
|
||||
+17
-12
@@ -62,6 +62,8 @@ import org.apache.fineract.client.models.PostLoansLoanIdResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsRequest;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsTransactionIdRequest;
|
||||
import org.apache.fineract.client.models.PutChargeTransactionChangesRequest;
|
||||
import org.apache.fineract.client.models.PutChargeTransactionChangesResponse;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdRequest;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdResponse;
|
||||
@@ -504,25 +506,28 @@ public class LoanTransactionHelper extends IntegrationTest {
|
||||
return ok(fineract().loanTransactions.executeLoanTransaction(loanId, request, "repayment"));
|
||||
}
|
||||
|
||||
public HashMap undoWaiveLoanCharge(final Long loanId, final String transactionExternalId) {
|
||||
public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final Long loanId, final Long transactionId,
|
||||
final PutChargeTransactionChangesRequest request) {
|
||||
log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------");
|
||||
final String TRANSAC_URL = "/fineract-provider/api/v1/loans/" + loanId + "/transactions/external-id/" + transactionExternalId + "?"
|
||||
+ Utils.TENANT_IDENTIFIER;
|
||||
return Utils.performServerPut(requestSpec, responseSpec, TRANSAC_URL, "", "");
|
||||
return ok(fineract().loanTransactions.undoWaiveCharge(loanId, transactionId, request));
|
||||
}
|
||||
|
||||
public HashMap undoWaiveLoanCharge(final String loanExternalId, final Long transactionId) {
|
||||
public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final Long loanId, final String transactionExternalId,
|
||||
final PutChargeTransactionChangesRequest request) {
|
||||
log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------");
|
||||
final String TRANSAC_URL = "/fineract-provider/api/v1/loans/external-id/" + loanExternalId + "/transactions/" + transactionId + "?"
|
||||
+ Utils.TENANT_IDENTIFIER;
|
||||
return Utils.performServerPut(requestSpec, responseSpec, TRANSAC_URL, "", "");
|
||||
return ok(fineract().loanTransactions.undoWaiveCharge1(loanId, transactionExternalId, request));
|
||||
}
|
||||
|
||||
public HashMap undoWaiveLoanCharge(final String loanExternalId, final String transactionExternalId) {
|
||||
public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final String loanExternalId, final Long transactionId,
|
||||
final PutChargeTransactionChangesRequest request) {
|
||||
log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------");
|
||||
final String TRANSAC_URL = "/fineract-provider/api/v1/loans/external-id/" + loanExternalId + "/transactions/external-id/"
|
||||
+ transactionExternalId + "?" + Utils.TENANT_IDENTIFIER;
|
||||
return Utils.performServerPut(requestSpec, responseSpec, TRANSAC_URL, "", "");
|
||||
return ok(fineract().loanTransactions.undoWaiveCharge2(loanExternalId, transactionId, request));
|
||||
}
|
||||
|
||||
public PutChargeTransactionChangesResponse undoWaiveLoanCharge(final String loanExternalId, final String transactionExternalId,
|
||||
final PutChargeTransactionChangesRequest request) {
|
||||
log.info("--------------------------------- UNDO WAIVE CHARGES FOR LOAN --------------------------------");
|
||||
return ok(fineract().loanTransactions.undoWaiveCharge3(loanExternalId, transactionExternalId, request));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final Long loanId, final Long loanChargeId,
|
||||
|
||||
Reference in New Issue
Block a user