diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java index c1ea91100..37bcbbfd3 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java @@ -426,7 +426,7 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP ClientApiConstants.CLIENT_CLOSURE_REASON, closureReasonId); if (ClientStatus.fromInt(client.getStatus()).isClosed()) { - final String errorMessage = "Client is alread closed."; + final String errorMessage = "Client is already closed."; throw new InvalidClientStateTransitionException("close", "is.already.closed", errorMessage); } else if (ClientStatus.fromInt(client.getStatus()).isUnderTransfer()) { final String errorMessage = "Cannot Close a Client under Transfer"; @@ -456,6 +456,9 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP } else if (loanStatus.isAwaitingDisbursal()) { final String errorMessage = "Client cannot be closed because of non-closed loans."; throw new InvalidClientStateTransitionException("close", "loan.non-closed", errorMessage); + } else if (loanStatus.isOverpaid()) { + final String errorMessage = "Client cannot be closed because of overpaid loans."; + throw new InvalidClientStateTransitionException("close", "loan.non-closed", errorMessage); } } final List clientSavingAccounts = this.savingsRepository.findSavingAccountByClientId(clientId); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/LoanStatusMapper.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/LoanStatusMapper.java index 881bb4991..87541e1f0 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/LoanStatusMapper.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/LoanStatusMapper.java @@ -36,4 +36,8 @@ public class LoanStatusMapper { public boolean isClosed() { return Integer.valueOf(600).equals(this.statusId) || isWithdrawnByClient() || isRejected(); } + + public boolean isOverpaid() { + return Integer.valueOf(700).equals(this.statusId); + } } \ No newline at end of file