Subversion Repositories SmartDukaan

Rev

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

Rev 19208 Rev 19224
Line 96... Line 96...
96
			Client client = txnClient.getClient();
96
			Client client = txnClient.getClient();
97
			
97
			
98
			List<in.shop2020.model.v1.order.Order> t_orders = new ArrayList<in.shop2020.model.v1.order.Order>();
98
			List<in.shop2020.model.v1.order.Order> t_orders = new ArrayList<in.shop2020.model.v1.order.Order>();
99
			if(type==OrderType.NEW || type==OrderType.ALL_PENDING || type ==OrderType.LOW_INVENTORY || type == OrderType.PO_RAISED
99
			if(type==OrderType.NEW || type==OrderType.ALL_PENDING || type ==OrderType.LOW_INVENTORY || type == OrderType.PO_RAISED
100
					|| type == OrderType.REVERSAL_INITIATED || type == OrderType.NOT_AVAILABLE){
100
					|| type == OrderType.REVERSAL_INITIATED || type == OrderType.NOT_AVAILABLE){
101
				t_orders.addAll(client.getOrdersInBatchAsPromisedShipping(statuses, 0, 0, warehouseId, source));
101
				t_orders.addAll(client.getOrdersInBatchAsPromisedShipping(statuses, offset, limit, warehouseId, source));
102
			}else{
102
			}else{
103
				t_orders.addAll(client.getOrdersInBatch(statuses, offset, limit, warehouseId, source));
103
				t_orders.addAll(client.getOrdersInBatch(statuses, offset, limit, warehouseId, source));
104
			}
104
			}
105
			
105
			
-
 
106
			orders = getOrdersFromThirftOrders(t_orders);
106
			for (in.shop2020.model.v1.order.Order t_order: t_orders){
107
			/*for (in.shop2020.model.v1.order.Order t_order: t_orders){
107
				Order o = getOrderFromThriftOrder(t_order);
108
				Order o = getOrderFromThriftOrder(t_order);
108
				orders.add(o);
109
				orders.add(o);
109
			}
110
			}*/
110
			if(type==OrderType.NEW || type==OrderType.ALL_PENDING || type ==OrderType.LOW_INVENTORY || type == OrderType.PO_RAISED
111
			if(type==OrderType.NEW || type==OrderType.ALL_PENDING || type ==OrderType.LOW_INVENTORY || type == OrderType.PO_RAISED
111
					|| type == OrderType.REVERSAL_INITIATED || type == OrderType.NOT_AVAILABLE){
112
					|| type == OrderType.REVERSAL_INITIATED || type == OrderType.NOT_AVAILABLE){
112
				Map<Long, List<Order>> transactionOrdersMap = new HashMap<Long, List<Order>>();
113
				Map<Long, List<Order>> transactionOrdersMap = new HashMap<Long, List<Order>>();
113
				Map<Long, Map<String, Long>> transactionsColorMap = new HashMap<Long, Map<String, Long>>();
114
				Map<Long, Map<String, Long>> transactionsColorMap = new HashMap<Long, Map<String, Long>>();
114
				for(Order order : orders){
115
				for(Order order : orders){
Line 398... Line 399...
398
			logger.error("IO error while writing the Courier Details report", e);
399
			logger.error("IO error while writing the Courier Details report", e);
399
		}
400
		}
400
		return true;
401
		return true;
401
	}
402
	}
402
	
403
	
-
 
404
	
-
 
405
	public static List<Order> getOrdersFromThirftOrders(List<in.shop2020.model.v1.order.Order> orders){
-
 
406
		List<Order> ordersToReturn = new ArrayList<Order>();
-
 
407
		Map<Long, Warehouse> warehousesMap = CatalogUtils.getAllWarehousesForBillingWarehouse(orders.get(0).getWarehouse_id()); 
-
 
408
		List<Long> itemIds = new ArrayList<Long>();
-
 
409
		Map<Long, List<in.shop2020.model.v1.order.Order>> txnOrdersMap = new HashMap<Long, List<in.shop2020.model.v1.order.Order>>();
-
 
410
		SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy");
-
 
411
		SimpleDateFormat newSdf = new SimpleDateFormat("yyyy-MM-dd");
-
 
412
		NumberFormat formatter = new DecimalFormat("#0.000");
-
 
413
		NumberFormat rformatter = new DecimalFormat("#0.00");
-
 
414
		Date date = new Date(System.currentTimeMillis());
-
 
415
		for(in.shop2020.model.v1.order.Order t_order : orders){
-
 
416
			if(!itemIds.contains(t_order.getLineitems().get(0).getItem_id())){
-
 
417
				itemIds.add(t_order.getLineitems().get(0).getItem_id());
-
 
418
			}
-
 
419
			List<in.shop2020.model.v1.order.Order> txnOrders = null;
-
 
420
			if(txnOrdersMap.containsKey(t_order.getTransactionId())){
-
 
421
				txnOrders = txnOrdersMap.get(t_order.getTransactionId());				
-
 
422
			}else{
-
 
423
				txnOrders = new ArrayList<in.shop2020.model.v1.order.Order>();
-
 
424
			}
-
 
425
			txnOrders.add(t_order);
-
 
426
			txnOrdersMap.put(t_order.getTransactionId(), txnOrders);
-
 
427
		}
-
 
428
		try {
-
 
429
			in.shop2020.model.v1.catalog.CatalogService.Client client = new CatalogClient().getClient();
-
 
430
			Map<Long, Item> itemsMap = client.getItems(itemIds);
-
 
431
			in.shop2020.logistics.LogisticsService.Client logisticsClient = new LogisticsClient().getClient();
-
 
432
			List<in.shop2020.logistics.Provider> providers = logisticsClient.getAllProviders();
-
 
433
			Map<Long,in.shop2020.logistics.Provider> providersMap = new HashMap<Long, in.shop2020.logistics.Provider>();
-
 
434
 
-
 
435
			for(in.shop2020.logistics.Provider provider : providers){
-
 
436
				providersMap.put(provider.getId(), provider);
-
 
437
			}
-
 
438
 
-
 
439
			in.shop2020.model.v1.order.TransactionService.Client tClient = new TransactionClient().getClient();
-
 
440
			for(in.shop2020.model.v1.order.Order t_order : orders){
-
 
441
				LineItem lineItem = t_order.getLineitems().get(0);
-
 
442
				String pickFromWarehouse = warehousesMap.get(t_order.getFulfilmentWarehouseId()).getDisplayName();
-
 
443
				Item item = itemsMap.get(lineItem.getItem_id());
-
 
444
				in.shop2020.logistics.Provider provider = providersMap.get(t_order.getLogistics_provider_id());
-
 
445
				Warehouse fulfillmentWarehouse = warehousesMap.get(t_order.getFulfilmentWarehouseId());
-
 
446
				Map<Long, Map<String, String>> acceptTogetherOrdersMap = null;
-
 
447
				Map<Long, Map<String, String>> billTogetherOrdersMap = null;
-
 
448
				if(!t_order.isSetAccepted_timestamp()){
-
 
449
					acceptTogetherOrdersMap = new HashMap<Long, Map<String, String>>();
-
 
450
					Map<String, String> orderValuesMap = new HashMap<String, String>();
-
 
451
					orderValuesMap.put("ProductName", getItemDisplayName(lineItem));
-
 
452
					orderValuesMap.put("Quantity", lineItem.getQuantity()+"");
-
 
453
					orderValuesMap.put("Promised_Shipping", sdf.format(new Date(t_order.getPromised_shipping_time())));     
-
 
454
					orderValuesMap.put("Weight", formatter.format(lineItem.getUnit_weight()));   
-
 
455
					orderValuesMap.put("UnitPrice", rformatter.format(lineItem.getUnit_price()));
-
 
456
					orderValuesMap.put("PackQuantity", item.getPackQuantity()+"");
-
 
457
					orderValuesMap.put("WarehouseType", fulfillmentWarehouse.getWarehouseType().toString());
-
 
458
					acceptTogetherOrdersMap.put(t_order.getId(), orderValuesMap);
-
 
459
					List<in.shop2020.model.v1.order.Order> taOrders = null;
-
 
460
					if(txnOrdersMap.containsKey(t_order.getTransactionId())){
-
 
461
						taOrders = txnOrdersMap.get(t_order.getTransactionId());
-
 
462
					}else{
-
 
463
						try{
-
 
464
							taOrders = tClient.getOrdersForTransaction(t_order.getTransactionId(), t_order.getCustomer_id());
-
 
465
						}catch(Exception te){
-
 
466
							tClient = new TransactionClient().getClient();
-
 
467
							taOrders = tClient.getOrdersForTransaction(t_order.getTransactionId(), t_order.getCustomer_id());
-
 
468
						}
-
 
469
					}
-
 
470
					for(in.shop2020.model.v1.order.Order taOrder : taOrders){
-
 
471
						LineItem lineItem1 = taOrder.getLineitems().get(0);
-
 
472
						if(t_order.getId()==taOrder.getId()){
-
 
473
							continue;
-
 
474
						}
-
 
475
						else if(taOrder.getSource()!=OrderSource.WEBSITE.getValue()){
-
 
476
							continue;
-
 
477
						}else{
-
 
478
							orderValuesMap = new HashMap<String, String>();
-
 
479
							if(provider.isGroupShipmentAllowed() && !taOrder.isSetAccepted_timestamp() && t_order.getStatus()==taOrder.getStatus() 
-
 
480
									&& taOrder.getLogistics_provider_id()==t_order.getLogistics_provider_id() 
-
 
481
									&& taOrder.isLogisticsCod()==t_order.isLogisticsCod() && taOrder.getWarehouse_id() == t_order.getWarehouse_id() 
-
 
482
									&& taOrder.getOrderType() == t_order.getOrderType() && taOrder.getPickupStoreId() == t_order.getPickupStoreId()){
-
 
483
								orderValuesMap.put("ProductName", getItemDisplayName(lineItem1));
-
 
484
								orderValuesMap.put("Quantity", lineItem1.getQuantity()+"");
-
 
485
								fulfillmentWarehouse = warehousesMap.get(taOrder.getFulfilmentWarehouseId());
-
 
486
								orderValuesMap.put("WarehouseType", fulfillmentWarehouse.getWarehouseType().toString());
-
 
487
								orderValuesMap.put("Promised_Shipping", sdf.format(new Date(taOrder.getPromised_shipping_time())));
-
 
488
								orderValuesMap.put("UnitPrice", rformatter.format(lineItem1.getUnit_price()));
-
 
489
								orderValuesMap.put("Weight", formatter.format(lineItem1.getUnit_weight()));
-
 
490
								if(itemsMap.containsKey(lineItem1.getItem_id())){
-
 
491
									Item orderItem = itemsMap.get(lineItem1.getItem_id());
-
 
492
									orderValuesMap.put("PackQuantity", orderItem.getPackQuantity()+"");
-
 
493
								}else{
-
 
494
									try{
-
 
495
										Item orderItem = client.getItem(lineItem1.getItem_id());
-
 
496
										orderValuesMap.put("PackQuantity", orderItem.getPackQuantity()+"");
-
 
497
										itemsMap.put(orderItem.getId(), orderItem);
-
 
498
									}catch(Exception ce){
-
 
499
										ce.printStackTrace();
-
 
500
										client = new CatalogClient().getClient();
-
 
501
										Item orderItem = client.getItem(lineItem1.getItem_id());
-
 
502
										orderValuesMap.put("PackQuantity", orderItem.getPackQuantity()+"");
-
 
503
										itemsMap.put(orderItem.getId(), orderItem);
-
 
504
									}
-
 
505
								}
-
 
506
							}
-
 
507
							if(orderValuesMap!=null && orderValuesMap.size()>0){
-
 
508
	            				acceptTogetherOrdersMap.put(taOrder.getId(), orderValuesMap);
-
 
509
	            			}
-
 
510
						}
-
 
511
					}
-
 
512
				}
-
 
513
				
-
 
514
				if(t_order.isSetLogisticsTransactionId()){
-
 
515
					billTogetherOrdersMap = new HashMap<Long, Map<String, String>>();
-
 
516
	            	Map<String, String> orderValuesMap = new HashMap<String, String>();
-
 
517
		            if(t_order.getStatus()==OrderStatus.ACCEPTED || t_order.getStatus()==OrderStatus.RTO_IN_TRANSIT ){
-
 
518
		            	orderValuesMap.put("ProductName", getItemDisplayName(lineItem));
-
 
519
		            	orderValuesMap.put("Quantity", lineItem.getQuantity()+"");
-
 
520
		            	if(ItemType.SERIALIZED==item.getType()){
-
 
521
		            		orderValuesMap.put("IsSerialized", "true");
-
 
522
		            	}else{
-
 
523
		            		orderValuesMap.put("IsSerialized", "false");
-
 
524
		            	}
-
 
525
		            	if(t_order.isSetFreebieItemId() && t_order.getFreebieItemId()!=0){
-
 
526
		            		orderValuesMap.put("IsFreebie", "true");
-
 
527
		            	} else {
-
 
528
		            		orderValuesMap.put("IsFreebie", "false");
-
 
529
		            	}
-
 
530
		            	billTogetherOrdersMap.put(t_order.getId(), orderValuesMap);
-
 
531
	            	}
-
 
532
		            
-
 
533
		            List<in.shop2020.model.v1.order.Order> taOrders = null;
-
 
534
		            try{
-
 
535
		            	taOrders = tClient.getGroupOrdersByLogisticsTxnId(t_order.getLogisticsTransactionId());
-
 
536
		            }catch(Exception te){
-
 
537
		            	tClient = new TransactionClient().getClient();
-
 
538
		            	taOrders = tClient.getGroupOrdersByLogisticsTxnId(t_order.getLogisticsTransactionId());
-
 
539
		            }
-
 
540
		            
-
 
541
		            for(in.shop2020.model.v1.order.Order taOrder: taOrders){
-
 
542
	            		if(taOrder.getStatus()==OrderStatus.ACCEPTED || taOrder.getStatus()==OrderStatus.RTO_IN_TRANSIT ){
-
 
543
		            		if(taOrder.getId()==t_order.getId()){
-
 
544
		            			continue;
-
 
545
		            		} else {
-
 
546
		            			orderValuesMap = new HashMap<String, String>();
-
 
547
		            			Item orderItem = null;
-
 
548
		            			if(itemsMap.containsKey(taOrder.getLineitems().get(0).getItem_id())){
-
 
549
		            				orderItem = itemsMap.get(taOrder.getId());
-
 
550
		            			}else{
-
 
551
									try{
-
 
552
										orderItem = client.getItem(taOrder.getLineitems().get(0).getItem_id());
-
 
553
										itemsMap.put(orderItem.getId(), orderItem);
-
 
554
									}catch(Exception ce){
-
 
555
										ce.printStackTrace();
-
 
556
										client = new CatalogClient().getClient();
-
 
557
										orderItem = client.getItem(taOrder.getLineitems().get(0).getItem_id());
-
 
558
										itemsMap.put(orderItem.getId(), orderItem);
-
 
559
									}
-
 
560
								}
-
 
561
		            			
-
 
562
		            			orderValuesMap.put("ProductName", getProductName(orderItem));
-
 
563
		                    	orderValuesMap.put("Quantity", taOrder.getLineitems().get(0).getQuantity()+"");
-
 
564
		                    	if(ItemType.SERIALIZED==orderItem.getType()){
-
 
565
		                    		orderValuesMap.put("IsSerialized", "true");
-
 
566
		                    	}else{
-
 
567
		                    		orderValuesMap.put("IsSerialized", "false");
-
 
568
		                    	}
-
 
569
		                    	if(taOrder.isSetFreebieItemId() && taOrder.getFreebieItemId()!=0){
-
 
570
		                    		orderValuesMap.put("IsFreebie", "true");
-
 
571
		                    	} else {
-
 
572
		                    		orderValuesMap.put("IsFreebie", "false");
-
 
573
		                    	}
-
 
574
		                    	billTogetherOrdersMap.put(taOrder.getId(), orderValuesMap);
-
 
575
		            		}
-
 
576
	            		}
-
 
577
	            	}
-
 
578
	            	
-
 
579
				}else{
-
 
580
	            	billTogetherOrdersMap = new HashMap<Long, Map<String, String>>();
-
 
581
	            	Map<String, String> orderValuesMap = new HashMap<String, String>();
-
 
582
	            	orderValuesMap.put("ProductName", getItemDisplayName(lineItem));
-
 
583
	            	orderValuesMap.put("Quantity", lineItem.getQuantity()+"");
-
 
584
	            	if(ItemType.SERIALIZED==item.getType()){
-
 
585
	            		orderValuesMap.put("IsSerialized", "true");
-
 
586
	            	}else{
-
 
587
	            		orderValuesMap.put("IsSerialized", "false");
-
 
588
	            	}
-
 
589
	            	if(t_order.isSetFreebieItemId() && t_order.getFreebieItemId()!=0){
-
 
590
	            		orderValuesMap.put("IsFreebie", "true");
-
 
591
	            	} else {
-
 
592
	            		orderValuesMap.put("IsFreebie", "false");
-
 
593
	            	}
-
 
594
	            	billTogetherOrdersMap.put(t_order.getId(), orderValuesMap);
-
 
595
	            }
-
 
596
				String delayReason = null;
-
 
597
				if(t_order.getDelayReason() != null)
-
 
598
				    delayReason = t_order.getDelayReason().name();
-
 
599
				
-
 
600
				String osource = OrderSource.findByValue((int)t_order.getSource()).toString();
-
 
601
				
-
 
602
				Order order = new Order(t_order.getId(),
-
 
603
						t_order.getCustomer_id(),
-
 
604
						t_order.getCustomer_name(),
-
 
605
						t_order.getCustomer_mobilenumber(),
-
 
606
						t_order.getCustomer_pincode(),
-
 
607
						t_order.getCustomer_address1(),
-
 
608
						t_order.getCustomer_address2(),
-
 
609
						t_order.getCustomer_city(),
-
 
610
						t_order.getCustomer_state(),
-
 
611
						t_order.getCustomer_email(),
-
 
612
						t_order.getCreated_timestamp(),
-
 
613
						t_order.getShipping_timestamp(),
-
 
614
						t_order.getVerification_timestamp(),
-
 
615
						t_order.getExpected_delivery_time(),
-
 
616
						t_order.getPromised_delivery_time(),
-
 
617
						t_order.getExpected_shipping_time(),
-
 
618
						t_order.getPromised_shipping_time(),
-
 
619
						t_order.getStatus().getValue(),
-
 
620
						t_order.getStatusDescription(),
-
 
621
						t_order.getOrderType().name(),
-
 
622
						lineItem.getItem_id(),
-
 
623
						lineItem.getProductGroup(),
-
 
624
						lineItem.getBrand(),
-
 
625
						lineItem.getModel_name(),
-
 
626
						lineItem.getModel_number(),
-
 
627
						lineItem.getColor(),
-
 
628
						lineItem.getExtra_info(),
-
 
629
						lineItem.getDealText(),
-
 
630
						lineItem.getQuantity(),
-
 
631
						t_order.getTotal_amount(),
-
 
632
						t_order.getTotal_weight(),
-
 
633
						t_order.getAirwaybill_no(),
-
 
634
						t_order.getBilled_by(),
-
 
635
						t_order.getInvoice_number(),
-
 
636
						t_order.getJacket_number(),
-
 
637
						lineItem.getItem_number(),
-
 
638
						lineItem.getSerial_number(),
-
 
639
						t_order.getBatchNo(),
-
 
640
						t_order.getSerialNo(),
-
 
641
						t_order.isDoaFlag(),
-
 
642
						t_order.getPickupRequestNo(),
-
 
643
						t_order.isLogisticsCod(),
-
 
644
						delayReason,
-
 
645
						pickFromWarehouse,
-
 
646
						ItemType.SERIALIZED.equals(item.getType()),
-
 
647
						item.isHasItemNo(),
-
 
648
						t_order.getFulfilmentWarehouseId(),
-
 
649
						t_order.getWarehouse_id(),
-
 
650
						t_order.getPickupStoreId(),
-
 
651
						t_order.getFreebieItemId(),
-
 
652
						osource, 
-
 
653
						new Long(t_order.getProductCondition().getValue()),
-
 
654
						t_order.getTransactionId());
-
 
655
				if(acceptTogetherOrdersMap!=null && acceptTogetherOrdersMap.size()>0){
-
 
656
					order.setAcceptTogetherOrdersMap(acceptTogetherOrdersMap);
-
 
657
				}
-
 
658
				if(billTogetherOrdersMap!=null && billTogetherOrdersMap.size()>0){
-
 
659
					order.setBillTogetherOrdersMap(billTogetherOrdersMap);
-
 
660
				}
-
 
661
				if(t_order.isSetLogisticsTransactionId()){
-
 
662
					order.setLogisticsTransactionId(t_order.getLogisticsTransactionId());
-
 
663
				}
-
 
664
				
-
 
665
				
-
 
666
				long currentDateTime = 0;
-
 
667
				long promisedShippingTime =0 ;
-
 
668
				long currentTime = date.getTime();
-
 
669
				try{
-
 
670
					currentDateTime = newSdf.parse(newSdf.format(date)).getTime();
-
 
671
					promisedShippingTime = newSdf.parse(newSdf.format(new Date(order.getPromisedShippingTime()))).getTime();
-
 
672
				}catch(Exception e){
-
 
673
					e.printStackTrace();
-
 
674
				}
-
 
675
				if(promisedShippingTime >0 && (order.getStatus()==3 || order.getStatus()==5 || order.getStatus()==41 ||
-
 
676
						order.getStatus()==35 || order.getStatus()==36 || order.getStatus()==37)){
-
 
677
					if(promisedShippingTime <= currentDateTime){
-
 
678
						if(loadVirtualWarehouseDetails().contains(order.getFulfilmentWarehouseId())){
-
 
679
							order.setAlert(OrderAlert.TODAY_SHIPPING_NOT_IN_STOCK);
-
 
680
						}else{
-
 
681
							order.setAlert(OrderAlert.TODAY_SHIPPING_IN_STOCK);
-
 
682
						}
-
 
683
					}else{
-
 
684
						if(!loadVirtualWarehouseDetails().contains(order.getFulfilmentWarehouseId())){
-
 
685
							order.setAlert(OrderAlert.LATER_SHIPPING_IN_STOCK);
-
 
686
						}
-
 
687
					}
-
 
688
				}
-
 
689
				
-
 
690
				ordersToReturn.add(order);
-
 
691
			}
-
 
692
		}
-
 
693
		catch (Exception e) {
-
 
694
			e.printStackTrace();
-
 
695
		}
-
 
696
 
-
 
697
		return ordersToReturn;
-
 
698
 
-
 
699
	}
-
 
700
	
-
 
701
	
403
	/**
702
	/**
404
	 * 
703
	 * 
405
	 * @param t_order
704
	 * @param t_order
406
	 *            A thrift order object with line items.
705
	 *            A thrift order object with line items.
407
	 * @return an Order bean which can be used for rendering on the client side.
706
	 * @return an Order bean which can be used for rendering on the client side.