Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
6111 anupam.sin 1
package in.shop2020.serving.controllers;
2
 
3
import in.shop2020.model.v1.order.RechargeOrder;
6507 anupam.sin 4
import in.shop2020.model.v1.order.RechargeOrderStatus;
6462 rajveer 5
import in.shop2020.model.v1.order.TransactionService.Client;
6111 anupam.sin 6
import in.shop2020.model.v1.order.TransactionServiceException;
6507 anupam.sin 7
import in.shop2020.model.v1.order.UserWallet;
6111 anupam.sin 8
import in.shop2020.payments.Payment;
9
import in.shop2020.payments.PaymentException;
10
import in.shop2020.thrift.clients.PaymentClient;
11
import in.shop2020.thrift.clients.TransactionClient;
6507 anupam.sin 12
 
13
import java.util.ArrayList;
14
import java.util.Arrays;
6111 anupam.sin 15
import java.util.List;
16
 
17
import org.apache.log4j.Logger;
6507 anupam.sin 18
import org.apache.shiro.SecurityUtils;
6111 anupam.sin 19
import org.apache.thrift.TException;
20
import org.apache.thrift.transport.TTransportException;
21
 
22
public class RechargeOrderInfoController extends BaseController {
23
 
24
    /**
25
     * 
26
     */
27
    private static final long serialVersionUID = 1L;
28
 
29
    private static Logger log = Logger.getLogger(Class.class);
6507 anupam.sin 30
    private Long rechargeOrderId = null;
6111 anupam.sin 31
    private RechargeOrder rechargeOrder = null;
7390 manish.sha 32
    //Start:- Code Commented by Manish Sharma for Hiding wallet amount at Recharge Order Page on June-05-2013
6507 anupam.sin 33
    private UserWallet wallet = null;
6111 anupam.sin 34
    private List<Payment> payments = null;
7390 manish.sha 35
    //private long walletAmount;
36
    //End:- Code Commented by Manish Sharma for Hiding wallet amount at Recharge Order Page on June-05-2013
6111 anupam.sin 37
 
6507 anupam.sin 38
    private static List<RechargeOrderStatus> refundableRechargeStatusList = new ArrayList<RechargeOrderStatus>(Arrays.asList(new RechargeOrderStatus[] 
39
                                                                              {RechargeOrderStatus.RECHARGE_FAILED, 
40
                                                                               RechargeOrderStatus.RECHARGE_FAILED_REFUNDED,
41
                                                                               RechargeOrderStatus.PAYMENT_SUCCESSFUL}));
42
 
6111 anupam.sin 43
    public String index() {
44
        try {
45
            PaymentClient paymentServiceClient = new PaymentClient();
46
            TransactionClient transactionServiceClient = new TransactionClient();
6462 rajveer 47
            Client tclient = transactionServiceClient.getClient();
6507 anupam.sin 48
            rechargeOrder = tclient.getRechargeOrder(rechargeOrderId);
49
            wallet = tclient.getUserWallet(rechargeOrder.getUserId());
7390 manish.sha 50
            //Start:- Code Commented by Manish Sharma for Hiding wallet amount at Recharge Order Page on June-05-2013
51
            //setWalletAmount(wallet.getAmount());
52
            //End:- Code Commented by Manish Sharma for Hiding wallet amount at Recharge Order Page on June-05-2013
7049 anupam.sin 53
            payments = paymentServiceClient.getClient().getPaymentForRechargeTxnId(rechargeOrder.getTransactionId());
6111 anupam.sin 54
 
55
        } catch (TTransportException e) {
56
            log.error("Unable to create thrift Client", e);
57
        } catch (TransactionServiceException e) {
58
            addActionError("Invalid order id or no order selected.");
59
        } catch (TException e) {
60
            log.error("Unable to get thrift Client", e);
61
        } catch (PaymentException e) {
62
            log.error("Unable to get payments for transctionId : " + rechargeOrder.getTransactionId(), e);
63
        }
64
        return INDEX;
65
    }
6507 anupam.sin 66
 
67
    public String refundRechargeOrder() {
68
        try {
69
            TransactionClient transactionServiceClient = new TransactionClient();
70
            if(!transactionServiceClient.getClient().refundRechargeOrder(rechargeOrderId)) {
71
                return "refund-failed";
72
            }
73
        } catch (Exception e) {
74
            log.error("Unable to refund rechargeOrder : " + rechargeOrderId, e);
75
        }
76
        return index();
77
    }
78
 
79
    public boolean showRefundButton() {
80
        RechargeOrderStatus status = rechargeOrder.getStatus();
6509 anupam.sin 81
        if (refundableRechargeStatusList.contains(status) && wallet.getAmount() > 0 && (rechargeOrder.getWalletAmount() != (rechargeOrder.getTotalAmount() - rechargeOrder.getCouponAmount()))) {
6507 anupam.sin 82
            return (SecurityUtils.getSubject().hasRole("Outbound") && SecurityUtils.getSubject().hasRole("TeamLead"));
83
        }
84
        return false;
85
    }
6111 anupam.sin 86
 
6507 anupam.sin 87
    public Long getRechargeOrderId() {
6111 anupam.sin 88
        return rechargeOrderId;
89
    }
90
 
6507 anupam.sin 91
    public void setRechargeOrderId(Long rechargeOrderId) {
6111 anupam.sin 92
        this.rechargeOrderId = rechargeOrderId;
93
    }
6153 anupam.sin 94
 
95
    public String getProviderName(Long operatorId) {
96
        return providersMap.get(operatorId);
97
    }
6111 anupam.sin 98
 
99
    public RechargeOrder getRechargeOrder() {
100
        return rechargeOrder;
101
    }
102
 
103
    public void setRechargeOrder(RechargeOrder rechargeOrder) {
104
        this.rechargeOrder = rechargeOrder;
105
    }
106
 
107
    public List<Payment> getPayments() {
108
        return payments;
109
    }
110
 
111
    public void setPayments(List<Payment> payments) {
112
        this.payments = payments;
113
    }
7390 manish.sha 114
    //Start:- Code Commented by Manish Sharma for Hiding wallet amount at Recharge Order Page on June-05-2013
115
	//public void setWalletAmount(long walletAmount) {
116
	//	this.walletAmount = walletAmount;
117
	//}
6111 anupam.sin 118
 
7390 manish.sha 119
	//public long getWalletAmount() {
120
	//	return walletAmount;
121
	//}
122
    //End:- Code Commented by Manish Sharma for Hiding wallet amount at Recharge Order Page on June-05-2013
123
 
6507 anupam.sin 124
    public UserWallet getWallet() {
125
        return wallet;
126
    }
127
 
128
    public void setWallet(UserWallet wallet) {
129
        this.wallet = wallet;
130
    }
7390 manish.sha 131
 
6111 anupam.sin 132
}