Subversion Repositories SmartDukaan

Rev

Rev 9948 | Rev 9951 | 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;
9
import in.shop2020.model.v1.catalog.status;
10
import in.shop2020.model.v1.inventory.InventoryType;
11
import in.shop2020.model.v1.inventory.ItemInventory;
12
import in.shop2020.model.v1.inventory.Warehouse;
13
import in.shop2020.model.v1.inventory.WarehouseLocation;
14
import in.shop2020.model.v1.inventory.WarehouseType;
15
import in.shop2020.model.v1.order.OrderSource;
16
import in.shop2020.serving.model.Order;
17
import in.shop2020.serving.model.OrderItems;
18
import in.shop2020.thrift.clients.CatalogClient;
19
import in.shop2020.thrift.clients.InventoryClient;
20
import in.shop2020.thrift.clients.LogisticsClient;
21
import in.shop2020.thrift.clients.TransactionClient;
22
import inventory.FlipkartInventoryItem;
23
 
24
import java.io.BufferedReader;
25
import java.io.IOException;
26
import java.io.InputStreamReader;
27
import java.util.ArrayList;
28
import java.util.HashMap;
29
import java.util.List;
30
import java.util.Map;
31
import java.util.Map.Entry;
32
 
33
import org.apache.http.HttpResponse;
34
import org.apache.http.NameValuePair;
35
import org.apache.http.auth.AuthScope;
36
import org.apache.http.auth.UsernamePasswordCredentials;
37
import org.apache.http.client.ClientProtocolException;
38
import org.apache.http.client.HttpClient;
39
import org.apache.http.client.entity.UrlEncodedFormEntity;
40
import org.apache.http.client.methods.HttpGet;
41
import org.apache.http.client.methods.HttpPost;
42
import org.apache.http.entity.StringEntity;
43
import org.apache.http.impl.client.DefaultHttpClient;
44
import org.apache.http.message.BasicNameValuePair;
45
import org.apache.thrift.TException;
46
import org.apache.thrift.transport.TTransportException;
47
 
48
import com.google.gson.Gson;
49
 
50
 
51
 
52
public class CreateSubmitFlipkartInventoryFeed {
53
	private static Map<Long, FlipkartInventoryItem> flipkartItemsInventoryMap = new HashMap<Long, FlipkartInventoryItem>();
54
	private static List<FlipkartItem> flipkartItems;
55
	private static List<FlipkartItem> flipkartInventoryItems = new ArrayList<FlipkartItem>();
56
	private static Map<Long,Long> itemIdOrdersMap = new HashMap<Long,Long>();
57
	static
58
	{
59
		List<String> flipkartorderids = null;
60
		Client catalogServiceClient = null;
61
		try {
62
			catalogServiceClient = new CatalogClient().getClient();
63
		} catch (TTransportException e) {
64
			e.printStackTrace();
65
		}
66
		try {
67
			flipkartItems = catalogServiceClient.getAllFlipkartItems();
68
		} catch (TException e) {
69
			e.printStackTrace();
70
		}
71
		for(FlipkartItem flipkartItem:flipkartItems){
72
			if(flipkartItem.isIsListedOnFlipkart() && !flipkartItem.isSuppressInventoryFeed())
73
				flipkartInventoryItems.add(flipkartItem);
74
		}
75
		in.shop2020.model.v1.order.TransactionService.Client transactionClient;
76
		try {
77
			flipkartorderids = FetchOrders();
78
		} catch (ClientProtocolException e1) {
79
			e1.printStackTrace();
80
		} catch (IOException e1) {
81
			e1.printStackTrace();
82
		}
83
		try {
9948 vikram.rag 84
			transactionClient = new TransactionClient("support_transaction_service_server_host","transaction_service_server_port").getClient();
9947 vikram.rag 85
			itemIdOrdersMap = transactionClient.getCreatedOrdersForFlipkart(flipkartorderids);
86
		} catch (TTransportException e) {
87
			e.printStackTrace();
88
		}catch (TException e) {
89
			// TODO Auto-generated catch block
90
			e.printStackTrace();
91
		}
92
 
93
	}
94
 
95
	public static void main(String[] args) throws ClientProtocolException, IOException,TException{
96
		calculateinventory();
97
		DefaultHttpClient httpclient = new DefaultHttpClient();
98
		httpclient = (DefaultHttpClient) WebClientWrapper.wrapClient(httpclient);
9950 vikram.rag 99
		//httpclient.getCredentialsProvider().setCredentials(
100
		//		new AuthScope("sandbox-api.flipkart.net", 443),
101
		//		new UsernamePasswordCredentials("og3yg5994bxbxxc1", "8a137068-417c-4e4f-ae95-9295ab938d88"));
9947 vikram.rag 102
		httpclient.getCredentialsProvider().setCredentials(
103
				new AuthScope("sandbox-api.flipkart.net", 443),
9950 vikram.rag 104
				new UsernamePasswordCredentials("m2z93iskuj81qiid","0c7ab6a5-98c0-4cdc-8be3-72c591e0add4"));
9947 vikram.rag 105
		HttpPost httppost = new HttpPost("https://sandbox-api.flipkart.net/sellers/skus/listings/bulk");
106
		StringBuffer jsonRequest = new StringBuffer();
107
		jsonRequest.append("{\"listings\":[");
108
		//System.out.println("JSON request  " + jsonRequest);
109
		LogisticsClient logisticsServiceClient;
110
		in.shop2020.logistics.LogisticsService.Client logisticsClient=null;
111
		LogisticsInfo logisticinfo = null;
112
		try {
113
			logisticsServiceClient = new LogisticsClient("logistics_service_prod_server_host","logistics_service_prod_server_port");
114
			logisticsClient = logisticsServiceClient.getClient();
115
 
116
		} catch (TTransportException e) {
117
			// TODO Auto-generated catch block
118
			e.printStackTrace();
119
		}
120
		long stock=0;
121
		int i=0;
122
		long available,reserve,heldforsource,totalheld,allocable,holdinventory,defaultinventory;
123
		for(Entry<Long, FlipkartInventoryItem> entry:flipkartItemsInventoryMap.entrySet()){
124
			available = entry.getValue().getAvailability();
125
			reserve = entry.getValue().getReserve();
126
			heldforsource = entry.getValue().getHeldForSource();
127
			totalheld = entry.getValue().getTotalHeldInventory();
128
			holdinventory = entry.getValue().getHoldInventory();
129
			defaultinventory = entry.getValue().getDefaultInventory();
130
			if(!entry.getValue().getStatus().equals(status.PAUSED)){
131
				if(entry.getValue().getRisky()){
132
					if((available - reserve) < totalheld && totalheld!=0){
133
						stock = (long) Math.floor(((available - reserve)*heldforsource/totalheld));
134
					}
135
					else{
136
						allocable = available - reserve - totalheld - holdinventory;
137
						if(allocable < 0){
138
							allocable = 0;
139
						}
140
						stock = Math.round(allocable*1/3) + heldforsource;
141
					}
142
 
143
				}
144
				else{
145
					allocable = available - reserve - totalheld;
146
					if(allocable < 0){
147
						allocable = 0;
148
					}
149
					if((allocable + heldforsource ) > defaultinventory){
150
						stock = Math.round(allocable*1/3) +  heldforsource;
151
					}
152
					else{
153
						stock = defaultinventory;
154
					}
155
				}
156
				System.out.println("Item ID " + entry.getKey()+" Stock "+stock +" Orders " + itemIdOrdersMap.get(entry.getKey()));
157
				if(itemIdOrdersMap.containsKey(entry.getKey())){
158
					stock = stock - itemIdOrdersMap.get(entry.getKey());  
159
				}
160
				if(stock<0){
161
					stock =0;
162
				}
163
			}
164
			else{
165
				stock =0;
166
			}
167
			try {
168
				System.out.println("Item Id " + entry.getValue().getId());
169
				logisticinfo = logisticsClient.getLogisticsEstimation(entry.getValue().getId(),"110001",DeliveryType.COD);
170
			} catch (LogisticsServiceException e) {
171
				e.printStackTrace();
172
				continue;
173
			}
174
			jsonRequest.append("{\"skuId\":"+"\""+entry.getValue().getSkuAtflipkart()+
175
					"\","+"\"attributeValues\""+":"+
176
					"{\"procurement_sla\""+":"+"\""+logisticinfo.getShippingTime()+
177
					"\","+"\"stock_count\""+":"+"\""+stock+"\""+"}}");
178
			if(flipkartItemsInventoryMap.entrySet().size()!=1 && (i!=flipkartItemsInventoryMap.entrySet().size() -1 ) ){
179
				jsonRequest.append(",");	
180
			}
181
			i++;
182
			if(i%10==0 || i==flipkartItemsInventoryMap.entrySet().size()){
183
				jsonRequest.append("]}");
184
				StringEntity input = new StringEntity(jsonRequest.toString());
185
				input.setContentType("application/json");
186
				System.out.println("Json input " + jsonRequest.toString());
187
				httppost.setEntity(input);
188
				HttpResponse response = httpclient.execute(httppost);
189
				BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
190
				String line;
191
				while ((line = rd.readLine()) != null) {
192
					System.out.println(line);
193
				}
194
			}
195
		}
196
	}
197
	private static void calculateinventory(){
198
		CatalogClient catalogServiceClient = null;
199
		Map<Long,ItemInventory> availability= new HashMap<Long,ItemInventory>();
200
		try {
201
			catalogServiceClient = new CatalogClient();
202
		} catch (TTransportException e) {
203
			// TODO Auto-generated catch block
204
			e.printStackTrace();
205
		}
206
		in.shop2020.model.v1.catalog.CatalogService.Client catalogClient = catalogServiceClient.getClient();
207
		try {
208
			List<Item> aliveItems = catalogClient.getAllAliveItems();
209
			Map<Long,Item> aliveItemsMap = new HashMap<Long,Item>(); 
210
			for(in.shop2020.model.v1.catalog.Item thriftItem:aliveItems){
211
				aliveItemsMap.put(thriftItem.getId(), thriftItem);
212
 
213
			}
214
			InventoryClient inventoryServiceClient = new InventoryClient();
215
			try {
216
				inventoryServiceClient = new InventoryClient();
217
			} catch (TTransportException e) {
218
				e.printStackTrace();
219
			}
220
			in.shop2020.model.v1.inventory.InventoryService.Client inventoryClient = inventoryServiceClient.getClient();
221
			List<in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems> ignoreItems = inventoryClient.getIgnoredWarehouseidsAndItemids();
222
			availability = inventoryClient.getInventorySnapshot(0);
223
			List<Warehouse> allwarehouses = inventoryClient.getWarehouses(null,null,0,0,0);
224
			Map<Long,Warehouse> allWarehousesMap = new HashMap<Long,Warehouse>();
225
			for(Warehouse warehouse:allwarehouses){
226
				allWarehousesMap.put(warehouse.getId(),warehouse);
227
			}
228
			List<Warehouse> warehouses = inventoryClient.getWarehouses(WarehouseType.OURS_THIRDPARTY,null,0,0,0);
229
			List<Warehouse> ours_warehouses = inventoryClient.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, 0, 0, 0);
230
			List<Long> thirdpartywarehouseids = new ArrayList<Long>();
231
			List<Long> oursGoodWarehouse = new ArrayList<Long>();
232
			for(Warehouse warehouse:warehouses){
233
				thirdpartywarehouseids.add(warehouse.getId());
234
			}
235
			for (Warehouse warehouse:ours_warehouses){
236
				oursGoodWarehouse.add(warehouse.getId());
237
			}
238
			long available=0;
239
			long reserve=0;
240
			long total_warehouse_held=0;
241
			long heldForSource=0;
242
			long total_held=0;
243
			double nlc=0;
244
			double maxnlc=0;
245
			Item thriftItem;
246
			for(FlipkartItem flipkartItem:flipkartInventoryItems){
247
				if(aliveItemsMap.get(flipkartItem.getItem_id()) != null){
248
					thriftItem = aliveItemsMap.get(flipkartItem.getItem_id());	
249
				}
250
				else{
251
					continue;
252
				}
253
				available=0;
254
				reserve=0;
255
				total_warehouse_held=0;
256
				heldForSource=0;
257
				total_held=0;
258
				nlc=0;
259
				List<Warehouse> vendor_warehouses=null;
260
				FlipkartInventoryItem item;
261
				if(availability.get(thriftItem.getId())!=null){ 
262
					ItemInventory iteminventory = availability.get(thriftItem.getId());
263
					Map<Long,Long> itemavailability = new HashMap<Long,Long>();
264
					itemavailability = iteminventory.getAvailability();
265
					if (thriftItem.isIsWarehousePreferenceSticky() && thriftItem.getPreferredVendor()!=0){
266
						//System.out.println("Item id "+thriftItem.getId()+".Found prefered vendor and warehouse is marked sticky (Calculating availability)"+thriftItem.getPreferredVendor());						
267
						vendor_warehouses = inventoryClient.getWarehouses(WarehouseType.THIRD_PARTY,InventoryType.GOOD , thriftItem.getPreferredVendor(), 0, 0);
268
						vendor_warehouses.addAll(ours_warehouses);
269
						for (Warehouse warehouse:vendor_warehouses){
270
							if(warehouse.getBillingWarehouseId()!=7){
271
								if(warehouse.getLogisticsLocation().equals(WarehouseLocation.Delhi) && warehouse.getWarehouseType().equals(WarehouseType.THIRD_PARTY) && warehouse.getVendor().getId()!=1){
272
 
273
								}
274
								else{
275
									continue;
276
								}
277
							}
278
							in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems ignoredItem = new in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems();
279
							ignoredItem.setItemId(thriftItem.getId());
280
							ignoredItem.setWarehouseId(warehouse.getId());
281
							if (itemavailability.get(warehouse.getId())!=null && !thirdpartywarehouseids.contains(warehouse.getId()) && !ignoreItems.contains(ignoredItem)){
282
								try{
283
									nlc = inventoryClient.getNlcForWarehouse(warehouse.getId(),thriftItem.getId());
284
								}
285
								catch(TTransportException e){
286
									inventoryClient = inventoryServiceClient.getClient(); 
287
									nlc = inventoryClient.getNlcForWarehouse(warehouse.getId(),thriftItem.getId());
288
								}
289
								maxnlc = flipkartItem.getMaxNlc();
290
 
291
								//System.out.println("itemId:" + thriftItem.getId() + "\tmaxnlc: " + maxnlc + "\tnlc:" + nlc + "\twid:" + warehouse.getId() );
292
								if(nlc !=0 && (maxnlc >= nlc)){
293
									total_warehouse_held = inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), warehouse.getId(), 0);
294
									heldForSource = heldForSource + total_warehouse_held - inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), warehouse.getId(), 8);
295
									available = available + itemavailability.get(warehouse.getId());
296
									total_held = total_held + total_warehouse_held; 
297
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\tavailable:" + available);
298
								}
299
								else if(maxnlc==0){
300
									total_warehouse_held = inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), warehouse.getId(), 0);
301
									heldForSource = heldForSource + total_warehouse_held - inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), warehouse.getId(), 8);
302
									available = available + itemavailability.get(warehouse.getId());
303
									total_held = total_held + total_warehouse_held;
304
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\tavailable:" + available);
305
								}
306
							}
307
						}
308
					}
309
					else{
310
						for (Map.Entry<Long,Long> entry :  itemavailability.entrySet()) {
311
							if(allWarehousesMap.get(entry.getKey()).getBillingWarehouseId()!=7){
312
								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){
313
 
314
								}
315
								else{
316
									continue;
317
								}
318
							}
319
							in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems ignoredItem = new in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems();
320
							ignoredItem.setItemId(thriftItem.getId());
321
							ignoredItem.setWarehouseId(entry.getKey());
322
							if(!thirdpartywarehouseids.contains(entry.getKey()) && !ignoreItems.contains(ignoredItem)){
323
 
324
								nlc = inventoryClient.getNlcForWarehouse(entry.getKey(),thriftItem.getId());
325
								maxnlc = flipkartItem.getMaxNlc();
326
								//System.out.println("itemId:" + thriftItem.getId() + "\tmaxnlc: " + maxnlc + "\tnlc:" + nlc + "\twid:" + entry.getKey() );
327
								if(nlc !=0 && (maxnlc >= nlc)){
328
									total_warehouse_held = inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), entry.getKey(), 0);
329
									heldForSource = heldForSource + total_warehouse_held - inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), entry.getKey(), 8);
330
									available =  available + entry.getValue();
331
									total_held = total_held + total_warehouse_held;
332
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\tavailable:" + available);
333
								}
334
								else if(maxnlc==0){
335
									total_warehouse_held = inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), entry.getKey(), 0);
336
									heldForSource = heldForSource + total_warehouse_held - inventoryClient.getHoldInventoryDetailForItemForWarehouseIdExceptSource(thriftItem.getId(), entry.getKey(), 8);
337
									available = available + itemavailability.get(entry.getKey());
338
									total_held = total_held + total_warehouse_held;
339
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\tavailable:" + available);
340
								}
341
 
342
							}
343
						}
344
					}
345
					Map<Long,Long> itemreserve = new HashMap<Long,Long>();
346
					itemreserve = iteminventory.getReserved();
347
					if (thriftItem.isIsWarehousePreferenceSticky() && thriftItem.getPreferredVendor()!=0){
348
						//System.out.println("Item id "+thriftItem.getId()+".Found prefered vendor and warehouse is marked sticky (Calculating Reserve)"+thriftItem.getPreferredVendor());
349
						for (Warehouse warehouse:vendor_warehouses){
350
							if(warehouse.getBillingWarehouseId()!=7){
351
								if(warehouse.getLogisticsLocation().equals(WarehouseLocation.Delhi) && warehouse.getWarehouseType().equals(WarehouseType.THIRD_PARTY) && warehouse.getVendor().getId()!=1){
352
 
353
								}
354
								else{
355
									continue;
356
								}
357
							}
358
							in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems ignoredItem = new in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems();
359
							ignoredItem.setItemId(thriftItem.getId());
360
							ignoredItem.setWarehouseId(warehouse.getId());
361
							if (itemreserve.get(warehouse.getId())!=null && !thirdpartywarehouseids.contains(warehouse.getId()) && !ignoreItems.contains(warehouse.getId())){
362
								nlc = inventoryClient.getNlcForWarehouse(warehouse.getId(),thriftItem.getId());
363
								maxnlc = flipkartItem.getMaxNlc();
364
								//System.out.println("itemId:" + thriftItem.getId() + "\tmaxnlc: " + maxnlc + "\tnlc:" + nlc + "\twid:" + warehouse.getId() );
365
								if(nlc !=0 && (maxnlc >= nlc)){
366
									reserve = reserve + itemreserve.get(warehouse.getId());
367
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\treserve:" + reserve);
368
								}
369
								else if(maxnlc==0){
370
									reserve = reserve + itemreserve.get(warehouse.getId());
371
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\treserve:" + reserve);
372
								}
373
 
374
							}
375
						}
376
					}else{
377
						for (Map.Entry<Long,Long> entry : itemreserve.entrySet()) {
378
							if(allWarehousesMap.get(entry.getKey()).getBillingWarehouseId()!=7){
379
								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){
380
 
381
								}
382
								else{
383
									continue;
384
								}
385
							}
386
							in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems ignoredItem = new in.shop2020.model.v1.inventory.IgnoredInventoryUpdateItems();
387
							ignoredItem.setItemId(thriftItem.getId());
388
							ignoredItem.setWarehouseId(entry.getKey());
389
							if(!thirdpartywarehouseids.contains(entry.getKey()) && !ignoreItems.contains(ignoredItem)){
390
								nlc = inventoryClient.getNlcForWarehouse(entry.getKey(),thriftItem.getId());
391
								maxnlc = flipkartItem.getMaxNlc();
392
								//System.out.println("itemId:" + thriftItem.getId() + "\tmaxnlc: " + maxnlc + "\tnlc:" + nlc + "\twid:" + entry.getKey() );
393
								if(nlc !=0 && (maxnlc >= nlc)){
394
									reserve =  reserve + entry.getValue();
395
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\treserve:" + reserve);
396
								}
397
								else if(maxnlc==0){
398
									reserve =  reserve + entry.getValue();
399
									//System.out.println("itemId:" + thriftItem.getId() + "\ttotal_held: " + total_held + "\theldForSource:" + heldForSource + "\treserve:" + reserve);
400
								}
401
 
402
							}
403
 
404
							else{
405
								//System.out.println("skipping inventory for warehouse id " + entry.getKey());
406
							}
407
						}
408
					}
409
					item= new FlipkartInventoryItem(thriftItem.getId(),available,reserve,heldForSource,thriftItem.getHoldInventory(),thriftItem.getDefaultInventory(),total_held,thriftItem.isRisky(),thriftItem.getItemStatus(),flipkartItem.getSkuAtFlipkart());
410
					//System.out.println("itemId:" + thriftItem.getId() + "\tavailable: " + available + "\treserve" + reserve + "\theldForSource:" + heldForSource + "\twebsite_hold:" + thriftItem.getHoldInventory() + "\tdefault_inv:" +thriftItem.getDefaultInventory());
411
				}
412
				else{
413
					item = new FlipkartInventoryItem(thriftItem.getId(),0,0,0,thriftItem.getHoldInventory(),thriftItem.getDefaultInventory(),0,thriftItem.isRisky(),thriftItem.getItemStatus(),flipkartItem.getSkuAtFlipkart());
414
					//System.out.println("itemId:" + thriftItem.getId() + "\tavailable: " + available + "\treserve" + reserve + "\theldForSource:" + heldForSource + "\twebsite_hold:" + thriftItem.getHoldInventory() + "\tdefault_inv:" +thriftItem.getDefaultInventory());
415
				}
416
 
417
				//System.out.println(" Item details are " + thriftItem.getId() +" " + available + " " + reserve + " " + thriftItem.getHoldInventory() + " "+ thriftItem.getDefaultInventory() + " " + thriftItem.isRisky());
418
				//System.out.println("+++++++++++++++++++++++");
419
				flipkartItemsInventoryMap.put(thriftItem.getId(),item);
420
 
421
			}
422
 
423
		} catch (TException e) {
424
			// TODO Auto-generated catch block
425
			e.printStackTrace();
426
		}
427
	}
428
 
429
	static List<String> FetchOrders() throws ClientProtocolException, IOException{
430
		HttpClient client = new DefaultHttpClient();
431
		HttpPost post = new HttpPost("https://seller.flipkart.com/login");
432
		BufferedReader rd= null;
433
		List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
434
		nameValuePairs.add(new BasicNameValuePair("authName",
435
		"flipkart"));
436
		nameValuePairs.add(new BasicNameValuePair("username",
437
		"flipkart-support@saholic.com"));
438
		nameValuePairs.add(new BasicNameValuePair("password",
439
		"076c27ee24d7596b06608a8ed2559f87"));
440
		post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8"));
441
		HttpResponse response = client.execute(post);
442
		rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
443
		String line = "";
444
		Gson gson;
445
		List<Order> orders = new ArrayList<Order>(); 
446
		OrderItems new_orders;
447
		OrderItems conf_orders;
448
		HttpGet get_new;
449
		HttpGet get_conf; 
450
		long time;
451
		int i=1;
452
		while ((line = rd.readLine()) != null) {
453
			System.out.println(line);
454
		}
455
		time = System.currentTimeMillis();
456
		while(true){
457
			get_new = new HttpGet("https://seller.flipkart.com/dashboard/som/new_order_items?status=on_hold%2Capproved.payment_approved&sort=confirm_by_date&page="+i+"&page_size=100&_="+time);
458
			response = client.execute(get_new);
459
			rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
460
			line = "";
461
			gson = new Gson();
462
			new_orders = (OrderItems) gson.fromJson(rd, OrderItems.class);
463
			if(new_orders.getOrder_items().size()>0){
464
				orders.addAll(new_orders.getOrder_items());
465
			}
466
			else{
467
				break;
468
			}
469
			i++;
470
		}
471
		i=1;
472
		time = System.currentTimeMillis();
473
		while(true){
474
			get_conf = new HttpGet("https://seller.flipkart.com/dashboard/som/confirmed_order_items?status=approved.seller_approved&sort=confirm_by_date&page="+i+"&page_size=100&_="+time);
475
			response = client.execute(get_conf);
476
			rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
477
			line = "";
478
			gson = new Gson();
479
			conf_orders = (OrderItems) gson.fromJson(rd, OrderItems.class);
480
			if(conf_orders.getOrder_items().size()>0){
481
				orders.addAll(conf_orders.getOrder_items());
482
			}
483
			else{
484
				break;
485
			}
486
			i++;
487
		}
488
		List<String> orderIdList = new ArrayList<String>();
489
		for(Order order:orders){
490
			System.out.println("Order  " + order.getExternalId() +" "+order.getOrderItemId() + " : "+ order.getStatus() + " "+order.getStatusDateMessage() + " "
491
					+ order.getStatusLabel() + " " + order.getPickup_by_date() + " "+ order.getTrackingId());
492
			orderIdList.add(order.getExternalId());
493
		}
494
		return orderIdList; 
495
	}
496
}