diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResourceSwagger.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResourceSwagger.java index 0f4815360..fffa8beb4 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResourceSwagger.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResourceSwagger.java @@ -690,6 +690,8 @@ final class LoansApiResourceSwagger { public boolean creditBalanceRefund; @Schema(example = "false") public boolean chargeAdjustment; + @Schema(example = "false") + public boolean chargeoff; } static final class GetLoansLoanIdPaymentDetailData { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java index 3936b049c..78b604819 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java @@ -2806,6 +2806,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf businessEventNotifierService.notifyPreBusinessEvent(new LoanUndoChargeOffBusinessEvent(chargedOffTransaction)); chargedOffTransaction.reverse(); + chargedOffTransaction.manuallyAdjustedOrReversed(); loan.liftChargeOff(); loanTransactionRepository.saveAndFlush(chargedOffTransaction); saveLoanWithDataIntegrityViolationChecks(loan); diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java index ca6415f48..1798bab2d 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java @@ -7083,6 +7083,11 @@ public class ClientLoanIntegrationTest { assertNull(loanDetails.getSummary().getChargeOffReason()); assertNull(loanDetails.getTimeline().getChargedOffOnDate()); + GetLoansLoanIdTransactions undoChargeOffTransaction = loanDetails.getTransactions() + .get(loanDetails.getTransactions().size() - 1); + assertTrue(undoChargeOffTransaction.getType().getChargeoff()); + assertTrue(undoChargeOffTransaction.getManuallyReversed()); + exception = assertThrows(CallFailedRuntimeException.class, () -> { errorLoanTransactionHelper.undoChargeOffLoan((long) loanID, new PostLoansLoanIdTransactionsRequest()); });