Subversion Repositories SmartDukaan

Rev

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