Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
5559 rajveer 1
package in.shop2020.support.controllers;
2
 
3
 
4
 
5678 rajveer 5
import in.shop2020.model.v1.order.Attribute;
5559 rajveer 6
import in.shop2020.model.v1.order.Order;
7
import in.shop2020.model.v1.order.TransactionService.Client;
8
import in.shop2020.model.v1.order.TransactionServiceException;
9
import in.shop2020.thrift.clients.TransactionClient;
10
 
5678 rajveer 11
import java.util.ArrayList;
5559 rajveer 12
import java.util.Calendar;
13
import java.util.List;
14
 
15
import javax.servlet.ServletContext;
16
import javax.servlet.http.HttpServletRequest;
17
import javax.servlet.http.HttpServletResponse;
18
 
19
import org.apache.struts2.interceptor.ServletRequestAware;
20
import org.apache.struts2.interceptor.ServletResponseAware;
21
import org.apache.struts2.util.ServletContextAware;
22
import org.apache.thrift.TException;
23
import org.apache.thrift.transport.TTransportException;
24
import org.slf4j.Logger;
25
import org.slf4j.LoggerFactory;
26
 
27
public class PickupStoreController implements ServletResponseAware, ServletRequestAware, ServletContextAware {
28
 
29
    private static Logger logger = LoggerFactory.getLogger(PickupStoreController.class);
30
 
31
    private HttpServletRequest request;
32
    private HttpServletResponse response;
33
    private ServletContext context;
34
    private String storeIdString;
35
    private long storeId;
5678 rajveer 36
    private String id;
37
    private String error = "";
5559 rajveer 38
 
39
    @Override
40
    public void setServletRequest(HttpServletRequest req) {
41
        this.request = req;
42
    }
43
 
44
    public HttpServletRequest getServletRequest() {
45
        return request;
46
    }
47
 
48
    @Override
49
    public void setServletResponse(HttpServletResponse res) {
50
        this.response = res;
51
    }
52
 
53
    public HttpServletResponse getServletResponse() {
54
        return response;
55
    }
56
 
57
    @Override
58
    public void setServletContext(ServletContext context) {
59
        this.context = context;
60
    }
61
 
62
    public String getServletContextPath() {
63
        return context.getContextPath();
64
    }
65
 
66
    public String index(){
67
    	storeIdString = (String) request.getSession().getAttribute("STORE_ID");
68
    	if(storeIdString == null){
69
    		storeIdString = request.getParameter("storeid");
70
    		if(storeIdString == null){
71
    			return "authfail";
72
    		}else{
73
    			request.getSession().setAttribute("STORE_ID", storeIdString);
74
    		}
75
    	}
76
    	storeId = Long.parseLong(storeIdString);
77
    	return "index";
78
    }
5678 rajveer 79
 
80
    public String show(){
81
    	storeIdString = (String) request.getSession().getAttribute("STORE_ID");
82
    	if(storeIdString == null){
83
    		storeIdString = request.getParameter("storeid");
84
    		if(storeIdString == null){
85
    			return "authfail";
86
    		}else{
87
    			request.getSession().setAttribute("STORE_ID", storeIdString);
88
    		}
89
    	}
90
    	storeId = Long.parseLong(storeIdString);
91
    	return "show";
92
    }
5559 rajveer 93
 
94
    // Handles the POST request (Form Submission)
95
    public String create() {
96
    	storeIdString = (String) request.getSession().getAttribute("STORE_ID");
97
    	if(storeIdString == null){
98
    		return "authfail";
99
    	}
100
    	storeId = Long.parseLong(storeIdString);
101
    	String orderIdString = request.getParameter("orderid");
102
    	String action = request.getParameter("action");
5678 rajveer 103
    	long orderId = Long.parseLong(orderIdString);
5559 rajveer 104
    	logger.info("orderIdString" + orderIdString);
105
    	if(orderIdString != null){
106
    		try {
107
				Client client = (new TransactionClient()).getClient();
108
				if(action.equals("markreceived")){
109
					client.markOrderAsReceivedAtStore(Long.parseLong(orderIdString), Calendar.getInstance().getTimeInMillis());	
110
				}else if(action.equals("markdelivered")){
111
					String receiver = request.getParameter("receiver");
5678 rajveer 112
					String secretCode = request.getParameter("secretcode");
113
					Order order = client.getOrder(orderId);
114
					List<Attribute> attributes = client.getAllAttributesForOrderId(orderId);
115
					for(Attribute attribute: attributes){
116
						if(attribute.getName().equals("SECRET_CODE")){
117
							if(!attribute.getValue().equalsIgnoreCase(secretCode)){
118
								error = "Secret code does not match";
119
							}
120
						}
121
					}
122
					List<Attribute> newAttributes = new ArrayList<Attribute>();
123
					if(order.isCod()){
124
						double amount = Double.parseDouble(request.getParameter("amount"));
125
						if(order.getTotal_amount() != amount){
126
							error = "<br>Amount does not match";
127
						}
128
					}
129
					if(!error.equalsIgnoreCase("")){
130
						setId("deliver");
131
						return show();
132
					}else{
133
						if(order.isCod()){
134
							String paymentType =  request.getParameter("paymenttype");
135
							newAttributes.add(new Attribute("PAYMENT_MODE", paymentType));
136
							client.setOrderAttributes(orderId, newAttributes);
137
						}
138
					}
5559 rajveer 139
					client.markOrderAsDelivered(Long.parseLong(orderIdString), Calendar.getInstance().getTimeInMillis(), receiver);
140
				}else if(action.equals("markreturned")){
5678 rajveer 141
					String orderIdsString = request.getParameter("orderIds");
142
					long providerId = Long.parseLong(request.getParameter("providerID"));
143
					List<Long> orderIds = new ArrayList<Long>();
144
					for(String orderIdString1: orderIdsString.split(":")){
145
						orderIds.add(Long.parseLong(orderIdString1));
146
					}
147
					client.markOrdersAsReturnedFromStore(providerId, orderIds);
5559 rajveer 148
				}
149
 
150
				return "index";
151
			} catch (TTransportException e) {
152
				// TODO Auto-generated catch block
153
				e.printStackTrace();
154
			} catch (NumberFormatException e) {
155
				// TODO Auto-generated catch block
156
				e.printStackTrace();
157
			} catch (TransactionServiceException e) {
158
				// TODO Auto-generated catch block
159
				e.printStackTrace();
160
			} catch (TException e) {
161
				// TODO Auto-generated catch block
162
				e.printStackTrace();
163
			}
164
    	}
165
        return "index";
166
    }
167
 
168
 
169
    public List<Order> getReceivePendingOrders() throws TException{
170
    	Client client = (new TransactionClient()).getClient();
171
    	return client.getReceivePendingOrders(storeId);
172
    }
173
 
174
    public List<Order> getReceivedAtStoreOrders() throws TException{
175
    	Client client = (new TransactionClient()).getClient();
176
    	return client.getReceivedAtStoreOrders(storeId);
177
    }
5678 rajveer 178
 
179
	public void setId(String id) {
180
		this.id = id;
181
	}
182
 
183
	public String getId() {
184
		return id;
185
	}
186
 
187
	public void setError(String error) {
188
		this.error = error;
189
	}
190
 
191
	public String getError() {
192
		return error;
193
	}
194
 
195
	public long getStoreId(){
196
		return storeId;
197
	}
198
 
5559 rajveer 199
}