Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
35811 amit 1
package com.spice.profitmandi.dao.model;
2
 
3
import java.math.BigDecimal;
4
import java.util.List;
5
 
6
import com.spice.profitmandi.dao.entity.transaction.Loan;
7
 
8
public class CreditSummary {
9
 
10
	private int fofoId;
11
	private BigDecimal creditLimit;
12
	private BigDecimal utilization;
13
	private BigDecimal availableLimit;
14
	private BigDecimal totalDue;
15
	private long overdueCount;
16
	private boolean canPlaceOrder;
17
	private double freshMoneyAvailable;
18
	private String blockedReason;
19
 
20
	public static CreditSummary fromLoans(int fofoId, List<Loan> activeLoans, BigDecimal creditLimit) {
21
		CreditSummary s = new CreditSummary();
22
		s.fofoId = fofoId;
23
		s.creditLimit = creditLimit;
24
		BigDecimal utilization = BigDecimal.ZERO;
25
		BigDecimal totalDue = BigDecimal.ZERO;
26
		long overdueCount = 0;
27
		for (Loan loan : activeLoans) {
35864 amit 28
			if (loan.isLimit()) continue;
35811 amit 29
			utilization = utilization.add(loan.getPendingAmount());
30
			totalDue = totalDue.add(loan.getPendingAmount()
31
					.add(loan.getInterestAccrued())
32
					.subtract(loan.getInterestPaid()));
33
			if (loan.isOverdue() || loan.isDefault()) overdueCount++;
34
		}
35
		s.utilization = utilization;
36
		s.totalDue = totalDue;
37
		s.overdueCount = overdueCount;
38
		s.availableLimit = creditLimit.subtract(utilization);
39
		return s;
40
	}
41
 
42
	public int getFofoId() {
43
		return fofoId;
44
	}
45
 
46
	public void setFofoId(int fofoId) {
47
		this.fofoId = fofoId;
48
	}
49
 
50
	public BigDecimal getCreditLimit() {
51
		return creditLimit;
52
	}
53
 
54
	public void setCreditLimit(BigDecimal creditLimit) {
55
		this.creditLimit = creditLimit;
56
	}
57
 
58
	public BigDecimal getUtilization() {
59
		return utilization;
60
	}
61
 
62
	public void setUtilization(BigDecimal utilization) {
63
		this.utilization = utilization;
64
	}
65
 
66
	public BigDecimal getAvailableLimit() {
67
		return availableLimit;
68
	}
69
 
70
	public void setAvailableLimit(BigDecimal availableLimit) {
71
		this.availableLimit = availableLimit;
72
	}
73
 
74
	public BigDecimal getTotalDue() {
75
		return totalDue;
76
	}
77
 
78
	public void setTotalDue(BigDecimal totalDue) {
79
		this.totalDue = totalDue;
80
	}
81
 
82
	public long getOverdueCount() {
83
		return overdueCount;
84
	}
85
 
86
	public void setOverdueCount(long overdueCount) {
87
		this.overdueCount = overdueCount;
88
	}
89
 
90
	public boolean isCanPlaceOrder() {
91
		return canPlaceOrder;
92
	}
93
 
94
	public void setCanPlaceOrder(boolean canPlaceOrder) {
95
		this.canPlaceOrder = canPlaceOrder;
96
	}
97
 
98
	public double getFreshMoneyAvailable() {
99
		return freshMoneyAvailable;
100
	}
101
 
102
	public void setFreshMoneyAvailable(double freshMoneyAvailable) {
103
		this.freshMoneyAvailable = freshMoneyAvailable;
104
	}
105
 
106
	public String getBlockedReason() {
107
		return blockedReason;
108
	}
109
 
110
	public void setBlockedReason(String blockedReason) {
111
		this.blockedReason = blockedReason;
112
	}
113
 
114
	@Override
115
	public String toString() {
116
		return "CreditSummary{fofoId=" + fofoId +
117
				", utilization=" + utilization +
118
				", availableLimit=" + availableLimit +
119
				", totalDue=" + totalDue +
120
				", overdueCount=" + overdueCount +
121
				", canPlaceOrder=" + canPlaceOrder +
122
				'}';
123
	}
124
}