FINERACT-1926: Fix No Such Element exception in Asset buyback
This commit is contained in:
committed by
Adam Saghy
parent
677761238d
commit
ce2f05ee78
+11
-5
@@ -22,6 +22,7 @@ import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.fineract.cob.loan.LoanCOBBusinessStep;
|
||||
@@ -103,14 +104,19 @@ public class LoanAccountOwnerTransferBusinessStep implements LoanCOBBusinessStep
|
||||
|
||||
private void handleBuyback(final Loan loan, final LocalDate settlementDate,
|
||||
final ExternalAssetOwnerTransfer buybackExternalAssetOwnerTransfer) {
|
||||
ExternalAssetOwnerTransfer activeExternalAssetOwnerTransfer = externalAssetOwnerTransferRepository
|
||||
Optional<ExternalAssetOwnerTransfer> optActiveExternalAssetOwnerTransfer = externalAssetOwnerTransferRepository
|
||||
.findOne((root, query, criteriaBuilder) -> criteriaBuilder.and(criteriaBuilder.equal(root.get("loanId"), loan.getId()),
|
||||
criteriaBuilder.equal(root.get("owner"), buybackExternalAssetOwnerTransfer.getOwner()),
|
||||
criteriaBuilder.equal(root.get("status"), ExternalTransferStatus.ACTIVE),
|
||||
criteriaBuilder.equal(root.get("effectiveDateTo"), FUTURE_DATE_9999_12_31)))
|
||||
.orElseThrow();
|
||||
ExternalAssetOwnerTransfer newExternalAssetOwnerTransfer = buybackAsset(loan, settlementDate, buybackExternalAssetOwnerTransfer,
|
||||
activeExternalAssetOwnerTransfer);
|
||||
criteriaBuilder.equal(root.get("effectiveDateTo"), FUTURE_DATE_9999_12_31)));
|
||||
ExternalAssetOwnerTransfer newExternalAssetOwnerTransfer;
|
||||
if (!optActiveExternalAssetOwnerTransfer.isPresent()) {
|
||||
newExternalAssetOwnerTransfer = createNewEntry(settlementDate, buybackExternalAssetOwnerTransfer,
|
||||
ExternalTransferStatus.CANCELLED, ExternalTransferSubStatus.UNSOLD, settlementDate, settlementDate);
|
||||
} else {
|
||||
newExternalAssetOwnerTransfer = buybackAsset(loan, settlementDate, buybackExternalAssetOwnerTransfer,
|
||||
optActiveExternalAssetOwnerTransfer.get());
|
||||
}
|
||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanOwnershipTransferBusinessEvent(newExternalAssetOwnerTransfer, loan));
|
||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanAccountSnapshotBusinessEvent(loan));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user