@Override void processApplicable(final Transaction transfer) { final int loanId = transfer.getLoanId(); final Investment investment = lookupOrFail(loanId, tenant); final boolean paidInFull = investment.getPaymentStatus() .map(s -> s == PaymentStatus.PAID) .orElse(false); if (!paidInFull) { logger.debug("Not yet repaid in full: {}.", transfer); return; } tenant.fire(loanRepaidLazy(() -> { final Loan loan = tenant.getLoan(loanId); return loanRepaid(investment, loan, tenant.getPortfolio().getOverview()); })); } }
@Override void processApplicable(final Transaction transfer) { final int loanId = transfer.getLoanId(); final Investment investment = lookupOrFail(loanId, tenant); final boolean paidInFull = investment.getPaymentStatus() .map(s -> s == PaymentStatus.PAID) .orElse(false); if (!paidInFull) { logger.debug("Not yet repaid in full: {}.", transfer); return; } tenant.fire(loanRepaidLazy(() -> { final Loan loan = LoanCache.get().getLoan(loanId, tenant); return loanRepaid(investment, loan, tenant.getPortfolio().getOverview()); })); } }
@Override void processApplicable(final Transaction transaction) { final int loanId = transaction.getLoanId(); SoldParticipationCache.forTenant(tenant).markAsSold(loanId); tenant.fire(investmentSoldLazy(() -> { final Investment i = lookupOrFail(loanId, tenant); final Loan l = tenant.getLoan(loanId); return investmentSold(i, l, tenant.getPortfolio().getOverview()); })); } }
@Override void processApplicable(final Transaction transaction) { final int loanId = transaction.getLoanId(); SoldParticipationCache.forTenant(tenant).markAsSold(loanId); tenant.fire(investmentSoldLazy(() -> { final Investment i = lookupOrFail(loanId, tenant); final Loan l = LoanCache.get().getLoan(loanId, tenant); return investmentSold(i, l, tenant.getPortfolio().getOverview()); })); } }