Subversion Repositories SmartDukaan

Rev

Rev 23568 | Rev 24509 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 23568 Rev 24269
Line 37... Line 37...
37
	private UserWalletHistoryRepository userWalletHistoryRepository;
37
	private UserWalletHistoryRepository userWalletHistoryRepository;
38
	
38
	
39
	@Override
39
	@Override
40
	public void addAmountToWallet(int retailerId, int referenceId, WalletReferenceType referenceType, String description,
40
	public void addAmountToWallet(int retailerId, int referenceId, WalletReferenceType referenceType, String description,
41
			float amount) throws ProfitMandiBusinessException{
41
			float amount) throws ProfitMandiBusinessException{
-
 
42
		if(amount == 0) return;
42
		UserWallet userWallet = userWalletRepository.selectByRetailerId(retailerId);
43
		UserWallet userWallet = userWalletRepository.selectByRetailerId(retailerId);
43
		userWallet.setAmount(userWallet.getAmount() + Math.round(amount));
44
		userWallet.setAmount(userWallet.getAmount() + Math.round(amount));
44
		userWalletRepository.persist(userWallet);
45
		userWalletRepository.persist(userWallet);
45
		this.createUserWalletHistory(Math.round(amount), userWallet.getId(), referenceId, referenceType, description);
46
		this.createUserWalletHistory(Math.round(amount), userWallet.getId(), referenceId, referenceType, description);
46
	}
47
	}
47
	
48
	
48
	@Override
49
	@Override
49
	public void consumeAmountFromWallet(int retailerId, int referenceId, WalletReferenceType referenceType,
50
	public void consumeAmountFromWallet(int retailerId, int referenceId, WalletReferenceType referenceType,
50
			String description, float amount) throws ProfitMandiBusinessException {
51
			String description, float amount) throws ProfitMandiBusinessException {
-
 
52
		if(amount == 0) return;
51
		UserWallet userWallet = userWalletRepository.selectByRetailerId(retailerId);
53
		UserWallet userWallet = userWalletRepository.selectByRetailerId(retailerId);
52
		if(amount > userWallet.getAmount()){
54
		if(amount > userWallet.getAmount()){
53
			LOGGER.error("Wallet Balance is insufficient!");
55
			LOGGER.error("Wallet Balance is insufficient!");
54
			throw new ProfitMandiBusinessException("balance", userWallet.getAmount(), "WLT_1000");
56
			throw new ProfitMandiBusinessException("balance", userWallet.getAmount(), "WLT_1000");
55
		}
57
		}
Line 60... Line 62...
60
	
62
	
61
 
63
 
62
	@Override
64
	@Override
63
	public void rollbackAmountFromWallet(int retailerId, float amountToRollback, int rollbackReference, WalletReferenceType walletReferenceType,
65
	public void rollbackAmountFromWallet(int retailerId, float amountToRollback, int rollbackReference, WalletReferenceType walletReferenceType,
64
			String rollbackReason) {
66
			String rollbackReason) {
-
 
67
		if(amountToRollback == 0) return;
65
		UserWallet userWallet = this.getUserWallet(retailerId);
68
		UserWallet userWallet = this.getUserWallet(retailerId);
66
		userWallet.setAmount(userWallet.getAmount() - Math.round(amountToRollback));
69
		userWallet.setAmount(userWallet.getAmount() - Math.round(amountToRollback));
67
		userWalletRepository.persist(userWallet);
70
		userWalletRepository.persist(userWallet);
68
		this.createUserWalletHistory(-Math.round(amountToRollback), userWallet.getId(), rollbackReference, walletReferenceType, rollbackReason);
71
		this.createUserWalletHistory(-Math.round(amountToRollback), userWallet.getId(), rollbackReference, walletReferenceType, rollbackReason);
69
		
72
		
70
	}
73
	}
71
	
74
	
72
	private void createUserWalletHistory(float amount, int walletId, int referenceId, WalletReferenceType referenceType, String description){
75
	private void createUserWalletHistory(float amount, int walletId, int referenceId, WalletReferenceType referenceType, String description){
-
 
76
		if(amount==0) return;
73
		UserWalletHistory userWalletHistory = new UserWalletHistory();
77
		UserWalletHistory userWalletHistory = new UserWalletHistory();
74
		userWalletHistory.setWalletId(walletId);
78
		userWalletHistory.setWalletId(walletId);
75
		userWalletHistory.setAmount(Math.round(amount));
79
		userWalletHistory.setAmount(Math.round(amount));
76
		userWalletHistory.setReference(referenceId);
80
		userWalletHistory.setReference(referenceId);
77
		userWalletHistory.setReferenceType(referenceType);
81
		userWalletHistory.setReferenceType(referenceType);