| Line 3580... |
Line 3580... |
| 3580 |
|
3580 |
|
| 3581 |
LOGGER.info("loanStatements {}", loanStatements);
|
3581 |
LOGGER.info("loanStatements {}", loanStatements);
|
| 3582 |
|
3582 |
|
| 3583 |
Map<LoanReferenceType, Double> loanStatusAmount = loanStatements.stream()
|
3583 |
Map<LoanReferenceType, Double> loanStatusAmount = loanStatements.stream()
|
| 3584 |
.collect(Collectors.groupingBy(x -> x.getLoanReferenceType(),
|
3584 |
.collect(Collectors.groupingBy(x -> x.getLoanReferenceType(),
|
| 3585 |
Collectors.summingDouble(x -> x.getAmount().doubleValue())));
|
3585 |
Collectors.summingDouble(x -> FormattingUtils.serialize(x.getAmount()))));
|
| 3586 |
|
3586 |
|
| 3587 |
LOGGER.info("loanStatusAmount {}", loanStatusAmount);
|
3587 |
LOGGER.info("loanStatusAmount {}", loanStatusAmount);
|
| 3588 |
Double interestAmount = loanStatusAmount.get(LoanReferenceType.INTEREST);
|
3588 |
Double interestAmount = loanStatusAmount.get(LoanReferenceType.INTEREST);
|
| 3589 |
|
3589 |
|
| 3590 |
if (interestAmount == null) {
|
3590 |
if (interestAmount == null) {
|
| Line 3595... |
Line 3595... |
| 3595 |
double paidAmount = 0;
|
3595 |
double paidAmount = 0;
|
| 3596 |
if (userWallet.getAmount() > Math.abs(interestAmount)) {
|
3596 |
if (userWallet.getAmount() > Math.abs(interestAmount)) {
|
| 3597 |
|
3597 |
|
| 3598 |
LOGGER.info("interestAmount b {}", interestAmount);
|
3598 |
LOGGER.info("interestAmount b {}", interestAmount);
|
| 3599 |
|
3599 |
|
| 3600 |
if (interestAmount != 0) {
|
3600 |
if (interestAmount < 0) {
|
| 3601 |
LOGGER.info("interestAmount a {}", interestAmount);
|
3601 |
LOGGER.info("interestAmount a {}", interestAmount);
|
| 3602 |
|
3602 |
|
| 3603 |
settledLoanStatement(LoanReferenceType.INTEREST, BigDecimal.valueOf(interestAmount),
|
3603 |
settledLoanStatement(LoanReferenceType.INTEREST, BigDecimal.valueOf(interestAmount),
|
| 3604 |
loan.getFofoId(), loan.getId(), "Amount adjusted against loan",
|
3604 |
loan.getFofoId(), loan.getId(), "Amount adjusted against loan",
|
| 3605 |
LocalDateTime.now());
|
3605 |
LocalDateTime.now());
|
| Line 3608... |
Line 3608... |
| 3608 |
paidAmount += Math.abs(interestAmount);
|
3608 |
paidAmount += Math.abs(interestAmount);
|
| 3609 |
}
|
3609 |
}
|
| 3610 |
|
3610 |
|
| 3611 |
double userWalletAmount = userWallet.getAmount() - Math.abs(interestAmount);
|
3611 |
double userWalletAmount = userWallet.getAmount() - Math.abs(interestAmount);
|
| 3612 |
|
3612 |
|
| 3613 |
if (userWalletAmount > Math.abs(principalAmount) && principalAmount != 0) {
|
3613 |
if (userWalletAmount > Math.abs(principalAmount) && principalAmount < 0) {
|
| 3614 |
|
3614 |
|
| 3615 |
settledLoanStatement(LoanReferenceType.PRINCIPAL, BigDecimal.valueOf(principalAmount),
|
3615 |
settledLoanStatement(LoanReferenceType.PRINCIPAL, BigDecimal.valueOf(principalAmount),
|
| 3616 |
loan.getFofoId(), loan.getId(), "Amount adjusted against loan",
|
3616 |
loan.getFofoId(), loan.getId(), "Amount adjusted against loan",
|
| 3617 |
LocalDateTime.now());
|
3617 |
LocalDateTime.now());
|
| 3618 |
double amount = userWalletAmount - Math.abs(principalAmount);
|
3618 |
double amount = userWalletAmount - Math.abs(principalAmount);
|
| Line 3632... |
Line 3632... |
| 3632 |
creditAccount.setAvailableAmount(sdCreditRequirement.getAvailableLimit().floatValue());
|
3632 |
creditAccount.setAvailableAmount(sdCreditRequirement.getAvailableLimit().floatValue());
|
| 3633 |
creditAccount.setUpdatedOn(LocalDateTime.now());
|
3633 |
creditAccount.setUpdatedOn(LocalDateTime.now());
|
| 3634 |
|
3634 |
|
| 3635 |
loan.setPendingAmount(BigDecimal.ZERO);
|
3635 |
loan.setPendingAmount(BigDecimal.ZERO);
|
| 3636 |
|
3636 |
|
| 3637 |
} else if (principalAmount != 0) {
|
3637 |
} else if (principalAmount < 0) {
|
| 3638 |
|
3638 |
|
| 3639 |
settledLoanStatement(LoanReferenceType.PRINCIPAL, BigDecimal.valueOf(userWalletAmount),
|
3639 |
settledLoanStatement(LoanReferenceType.PRINCIPAL, BigDecimal.valueOf(userWalletAmount),
|
| 3640 |
loan.getFofoId(), loan.getId(), "Amount adjusted against loan",
|
3640 |
loan.getFofoId(), loan.getId(), "Amount adjusted against loan",
|
| 3641 |
LocalDateTime.now());
|
3641 |
LocalDateTime.now());
|
| 3642 |
|
3642 |
|
| Line 3914... |
Line 3914... |
| 3914 |
throws ProfitMandiBusinessException, MessagingException, IOException {
|
3914 |
throws ProfitMandiBusinessException, MessagingException, IOException {
|
| 3915 |
String subject = "Default Partners";
|
3915 |
String subject = "Default Partners";
|
| 3916 |
|
3916 |
|
| 3917 |
List<AuthUser> authUsers = csService
|
3917 |
List<AuthUser> authUsers = csService
|
| 3918 |
.getAuthUserByCategoryId(ProfitMandiConstants.TICKET_CATEGORY_FINANCIAL_SERVICES);
|
3918 |
.getAuthUserByCategoryId(ProfitMandiConstants.TICKET_CATEGORY_FINANCIAL_SERVICES);
|
| - |
|
3919 |
|
| - |
|
3920 |
authUsers.addAll(csService.getAuthUserByCategoryId(ProfitMandiConstants.TICKET_CATEGORY_ACCOUNTS));
|
| 3919 |
if (!authUsers.isEmpty()) {
|
3921 |
if (!authUsers.isEmpty()) {
|
| 3920 |
List<String> financeEmails = authUsers.stream().map(x -> x.getEmailId()).collect(Collectors.toList());
|
3922 |
List<String> financeEmails = authUsers.stream().map(x -> x.getEmailId()).collect(Collectors.toList());
|
| 3921 |
String messageText = this.getMessageForDueDateExtend(defaultLoans);
|
3923 |
String messageText = this.getMessageForDueDateExtend(defaultLoans);
|
| 3922 |
|
3924 |
|
| 3923 |
String[] email = financeEmails.toArray(new String[financeEmails.size()]);
|
3925 |
String[] email = financeEmails.toArray(new String[financeEmails.size()]);
|