FINERACT-1905-Charge-submitted-date-Accrual-entry-reverse-issue
This commit is contained in:
committed by
Adam Saghy
parent
f045752d7d
commit
c18fead7f3
+4
@@ -42,6 +42,10 @@ public class TemporaryConfigurationServiceContainer implements InitializingBean
|
||||
return TemporaryConfigurationServiceContainer.STATIC_REF_CONFIGURATION_SERVICE.isExternalIdAutoGenerationEnabled();
|
||||
}
|
||||
|
||||
public static String getAccrualDateConfigForCharge() {
|
||||
return TemporaryConfigurationServiceContainer.STATIC_REF_CONFIGURATION_SERVICE.getAccrualDateConfigForCharge();
|
||||
}
|
||||
|
||||
@SuppressFBWarnings("ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD")
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
|
||||
+9
-5
@@ -1322,17 +1322,21 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom {
|
||||
|
||||
private void applyPeriodicAccruals(final Collection<LoanTransaction> accruals) {
|
||||
List<LoanRepaymentScheduleInstallment> installments = getRepaymentScheduleInstallments();
|
||||
boolean isBasedOnSubmittedOnDate = TemporaryConfigurationServiceContainer.getAccrualDateConfigForCharge()
|
||||
.equalsIgnoreCase("submitted-date");
|
||||
for (LoanRepaymentScheduleInstallment installment : installments) {
|
||||
|
||||
Money interest = Money.zero(getCurrency());
|
||||
Money fee = Money.zero(getCurrency());
|
||||
Money penality = Money.zero(getCurrency());
|
||||
for (LoanTransaction loanTransaction : accruals) {
|
||||
LocalDate transactionDateForRange = isBasedOnSubmittedOnDate
|
||||
? loanTransaction.getLoanChargesPaid().stream().findFirst().get().getLoanCharge().getDueDate()
|
||||
: loanTransaction.getTransactionDate();
|
||||
boolean isInRange = installment.isFirstPeriod()
|
||||
? !loanTransaction.getTransactionDate().isBefore(installment.getFromDate())
|
||||
&& !loanTransaction.getTransactionDate().isAfter(installment.getDueDate())
|
||||
: loanTransaction.getTransactionDate().isAfter(installment.getFromDate())
|
||||
&& !loanTransaction.getTransactionDate().isAfter(installment.getDueDate());
|
||||
? !transactionDateForRange.isBefore(installment.getFromDate())
|
||||
&& !transactionDateForRange.isAfter(installment.getDueDate())
|
||||
: transactionDateForRange.isAfter(installment.getFromDate())
|
||||
&& !transactionDateForRange.isAfter(installment.getDueDate());
|
||||
if (isInRange) {
|
||||
interest = interest.plus(loanTransaction.getInterestPortion(getCurrency()));
|
||||
fee = fee.plus(loanTransaction.getFeeChargesPortion(getCurrency()));
|
||||
|
||||
Reference in New Issue
Block a user