budaidev commented on code in PR #4916:
URL: https://github.com/apache/fineract/pull/4916#discussion_r2258446536


##########
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanTransactionService.java:
##########
@@ -56,4 +60,35 @@ private Predicate<LoanTransaction> 
loanTransactionForReprocessingPredicate() {
                         || !transaction.isNonMonetaryTransaction() || 
transaction.isContractTermination());
     }
 
+    public boolean hasChargeOffTransaction(final Loan loan) {
+        return loanTransactionRepository.hasChargeOffTransaction(loan);
+    }
+
+    public boolean hasContractTerminationTransaction(final Loan loan) {
+        return 
loanTransactionRepository.hasContractTerminationTransaction(loan);
+    }
+
+    public boolean shouldRegenerateRepaymentSchedule(final Loan loan) {
+        final boolean hasChargeOffTransaction = hasChargeOffTransaction(loan);
+        final boolean hasContractTerminationTransaction = 
hasContractTerminationTransaction(loan);
+        return loan.isProgressiveSchedule()
+                && ((hasChargeOffTransaction && 
loan.hasAccelerateChargeOffStrategy()) || hasContractTerminationTransaction);
+    }
+
+    public Money calculateTotalPaidInRepayments(final Loan loan) {
+        final List<LoanTransactionType> loanTransactionPaymentTypes = 
List.of(LoanTransactionType.REPAYMENT, //
+                LoanTransactionType.MERCHANT_ISSUED_REFUND, //
+                LoanTransactionType.PAYOUT_REFUND, //
+                LoanTransactionType.GOODWILL_CREDIT, //
+                LoanTransactionType.CHARGE_REFUND, //
+                LoanTransactionType.CHARGE_ADJUSTMENT, //
+                LoanTransactionType.DOWN_PAYMENT, //
+                LoanTransactionType.INTEREST_PAYMENT_WAIVER, //
+                LoanTransactionType.INTEREST_REFUND, //
+                LoanTransactionType.CAPITALIZED_INCOME_ADJUSTMENT);
+        log.info("Amount {}", 
loanTransactionRepository.sumTotalAmountByLoanAndTransactionTypes(loan, 
loanTransactionPaymentTypes));

Review Comment:
   I am not sure it is a good idea to leave this logic here in info level, 
since it will duplicate the calculation. Maybe extract it to a variable if we 
really need this information, but we can also put into debug level instead of 
info



##########
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanBalanceService.java:
##########
@@ -108,7 +111,7 @@ public void updateLoanSummaryDerivedFields(final Loan loan) 
{
     public void refreshSummaryAndBalancesForDisbursedLoan(final Loan loan) {
         final Money overpaidBy = calculateTotalOverpayment(loan);
         loan.setTotalOverpaid(null);
-        if (!overpaidBy.isLessThanZero()) {
+        if (!overpaidBy.isZero() && !overpaidBy.isLessThanZero()) {

Review Comment:
   Maybe use overpaidBy.isGreaterThanZero()?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to