Subversion Repositories SmartDukaan

Rev

Rev 35145 | Rev 35295 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
30859 tejbeer 1
package com.spice.profitmandi.service.transaction;
2
 
3
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
4
import com.spice.profitmandi.dao.entity.transaction.Loan;
34288 ranu 5
import com.spice.profitmandi.dao.entity.transaction.LoanSummary;
30936 tejbeer 6
import com.spice.profitmandi.dao.entity.transaction.SDCreditRequirement;
7
import com.spice.profitmandi.dao.enumuration.transaction.CreditRisk;
30859 tejbeer 8
import com.spice.profitmandi.dao.enumuration.transaction.LoanReferenceType;
9
import com.spice.profitmandi.dao.model.SDCreditResponseOut;
10
 
34288 ranu 11
import java.math.BigDecimal;
12
import java.time.LocalDate;
13
import java.time.LocalDateTime;
14
import java.util.List;
15
import java.util.Map;
16
 
35131 amit 17
 
30859 tejbeer 18
public interface SDCreditService {
19
 
33297 amit.gupta 20
	void fundWallet(int fofoId) throws ProfitMandiBusinessException;
21
 
34731 amit.gupta 22
	void fundWallet(int fofoId, double amountToFund, String reasonToFund) throws ProfitMandiBusinessException;
23
 
33339 amit.gupta 24
	//This will create loan irrespective of sanctions and increases the overall ultization
33696 amit.gupta 25
	Loan createLoan(int fofoId, double creditAmountRequired, int freeDays, String creditReason) throws ProfitMandiBusinessException;
33339 amit.gupta 26
 
34661 ranu 27
	BlockLoanIdSanctionId createSDDirectOrder(int userId, double amountRequired, int freeCreditDays)
30859 tejbeer 28
			throws ProfitMandiBusinessException;
29
 
31518 amit.gupta 30
	BigDecimal getAvailableAmount(int fofoId);
30859 tejbeer 31
 
31518 amit.gupta 32
	long getUtilizationAmount(int fofoId);
30859 tejbeer 33
 
31518 amit.gupta 34
	void createLoanStatement(LoanReferenceType interest, BigDecimal interestAccrued, int fofoId, int loanId,
30859 tejbeer 35
			String description, LocalDateTime businessDate);
36
 
31518 amit.gupta 37
	void addInterest(LocalDate from, LocalDate to, Loan loan, Map<LoanReferenceType, Double> loanStatusAmount);
30859 tejbeer 38
 
34453 amit.gupta 39
	SDCreditResponseOut sdDirectService(int retailerId) throws ProfitMandiBusinessException;
30859 tejbeer 40
 
31518 amit.gupta 41
	CreditRisk getCurrentRisk(SDCreditRequirement sdCreditRequirement, LocalDateTime firstBillingDate);
30936 tejbeer 42
 
31518 amit.gupta 43
	boolean isDefaultPartner(int fofoId);
30936 tejbeer 44
 
31518 amit.gupta 45
	void updateRisk();
30936 tejbeer 46
 
34727 amit.gupta 47
	List<Loan> getDefaultLoans();
30936 tejbeer 48
 
34288 ranu 49
	List<Loan> getDefaultLoanWithoutLimit();
50
 
31399 tejbeer 51
	public List<Loan> getDueDateCrossLoan();
52
 
35110 ranu 53
	public List<Loan> getAllActiveLoan();
54
 
30936 tejbeer 55
	public boolean isDefaultLoan(int loanId, LocalDate time);
31020 tejbeer 56
 
32172 jai.hind 57
 
58
		LoanSummary getLoanSummary();
33419 amit.gupta 59
 
60
    void checkLoans();
33663 amit.gupta 61
 
62
    void createLoanForBilling(int transactionId, double invoiceAmount, String invoiceNumber) throws ProfitMandiBusinessException;
63
 
34731 amit.gupta 64
	void settleBlockedLoan(int transactionId, double amountToRelease) throws ProfitMandiBusinessException;
33663 amit.gupta 65
 
33900 amit.gupta 66
	Loan getLimitFromTransactionId(int transactionId) throws ProfitMandiBusinessException;
67
 
33663 amit.gupta 68
	double settleLoan(Loan loan) throws ProfitMandiBusinessException;
33903 amit.gupta 69
 
70
	void resetHardLimit();
34731 amit.gupta 71
 
72
	void releaseBlockedLimit(Loan bloackedLoan, double limitToRelease) throws ProfitMandiBusinessException;
35131 amit 73
 
35157 amit 74
    void updateMinInvestmentForHardLimit(SDCreditRequirement sdCreditRequirement, boolean useRecent) throws ProfitMandiBusinessException;
30859 tejbeer 75
}