Subversion Repositories SmartDukaan

Rev

Rev 13666 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9947 vikram.rag 1
package in.shop2020;
2
 
3
import in.shop2020.logistics.DeliveryType;
4
import in.shop2020.logistics.LogisticsInfo;
5
import in.shop2020.logistics.LogisticsServiceException;
6
import in.shop2020.model.v1.catalog.CatalogService.Client;
7
import in.shop2020.model.v1.catalog.FlipkartItem;
8
import in.shop2020.model.v1.catalog.Item;
10174 vikram.rag 9
import in.shop2020.model.v1.catalog.SnapdealItemDetails;
9947 vikram.rag 10
import in.shop2020.model.v1.catalog.status;
10049 vikram.rag 11
import in.shop2020.model.v1.inventory.FlipkartInventorySnapshot;
9947 vikram.rag 12
import in.shop2020.model.v1.inventory.InventoryType;
13
import in.shop2020.model.v1.inventory.ItemInventory;
14
import in.shop2020.model.v1.inventory.Warehouse;
15
import in.shop2020.model.v1.inventory.WarehouseLocation;
16
import in.shop2020.model.v1.inventory.WarehouseType;
17
import in.shop2020.model.v1.order.OrderSource;
18
import in.shop2020.serving.model.Order;
19
import in.shop2020.serving.model.OrderItems;
20
import in.shop2020.thrift.clients.CatalogClient;
21
import in.shop2020.thrift.clients.InventoryClient;
22
import in.shop2020.thrift.clients.LogisticsClient;
23
import in.shop2020.thrift.clients.TransactionClient;
9983 vikram.rag 24
import in.shop2020.utils.GmailUtils;
9947 vikram.rag 25
import inventory.FlipkartInventoryItem;
26
 
27
import java.io.BufferedReader;
9983 vikram.rag 28
import java.io.File;
9947 vikram.rag 29
import java.io.IOException;
30
import java.io.InputStreamReader;
9968 vikram.rag 31
import java.io.UnsupportedEncodingException;
11442 vikram.rag 32
import java.nio.charset.Charset;
9947 vikram.rag 33
import java.util.ArrayList;
34
import java.util.HashMap;
35
import java.util.List;
36
import java.util.Map;
37
import java.util.Map.Entry;
38
 
9983 vikram.rag 39
import javax.mail.MessagingException;
40
 
11443 vikram.rag 41
import org.apache.commons.codec.binary.Base64;
11442 vikram.rag 42
import org.apache.http.HttpHeaders;
9947 vikram.rag 43
import org.apache.http.HttpResponse;
44
import org.apache.http.NameValuePair;
45
import org.apache.http.auth.AuthScope;
46
import org.apache.http.auth.UsernamePasswordCredentials;
47
import org.apache.http.client.ClientProtocolException;
48
import org.apache.http.client.HttpClient;
49
import org.apache.http.client.entity.UrlEncodedFormEntity;
50
import org.apache.http.client.methods.HttpGet;
51
import org.apache.http.client.methods.HttpPost;
52
import org.apache.http.entity.StringEntity;
53
import org.apache.http.impl.client.DefaultHttpClient;
54
import org.apache.http.message.BasicNameValuePair;
55
import org.apache.thrift.TException;
56
import org.apache.thrift.transport.TTransportException;
57
import com.google.gson.Gson;
58
 
59
 
60
 
61
public class CreateSubmitFlipkartInventoryFeed {
62
	private static Map<Long, FlipkartInventoryItem> flipkartItemsInventoryMap = new HashMap<Long, FlipkartInventoryItem>();
63
	private static List<FlipkartItem> flipkartItems;
64
	private static List<FlipkartItem> flipkartInventoryItems = new ArrayList<FlipkartItem>();
65
	private static Map<Long,Long> itemIdOrdersMap = new HashMap<Long,Long>();
9983 vikram.rag 66
	private static Map<Long,Item> aliveItemsMap = new HashMap<Long,Item>();
10057 vikram.rag 67
	private static Map<String,Long> heldOrdersMap = new HashMap<String,Long>();
10122 vikram.rag 68
	private static Map<Long,Long>  updatedFlipkartInventoryMap = new HashMap<Long,Long>();
9983 vikram.rag 69
	static java.text.SimpleDateFormat sdf;
70
	static String emailFromAddress;
71
	static String password;
72
	static GmailUtils mailer;
73
	static String sendTo[];
10174 vikram.rag 74
	private static List<SnapdealItemDetails> snapdealItems = new ArrayList<SnapdealItemDetails>();
75
	private static Map<Long,SnapdealItemDetails> snapdealItemsMap = new HashMap<Long,SnapdealItemDetails>();
13666 kshitij.so 76
	private static String cookies;
9947 vikram.rag 77
	static
78
	{
9983 vikram.rag 79
		sdf = new java.text.SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
80
		emailFromAddress = "build@shop2020.in";
81
		password = "cafe@nes";
82
		mailer = new GmailUtils();
11448 vikram.rag 83
		//sendTo = new String[]{"vikram.raghav@shop2020.in"};
84
		sendTo = new String[]{ "sandeep.sachdeva@shop2020.in", "vikram.raghav@shop2020.in", "rajneesh.arora@shop2020.in",
9983 vikram.rag 85
				"khushal.bhatia@shop2020.in","manoj.kumar@saholic.com","chaitnaya.vats@saholic.com",
12595 manish.sha 86
				"yukti.jain@shop2020.in","manoj.pal@shop2020.in","chandan.kumar@shop2020.in","ankush.dhingra@shop2020.in","manish.sharma@shop2020.in","anikendra.das@shop2020.in"};
11448 vikram.rag 87
		List<String> flipkartorderids = null;
88
		Client catalogServiceClient = null;
89
		try {
90
			catalogServiceClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient();
91
		} catch (TTransportException e) {
92
			e.printStackTrace();
93
		}
94
		try {
95
			flipkartItems = catalogServiceClient.getAllFlipkartItems();
96
			snapdealItems = catalogServiceClient.getAllSnapdealItems();
97
		} catch (TException e) {
98
			e.printStackTrace();
99
		}
100
		for(FlipkartItem flipkartItem:flipkartItems){
101
			if(flipkartItem.isIsListedOnFlipkart() && !flipkartItem.isSuppressInventoryFeed())
102
				flipkartInventoryItems.add(flipkartItem);
103
		}
104
		for(SnapdealItemDetails snapdealItem:snapdealItems){
105
			snapdealItemsMap.put(snapdealItem.getItem_id(),snapdealItem);
106
		}
107
		if(flipkartInventoryItems.size()==0){
108
			String text = "";
109
			try {
110
				mailer.sendSSLMessage(sendTo,"No items to send inventory ", emailFromAddress, password, text);
111
				System.exit(0);
112
			} catch (MessagingException e) {
113
				e.printStackTrace();
114
			}
115
		}
116
		in.shop2020.model.v1.order.TransactionService.Client transactionClient = null;
117
		try {
118
			flipkartorderids = FetchOrders();
119
		} catch (ClientProtocolException e1) {
120
			e1.printStackTrace();
121
		} catch (IOException e1) {
122
			e1.printStackTrace();
123
		}
124
		try {
125
			transactionClient = new TransactionClient().getClient();
126
			if(flipkartorderids!=null && flipkartorderids.size()>0){
127
				itemIdOrdersMap = transactionClient.getCreatedOrdersForFlipkart(flipkartorderids);
128
			}
129
		} catch (TTransportException e) {
130
			try {
131
				itemIdOrdersMap = transactionClient.getCreatedOrdersForFlipkart(flipkartorderids);
132
			} catch (TException e1) {
133
				e1.printStackTrace();
134
			}
135
		}catch (TException e) {
136
			e.printStackTrace();
137
		}
138
		try {
139
			List<FlipkartInventorySnapshot> updatedFlipkartInventoryList = new InventoryClient().getClient().getFlipkartInventorySnapshot();
140
			for(FlipkartInventorySnapshot updatedFlipkartInventory:updatedFlipkartInventoryList){
141
				updatedFlipkartInventoryMap.put(updatedFlipkartInventory.getItem_id(),updatedFlipkartInventory.getAvailability());
142
			}
143
		} catch (TException e) {
144
			e.printStackTrace();
145
		}
146
		catch(Exception e){
147
			List<FlipkartInventorySnapshot> updatedFlipkartInventoryList = null;
148
			try {
149
				updatedFlipkartInventoryList = new InventoryClient().getClient().getFlipkartInventorySnapshot();
150
			} catch (TTransportException e1) {
151
				e1.printStackTrace();
152
			} catch (TException e1) {
153
				e1.printStackTrace();
154
			}
155
			if(updatedFlipkartInventoryList != null){
156
				for(FlipkartInventorySnapshot updatedFlipkartInventory:updatedFlipkartInventoryList){
157
					updatedFlipkartInventoryMap.put(updatedFlipkartInventory.getItem_id(),updatedFlipkartInventory.getAvailability());
158
				}
159
			}
160
		}
9947 vikram.rag 161
 
10122 vikram.rag 162
 
9947 vikram.rag 163
	}
164
 
9967 vikram.rag 165
	public static void main(String[] args) throws ClientProtocolException, TException{
9947 vikram.rag 166
		calculateinventory();
167
		DefaultHttpClient httpclient = new DefaultHttpClient();
11440 vikram.rag 168
		//httpclient = (DefaultHttpClient) WebClientWrapper.wrapClient(httpclient);
10051 vikram.rag 169
		//httpclient.getCredentialsProvider().setCredentials(
170
		//		new AuthScope("sandbox-api.flipkart.net", 443),
171
		//		new UsernamePasswordCredentials("og3yg5994bxbxxc1", "8a137068-417c-4e4f-ae95-9295ab938d88"));/// Test Server Access Keys
11440 vikram.rag 172
		//httpclient.getCredentialsProvider().setCredentials(
173
		//		new AuthScope("api.flipkart.net", 443),
174
		//		new UsernamePasswordCredentials("m2z93iskuj81qiid","0c7ab6a5-98c0-4cdc-8be3-72c591e0add4")); //Prod Server Access Keys
11448 vikram.rag 175
 
10051 vikram.rag 176
		HttpPost httppost = new HttpPost("https://api.flipkart.net/sellers/skus/listings/bulk"); // PROD
11448 vikram.rag 177
 
11442 vikram.rag 178
		String auth = "m2z93iskuj81qiid"+":"+"0c7ab6a5-98c0-4cdc-8be3-72c591e0add4";
179
		byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")));
180
		String authHeader = "Basic " + new String(encodedAuth);
181
		httppost.setHeader(HttpHeaders.AUTHORIZATION, authHeader);
10051 vikram.rag 182
		//HttpPost httppost = new HttpPost("https://sandbox-api.flipkart.net/sellers/skus/listings/bulk"); // TEST
9947 vikram.rag 183
		StringBuffer jsonRequest = new StringBuffer();
9983 vikram.rag 184
		StringBuffer jsonStart = new StringBuffer();
185
		jsonStart = jsonStart.append("{\"listings\":[");
186
		StringBuffer jsonEnd = new StringBuffer();
187
		jsonEnd.append("]}");
9947 vikram.rag 188
		//System.out.println("JSON request  " + jsonRequest);
189
		LogisticsClient logisticsServiceClient;
190
		in.shop2020.logistics.LogisticsService.Client logisticsClient=null;
191
		LogisticsInfo logisticinfo = null;
192
		try {
10154 vikram.rag 193
			logisticsServiceClient = new LogisticsClient();
9947 vikram.rag 194
			logisticsClient = logisticsServiceClient.getClient();
195
 
196
		} catch (TTransportException e) {
197
			e.printStackTrace();
198
		}
199
		long stock=0;
200
		int i=0;
10176 vikram.rag 201
		long available,reserve,heldforsource,totalheld,allocable,holdinventory,defaultinventory,actualstock = 0,orders,heldorders;
202
		float allocation;
9983 vikram.rag 203
		StringBuffer inventoryItems =new StringBuffer();
10122 vikram.rag 204
		StringBuffer backInStockItems =new StringBuffer();
205
		StringBuffer outOfStockItems =new StringBuffer();
9983 vikram.rag 206
		String tableHeader = "<html><table border=\"1\" align=\"center\"><tr>" 
207
			+ "<td><b>" + "Product Name" +"</b></td>"
11901 vikram.rag 208
			+ "<td><b>" + "SKU at Flipkart"+"</b></td>"
9983 vikram.rag 209
			+"<td><b>" + "Item ID" + "</b></td>"
210
			+"<td><b>" + "Inventory" + "</b></td>"
211
			+"<td><b>" + "Orders Added to Inventory" + "</b></td>"
212
			+"<td><b>" + "Sent Inventory" + "</b></td>"
10049 vikram.rag 213
			+"<td><b>" + "Procurement SLA" + "</b></td>"
214
			+"<td><b>" + "Orders on Hold" + "</b></td>"
9983 vikram.rag 215
			+"</tr>";
10159 vikram.rag 216
 
9983 vikram.rag 217
		String tableFooter = "</table></html>";
218
		Item item;
10027 vikram.rag 219
		StringBuffer feedResponse=  new StringBuffer();
10049 vikram.rag 220
		List<FlipkartInventorySnapshot> inventorysnapshotlist = new ArrayList<FlipkartInventorySnapshot>();
10450 vikram.rag 221
		long timestamp = System.currentTimeMillis();
9947 vikram.rag 222
		for(Entry<Long, FlipkartInventoryItem> entry:flipkartItemsInventoryMap.entrySet()){
10174 vikram.rag 223
			if(snapdealItemsMap.containsKey(entry.getKey()) && snapdealItemsMap.get(entry.getKey()).isIsListedOnSnapdeal()){
10306 vikram.rag 224
				allocation = (float) 0.33;
10174 vikram.rag 225
			}
226
			else{
10306 vikram.rag 227
				allocation = (float) 0.67;
10174 vikram.rag 228
			}
9985 vikram.rag 229
			actualstock=0;
230
			orders=0;
231
			stock=0;
10049 vikram.rag 232
			heldorders=0;
9947 vikram.rag 233
			available = entry.getValue().getAvailability();
234
			reserve = entry.getValue().getReserve();
235
			heldforsource = entry.getValue().getHeldForSource();
236
			totalheld = entry.getValue().getTotalHeldInventory();
237
			holdinventory = entry.getValue().getHoldInventory();
238
			defaultinventory = entry.getValue().getDefaultInventory();
9987 vikram.rag 239
			System.out.println("Item ID  " + entry.getKey());
240
			System.out.println("Available " + available);
241
			System.out.println("Reserve " + reserve);
242
			System.out.println("Held For Source " + heldforsource);
243
			System.out.println("Total Held " + totalheld);
244
			System.out.println("General Hold " + holdinventory );
245
			System.out.println("Default Inventory " + defaultinventory);
9947 vikram.rag 246
			if(!entry.getValue().getStatus().equals(status.PAUSED)){
247
				if(entry.getValue().getRisky()){
248
					if((available - reserve) < totalheld && totalheld!=0){
249
						stock = (long) Math.floor(((available - reserve)*heldforsource/totalheld));
250
					}
251
					else{
252
						allocable = available - reserve - totalheld - holdinventory;
253
						if(allocable < 0){
254
							allocable = 0;
255
						}
10174 vikram.rag 256
						stock = Math.round(allocable*allocation) + heldforsource;
9947 vikram.rag 257
					}
258
 
259
				}
260
				else{
261
					allocable = available - reserve - totalheld;
262
					if(allocable < 0){
263
						allocable = 0;
264
					}
265
					if((allocable + heldforsource ) > defaultinventory){
10174 vikram.rag 266
						stock = Math.round(allocable*allocation) +  heldforsource;
9947 vikram.rag 267
					}
268
					else{
269
						stock = defaultinventory;
270
					}
271
				}
272
				System.out.println("Item ID " + entry.getKey()+" Stock "+stock +" Orders " + itemIdOrdersMap.get(entry.getKey()));
9992 vikram.rag 273
				actualstock = stock;
12595 manish.sha 274
				if(stock >3){
275
					if(itemIdOrdersMap!=null && itemIdOrdersMap.containsKey(entry.getKey())){
276
						stock = stock + itemIdOrdersMap.get(entry.getKey());  
277
						orders = itemIdOrdersMap.get(entry.getKey());
278
					}
9947 vikram.rag 279
				}
280
				if(stock<0){
281
					stock =0;
282
				}
9977 vikram.rag 283
				else{
284
					if(stock > 25){
285
						stock=25;
286
					}
287
				}
9947 vikram.rag 288
			}
289
			else{
290
				stock =0;
291
			}
12761 manish.sha 292
			/*
293
			if(stock >3){
294
				if(heldOrdersMap.containsKey(entry.getValue().getSkuAtflipkart())){
295
					stock = stock + heldOrdersMap.get(entry.getKey());  
296
					orders = orders + heldOrdersMap.get(entry.getKey());
297
				}
298
			}
299
 
300
			if(stock > 25){
301
				stock=25;
302
			}
303
			*/
9947 vikram.rag 304
			try {
305
				logisticinfo = logisticsClient.getLogisticsEstimation(entry.getValue().getId(),"110001",DeliveryType.COD);
306
			} catch (LogisticsServiceException e) {
307
				e.printStackTrace();
308
				continue;
309
			}
10029 vikram.rag 310
			catch (TTransportException e) {
10154 vikram.rag 311
				logisticsServiceClient = new LogisticsClient();
10029 vikram.rag 312
				logisticsClient = logisticsServiceClient.getClient();
313
			} 
10107 vikram.rag 314
			System.out.println("sku at flipkart " + entry.getValue().getSkuAtflipkart());
315
			System.out.println("shipping time " + logisticinfo.getShippingTime());
316
			System.out.println("stock " + stock);
11649 vikram.rag 317
			if(logisticinfo.getShippingTime() > 5 && stock > 0){
318
				jsonRequest.append("{\"skuId\":"+"\""+entry.getValue().getSkuAtflipkart()+
319
						"\","+"\"attributeValues\""+":"+
11650 vikram.rag 320
						"{\"procurement_sla\""+":"+"\""+"5"+
11649 vikram.rag 321
						"\","+"\"stock_count\""+":"+"\""+"0"+"\""+"}}");
322
			}
323
			else{
324
				jsonRequest.append("{\"skuId\":"+"\""+entry.getValue().getSkuAtflipkart()+
325
						"\","+"\"attributeValues\""+":"+
326
						"{\"procurement_sla\""+":"+"\""+logisticinfo.getShippingTime()+
327
						"\","+"\"stock_count\""+":"+"\""+stock+"\""+"}}");
328
			}
10049 vikram.rag 329
			FlipkartInventorySnapshot inventorySnapshot = new FlipkartInventorySnapshot();
330
			inventorySnapshot.setItem_id(entry.getKey());
331
			inventorySnapshot.setAvailability(stock);
10450 vikram.rag 332
			if(stock > 0){
333
				inventorySnapshot.setIs_oos(false);
334
			}
335
			else{
336
				inventorySnapshot.setIs_oos(true);
337
			}
10049 vikram.rag 338
			if(heldOrdersMap.containsKey(entry.getValue().getSkuAtflipkart())){
339
				inventorySnapshot.setHeldOrders(heldOrdersMap.get(entry.getValue().getSkuAtflipkart()));
10060 vikram.rag 340
				heldorders = heldOrdersMap.get(entry.getValue().getSkuAtflipkart());
10049 vikram.rag 341
			}
342
			else{
343
				inventorySnapshot.setHeldOrders(0);
344
			}
345
			inventorySnapshot.setCreatedOrders(orders);
346
			inventorysnapshotlist.add(inventorySnapshot);
9983 vikram.rag 347
			item = aliveItemsMap.get(entry.getValue().getId());
11004 vikram.rag 348
			System.out.println("++++++++++++++++++Before checking > 5 SLA+++++++++++++++++++++++++++++");
11000 vikram.rag 349
			if(logisticinfo.getShippingTime() > 5 && stock > 0){
11005 vikram.rag 350
				System.out.println("Product : "+getProductName(item)+" Item ID : " + item.getId() + " Stock : " +  stock +" "+ "  SLA : " + logisticinfo.getShippingTime());
351
				stock = 0;
11000 vikram.rag 352
			}
11004 vikram.rag 353
			System.out.println("++++++++++++++++++++After checking > 5 SLA++++++++++++++++++++++++");
11448 vikram.rag 354
 
10160 vikram.rag 355
			if(!updatedFlipkartInventoryMap.containsKey(entry.getKey())){
10122 vikram.rag 356
				inventoryItems.append("<tr>" 
357
						+ "<td>" +getProductName(item)+"</td>"
11901 vikram.rag 358
						+ "<td>" + entry.getValue().getSkuAtflipkart()+"</td>"
10122 vikram.rag 359
						+"<td>" + item.getId() + "</td>"
360
						+"<td>" + actualstock + "</td>"
361
						+"<td>" + orders + "</td>"
362
						+"<td>" + stock + "</td>"
363
						+"<td>" + logisticinfo.getShippingTime() + "</td>"
364
						+"<td>" + heldorders + "</td>"
365
						+"</tr>");
366
			}
11901 vikram.rag 367
			else if(updatedFlipkartInventoryMap.containsKey(entry.getKey())){
368
			//else if(updatedFlipkartInventoryMap.containsKey(entry.getKey()) && updatedFlipkartInventoryMap.get(entry.getKey()) != stock){
10160 vikram.rag 369
				inventoryItems.append("<tr>" 
370
						+ "<td>" +getProductName(item)+"</td>"
11901 vikram.rag 371
						+ "<td>" + entry.getValue().getSkuAtflipkart()+"</td>"
10160 vikram.rag 372
						+"<td>" + item.getId() + "</td>"
373
						+"<td>" + actualstock + "</td>"
374
						+"<td>" + orders + "</td>"
375
						+"<td>" + stock + "</td>"
376
						+"<td>" + logisticinfo.getShippingTime() + "</td>"
377
						+"<td>" + heldorders + "</td>"
378
						+"</tr>");
379
			}
10122 vikram.rag 380
			if(updatedFlipkartInventoryMap.containsKey(entry.getKey()) && updatedFlipkartInventoryMap.get(entry.getKey()) == 0 && stock!=0){
381
				backInStockItems.append("<tr>" 
382
						+ "<td>" +getProductName(item)+"</td>"
11901 vikram.rag 383
						+ "<td>" + entry.getValue().getSkuAtflipkart()+"</td>"
10122 vikram.rag 384
						+"<td>" + item.getId() + "</td>"
385
						+"<td>" + actualstock + "</td>"
386
						+"<td>" + orders + "</td>"
387
						+"<td>" + stock + "</td>"
388
						+"<td>" + logisticinfo.getShippingTime() + "</td>"
389
						+"<td>" + heldorders + "</td>"
390
						+"</tr>");
391
			}
392
			if(updatedFlipkartInventoryMap.containsKey(entry.getKey()) && updatedFlipkartInventoryMap.get(entry.getKey()) != 0 && stock==0){
393
				outOfStockItems.append("<tr>" 
394
						+ "<td>" +getProductName(item)+"</td>"
11901 vikram.rag 395
						+ "<td>" + entry.getValue().getSkuAtflipkart()+"</td>"
10122 vikram.rag 396
						+"<td>" + item.getId() + "</td>"
397
						+"<td>" + actualstock + "</td>"
398
						+"<td>" + orders + "</td>"
399
						+"<td>" + stock + "</td>"
400
						+"<td>" + logisticinfo.getShippingTime() + "</td>"
401
						+"<td>" + heldorders + "</td>"
402
						+"</tr>");
403
			}
10028 vikram.rag 404
			i++;
405
			if(flipkartItemsInventoryMap.entrySet().size()!=1 && (i!=flipkartItemsInventoryMap.entrySet().size()) ){
11862 vikram.rag 406
				if(i%10!=0){
10026 vikram.rag 407
					jsonRequest.append(",");
408
				}
9947 vikram.rag 409
			}
11862 vikram.rag 410
			if(i%10==0 || i==flipkartItemsInventoryMap.entrySet().size()){
9968 vikram.rag 411
				StringEntity input = null;
412
				try {
9983 vikram.rag 413
					input = new StringEntity(jsonStart+jsonRequest.toString()+jsonEnd);
414
					System.out.println("Json input " + jsonStart+jsonRequest.toString()+jsonEnd);
415
					jsonRequest = new StringBuffer();
9968 vikram.rag 416
				} catch (UnsupportedEncodingException e) {
417
					e.printStackTrace();
418
				}
9947 vikram.rag 419
				input.setContentType("application/json");
10049 vikram.rag 420
 
9947 vikram.rag 421
				httppost.setEntity(input);
9968 vikram.rag 422
				HttpResponse response = null;
423
				try {
9970 vikram.rag 424
					System.out.println("Before send " );
9968 vikram.rag 425
					response = httpclient.execute(httppost);
9970 vikram.rag 426
					System.out.println("After send " );
9968 vikram.rag 427
				} catch (IOException e) {
428
					e.printStackTrace();
429
				}
9969 vikram.rag 430
				BufferedReader rd = null;
9968 vikram.rag 431
				try {
432
					rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
11866 vikram.rag 433
					/*if(!rd.readLine().equalsIgnoreCase("{\"status\":\"success\"}")){
11862 vikram.rag 434
						System.out.println("Before send " );
435
						httpclient = new DefaultHttpClient();
436
						response = httpclient.execute(httppost);
437
						rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
11866 vikram.rag 438
					}*/
9968 vikram.rag 439
				} catch (IllegalStateException e) {
440
					e.printStackTrace();
441
				} catch (IOException e) {
442
					e.printStackTrace();
443
				}
9947 vikram.rag 444
				String line;
10049 vikram.rag 445
				in.shop2020.model.v1.inventory.InventoryService.Client inventoryServiceClient;
9969 vikram.rag 446
				try {
447
					while ((line = rd.readLine()) != null) {
448
						System.out.println("Response " + line);
9983 vikram.rag 449
						if(line.equalsIgnoreCase("{\"status\":\"success\"}")){
10154 vikram.rag 450
							inventoryServiceClient = new InventoryClient().getClient();
10158 vikram.rag 451
							try{
10450 vikram.rag 452
								inventoryServiceClient.addOrUpdateFlipkartInventorySnapshot(inventorysnapshotlist,timestamp);
10158 vikram.rag 453
							}
454
							catch(TTransportException e){
455
								inventoryServiceClient = new InventoryClient().getClient();
10450 vikram.rag 456
								inventoryServiceClient.addOrUpdateFlipkartInventorySnapshot(inventorysnapshotlist,timestamp);
10158 vikram.rag 457
							}
10049 vikram.rag 458
							inventorysnapshotlist = new ArrayList<FlipkartInventorySnapshot>();
9983 vikram.rag 459
						}
460
						else{
461
							feedResponse.append(line);
462
						}
10049 vikram.rag 463
 
9969 vikram.rag 464
					}
465
				} catch (IOException e) {
466
					e.printStackTrace();
9947 vikram.rag 467
				}
468
			}
469
		}
9983 vikram.rag 470
		System.out.println("Before sending email");
10179 vikram.rag 471
		if(feedResponse.toString().length()>0){
472
			try {
473
				mailer.sendSSLMessage(sendTo, "Flipkart Inventory could not be updated " + sdf.format(System.currentTimeMillis()), feedResponse.toString(), emailFromAddress, password,new ArrayList<File>());
10181 vikram.rag 474
			} catch (Exception e) {
10183 vikram.rag 475
				emailFromAddress = "build-staging@shop2020.in"; 
476
				password = "shop2020";
10179 vikram.rag 477
				try {
478
					mailer.sendSSLMessage(sendTo, "Flipkart Inventory could not be updated " + sdf.format(System.currentTimeMillis()), feedResponse.toString(), emailFromAddress, password,new ArrayList<File>());
479
				} catch (MessagingException e1) {
480
					e1.printStackTrace();
481
				}
482
				e.printStackTrace();
483
			}
484
		}
485
		else{
486
			try {
487
				mailer.sendSSLMessage(sendTo, "Flipkart Inventory updated successfully " + sdf.format(System.currentTimeMillis()), feedResponse.toString(), emailFromAddress, password,new ArrayList<File>());
488
			} catch (MessagingException e) {
10183 vikram.rag 489
				emailFromAddress = "build-staging@shop2020.in"; 
490
				password = "shop2020";
10179 vikram.rag 491
				try {
492
					mailer.sendSSLMessage(sendTo, "Flipkart Inventory updated successfully " + sdf.format(System.currentTimeMillis()), feedResponse.toString(), emailFromAddress, password,new ArrayList<File>());
493
				} catch (MessagingException e1) {
494
					e1.printStackTrace();
495
				}
496
				e.printStackTrace();
497
			}
498
		}
499
 
500
		String text;
10159 vikram.rag 501
		if(inventoryItems.toString().length()>0){
10179 vikram.rag 502
			text = tableHeader+inventoryItems.toString()+tableFooter;
10159 vikram.rag 503
			try {
504
				mailer.sendSSLMessage(sendTo,"Flipkart Inventory Sent Details " + sdf.format(System.currentTimeMillis()), emailFromAddress, password, text);
505
			} catch (MessagingException e) {
506
				e.printStackTrace();
507
			}
9983 vikram.rag 508
		}
10122 vikram.rag 509
		if(backInStockItems.toString().length()>0){
510
			try {
511
				text = tableHeader+backInStockItems.toString()+tableFooter;
10123 vikram.rag 512
				mailer.sendSSLMessage(sendTo,"Flipkart Inventory Back in Stock " + sdf.format(System.currentTimeMillis()), emailFromAddress, password, text);
10122 vikram.rag 513
			} catch (MessagingException e) {
514
				e.printStackTrace();
515
			}
10159 vikram.rag 516
 
10122 vikram.rag 517
		}
518
		if(outOfStockItems.toString().length()>0){
519
			try {
520
				text = tableHeader+outOfStockItems.toString()+tableFooter;
10123 vikram.rag 521
				mailer.sendSSLMessage(sendTo,"Flipkart Inventory Out of Stock " + sdf.format(System.currentTimeMillis()), emailFromAddress, password, text);
10122 vikram.rag 522
			} catch (MessagingException e) {
523
				e.printStackTrace();
524
			}
10159 vikram.rag 525
 
10122 vikram.rag 526
		}
9947 vikram.rag 527
	}
9983 vikram.rag 528
 
9947 vikram.rag 529
	private static void calculateinventory(){
530
		CatalogClient catalogServiceClient = null;
531
		Map<Long,ItemInventory> availability= new HashMap<Long,ItemInventory>();
532
		try {
10154 vikram.rag 533
			catalogServiceClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port");
9947 vikram.rag 534
		} catch (TTransportException e) {
535
			e.printStackTrace();
536
		}
537
		in.shop2020.model.v1.catalog.CatalogService.Client catalogClient = catalogServiceClient.getClient();
538
		try {
539
			List<Item> aliveItems = catalogClient.getAllAliveItems();
540
			for(in.shop2020.model.v1.catalog.Item thriftItem:aliveItems){
541
				aliveItemsMap.put(thriftItem.getId(), thriftItem);
542
 
543
			}
544
			InventoryClient inventoryServiceClient = new InventoryClient();
545
			try {
546
				inventoryServiceClient = new InventoryClient();
547
			} catch (TTransportException e) {
548
				e.printStackTrace();
549
			}
550
			in.shop2020.model.v1.inventory.InventoryService.Client inventoryClient = inventoryServiceClient.getClient();
551
			List<in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems> ignoreItems = inventoryClient.getIgnoredWarehouseidsAndItemids();
552
			availability = inventoryClient.getInventorySnapshot(0);
553
			List<Warehouse> allwarehouses = inventoryClient.getWarehouses(null,null,0,0,0);
554
			Map<Long,Warehouse> allWarehousesMap = new HashMap<Long,Warehouse>();
555
			for(Warehouse warehouse:allwarehouses){
556
				allWarehousesMap.put(warehouse.getId(),warehouse);
557
			}
558
			List<Warehouse> warehouses = inventoryClient.getWarehouses(WarehouseType.OURS_THIRDPARTY,null,0,0,0);
559
			List<Warehouse> ours_warehouses = inventoryClient.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, 0, 0, 0);
560
			List<Long> thirdpartywarehouseids = new ArrayList<Long>();
561
			List<Long> oursGoodWarehouse = new ArrayList<Long>();
562
			for(Warehouse warehouse:warehouses){
563
				thirdpartywarehouseids.add(warehouse.getId());
564
			}
565
			for (Warehouse warehouse:ours_warehouses){
566
				oursGoodWarehouse.add(warehouse.getId());
567
			}
568
			long available=0;
569
			long reserve=0;
570
			long total_warehouse_held=0;
571
			long heldForSource=0;
572
			long total_held=0;
573
			double nlc=0;
574
			double maxnlc=0;
575
			Item thriftItem;
576
			for(FlipkartItem flipkartItem:flipkartInventoryItems){
577
				if(aliveItemsMap.get(flipkartItem.getItem_id()) != null){
578
					thriftItem = aliveItemsMap.get(flipkartItem.getItem_id());	
579
				}
580
				else{
581
					continue;
582
				}
583
				available=0;
584
				reserve=0;
585
				total_warehouse_held=0;
586
				heldForSource=0;
587
				total_held=0;
588
				nlc=0;
589
				List<Warehouse> vendor_warehouses=null;
590
				FlipkartInventoryItem item;
591
				if(availability.get(thriftItem.getId())!=null){ 
592
					ItemInventory iteminventory = availability.get(thriftItem.getId());
593
					Map<Long,Long> itemavailability = new HashMap<Long,Long>();
594
					itemavailability = iteminventory.getAvailability();
595
					if (thriftItem.isIsWarehousePreferenceSticky() && thriftItem.getPreferredVendor()!=0){
596
						//System.out.println("Item id "+thriftItem.getId()+".Found prefered vendor and warehouse is marked sticky (Calculating availability)"+thriftItem.getPreferredVendor());						
597
						vendor_warehouses = inventoryClient.getWarehouses(WarehouseType.THIRD_PARTY,InventoryType.GOOD , thriftItem.getPreferredVendor(), 0, 0);
598
						vendor_warehouses.addAll(ours_warehouses);
599
						for (Warehouse warehouse:vendor_warehouses){
600
							if(warehouse.getBillingWarehouseId()!=7){
12791 manish.sha 601
								System.out.println("warehouse id --"+ warehouse.getId());
9947 vikram.rag 602
								if(warehouse.getLogisticsLocation().equals(WarehouseLocation.Delhi) && warehouse.getWarehouseType().equals(WarehouseType.THIRD_PARTY) && warehouse.getVendor().getId()!=1){
603
 
604
								}
605
								else{
606
									continue;
607
								}
608
							}
609
							in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems ignoredItem = new in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems();
610
							ignoredItem.setItemId(thriftItem.getId());
611
							ignoredItem.setWarehouseId(warehouse.getId());
612
							if (itemavailability.get(warehouse.getId())!=null && !thirdpartywarehouseids.contains(warehouse.getId()) && !ignoreItems.contains(ignoredItem)){
613
								try{
614
									nlc = inventoryClient.getNlcForWarehouse(warehouse.getId(),thriftItem.getId());
615
								}
616
								catch(TTransportException e){
617
									inventoryClient = inventoryServiceClient.getClient(); 
618
									nlc = inventoryClient.getNlcForWarehouse(warehouse.getId(),thriftItem.getId());
619
								}
620
								maxnlc = flipkartItem.getMaxNlc();
621
 
622
								//System.out.println("itemId:" + thriftItem.getId() + "\tmaxnlc: " + maxnlc + "\tnlc:" + nlc + "\twid:" + warehouse.getId() );
623
								if(nlc !=0 && (maxnlc >= nlc)){
624
									total_warehouse_held = inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), warehouse.getId(), 0);
625
									heldForSource = heldForSource + total_warehouse_held - inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), warehouse.getId(), 8);
626
									available = available + itemavailability.get(warehouse.getId());
627
									total_held = total_held + total_warehouse_held; 
628
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\tavailable:" + available);
629
								}
630
								else if(maxnlc==0){
631
									total_warehouse_held = inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), warehouse.getId(), 0);
632
									heldForSource = heldForSource + total_warehouse_held - inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), warehouse.getId(), 8);
633
									available = available + itemavailability.get(warehouse.getId());
634
									total_held = total_held + total_warehouse_held;
635
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\tavailable:" + available);
636
								}
637
							}
638
						}
639
					}
640
					else{
641
						for (Map.Entry<Long,Long> entry :  itemavailability.entrySet()) {
642
							if(allWarehousesMap.get(entry.getKey()).getBillingWarehouseId()!=7){
643
								if(allWarehousesMap.get(entry.getKey()).getLogisticsLocation().equals(WarehouseLocation.Delhi) && allWarehousesMap.get(entry.getKey()).getWarehouseType().equals(WarehouseType.THIRD_PARTY) && allWarehousesMap.get(entry.getKey()).getVendor().getId()!=1){
644
 
645
								}
646
								else{
647
									continue;
648
								}
649
							}
650
							in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems ignoredItem = new in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems();
651
							ignoredItem.setItemId(thriftItem.getId());
652
							ignoredItem.setWarehouseId(entry.getKey());
653
							if(!thirdpartywarehouseids.contains(entry.getKey()) && !ignoreItems.contains(ignoredItem)){
654
 
655
								nlc = inventoryClient.getNlcForWarehouse(entry.getKey(),thriftItem.getId());
656
								maxnlc = flipkartItem.getMaxNlc();
657
								//System.out.println("itemId:" + thriftItem.getId() + "\tmaxnlc: " + maxnlc + "\tnlc:" + nlc + "\twid:" + entry.getKey() );
658
								if(nlc !=0 && (maxnlc >= nlc)){
659
									total_warehouse_held = inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), entry.getKey(), 0);
660
									heldForSource = heldForSource + total_warehouse_held - inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), entry.getKey(), 8);
661
									available =  available + entry.getValue();
662
									total_held = total_held + total_warehouse_held;
663
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\tavailable:" + available);
664
								}
665
								else if(maxnlc==0){
666
									total_warehouse_held = inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), entry.getKey(), 0);
667
									heldForSource = heldForSource + total_warehouse_held - inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), entry.getKey(), 8);
668
									available = available + itemavailability.get(entry.getKey());
669
									total_held = total_held + total_warehouse_held;
670
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\tavailable:" + available);
671
								}
672
 
673
							}
674
						}
675
					}
676
					Map<Long,Long> itemreserve = new HashMap<Long,Long>();
677
					itemreserve = iteminventory.getReserved();
678
					if (thriftItem.isIsWarehousePreferenceSticky() && thriftItem.getPreferredVendor()!=0){
679
						//System.out.println("Item id "+thriftItem.getId()+".Found prefered vendor and warehouse is marked sticky (Calculating Reserve)"+thriftItem.getPreferredVendor());
680
						for (Warehouse warehouse:vendor_warehouses){
681
							if(warehouse.getBillingWarehouseId()!=7){
682
								if(warehouse.getLogisticsLocation().equals(WarehouseLocation.Delhi) && warehouse.getWarehouseType().equals(WarehouseType.THIRD_PARTY) && warehouse.getVendor().getId()!=1){
683
 
684
								}
685
								else{
686
									continue;
687
								}
688
							}
689
							in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems ignoredItem = new in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems();
690
							ignoredItem.setItemId(thriftItem.getId());
691
							ignoredItem.setWarehouseId(warehouse.getId());
692
							if (itemreserve.get(warehouse.getId())!=null && !thirdpartywarehouseids.contains(warehouse.getId()) && !ignoreItems.contains(warehouse.getId())){
693
								nlc = inventoryClient.getNlcForWarehouse(warehouse.getId(),thriftItem.getId());
694
								maxnlc = flipkartItem.getMaxNlc();
695
								//System.out.println("itemId:" + thriftItem.getId() + "\tmaxnlc: " + maxnlc + "\tnlc:" + nlc + "\twid:" + warehouse.getId() );
696
								if(nlc !=0 && (maxnlc >= nlc)){
697
									reserve = reserve + itemreserve.get(warehouse.getId());
698
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\treserve:" + reserve);
699
								}
700
								else if(maxnlc==0){
701
									reserve = reserve + itemreserve.get(warehouse.getId());
702
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\treserve:" + reserve);
703
								}
704
 
705
							}
706
						}
707
					}else{
708
						for (Map.Entry<Long,Long> entry : itemreserve.entrySet()) {
709
							if(allWarehousesMap.get(entry.getKey()).getBillingWarehouseId()!=7){
710
								if(allWarehousesMap.get(entry.getKey()).getLogisticsLocation().equals(WarehouseLocation.Delhi) && allWarehousesMap.get(entry.getKey()).getWarehouseType().equals(WarehouseType.THIRD_PARTY) && allWarehousesMap.get(entry.getKey()).getVendor().getId()!=1){
711
 
712
								}
713
								else{
714
									continue;
715
								}
716
							}
717
							in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems ignoredItem = new in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems();
718
							ignoredItem.setItemId(thriftItem.getId());
719
							ignoredItem.setWarehouseId(entry.getKey());
720
							if(!thirdpartywarehouseids.contains(entry.getKey()) && !ignoreItems.contains(ignoredItem)){
721
								nlc = inventoryClient.getNlcForWarehouse(entry.getKey(),thriftItem.getId());
722
								maxnlc = flipkartItem.getMaxNlc();
723
								//System.out.println("itemId:" + thriftItem.getId() + "\tmaxnlc: " + maxnlc + "\tnlc:" + nlc + "\twid:" + entry.getKey() );
724
								if(nlc !=0 && (maxnlc >= nlc)){
725
									reserve =  reserve + entry.getValue();
726
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\treserve:" + reserve);
727
								}
728
								else if(maxnlc==0){
729
									reserve =  reserve + entry.getValue();
730
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\treserve:" + reserve);
731
								}
732
 
733
							}
734
 
735
							else{
736
								//System.out.println("skipping inventory for warehouse id " + entry.getKey());
737
							}
738
						}
739
					}
740
					item= new FlipkartInventoryItem(thriftItem.getId(),available,reserve,heldForSource,thriftItem.getHoldInventory(),thriftItem.getDefaultInventory(),total_held,thriftItem.isRisky(),thriftItem.getItemStatus(),flipkartItem.getSkuAtFlipkart());
741
					//System.out.println("itemId:" + thriftItem.getId() + "\tavailable: " + available + "\treserve" + reserve + "\theldForSource:" + heldForSource + "\twebsite_hold:" + thriftItem.getHoldInventory() + "\tdefault_inv:" +thriftItem.getDefaultInventory());
742
				}
743
				else{
744
					item = new FlipkartInventoryItem(thriftItem.getId(),0,0,0,thriftItem.getHoldInventory(),thriftItem.getDefaultInventory(),0,thriftItem.isRisky(),thriftItem.getItemStatus(),flipkartItem.getSkuAtFlipkart());
745
					//System.out.println("itemId:" + thriftItem.getId() + "\tavailable: " + available + "\treserve" + reserve + "\theldForSource:" + heldForSource + "\twebsite_hold:" + thriftItem.getHoldInventory() + "\tdefault_inv:" +thriftItem.getDefaultInventory());
746
				}
747
 
748
				//System.out.println(" Item details are " + thriftItem.getId() +" " + available + " " + reserve + " " + thriftItem.getHoldInventory() + " "+ thriftItem.getDefaultInventory() + " " + thriftItem.isRisky());
749
				//System.out.println("+++++++++++++++++++++++");
750
				flipkartItemsInventoryMap.put(thriftItem.getId(),item);
751
 
752
			}
753
 
754
		} catch (TException e) {
755
			e.printStackTrace();
756
		}
757
	}
758
 
759
	static List<String> FetchOrders() throws ClientProtocolException, IOException{
760
		HttpClient client = new DefaultHttpClient();
761
		HttpPost post = new HttpPost("https://seller.flipkart.com/login");
762
		BufferedReader rd= null;
13666 kshitij.so 763
		HttpGet get_new;
764
        get_new = new HttpGet("https://seller.flipkart.com/");
765
        //get_new.addHeader("Cookie","T=TI142243429971151766737695736916906773632085455992575334808400001779; s_ch_list=%5B%5B'Direct%2528No%2520referrer%2529'%2C'1422434304428'%5D%2C%5B'Direct%2528No%2520referrer%2529'%2C'1422439339599'%5D%2C%5B'Direct%2528No%2520referrer%2529'%2C'1422444115782'%5D%5D; s_cc=true; s_sq=%5B%5BB%5D%5D; __utma=19769839.2084440743.1422434306.1422439341.1422440033.3; __utmc=19769839; __utmz=19769839.1422434306.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SN=2.VIE53FF842027942E4A3ACBDFC2142A823.SIAB88E74FE6634FE09DA3A567CADE4280.VS142244411612433384132.1422444161; VID=2.VIE53FF842027942E4A3ACBDFC2142A823.1422444161.VS142244411612433384132; NSID=2.SIAB88E74FE6634FE09DA3A567CADE4280.1422444161.VIE53FF842027942E4A3ACBDFC2142A823; __sonar=1342820701753316857; s_ppv=49; km_lv=x; connect.sid=s%3A3CHKFoRqQ33Skpnid1MNW0pj.sIzVoywmYRckv3f0H%2FJVBMtZvHVpTyVmN0U5hGSvvVU; _gat=1; __utmt=1; is_login=true; sellerId=m2z93iskuj81qiid; __utma=143439159.180071142.1422513856.1422513856.1422513856.1; __utmb=143439159.8.10.1422513856; __utmc=143439159; __utmz=143439159.1422513856.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _ga=GA1.2.180071142.1422513856; kvcd=1422515268297; km_ai=m2z93iskuj81qiid; km_ni=m2z93iskuj81qiid; km_vs=1; km_uq=");
766
        //get_new.addHeader("Cookie","T=TI142243429971151766737695736916906773632085455992575334808400001779; __sonar=1342820701753316857; km_lv=x; connect.sid=s%3AmqQsgsCc3HYTschY1Bm7mBUd.PNr%2Ft5nv17ZcyjSpHqnw5CdqqYpqRRLzsqfuzS2OGQw; s_ch_list=%5B%5B'Direct%2528No%2520referrer%2529'%2C'1422434304428'%5D%2C%5B'Direct%2528No%2520referrer%2529'%2C'1422439339599'%5D%2C%5B'Direct%2528No%2520referrer%2529'%2C'1422444115782'%5D%2C%5B'Direct%2528No%2520referrer%2529'%2C'1422524448936'%5D%5D; s_cc=true; s_sq=%5B%5BB%5D%5D; SN=2.VIE53FF842027942E4A3ACBDFC2142A823.SIAB88E74FE6634FE09DA3A567CADE4280.VS142252444097998631891.1422525646; VID=2.VIE53FF842027942E4A3ACBDFC2142A823.1422525646.VS142252444097998631891; NSID=2.SIAB88E74FE6634FE09DA3A567CADE4280.1422525646.VIE53FF842027942E4A3ACBDFC2142A823; s_ppv=31; __utma=19769839.2084440743.1422434306.1422524440.1422524448.5; __utmb=19769839.8.9.1422531962955; __utmc=19769839; __utmz=19769839.1422434306.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; is_login=true; sellerId=m2z93iskuj81qiid; __utma=143439159.180071142.1422513856.1422516648.1422531968.3; __utmb=143439159.2.10.1422531968; __utmc=143439159; __utmz=143439159.1422513856.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _ga=GA1.2.180071142.1422513856; _gat=1; kvcd=1422532102602; km_ai=m2z93iskuj81qiid; km_ni=m2z93iskuj81qiid; km_vs=1; km_uq=");
767
        get_new.addHeader("Host","seller.flipkart.com");
768
        get_new.addHeader("User-agent", "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31");
769
        get_new.addHeader("Connection","keep-alive");
770
        //get_new.setHeader("Cookie", cookies);
771
        HttpResponse response = client.execute(get_new);
772
        rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
773
        String line = "";
774
        while ((line = rd.readLine()) != null) {
775
            System.out.println(line);
776
        }
777
        cookies = response.getFirstHeader("Set-Cookie") == null ? "" : 
778
            response.getFirstHeader("Set-Cookie").getValue();
9947 vikram.rag 779
		List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
780
		nameValuePairs.add(new BasicNameValuePair("authName",
781
		"flipkart"));
782
		nameValuePairs.add(new BasicNameValuePair("username",
783
		"flipkart-support@saholic.com"));
784
		nameValuePairs.add(new BasicNameValuePair("password",
13258 manish.sha 785
		"bestmobiledeals2010"));
9947 vikram.rag 786
		post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8"));
13666 kshitij.so 787
		post.addHeader("Cookie",cookies);
12761 manish.sha 788
		post.addHeader("User-agent", "Mozilla/4.0");
789
		post.addHeader("Referer", "seller.flipkart.com");
13666 kshitij.so 790
		response = client.execute(post);
791
		cookies = response.getFirstHeader("Set-Cookie") == null ? "" : 
792
            response.getFirstHeader("Set-Cookie").getValue();
793
        System.out.println("cookies "+cookies);
9947 vikram.rag 794
		rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
13666 kshitij.so 795
		line = "";
9947 vikram.rag 796
		Gson gson;
797
		List<Order> orders = new ArrayList<Order>(); 
798
		OrderItems new_orders;
12974 manish.sha 799
 
9947 vikram.rag 800
		int i=1;
801
		while ((line = rd.readLine()) != null) {
802
			System.out.println(line);
803
		}
12974 manish.sha 804
 
9947 vikram.rag 805
		while(true){
12974 manish.sha 806
			get_new = new HttpGet("https://seller.flipkart.com/order_management/new_order_items?filterByFullfillment=non_fa&next_page="+i+"&page_size=20&sellerId=m2z93iskuj81qiid&sortBy=order_date");
15745 manish.sha 807
			get_new.addHeader("Cookie",cookies+"; __gads=ID=dfe0374cf04d1576:T=1381304511:S=ALNI_Ma2TpDrlF9_amkoqp3MOYJBaFAOUg; km_lv=x; T=TI138130450866706710769873257251497444628820234222703981199700765991; __CG=u%3A6208250296506778000%2Cs%3A2098853214%2Ct%3A1419058011787%2Cc%3A1%2Ck%3Awww.flipkart.com/24/24/76%2Cf%3A0%2Ci%3A1; S=d1t13CXEVURPbRn%2FTAlMG9iwwwBWoS%2FUUixPxuJkY6W8pdfcWEzMG07x3EBPSRtlGHPdclpSYHdyFGacGJ0K01qpxtQ%3D%3D; __sonar=6631097455123118581; __utma=19769839.1156779613.1390806906.1432813861.1435573112.27; __utmc=19769839; __utmz=19769839.1435573112.27.15.utmcsr=zimbrasmtp.com|utmccn=(referral)|utmcmd=referral|utmcct=/ch300-3.htm; s_ch_list=%5B%5B'Affiliates'%2C'1435573117633'%5D%5D; s_cc=true; s_ppv=0; s_sq=%5B%5BB%5D%5D; SN=2.VIB4C4C187B63B4436AAE42944FD9BE1C9.SI2B008083CC2145FFB103D6E76CDB343C.VS143557310149768094467.1435573140; VID=2.VIB4C4C187B63B4436AAE42944FD9BE1C9.1435573140.VS143557310149768094467; NSID=2.SI2B008083CC2145FFB103D6E76CDB343C.1435573140.VIB4C4C187B63B4436AAE42944FD9BE1C9; sellerId=m2z93iskuj81qiid; _ga=GA1.2.1156779613.1390806906; kvcd=1435740168445; km_vs=1; km_ai=m2z93iskuj81qiid; km_ni=m2z93iskuj81qiid; _gat=1; km_uq=; __utma=143439159.1156779613.1390806906.1435737045.1435740037.94; __utmb=143439159.9.9.1435740156534; __utmc=143439159; __utmz=143439159.1390806906.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _mkto_trk=id:021-QVV-957&token:_mch-flipkart.com-1434970574990-64308");
9947 vikram.rag 808
			response = client.execute(get_new);
809
			rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
810
			line = "";
811
			gson = new Gson();
812
			new_orders = (OrderItems) gson.fromJson(rd, OrderItems.class);
12974 manish.sha 813
			if(new_orders.getItems().size()>0){
814
				orders.addAll(new_orders.getItems());
9947 vikram.rag 815
			}
816
			else{
817
				break;
818
			}
819
			i++;
820
		}
12974 manish.sha 821
 
9947 vikram.rag 822
		List<String> orderIdList = new ArrayList<String>();
10054 vikram.rag 823
		Long heldOrders = 0L;
9947 vikram.rag 824
		for(Order order:orders){
12974 manish.sha 825
			System.out.println("Order  " + order.getOrderId() +" "+order.getOrderItemId() + " : "+ order.getStatus() + " "
826
					+ order.getStatusLabel() + " " + order.getConfirmByDate() + " "+ order.getTrackingId());
827
			orderIdList.add(order.getOrderId());
10049 vikram.rag 828
			if(order.getStatus().equalsIgnoreCase("on_hold")){
10062 vikram.rag 829
				if(heldOrdersMap.containsKey(String.valueOf(order.getSku()))){
10057 vikram.rag 830
					heldOrders = heldOrdersMap.get(String.valueOf(order.getSku()))+order.getQuantity();
831
					heldOrdersMap.put(String.valueOf(order.getSku()),heldOrders);
10059 vikram.rag 832
					System.out.println("Item ID " + order.getSku() + " Held Orders " + heldOrdersMap.get(String.valueOf(order.getSku())));
10049 vikram.rag 833
				}
834
				else{
10054 vikram.rag 835
					heldOrders = (long) order.getQuantity();
10057 vikram.rag 836
					heldOrdersMap.put(String.valueOf(order.getSku()),heldOrders);
10059 vikram.rag 837
					System.out.println("Item ID " + order.getSku() + " Held Orders " + heldOrdersMap.get(String.valueOf(order.getSku())));
10049 vikram.rag 838
				}
839
			}
9947 vikram.rag 840
		}
841
		return orderIdList; 
842
	}
9983 vikram.rag 843
	static String getProductName(Item item){
844
		return getName(item.getBrand())+" " + getName(item.getModelName())+" " + getName(item.getModelNumber())+" " + getName(item.getColor()); 
845
 
846
	}
847
	static String getName(String name){
848
		if(name==null || name.length()==0){
849
			return "";
850
		}
851
		else{
852
			return name;
853
		}
854
	}
9947 vikram.rag 855
}