Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
493 rajveer 1
package in.shop2020.hotspot.dashbaord.server;
2
 
3
import in.shop2020.hotspot.dashbaord.shared.actions.Order;
4
import in.shop2020.hotspot.dashbaord.shared.actions.OrderType;
2697 chandransh 5
import in.shop2020.hotspot.dashbaord.shared.actions.ReturnOrder;
5945 mandeep.dh 6
import in.shop2020.model.v1.inventory.InventoryType;
5110 mandeep.dh 7
import in.shop2020.model.v1.catalog.Item;
8
import in.shop2020.model.v1.catalog.ItemType;
5945 mandeep.dh 9
import in.shop2020.model.v1.inventory.Warehouse;
914 chandransh 10
import in.shop2020.model.v1.order.LineItem;
7422 rajveer 11
import in.shop2020.model.v1.order.OrderSource;
493 rajveer 12
import in.shop2020.model.v1.order.OrderStatus;
13
import in.shop2020.model.v1.order.TransactionService.Client;
5110 mandeep.dh 14
import in.shop2020.thrift.clients.CatalogClient;
5948 mandeep.dh 15
import in.shop2020.thrift.clients.InventoryClient;
3132 rajveer 16
import in.shop2020.thrift.clients.TransactionClient;
13146 manish.sha 17
import in.shop2020.thrift.clients.LogisticsClient;
493 rajveer 18
 
4411 rajveer 19
import java.io.ByteArrayOutputStream;
20
import java.io.File;
21
import java.io.FileNotFoundException;
22
import java.io.FileOutputStream;
23
import java.io.IOException;
493 rajveer 24
import java.util.ArrayList;
4411 rajveer 25
import java.util.Calendar;
493 rajveer 26
import java.util.Date;
4411 rajveer 27
import java.util.GregorianCalendar;
28
import java.util.HashMap;
493 rajveer 29
import java.util.List;
4411 rajveer 30
import java.util.Map;
493 rajveer 31
 
4411 rajveer 32
import org.slf4j.Logger;
33
import org.slf4j.LoggerFactory;
34
 
2449 chandransh 35
/**
36
 * This class is a facade to the Transaction service and should be used to
4133 chandransh 37
 * access all order specific data which requires some kind of transformation.
2449 chandransh 38
 * 
39
 * @author Chandranshu
40
 * 
41
 */
493 rajveer 42
public class TransactionUtils {
4411 rajveer 43
	private static String courierDetailsPath = "/CourierDetailReports";
44
	private static Logger logger = LoggerFactory.getLogger(TransactionUtils.class);
45
 
2449 chandransh 46
	/**
47
	 * The human user is concerned only with a consolidated view of actionable
48
	 * orders. Orders with different statuses in the database can be part of the
49
	 * same consolidated view. This method uses a mapping of <i>type</i> to
50
	 * <i>status</i> to get all such orders and return them as order beans.
51
	 * 
52
	 * @param type
53
	 *            The type of orders to return.
4133 chandransh 54
	 * @param offset
55
	 *            Offset to start from
56
	 * @param limit
57
	 *            No. of orders to return
2449 chandransh 58
	 * @param warehouseId
59
	 *            The warehouse for which the orders should be queried.
60
	 * @return A list of orders of the given type to be fulfilled from the given
61
	 *         warehouse
62
	 */
8303 amar.kumar 63
	public static List<Order> getOrders(OrderType type, long offset, long limit, long warehouseId, long source){
2449 chandransh 64
		List<OrderStatus> statuses = getStatuses(type);
493 rajveer 65
 
66
		List<Order> orders = new ArrayList<Order>();
67
		try{
4133 chandransh 68
			TransactionClient txnClient = new TransactionClient();
69
			Client client = txnClient.getClient();
493 rajveer 70
 
71
			List<in.shop2020.model.v1.order.Order> t_orders = new ArrayList<in.shop2020.model.v1.order.Order>();
8303 amar.kumar 72
			t_orders.addAll(client.getOrdersInBatch(statuses, offset, limit, warehouseId, source));
493 rajveer 73
 
74
			for (in.shop2020.model.v1.order.Order t_order: t_orders){
671 chandransh 75
				Order o = getOrderFromThriftOrder(t_order);
493 rajveer 76
				orders.add(o);
77
			}
78
		}catch(Exception e){
2449 chandransh 79
			e.printStackTrace();
493 rajveer 80
		}
81
		return orders;
82
	}
83
 
2449 chandransh 84
	/**
4133 chandransh 85
	 * Wrapper around the method of same name in the transaction service. This
86
	 * method uses a mapping of <i>type</i> to <i>status</i> to get the count of
87
	 * all orders with a given status.
88
	 * 
89
	 * @param type
90
	 *            The type of orders to return.
91
	 * @param warehouseId
92
	 *            The warehouse for which the orders should be queried.
93
	 * @return The count of orders of the given type assigned to the given
94
	 *         warehouse.
95
	 */
8303 amar.kumar 96
	public static int getOrderCount(OrderType type, long warehouseId, long source){
4133 chandransh 97
		List<OrderStatus> statuses = getStatuses(type);
98
 
99
		int count = 0;
100
		try{
101
			TransactionClient txnClient = new TransactionClient();
102
			Client client = txnClient.getClient();
8303 amar.kumar 103
			count += client.getOrderCount(statuses, warehouseId, source);
4133 chandransh 104
		}catch(Exception e){
105
			e.printStackTrace();
106
		}
107
		return count;
108
	}
109
 
110
	/**
2449 chandransh 111
	 * Calls the same method of the transaction service and returns the status
112
	 * returned. Catches all exceptions that are raised and returns false in
113
	 * that case.
114
	 * 
115
	 * @param warehouseId
116
	 *            The warehouse for which the orders should be marked as
117
	 *            manifested.
118
	 * @param providerId
119
	 *            The provider for which the orders should be marked as
120
	 *            manifested.
3065 chandransh 121
	 * @param cod
122
	 *             Whether cod orders have to be marked as manifested
2449 chandransh 123
	 * @return True if everything goes fine, false otherwise.
124
	 */
5769 rajveer 125
	public static Map<Long, Long> getBilledOrders(long warehouseId, String providerId, boolean cod){
126
		Map<Long, Long> orders = new HashMap<Long, Long>();
760 chandransh 127
		try {
128
			long provider_id = Long.parseLong(providerId);
3132 rajveer 129
			TransactionClient client = new TransactionClient();
760 chandransh 130
			Client c = client.getClient();
4790 rajveer 131
 
132
			List<OrderStatus> statuses = new ArrayList<OrderStatus>();
133
			statuses.add(OrderStatus.BILLED);
8303 amar.kumar 134
			List<in.shop2020.model.v1.order.Order> torders = c.getOrdersInBatch(statuses, 0, 0, warehouseId, 0);
4790 rajveer 135
			for(in.shop2020.model.v1.order.Order torder: torders){
5556 rajveer 136
				if(torder.getLogistics_provider_id() == provider_id && torder.isLogisticsCod() == cod){
5769 rajveer 137
					orders.put(torder.getId(), torder.getPickupStoreId());
4790 rajveer 138
				}
4411 rajveer 139
			}
140
 
760 chandransh 141
		}catch(Exception e){
142
			e.printStackTrace();
143
		}
4790 rajveer 144
		return orders;
760 chandransh 145
	}
2449 chandransh 146
 
4790 rajveer 147
	public static boolean generateCourierDetailsFile(List<Long> orderIds, long providerId, long warehouseId, boolean isCod){
4411 rajveer 148
		Calendar date = new GregorianCalendar();
149
		int year = date.get(Calendar.YEAR);
150
		int month = date.get(Calendar.MONTH) +1;
151
		int day = date.get(Calendar.DAY_OF_MONTH);
152
 
153
		String fileNameSuffix = "-" + warehouseId + "-"+ providerId + "-" + year + "-" + month + "-" + day;
154
		if(isCod){
155
		    fileNameSuffix = "cod" + fileNameSuffix ;
156
		}
157
		else{
158
		    fileNameSuffix = "prepaid" + fileNameSuffix;
159
		}
160
 
161
		try {
4790 rajveer 162
			String fileName = courierDetailsPath + "/courier-details-" + fileNameSuffix + "-temp.xls";
4415 rajveer 163
			FileOutputStream f = new FileOutputStream(fileName);
4411 rajveer 164
			CourierDetailsGenerator courierDetailsGenerator = new CourierDetailsGenerator();
4790 rajveer 165
			ByteArrayOutputStream baosXLS = courierDetailsGenerator.generateCourierDetails(orderIds, warehouseId, providerId, isCod);
4411 rajveer 166
			baosXLS.writeTo(f);
167
			f.close();
168
		} catch (FileNotFoundException e) {
169
			logger.error("Unable to create the courier details file", e);
170
		} catch (IOException e) {
171
			logger.error("Unable to create the courier details file", e);
172
		}
173
 
174
		CourierDetailsReportMerger merger = new CourierDetailsReportMerger();
175
		try {
176
			Map<Long, String> warehouseIdFileNames = new HashMap<Long, String>();
4790 rajveer 177
			String fName;
178
			fName = courierDetailsPath + "/courier-details-" + fileNameSuffix + "-temp.xls";
179
			if((new File(fName)).exists()){
180
				warehouseIdFileNames.put(0L, fName);
4411 rajveer 181
			}
4790 rajveer 182
			fName = courierDetailsPath + "/courier-details-" + fileNameSuffix + ".xls";
183
			if((new File(fName)).exists()){
184
				warehouseIdFileNames.put(1L, fName);
4411 rajveer 185
			}
4790 rajveer 186
			ByteArrayOutputStream binXLS = merger.mergeCourierDetailsReports(warehouseIdFileNames);
187
			FileOutputStream f = new FileOutputStream(courierDetailsPath + "/courier-details-" + fileNameSuffix + ".xls");
4411 rajveer 188
			binXLS.writeTo(f);
189
			f.close();
4790 rajveer 190
			File tempFile = new File(courierDetailsPath + "/courier-details-" + fileNameSuffix + "-temp.xls");
191
			if(tempFile.exists()){
192
				tempFile.delete();
193
			}
4411 rajveer 194
		} catch (FileNotFoundException e) {
195
			logger.error("Error while creating the Courier Details report", e);
196
		} catch (IOException e) {
197
			logger.error("IO error while writing the Courier Details report", e);
198
		}
199
		return true;
200
	}
201
 
671 chandransh 202
	/**
2449 chandransh 203
	 * 
671 chandransh 204
	 * @param t_order
2449 chandransh 205
	 *            A thrift order object with line items.
206
	 * @return an Order bean which can be used for rendering on the client side.
671 chandransh 207
	 */
208
	public static Order getOrderFromThriftOrder(in.shop2020.model.v1.order.Order t_order) {
914 chandransh 209
		LineItem lineItem = t_order.getLineitems().get(0);
5110 mandeep.dh 210
		String pickFromWarehouse = null;
211
		Item item = null;
13146 manish.sha 212
 
213
	    Map<Long, Map<String, String>> acceptTogetherOrdersMap = null;
214
	    Map<Long, Map<String, String>> billTogetherOrdersMap = null;
5110 mandeep.dh 215
 
216
        try {
5945 mandeep.dh 217
            in.shop2020.model.v1.catalog.CatalogService.Client client = new CatalogClient().getClient();
5948 mandeep.dh 218
            in.shop2020.model.v1.inventory.InventoryService.Client inventoryClient = new InventoryClient().getClient();
5110 mandeep.dh 219
            item = client.getItem(lineItem.getItem_id());
220
            pickFromWarehouse = CatalogUtils.getWarehousesForBillingWarehouse(t_order.getWarehouse_id())
221
                                    .get(t_order.getFulfilmentWarehouseId());
222
 
223
            if (pickFromWarehouse == null) {
5948 mandeep.dh 224
                Warehouse warehouse = inventoryClient.getWarehouse(t_order.getFulfilmentWarehouseId());
225
                pickFromWarehouse = inventoryClient.getWarehouses(null, InventoryType.GOOD, warehouse.getVendor().getId(), t_order.getWarehouse_id(), 0).get(0).getDisplayName();
13146 manish.sha 226
            }											
227
            if(!t_order.isSetAccepted_timestamp()){
228
            	acceptTogetherOrdersMap = new HashMap<Long, Map<String, String>>();
229
            	Map<String, String> orderValuesMap = new HashMap<String, String>();
230
            	orderValuesMap.put("ProductName", getItemDisplayName(lineItem));
231
				orderValuesMap.put("Quantity", lineItem.getQuantity()+"");
232
				acceptTogetherOrdersMap.put(t_order.getId(), orderValuesMap);
233
            	List<in.shop2020.model.v1.order.Order> taOrders = new TransactionClient().getClient().getOrdersForTransaction(t_order.getTransactionId(), t_order.getCustomer_id());
234
            	in.shop2020.logistics.Provider provider = new LogisticsClient().getClient().getProvider(t_order.getLogistics_provider_id());
235
            	for(in.shop2020.model.v1.order.Order taOrder : taOrders){
236
            		LineItem lineItem1 = taOrder.getLineitems().get(0);
237
            		if(t_order.getId()==taOrder.getId()){
238
            			continue;
13156 manish.sha 239
            		}
240
            		else if(taOrder.getSource()!=OrderSource.WEBSITE.getValue()){
241
            			continue;
242
            		}
243
            		else{
13146 manish.sha 244
            			orderValuesMap = new HashMap<String, String>();
13323 manish.sha 245
            			if(provider.isGroupShipmentAllowed() && !taOrder.isSetAccepted_timestamp() && t_order.getStatus()==taOrder.getStatus() 
246
            					&& taOrder.getLogistics_provider_id()==t_order.getLogistics_provider_id() 
247
            					&& taOrder.isLogisticsCod()==t_order.isLogisticsCod() && taOrder.getWarehouse_id() == t_order.getWarehouse_id() 
248
            					&& taOrder.getOrderType() == t_order.getOrderType() && taOrder.getPickupStoreId() == t_order.getPickupStoreId()){
13146 manish.sha 249
            				orderValuesMap.put("ProductName", getItemDisplayName(lineItem1));
250
            				orderValuesMap.put("Quantity", lineItem1.getQuantity()+"");
251
            			}
252
            			if(orderValuesMap!=null && orderValuesMap.size()>0){
253
            				acceptTogetherOrdersMap.put(taOrder.getId(), orderValuesMap);
254
            			}
255
            		}
256
            	}
5110 mandeep.dh 257
            }
13146 manish.sha 258
 
259
            if(t_order.isSetLogisticsTransactionId()){
260
            	billTogetherOrdersMap = new HashMap<Long, Map<String, String>>();
261
            	Map<String, String> orderValuesMap = new HashMap<String, String>();
262
            	orderValuesMap.put("ProductName", getItemDisplayName(lineItem));
263
            	orderValuesMap.put("Quantity", lineItem.getQuantity()+"");
264
            	if(ItemType.SERIALIZED==item.getType()){
265
            		orderValuesMap.put("IsSerialized", "true");
266
            	}else{
267
            		orderValuesMap.put("IsSerialized", "false");
268
            	}
269
            	if(t_order.isSetFreebieItemId() && t_order.getFreebieItemId()!=0){
270
            		orderValuesMap.put("IsFreebie", "true");
271
            	} else {
272
            		orderValuesMap.put("IsFreebie", "false");
273
            	}
274
            	billTogetherOrdersMap.put(t_order.getId(), orderValuesMap);
275
            	Map<Long, Item> orderItemMap = new HashMap<Long, Item>();
276
            	List<in.shop2020.model.v1.order.Order> taOrders = new TransactionClient().getClient().getGroupOrdersByLogisticsTxnId(t_order.getLogisticsTransactionId());
277
            	for(in.shop2020.model.v1.order.Order ord1: taOrders){
278
            		if(ord1.getId()== t_order.getId()){
279
            			orderItemMap.put(ord1.getId(), item);
280
            		} else {
281
	            		if(!client.isAlive()){
282
	            			client = new CatalogClient().getClient();
283
	            		}
284
	            		Item it = client.getItem(ord1.getLineitems().get(0).getItem_id());
285
	            		orderItemMap.put(ord1.getId(), it);
286
            		}
287
            	}
288
 
289
            	for(in.shop2020.model.v1.order.Order taOrder: taOrders){
290
            		if(taOrder.getId()==t_order.getId()){
291
            			continue;
292
            		} else {
293
            			orderValuesMap = new HashMap<String, String>();
294
            			Item orderItem = orderItemMap.get(taOrder.getId());
295
            			orderValuesMap.put("ProductName", getProductName(orderItem));
296
                    	orderValuesMap.put("Quantity", taOrder.getLineitems().get(0).getQuantity()+"");
13297 manish.sha 297
                    	if(ItemType.SERIALIZED==orderItem.getType()){
13146 manish.sha 298
                    		orderValuesMap.put("IsSerialized", "true");
299
                    	}else{
300
                    		orderValuesMap.put("IsSerialized", "false");
301
                    	}
302
                    	if(taOrder.isSetFreebieItemId() && taOrder.getFreebieItemId()!=0){
303
                    		orderValuesMap.put("IsFreebie", "true");
304
                    	} else {
305
                    		orderValuesMap.put("IsFreebie", "false");
306
                    	}
307
                    	billTogetherOrdersMap.put(taOrder.getId(), orderValuesMap);
308
            		}
309
            	}
310
            }
311
            else{
312
            	billTogetherOrdersMap = new HashMap<Long, Map<String, String>>();
313
            	Map<String, String> orderValuesMap = new HashMap<String, String>();
314
            	orderValuesMap.put("ProductName", getItemDisplayName(lineItem));
315
            	orderValuesMap.put("Quantity", lineItem.getQuantity()+"");
316
            	if(ItemType.SERIALIZED==item.getType()){
317
            		orderValuesMap.put("IsSerialized", "true");
318
            	}else{
319
            		orderValuesMap.put("IsSerialized", "false");
320
            	}
321
            	if(t_order.isSetFreebieItemId() && t_order.getFreebieItemId()!=0){
322
            		orderValuesMap.put("IsFreebie", "true");
323
            	} else {
324
            		orderValuesMap.put("IsFreebie", "false");
325
            	}
326
            	billTogetherOrdersMap.put(t_order.getId(), orderValuesMap);
327
            }
5110 mandeep.dh 328
		}
329
        catch (Exception e) {
330
            logger.error("Error looking up warehouse: " + t_order.getVendorId(), e);
331
        }
332
 
3553 chandransh 333
		String delayReason = null;
334
		if(t_order.getDelayReason() != null)
7433 rajveer 335
		    delayReason = t_order.getDelayReason().name();
3553 chandransh 336
 
7556 rajveer 337
		String osource = OrderSource.findByValue((int)t_order.getSource()).toString();
7433 rajveer 338
 
966 chandransh 339
		Order order = new Order(t_order.getId(),
340
				t_order.getCustomer_id(),
341
				t_order.getCustomer_name(),
342
				t_order.getCustomer_mobilenumber(),
343
				t_order.getCustomer_pincode(),
344
				t_order.getCustomer_address1(),
345
				t_order.getCustomer_address2(),
346
				t_order.getCustomer_city(),
347
				t_order.getCustomer_state(),
348
				t_order.getCustomer_email(),
349
				t_order.getCreated_timestamp(),
4004 chandransh 350
				t_order.getShipping_timestamp(),
351
				t_order.getVerification_timestamp(),
966 chandransh 352
				t_order.getExpected_delivery_time(),
3994 chandransh 353
				t_order.getPromised_delivery_time(),
4004 chandransh 354
				t_order.getExpected_shipping_time(),
4666 rajveer 355
				t_order.getPromised_shipping_time(),
966 chandransh 356
				t_order.getStatus().getValue(),
357
				t_order.getStatusDescription(),
5527 anupam.sin 358
				t_order.getOrderType().name(),
966 chandransh 359
				lineItem.getItem_id(),
360
				lineItem.getProductGroup(),
361
				lineItem.getBrand(),
362
				lineItem.getModel_name(),
363
				lineItem.getModel_number(),
364
				lineItem.getColor(),
365
				lineItem.getExtra_info(),
4172 rajveer 366
				lineItem.getDealText(),
5387 rajveer 367
				lineItem.getQuantity(),
2782 chandransh 368
				t_order.getTotal_amount(),
369
				t_order.getTotal_weight(),
370
				t_order.getAirwaybill_no(),
371
				t_order.getBilled_by(),
372
				t_order.getInvoice_number(),
373
				t_order.getJacket_number(),
374
				lineItem.getItem_number(),
4659 mandeep.dh 375
				lineItem.getSerial_number(),
3065 chandransh 376
				t_order.getBatchNo(),
377
				t_order.getSerialNo(),
2509 chandransh 378
				t_order.isDoaFlag(),
3065 chandransh 379
				t_order.getPickupRequestNo(),
5556 rajveer 380
				t_order.isLogisticsCod(),
5110 mandeep.dh 381
				delayReason,
382
				pickFromWarehouse,
6028 rajveer 383
				ItemType.SERIALIZED.equals(item.getType()),
384
				item.isHasItemNo(),
5769 rajveer 385
				t_order.getFulfilmentWarehouseId(),
9263 amar.kumar 386
				t_order.getWarehouse_id(),
7190 amar.kumar 387
				t_order.getPickupStoreId(),
7422 rajveer 388
				t_order.getFreebieItemId(),
8717 amar.kumar 389
				osource, 
13146 manish.sha 390
				new Long(t_order.getProductCondition().getValue()),
391
				t_order.getTransactionId());
392
		if(acceptTogetherOrdersMap!=null && acceptTogetherOrdersMap.size()>0){
393
			order.setAcceptTogetherOrdersMap(acceptTogetherOrdersMap);
394
		}
395
		if(billTogetherOrdersMap!=null && billTogetherOrdersMap.size()>0){
396
			order.setBillTogetherOrdersMap(billTogetherOrdersMap);
397
		}
398
		if(t_order.isSetLogisticsTransactionId()){
399
			order.setLogisticsTransactionId(t_order.getLogisticsTransactionId());
400
		}
966 chandransh 401
		return order;
671 chandransh 402
	}
403
 
2449 chandransh 404
	/**
2697 chandransh 405
	 * Queries the transction server to get the list of all return orders that
406
	 * have to be processed.
407
	 * 
408
	 * @return A list of all return orders to be processed.
409
	 */
410
	public static List<ReturnOrder> getReturnOrders(long warehouseId){
411
		List<ReturnOrder> retOrders = new ArrayList<ReturnOrder>();
412
		try{
3132 rajveer 413
			TransactionClient client = new TransactionClient();
2697 chandransh 414
			Client c = client.getClient();
415
			List<in.shop2020.model.v1.order.ReturnOrder> tRetOrders =  c.getReturnOrders(warehouseId, 0L, new Date().getTime());
416
			for(in.shop2020.model.v1.order.ReturnOrder retOrder : tRetOrders){
417
				retOrders.add(getReturnOrderFromThriftRO(retOrder));
418
			}
419
		}catch(Exception e){
420
			e.printStackTrace();
421
		}
422
		return retOrders;
423
	}
424
 
2700 chandransh 425
	public static ReturnOrder getReturnOrderFromThriftRO(in.shop2020.model.v1.order.ReturnOrder tRetOrder){
426
		ReturnOrder retOrder = new ReturnOrder(tRetOrder.getOrderId(),
427
				tRetOrder.getWarehouseId(),
428
				tRetOrder.getItemId(),
429
				tRetOrder.getProductGroup(),
430
				tRetOrder.getBrand(),
431
				tRetOrder.getModelName(),
432
				tRetOrder.getModelNumber(),
433
				tRetOrder.getColor(),
434
				tRetOrder.getInvoiceNumber(),
435
				tRetOrder.getJacketNumber(),
436
				tRetOrder.getTotalPrice(),
437
				tRetOrder.getTransferPrice(),
438
				false,
439
				tRetOrder.getCreatedAt());
2697 chandransh 440
		return retOrder;
441
	}
442
 
443
	/**
2449 chandransh 444
	 * This method maps a given type to a list of statuses.
445
	 * 
446
	 * @param type
447
	 *            The type of orders to fetch.
448
	 * @return The list of Thrift statuses associated with a particular order
449
	 *         type.
450
	 */
4361 rajveer 451
	public static List<OrderStatus> getStatuses(OrderType type) {
2449 chandransh 452
		List<OrderStatus> statuses = new ArrayList<OrderStatus>();
453
 
454
		switch (type) {
455
		case ACCEPTED:
456
			statuses.add(OrderStatus.ACCEPTED);
457
			break;
458
 
4361 rajveer 459
		case ALL_PENDING:
460
			statuses.add(OrderStatus.SUBMITTED_FOR_PROCESSING);
4421 mandeep.dh 461
			statuses.add(OrderStatus.CAPTURE_IN_PROCESS);
4361 rajveer 462
			statuses.add(OrderStatus.INVENTORY_LOW);
463
			statuses.add(OrderStatus.LOW_INV_PO_RAISED);
464
			statuses.add(OrderStatus.LOW_INV_REVERSAL_IN_PROCESS);
465
			statuses.add(OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT);
2449 chandransh 466
			break;
467
 
468
		case NEW:
469
			statuses.add(OrderStatus.SUBMITTED_FOR_PROCESSING);
4421 mandeep.dh 470
			statuses.add(OrderStatus.CAPTURE_IN_PROCESS);
2449 chandransh 471
			break;
472
 
473
		case BILLED:
474
			statuses.add(OrderStatus.BILLED);
475
			break;
476
 
4308 rajveer 477
		case LOW_INVENTORY:
2449 chandransh 478
			statuses.add(OrderStatus.INVENTORY_LOW);
479
			break;
4248 rajveer 480
 
4308 rajveer 481
		case PO_RAISED:
482
			statuses.add(OrderStatus.LOW_INV_PO_RAISED);
483
			break;
484
 
485
		case REVERSAL_INITIATED:
486
			statuses.add(OrderStatus.LOW_INV_REVERSAL_IN_PROCESS);
487
			break;
488
 
489
		case NOT_AVAILABLE:
490
			statuses.add(OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT);
491
			break;
492
 
4248 rajveer 493
		case CANCEL_CONFIRMED:
494
			statuses.add(OrderStatus.CANCEL_REQUEST_CONFIRMED);
495
			break;
2449 chandransh 496
 
4459 rajveer 497
		case DOA_REQUEST_AUTHORIZED:
498
			statuses.add(OrderStatus.DOA_REQUEST_AUTHORIZED);
4515 mandeep.dh 499
			statuses.add(OrderStatus.DOA_PICKUP_REQUEST_RAISED);
4459 rajveer 500
			break;
501
 
4666 rajveer 502
		case LOST_IN_TRANSIT:
503
			statuses.add(OrderStatus.LOST_IN_TRANSIT);
504
			break;
505
 
4459 rajveer 506
		case DOA_LOST_IN_TRANSIT:
507
			statuses.add(OrderStatus.DOA_LOST_IN_TRANSIT);
4478 rajveer 508
			break;
509
 
510
		case DOA_RECEIVED_DAMAGED:
4459 rajveer 511
			statuses.add(OrderStatus.DOA_RECEIVED_DAMAGED);
512
			break;
4495 rajveer 513
 
514
		case RET_REQUEST_AUTHORIZED:
515
			statuses.add(OrderStatus.RET_REQUEST_AUTHORIZED);
4515 mandeep.dh 516
			statuses.add(OrderStatus.RET_PICKUP_REQUEST_RAISED);
4495 rajveer 517
			break;
518
 
519
		case RET_AWAITED:
520
			statuses.add(OrderStatus.RET_RETURN_IN_TRANSIT);
4515 mandeep.dh 521
			statuses.add(OrderStatus.RET_PICKUP_CONFIRMED);
4495 rajveer 522
			break;
4459 rajveer 523
 
4495 rajveer 524
		case RET_RECEIVED_PRESTINE:
525
			statuses.add(OrderStatus.RET_RECEIVED_PRESTINE);
4515 mandeep.dh 526
			statuses.add(OrderStatus.RET_PRODUCT_USABLE);
4495 rajveer 527
			break;
528
 
529
		case RET_LOST_IN_TRANSIT:
530
			statuses.add(OrderStatus.RET_LOST_IN_TRANSIT);
531
			break;
532
 
533
		case RET_RECEIVED_DAMAGED:
534
			statuses.add(OrderStatus.RET_RECEIVED_DAMAGED);
4515 mandeep.dh 535
			statuses.add(OrderStatus.RET_PRODUCT_UNUSABLE);
4495 rajveer 536
			break;
537
 
2449 chandransh 538
		case REJECTED:
539
			statuses.add(OrderStatus.REJECTED);
540
			break;
541
 
542
		case SHIPPED:
543
			statuses.add(OrderStatus.SHIPPED_FROM_WH);
544
			statuses.add(OrderStatus.SHIPPED_TO_LOGST);
5016 phani.kuma 545
			statuses.add(OrderStatus.SHIPPED_TO_DESTINATION_CITY);
546
			statuses.add(OrderStatus.REACHED_DESTINATION_CITY);
547
			statuses.add(OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE);
2449 chandransh 548
			break;
549
 
550
		case DELIVERED:
551
			statuses.add(OrderStatus.DELIVERY_SUCCESS);
4452 rajveer 552
			statuses.add(OrderStatus.DOA_PICKUP_REQUEST_RAISED);
2449 chandransh 553
			break;
2610 chandransh 554
 
555
		case DOA_AWAITED:
4452 rajveer 556
			statuses.add(OrderStatus.DOA_PICKUP_CONFIRMED);
2610 chandransh 557
			statuses.add(OrderStatus.DOA_RETURN_IN_TRANSIT);
4452 rajveer 558
			statuses.add(OrderStatus.DOA_RECEIVED_PRESTINE);
2610 chandransh 559
			break;
2449 chandransh 560
 
4495 rajveer 561
		case RTO_AWAITED:
4484 rajveer 562
			statuses.add(OrderStatus.RTO_IN_TRANSIT);
2509 chandransh 563
			break;
564
 
4515 mandeep.dh 565
        case RTO_RECEIVED_DAMAGED:
566
            statuses.add(OrderStatus.RTO_RECEIVED_DAMAGED);
567
            break;
568
 
569
        case DOA_RECEIVED_PRESTINE:
2610 chandransh 570
			statuses.add(OrderStatus.DOA_CERT_VALID);
4515 mandeep.dh 571
			statuses.add(OrderStatus.DOA_CERT_INVALID);
2610 chandransh 572
			break;
573
 
4495 rajveer 574
		case RTO_RETURNED:
4484 rajveer 575
			statuses.add(OrderStatus.RTO_RECEIVED_PRESTINE);
2509 chandransh 576
			break;
577
 
2628 chandransh 578
		case RESHIPPED:
4484 rajveer 579
			statuses.add(OrderStatus.RTO_RESHIPPED);
2628 chandransh 580
			statuses.add(OrderStatus.DOA_INVALID_RESHIPPED);
4452 rajveer 581
			statuses.add(OrderStatus.DOA_VALID_RESHIPPED);
2628 chandransh 582
			break;
583
 
584
		case REFUNDED:
4682 rajveer 585
		    statuses.add(OrderStatus.COD_VERIFICATION_FAILED);
4484 rajveer 586
			statuses.add(OrderStatus.RTO_REFUNDED);
2628 chandransh 587
			statuses.add(OrderStatus.DOA_INVALID_REFUNDED);
588
			statuses.add(OrderStatus.DOA_VALID_REFUNDED);
4682 rajveer 589
			statuses.add(OrderStatus.CANCELLED_DUE_TO_LOW_INVENTORY);
2628 chandransh 590
			break;
2509 chandransh 591
 
3065 chandransh 592
		case VERIFICATION_PENDING:
4664 rajveer 593
		    statuses.add(OrderStatus.COD_VERIFICATION_PENDING);
3065 chandransh 594
		    break;
2449 chandransh 595
		default:
596
			break;
597
		}
598
		return statuses;
599
	}
13146 manish.sha 600
 
601
	public static List<Long> getEligibleOrdersToBeAccepted(Order order){
602
		List<Long> orders = new ArrayList<Long>();
603
		try {
604
 
605
			TransactionClient client = new TransactionClient();
606
			Client c = client.getClient();
607
 
608
			in.shop2020.model.v1.order.Order thriftOrder = c.getOrder(order.getOrderId());
609
			long provider_id = thriftOrder.getLogistics_provider_id();
610
			boolean cod = thriftOrder.isLogisticsCod();
611
 
612
			List<in.shop2020.model.v1.order.Order> torders = c.getOrdersForTransaction(thriftOrder.getTransactionId(), thriftOrder.getCustomer_id());
613
			for(in.shop2020.model.v1.order.Order torder: torders){
614
				if(torder.getLogistics_provider_id() == provider_id && torder.isLogisticsCod() == cod){
615
					orders.add(torder.getId());
616
				}
617
			}
618
 
619
		}catch(Exception e){
620
			e.printStackTrace();
621
		}
622
		return orders;
623
	}
624
 
625
	public static String getItemDisplayName(LineItem lineitem){
626
		StringBuffer itemName = new StringBuffer();
627
        if (lineitem.getBrand() != null)
628
            itemName.append(lineitem.getBrand() + " ");
629
        if (lineitem.getModel_name() != null)
630
            itemName.append(lineitem.getModel_name() + " ");
631
        if (lineitem.getModel_number() != null)
632
            itemName.append(lineitem.getModel_number() + " ");
633
        if (lineitem.getColor() != null
634
                && !lineitem.getColor().trim().equals("NA"))
635
            itemName.append("(" + lineitem.getColor() + ")");
636
 
637
        return itemName.toString();
638
	}
639
 
640
	public static String getProductName(in.shop2020.model.v1.catalog.Item item){
641
		StringBuffer itemName = new StringBuffer();
642
        if (item.getBrand() != null)
643
            itemName.append(item.getBrand() + " ");
644
        if (item.getModelName() != null)
645
            itemName.append(item.getModelName() + " ");
646
        if (item.getModelNumber() != null)
647
            itemName.append(item.getModelNumber() + " ");
648
        if (item.getColor() != null
649
                && !item.getColor().trim().equals("NA"))
650
            itemName.append("(" + item.getColor() + ")");
651
 
652
        return itemName.toString();
653
	}
493 rajveer 654
}