adamsaghy commented on code in PR #3515:
URL: https://github.com/apache/fineract/pull/3515#discussion_r1371846842


##########
fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/LoanDelinquencyDomainServiceImpl.java:
##########
@@ -61,60 +59,90 @@ public CollectionData getOverdueCollectionData(final Loan 
loan) {
                     outstandingAmount = 
outstandingAmount.add(installment.getTotalOutstanding(loanCurrency).getAmount());
                     if (!oldestOverdueInstallment) {
                         log.debug("Oldest installment {} {}", 
installment.getInstallmentNumber(), installment.getDueDate());
+                        CollectionData overDueInstallmentDelinquentData = 
calculateDelinquencyDataForOverdueInstallment(loan, installment);
+                        overdueSinceDate = 
overDueInstallmentDelinquentData.getDelinquentDate();
                         oldestOverdueInstallment = true;
-                        overdueSinceDate = installment.getDueDate();
                         overdueSinceDateWasSet = true;
-
-                        amountAvailable = 
installment.getTotalPaid(loanCurrency).getAmount();
-
-                        boolean isLatestInstallment = 
Objects.equals(installment.getId(), latestInstallment.getId());
-                        for (LoanTransaction loanTransaction : 
chargebackTransactions) {
-                            boolean 
isLoanTransactionIsOnOrAfterInstallmentFromDate = 
loanTransaction.getTransactionDate().isEqual(
-                                    installment.getFromDate()) || 
loanTransaction.getTransactionDate().isAfter(installment.getFromDate());
-                            boolean 
isLoanTransactionIsBeforeNotLastInstallmentDueDate = !isLatestInstallment
-                                    && 
loanTransaction.getTransactionDate().isBefore(installment.getDueDate());
-                            boolean 
isLoanTransactionIsOnOrBeforeLastInstallmentDueDate = isLatestInstallment
-                                    && 
(loanTransaction.getTransactionDate().isEqual(installment.getDueDate())
-                                            || 
loanTransaction.getTransactionDate().isBefore(installment.getDueDate()));
-                            if 
(isLoanTransactionIsOnOrAfterInstallmentFromDate && 
(isLoanTransactionIsBeforeNotLastInstallmentDueDate
-                                    || 
isLoanTransactionIsOnOrBeforeLastInstallmentDueDate)) {
-                                amountAvailable = 
amountAvailable.subtract(loanTransaction.getAmount());
-                                if (amountAvailable.compareTo(BigDecimal.ZERO) 
< 0) {
-                                    overdueSinceDate = 
loanTransaction.getTransactionDate();
-                                    break;
-                                }
-                            }
-                        }
                     }
                 } else if (!firstNotYetDueInstallment) {
                     log.debug("Loan Id: {} with installment {} due date {}", 
loan.getId(), installment.getInstallmentNumber(),
                             installment.getDueDate());
                     firstNotYetDueInstallment = true;
-                    amountAvailable = 
installment.getTotalPaid(loanCurrency).getAmount();
-                    log.debug("Amount available {}", amountAvailable);
-                    for (LoanTransaction loanTransaction : 
chargebackTransactions) {
-                        boolean 
isLoanTransactionIsOnOrAfterInstallmentFromDate = 
loanTransaction.getTransactionDate().isEqual(
-                                installment.getFromDate()) || 
loanTransaction.getTransactionDate().isAfter(installment.getFromDate());
-                        boolean isLoanTransactionIsBeforeInstallmentDueDate = 
loanTransaction.getTransactionDate()
-                                .isBefore(installment.getDueDate());
-                        boolean isLoanTransactionIsBeforeBusinessDate = 
loanTransaction.getTransactionDate().isBefore(businessDate);
-                        if (isLoanTransactionIsOnOrAfterInstallmentFromDate && 
isLoanTransactionIsBeforeInstallmentDueDate
-                                && isLoanTransactionIsBeforeBusinessDate) {
-                            log.debug("Loan CB Transaction: {} {} {}", 
loanTransaction.getId(), loanTransaction.getTransactionDate(),
-                                    loanTransaction.getAmount());
-                            amountAvailable = 
amountAvailable.subtract(loanTransaction.getAmount());
-                            if (amountAvailable.compareTo(BigDecimal.ZERO) < 0 
&& !overdueSinceDateWasSet) {
-                                overdueSinceDate = 
loanTransaction.getTransactionDate();
-                                overdueSinceDateWasSet = true;
-                            }
-                        }

Review Comment:
   It is hard to see what got changed. Can you please explain the changes in a 
couple sentences?



-- 
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