Subversion Repositories SmartDukaan

Rev

Rev 35811 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.dao.model;

import java.math.BigDecimal;
import java.util.List;

import com.spice.profitmandi.dao.entity.transaction.Loan;

public class CreditSummary {

        private int fofoId;
        private BigDecimal creditLimit;
        private BigDecimal utilization;
        private BigDecimal availableLimit;
        private BigDecimal totalDue;
        private long overdueCount;
        private boolean canPlaceOrder;
        private double freshMoneyAvailable;
        private String blockedReason;

        public static CreditSummary fromLoans(int fofoId, List<Loan> activeLoans, BigDecimal creditLimit) {
                CreditSummary s = new CreditSummary();
                s.fofoId = fofoId;
                s.creditLimit = creditLimit;
                BigDecimal utilization = BigDecimal.ZERO;
                BigDecimal totalDue = BigDecimal.ZERO;
                long overdueCount = 0;
                for (Loan loan : activeLoans) {
                        if (loan.isLimit()) continue;
                        utilization = utilization.add(loan.getPendingAmount());
                        totalDue = totalDue.add(loan.getPendingAmount()
                                        .add(loan.getInterestAccrued())
                                        .subtract(loan.getInterestPaid()));
                        if (loan.isOverdue() || loan.isDefault()) overdueCount++;
                }
                s.utilization = utilization;
                s.totalDue = totalDue;
                s.overdueCount = overdueCount;
                s.availableLimit = creditLimit.subtract(utilization);
                return s;
        }

        public int getFofoId() {
                return fofoId;
        }

        public void setFofoId(int fofoId) {
                this.fofoId = fofoId;
        }

        public BigDecimal getCreditLimit() {
                return creditLimit;
        }

        public void setCreditLimit(BigDecimal creditLimit) {
                this.creditLimit = creditLimit;
        }

        public BigDecimal getUtilization() {
                return utilization;
        }

        public void setUtilization(BigDecimal utilization) {
                this.utilization = utilization;
        }

        public BigDecimal getAvailableLimit() {
                return availableLimit;
        }

        public void setAvailableLimit(BigDecimal availableLimit) {
                this.availableLimit = availableLimit;
        }

        public BigDecimal getTotalDue() {
                return totalDue;
        }

        public void setTotalDue(BigDecimal totalDue) {
                this.totalDue = totalDue;
        }

        public long getOverdueCount() {
                return overdueCount;
        }

        public void setOverdueCount(long overdueCount) {
                this.overdueCount = overdueCount;
        }

        public boolean isCanPlaceOrder() {
                return canPlaceOrder;
        }

        public void setCanPlaceOrder(boolean canPlaceOrder) {
                this.canPlaceOrder = canPlaceOrder;
        }

        public double getFreshMoneyAvailable() {
                return freshMoneyAvailable;
        }

        public void setFreshMoneyAvailable(double freshMoneyAvailable) {
                this.freshMoneyAvailable = freshMoneyAvailable;
        }

        public String getBlockedReason() {
                return blockedReason;
        }

        public void setBlockedReason(String blockedReason) {
                this.blockedReason = blockedReason;
        }

        @Override
        public String toString() {
                return "CreditSummary{fofoId=" + fofoId +
                                ", utilization=" + utilization +
                                ", availableLimit=" + availableLimit +
                                ", totalDue=" + totalDue +
                                ", overdueCount=" + overdueCount +
                                ", canPlaceOrder=" + canPlaceOrder +
                                '}';
        }
}