Subversion Repositories SmartDukaan

Rev

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