Subversion Repositories SmartDukaan

Rev

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

Rev 4209 Rev 4386
Line 1... Line 1...
1
package in.shop2020.support.controllers;
1
package in.shop2020.support.controllers;
2
 
2
 
-
 
3
import in.shop2020.logistics.Awb;
-
 
4
import in.shop2020.logistics.DeliveryType;
-
 
5
import in.shop2020.logistics.LogisticsServiceException;
-
 
6
import in.shop2020.logistics.Provider;
-
 
7
import in.shop2020.model.v1.catalog.InventoryServiceException;
3
import in.shop2020.model.v1.catalog.Warehouse;
8
import in.shop2020.model.v1.catalog.Warehouse;
-
 
9
import in.shop2020.model.v1.order.LineItem;
-
 
10
import in.shop2020.model.v1.order.Order;
-
 
11
import in.shop2020.model.v1.order.OrderStatus;
-
 
12
import in.shop2020.model.v1.order.TransactionServiceException;
4
import in.shop2020.support.utils.FileUtils;
13
import in.shop2020.support.utils.FileUtils;
5
import in.shop2020.thrift.clients.CatalogClient;
14
import in.shop2020.thrift.clients.CatalogClient;
6
import in.shop2020.thrift.clients.HelperClient;
15
import in.shop2020.thrift.clients.HelperClient;
-
 
16
import in.shop2020.thrift.clients.LogisticsClient;
-
 
17
import in.shop2020.thrift.clients.TransactionClient;
7
import in.shop2020.utils.LogisticsUser;
18
import in.shop2020.utils.LogisticsUser;
-
 
19
import in.shop2020.support.models.AwbDetails;
8
 
20
 
9
import java.io.ByteArrayOutputStream;
21
import java.io.ByteArrayOutputStream;
10
import java.io.File;
22
import java.io.File;
11
import java.io.IOException;
23
import java.io.IOException;
-
 
24
import java.io.PrintStream;
-
 
25
import java.util.ArrayList;
12
import java.util.Calendar;
26
import java.util.Calendar;
-
 
27
import java.util.Collection;
-
 
28
import java.util.Date;
13
import java.util.GregorianCalendar;
29
import java.util.GregorianCalendar;
14
import java.util.HashMap;
30
import java.util.HashMap;
-
 
31
import java.util.Iterator;
15
import java.util.List;
32
import java.util.List;
-
 
33
import java.util.ListIterator;
16
import java.util.Map;
34
import java.util.Map;
17
 
35
 
18
import javax.servlet.ServletContext;
36
import javax.servlet.ServletContext;
19
import javax.servlet.ServletOutputStream;
37
import javax.servlet.ServletOutputStream;
20
import javax.servlet.http.HttpServletRequest;
38
import javax.servlet.http.HttpServletRequest;
21
import javax.servlet.http.HttpServletResponse;
39
import javax.servlet.http.HttpServletResponse;
22
import javax.servlet.http.HttpSession;
40
import javax.servlet.http.HttpSession;
23
 
41
 
-
 
42
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-
 
43
import org.apache.poi.ss.usermodel.Cell;
-
 
44
import org.apache.poi.ss.usermodel.CellStyle;
-
 
45
import org.apache.poi.ss.usermodel.CreationHelper;
-
 
46
import org.apache.poi.ss.usermodel.Row;
-
 
47
import org.apache.poi.ss.usermodel.Sheet;
-
 
48
import org.apache.poi.ss.usermodel.Workbook;
24
import org.apache.struts2.interceptor.ServletRequestAware;
49
import org.apache.struts2.interceptor.ServletRequestAware;
25
import org.apache.struts2.interceptor.ServletResponseAware;
50
import org.apache.struts2.interceptor.ServletResponseAware;
26
import org.apache.struts2.util.ServletContextAware;
51
import org.apache.struts2.util.ServletContextAware;
-
 
52
import org.apache.thrift.TException;
-
 
53
import org.apache.thrift.transport.TTransportException;
27
import org.slf4j.Logger;
54
import org.slf4j.Logger;
28
import org.slf4j.LoggerFactory;
55
import org.slf4j.LoggerFactory;
29
 
56
 
30
/**
57
/**
31
 * Allows executives of courier companies to login and download courier details
58
 * Allows executives of courier companies to login and download courier details
Line 48... Line 75...
48
	private ServletContext context;
75
	private ServletContext context;
49
	private HttpServletRequest request;
76
	private HttpServletRequest request;
50
	private HttpServletResponse response;
77
	private HttpServletResponse response;
51
	private HttpSession session;
78
	private HttpSession session;
52
 
79
 
-
 
80
    private String awbNumbers;
-
 
81
    private List<AwbDetails> detailedAWBs;
-
 
82
 
-
 
83
    private String errorMsg = "";
-
 
84
 
53
	public String index(){
85
	public String index(){
54
		if(getSessionUserName()==null)
86
		if(getSessionUserName()==null)
55
			return "authfail";
87
			return "authfail";
56
		else
88
		else
57
			return "authsuccess";
89
			return "authsuccess";
Line 118... Line 150...
118
		}catch(NumberFormatException nfe){
150
		}catch(NumberFormatException nfe){
119
			logger.error("Unable to parse the warehouse id", nfe);
151
			logger.error("Unable to parse the warehouse id", nfe);
120
		}
152
		}
121
		return "authfail";
153
		return "authfail";
122
	}
154
	}
-
 
155
	
-
 
156
	public static void main(String[] args) {
-
 
157
	    CourierDetailsController cdc = new CourierDetailsController();
-
 
158
	    cdc.setAwbNumbers("4340987735");
-
 
159
	    String msg = cdc.getAwbDetails();
-
 
160
	    System.out.println(msg);
-
 
161
	    //58539182004
-
 
162
	    //43726980393
-
 
163
    }
-
 
164
	
-
 
165
	/**
-
 
166
	 * Use this method to get details of a given awb number
-
 
167
	 */
-
 
168
	public String getAwbDetails() {
-
 
169
	    Order order = null;
-
 
170
	    if(awbNumbers.isEmpty()) {
-
 
171
	        setErrorMsg("Field cannot be empty");
-
 
172
	        return "info";
-
 
173
	    }
-
 
174
	    List<AwbDetails> tempList = new ArrayList<AwbDetails>() ;
-
 
175
	    String [] awbArray = awbNumbers.split(",");
-
 
176
	    for(String awbNumber : awbArray) {
-
 
177
	        try {
-
 
178
	            LogisticsClient lsc = new LogisticsClient();
-
 
179
	            TransactionClient tsc = new TransactionClient();
-
 
180
	            CatalogClient csc = new CatalogClient();
-
 
181
	            in.shop2020.model.v1.catalog.InventoryService.Client inventoryClient = csc.getClient();
-
 
182
	            in.shop2020.model.v1.order.TransactionService.Client txnClient = tsc.getClient();
-
 
183
	            in.shop2020.logistics.LogisticsService.Client logisticsClient = lsc.getClient();
-
 
184
	            
-
 
185
	            /*
-
 
186
	             * Get required stuff
-
 
187
	             * FIXME: Reduce service calls 
-
 
188
	             */
-
 
189
	            Awb awb = logisticsClient.getAwbForNumber(awbNumber);
-
 
190
	            Provider provider = logisticsClient.getProvider(awb.getProviderId());
-
 
191
	            order = txnClient.getOrderForAwb(awbNumber);
-
 
192
	            Warehouse warehouse = inventoryClient.getWarehouse(order.getWarehouse_id());
-
 
193
	           
-
 
194
	            String accountNo;
-
 
195
	            if(order.isCod())
-
 
196
	                 accountNo = provider.getDetails().get(DeliveryType.COD).getAccountNo();
-
 
197
	            else
-
 
198
	                accountNo = provider.getDetails().get(DeliveryType.PREPAID).getAccountNo();
-
 
199
	            
-
 
200
	            AwbDetails detailedAwb = new AwbDetails();
-
 
201
	            
-
 
202
	            detailedAwb.setAwbNumber(awbNumber);
-
 
203
	            detailedAwb.setAccountCode(accountNo);
-
 
204
	            detailedAwb.setAddress1(order.getCustomer_address1());
-
 
205
	            detailedAwb.setAddress2(order.getCustomer_address2());
-
 
206
	            detailedAwb.setAmountToCollect("" + order.getTotal_amount());
-
 
207
	            Date date = new Date(order.getPickup_timestamp());
-
 
208
	            detailedAwb.setAwbDate(date.toString());
-
 
209
	            detailedAwb.setCity(order.getCustomer_city());
-
 
210
	            detailedAwb.setCustomerName(order.getCustomer_name());
-
 
211
	            detailedAwb.setItemId("" + order.getLineitems().get(0).getId());
-
 
212
	            detailedAwb.setOrderId("" + order.getId());
-
 
213
	            detailedAwb.setPacketWeight("" + order.getTotal_weight());
-
 
214
	            if (order.isCod()) {
-
 
215
	                detailedAwb.setPaymentMode("COD");
-
 
216
	            } else {
-
 
217
	                detailedAwb.setPaymentMode("Prepaid");
-
 
218
	            }
-
 
219
	            
-
 
220
	            detailedAwb.setPhoneNumber("" + order.getCustomer_mobilenumber());
-
 
221
	            detailedAwb.setPickupLocation(warehouse.getLocation());
-
 
222
	            detailedAwb.setPinCode(order.getCustomer_pincode());
-
 
223
	            LineItem lineitem = order.getLineitems().get(0);
-
 
224
	            detailedAwb.setProductName(lineitem.getBrand() + " " + lineitem.getModel_name() + " " 
-
 
225
	                                         + lineitem.getItem_number() + " " + lineitem.getColor());
-
 
226
	            detailedAwb.setShipmentValue("" + order.getTotal_amount());
-
 
227
	            detailedAwb.setState(order.getCustomer_state());
-
 
228
	            
-
 
229
	            tempList.add(detailedAwb);
-
 
230
 
-
 
231
	        } catch (TTransportException e) {
-
 
232
	            setErrorMsg("Your request cannot be processed due to technical error. Please try later.");
-
 
233
	        } catch (TException e) {
-
 
234
	            setErrorMsg(e.getMessage());
-
 
235
	        } catch (TransactionServiceException e) {
-
 
236
	            setErrorMsg(e.getMessage());
-
 
237
	        } catch (LogisticsServiceException e) {
-
 
238
	            setErrorMsg(e.getMessage());
-
 
239
            } catch (InventoryServiceException e) {
-
 
240
                setErrorMsg(e.getMessage());
-
 
241
            }
-
 
242
        setDetailedAWBs(tempList);
-
 
243
	    }
-
 
244
	    return "info";
-
 
245
	}
123
 
246
 
124
    /**
247
    /**
125
     * Sets the daysToSubtract to -2 and then invokes the standard show() handler.
248
	 * Sets the daysToSubtract to -2 and then invokes the standard show() handler.
126
     * Should be used to view day before yesterday's courier details report.
249
	 * Should be used to view day before yesterday's courier details report.
127
     * 
250
	 * 
128
     * @return the same string tokens as show
251
     * @return the same string tokens as show
129
     */
252
     */
130
	public String dayBefore(){
253
	public String dayBefore(){
131
		daysToSubtract = -2;
254
		daysToSubtract = -2;
132
		return show();
255
		return show();
Line 208... Line 331...
208
	}
331
	}
209
 
332
 
210
	public String getServletContextPath(){
333
	public String getServletContextPath(){
211
		return context.getContextPath();
334
		return context.getContextPath();
212
	}
335
	}
-
 
336
 
-
 
337
    public String getAwbNumbers() {
-
 
338
        return awbNumbers;
-
 
339
    }
-
 
340
 
-
 
341
    public void setAwbNumbers(String awbNumbers) {
-
 
342
        this.awbNumbers = awbNumbers;
-
 
343
    }
-
 
344
 
-
 
345
    public List<AwbDetails> getDetailedAWBs() {
-
 
346
        return detailedAWBs;
-
 
347
    }
-
 
348
 
-
 
349
    public void setDetailedAWBs(List<AwbDetails> detailedAWBs) {
-
 
350
        this.detailedAWBs = detailedAWBs;
-
 
351
    }
-
 
352
 
-
 
353
    public String getErrorMsg() {
-
 
354
        return errorMsg;
-
 
355
    }
-
 
356
 
-
 
357
    public void setErrorMsg(String errorMsg) {
-
 
358
        this.errorMsg = errorMsg;
-
 
359
    }
213
}
360
}