Subversion Repositories SmartDukaan

Rev

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

Rev 9239 Rev 9271
Line 386... Line 386...
386
				List<in.shop2020.model.v1.order.Order> orderlist = new ArrayList<in.shop2020.model.v1.order.Order>();
386
				List<in.shop2020.model.v1.order.Order> orderlist = new ArrayList<in.shop2020.model.v1.order.Order>();
387
				double total_price=0;
387
				double total_price=0;
388
				InventoryService.Client inventoryClient = null;
388
				InventoryService.Client inventoryClient = null;
389
				Warehouse fulfillmentWarehouse= null;
389
				Warehouse fulfillmentWarehouse= null;
390
				boolean exit = false;
390
				boolean exit = false;
391
				for(int i=0;i<quantity;i++){
-
 
392
					LineItem lineItem = null;
391
				LineItem lineItem = null;
393
					lineItem = createLineItem(sku,unitSellingPrice);
392
				lineItem = createLineItem(sku,unitSellingPrice,quantity);
394
					logger.info(orderId+" "+subOrderId + "sku and Price " + sku + " " + unitSellingPrice);
393
				logger.info(orderId+" "+subOrderId + "sku and Price " + sku + " " + unitSellingPrice);
395
					lineItem.setExtra_info("flipkartOrderId = " + orderId + " flipkartsubOrderId = " + subOrderId);
394
				lineItem.setExtra_info("flipkartOrderId = " + orderId + " flipkartsubOrderId = " + subOrderId);
396
					in.shop2020.model.v1.order.Order t_order = new in.shop2020.model.v1.order.Order();
395
				in.shop2020.model.v1.order.Order t_order = new in.shop2020.model.v1.order.Order();
397
					t_order.setCustomer_id(user.getUserId());
396
				t_order.setCustomer_id(user.getUserId());
398
					t_order.setCustomer_email(sourceDetail.getEmail());
397
				t_order.setCustomer_email(sourceDetail.getEmail());
399
					t_order.setCustomer_name(shipToName);
398
				t_order.setCustomer_name(shipToName);
400
					addressLine1 = addressLine1.replaceAll("\"",""); 
399
				addressLine1 = addressLine1.replaceAll("\"",""); 
401
					t_order.setCustomer_address1(addressLine1);
400
				t_order.setCustomer_address1(addressLine1);
402
					addressLine2 = addressLine2.replaceAll("\"","");
401
				addressLine2 = addressLine2.replaceAll("\"","");
403
					t_order.setCustomer_address2(addressLine2);
402
				t_order.setCustomer_address2(addressLine2);
404
					t_order.setCustomer_mobilenumber("+91-9999999999");
403
				t_order.setCustomer_mobilenumber("+91-9999999999");
405
					t_order.setCustomer_city(city);
404
				t_order.setCustomer_city(city);
406
					t_order.setCustomer_state(state);
405
				t_order.setCustomer_state(state);
407
					t_order.setCustomer_pincode(pincode);
406
				t_order.setCustomer_pincode(pincode);
408
					t_order.setTotal_amount(unitSellingPrice);            
407
				t_order.setTotal_amount(unitSellingPrice);            
409
					t_order.setTotal_weight(lineItem.getTotal_weight());
408
				t_order.setTotal_weight(lineItem.getTotal_weight());
410
					t_order.setLineitems(Collections.singletonList(lineItem));            
409
				t_order.setLineitems(Collections.singletonList(lineItem));            
411
					t_order.setStatus(OrderStatus.PAYMENT_PENDING);
410
				t_order.setStatus(OrderStatus.PAYMENT_PENDING);
412
					t_order.setStatusDescription("In Process");
411
				t_order.setStatusDescription("In Process");
413
					t_order.setCreated_timestamp(new Date().getTime());
412
				t_order.setCreated_timestamp(new Date().getTime());
414
					t_order.setOrderType(OrderType.B2C);
413
				t_order.setOrderType(OrderType.B2C);
415
					t_order.setCod(false);
414
				t_order.setCod(false);
416
					try {
415
				try {
417
						Date shipDate = new Date();
416
					Date shipDate = new Date();
418
						shipDate.setTime( flipkartTxnDate.getTime() + sla*24*60*60*1000);
417
					shipDate.setTime( flipkartTxnDate.getTime() + sla*24*60*60*1000);
419
						Calendar time = Calendar.getInstance();
418
					Calendar time = Calendar.getInstance();
420
						t_order.setPromised_shipping_time(shipDate.getTime());
419
					t_order.setPromised_shipping_time(shipDate.getTime());
421
						t_order.setExpected_shipping_time(shipDate.getTime());
420
					t_order.setExpected_shipping_time(shipDate.getTime());
422
						time.add(Calendar.DAY_OF_MONTH, 4);
421
					time.add(Calendar.DAY_OF_MONTH, 4);
423
						t_order.setPromised_delivery_time(time.getTimeInMillis());
422
					t_order.setPromised_delivery_time(time.getTimeInMillis());
424
						t_order.setExpected_delivery_time(time.getTimeInMillis());
423
					t_order.setExpected_delivery_time(time.getTimeInMillis());
425
					} catch(Exception e) {	
424
				} catch(Exception e) {	
426
						logger.error("Error in updating Shipping or Delivery Time for suborderid  " + subOrderId);
425
					logger.error("Error in updating Shipping or Delivery Time for suborderid  " + subOrderId);
427
						sb.append(orderId + " "+ subOrderId  + " Could not update delivery time" + " " + "\n");
426
					sb.append(orderId + " "+ subOrderId  + " Could not update delivery time" + " " + "\n");
428
						exit = true;
427
					exit = true;
429
						continue;
428
					continue;
430
					}
429
				}
431
					SnapdealItem snapdealItem = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient().getSnapdealItem(sku);
430
				SnapdealItem snapdealItem = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient().getSnapdealItem(sku);
432
					inventoryClient = new InventoryClient().getClient();
431
				inventoryClient = new InventoryClient().getClient();
433
					try {
432
				try {
434
						logger.info("Snapdeal Item id is " + snapdealItem.getItem_id());
433
					logger.info("Snapdeal Item id is " + snapdealItem.getItem_id());
435
						if(snapdealItem.getItem_id()!=0 && snapdealItem.getWarehouseId()!=0) {
434
					if(snapdealItem.getItem_id()!=0 && snapdealItem.getWarehouseId()!=0) {
436
							logger.info("SnapdealItem Warehouse Id " + snapdealItem.getWarehouseId());
435
						logger.info("SnapdealItem Warehouse Id " + snapdealItem.getWarehouseId());
437
							fulfillmentWarehouse = inventoryClient.getWarehouse(snapdealItem.getWarehouseId());
436
						fulfillmentWarehouse = inventoryClient.getWarehouse(snapdealItem.getWarehouseId());
438
							logger.info("fulfillmentWarehouse is " + fulfillmentWarehouse.getId() + " " + fulfillmentWarehouse.getDisplayName() );
437
						logger.info("fulfillmentWarehouse is " + fulfillmentWarehouse.getId() + " " + fulfillmentWarehouse.getDisplayName() );
439
 
438
 
440
						} else {
439
					} else {
441
							List<Long> itemAvailability = inventoryClient.getItemAvailabilityAtLocation(sku, 1);
440
						List<Long> itemAvailability = inventoryClient.getItemAvailabilityAtLocation(sku, 1);
442
							fulfillmentWarehouse = inventoryClient.getWarehouse(itemAvailability.get(0));
441
						fulfillmentWarehouse = inventoryClient.getWarehouse(itemAvailability.get(0));
443
							if(fulfillmentWarehouse.getStateId()!=0){
442
						if(fulfillmentWarehouse.getStateId()!=0){
444
								fulfillmentWarehouse = inventoryClient.getWarehouse(7);
443
							fulfillmentWarehouse = inventoryClient.getWarehouse(7);
445
							}
-
 
446
						}
444
						}
-
 
445
					}
447
						t_order.setFulfilmentWarehouseId(fulfillmentWarehouse.getId());
446
					t_order.setFulfilmentWarehouseId(fulfillmentWarehouse.getId());
448
						long billingWarehouseId = 0;
447
					long billingWarehouseId = 0;
449
						if(fulfillmentWarehouse.getBillingWarehouseId()== 0) {
448
					if(fulfillmentWarehouse.getBillingWarehouseId()== 0) {
450
							inventoryClient = new InventoryClient().getClient();
449
						inventoryClient = new InventoryClient().getClient();
451
							List<Warehouse> warehouses = inventoryClient.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, fulfillmentWarehouse.getVendor().getId(), 0, 0);
450
						List<Warehouse> warehouses = inventoryClient.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, fulfillmentWarehouse.getVendor().getId(), 0, 0);
452
							for(Warehouse warehouse : warehouses) {
451
						for(Warehouse warehouse : warehouses) {
453
								if(warehouse.getBillingWarehouseId()!=0) {
452
							if(warehouse.getBillingWarehouseId()!=0) {
454
									billingWarehouseId = warehouse.getBillingWarehouseId();
453
								billingWarehouseId = warehouse.getBillingWarehouseId();
455
									break;
454
								break;
456
								}
-
 
457
							}
455
							}
458
						}else {
-
 
459
							billingWarehouseId = fulfillmentWarehouse.getBillingWarehouseId();
-
 
460
						}
-
 
461
 
-
 
462
						//logger.info("Billing warehouse id for suborderid  " + order.getSuborderId() + " is " + fulfillmentWarehouse.getBillingWarehouseId());
-
 
463
						t_order.setWarehouse_id(billingWarehouseId);
-
 
464
						VendorItemPricing vendorItemPricing = new VendorItemPricing();
-
 
465
						if(fulfillmentWarehouse.getId()==7) {
-
 
466
							Item item = new CatalogClient().getClient().getItem(lineItem.getItem_id());
-
 
467
							vendorItemPricing = inventoryClient.getItemPricing(lineItem.getItem_id(), item.getPreferredVendor());
-
 
468
						} else {
-
 
469
							vendorItemPricing = inventoryClient.getItemPricing(lineItem.getItem_id(), fulfillmentWarehouse.getVendor().getId());
-
 
470
						}
456
						}
-
 
457
					}else {
-
 
458
						billingWarehouseId = fulfillmentWarehouse.getBillingWarehouseId();
-
 
459
					}
471
 
460
 
472
						t_order.getLineitems().get(0).setTransfer_price(vendorItemPricing.getTransferPrice());
461
					//logger.info("Billing warehouse id for suborderid  " + order.getSuborderId() + " is " + fulfillmentWarehouse.getBillingWarehouseId());
473
						t_order.getLineitems().get(0).setNlc(vendorItemPricing.getNlc());
462
					t_order.setWarehouse_id(billingWarehouseId);
474
					} catch (InventoryServiceException e) {
463
					VendorItemPricing vendorItemPricing = new VendorItemPricing();
475
						logger.error("Error connecting inventory service for suborderid  " + orderId + " " + subOrderId , e);
-
 
476
						sb.append(orderId + " " + subOrderId+ " Inventory Service Exception" + " " + "\n");
-
 
477
						exit = true;
-
 
478
						continue;
-
 
479
					} catch (TTransportException e) {
464
					if(fulfillmentWarehouse.getId()==7) {
480
						logger.error("Transport Exception with Inventory Service for suborderid  " + orderId + " " + subOrderId , e);
-
 
481
						sb.append(orderId + " " + subOrderId + " Transport Exception with Inventory Service" + " " + "\n");
465
						Item item = new CatalogClient().getClient().getItem(lineItem.getItem_id());
482
						exit = true;
-
 
483
						continue;
-
 
484
					} catch (TException e) {
-
 
485
						logger.error("Exception with Inventory Service for suborderid  " + orderId + " " + subOrderId , e);
466
						vendorItemPricing = inventoryClient.getItemPricing(lineItem.getItem_id(), item.getPreferredVendor());
486
						sb.append(orderId + " " + subOrderId + " Exception in Inventory Service" + " " + "\n");
-
 
487
						exit = true;
-
 
488
						continue;
467
					} else {
489
					} catch (CatalogServiceException e) {
-
 
490
						logger.error("Exception with Catalog Service for   " + orderId + " " + subOrderId + " while getting item " + lineItem.getItem_id(), e);
468
						vendorItemPricing = inventoryClient.getItemPricing(lineItem.getItem_id(), fulfillmentWarehouse.getVendor().getId());
491
						sb.append(orderId + " " + subOrderId + " Exception in Catalog Service" + " " + "\n");
-
 
492
						exit = true;
-
 
493
						continue;
-
 
494
					}
469
					}
-
 
470
 
-
 
471
					t_order.getLineitems().get(0).setTransfer_price(vendorItemPricing.getTransferPrice());
495
					t_order.setLogistics_provider_id(FLIPKART_LOGISTICS_ID);
472
					t_order.getLineitems().get(0).setNlc(vendorItemPricing.getNlc());
496
					t_order.setAirwaybill_no("");
473
				} catch (InventoryServiceException e) {
-
 
474
					logger.error("Error connecting inventory service for suborderid  " + orderId + " " + subOrderId , e);
-
 
475
					sb.append(orderId + " " + subOrderId+ " Inventory Service Exception" + " " + "\n");
-
 
476
					exit = true;
497
					t_order.setTracking_id("");
477
					continue;
498
					t_order.setTotal_amount(unitSellingPrice);
478
				} catch (TTransportException e) {
-
 
479
					logger.error("Transport Exception with Inventory Service for suborderid  " + orderId + " " + subOrderId , e);
-
 
480
					sb.append(orderId + " " + subOrderId + " Transport Exception with Inventory Service" + " " + "\n");
499
					t_order.setOrderType(OrderType.B2C);
481
					exit = true;
-
 
482
					continue;
500
					t_order.setSource(FLIPKART_SOURCE_ID);
483
				} catch (TException e) {
-
 
484
					logger.error("Exception with Inventory Service for suborderid  " + orderId + " " + subOrderId , e);
-
 
485
					sb.append(orderId + " " + subOrderId + " Exception in Inventory Service" + " " + "\n");
-
 
486
					exit = true;
-
 
487
					continue;
501
					t_order.setOrderType(OrderType.B2C);
488
				} catch (CatalogServiceException e) {
-
 
489
					logger.error("Exception with Catalog Service for   " + orderId + " " + subOrderId + " while getting item " + lineItem.getItem_id(), e);
502
					total_price = total_price + unitSellingPrice;
490
					sb.append(orderId + " " + subOrderId + " Exception in Catalog Service" + " " + "\n");
503
					orderlist.add(t_order);
491
					exit = true;
-
 
492
					continue;
504
				}
493
				}
-
 
494
				t_order.setLogistics_provider_id(FLIPKART_LOGISTICS_ID);
-
 
495
				t_order.setAirwaybill_no("");
-
 
496
				t_order.setTracking_id("");
-
 
497
				t_order.setTotal_amount(unitSellingPrice);
-
 
498
				t_order.setOrderType(OrderType.B2C);
-
 
499
				t_order.setSource(FLIPKART_SOURCE_ID);
-
 
500
				t_order.setOrderType(OrderType.B2C);
-
 
501
				total_price = unitSellingPrice*quantity;
-
 
502
				orderlist.add(t_order);
505
				if(exit){
503
				if(exit){
506
					continue;
504
					continue;
507
				}
505
				}
508
				txn.setOrders(orderlist);
506
				txn.setOrders(orderlist);
509
				try {
507
				try {
Line 740... Line 738...
740
	public void setServletRequest(HttpServletRequest request) {
738
	public void setServletRequest(HttpServletRequest request) {
741
		this.request = request;
739
		this.request = request;
742
		this.session = request.getSession();        
740
		this.session = request.getSession();        
743
 
741
 
744
	}
742
	}
745
	public static LineItem createLineItem(long itemId, double amount) throws CatalogServiceException, TException {
743
	public static LineItem createLineItem(long itemId, double amount,int qty) throws CatalogServiceException, TException {
746
		LineItem lineItem = new LineItem();
744
		LineItem lineItem = new LineItem();
747
		CatalogService.Client catalogClient = new CatalogClient().getClient();
745
		CatalogService.Client catalogClient = new CatalogClient().getClient();
748
		Item item = catalogClient.getItem(itemId);
746
		Item item = catalogClient.getItem(itemId);
749
		if(item.getId()==0){
747
		if(item.getId()==0){
750
			//in case item id is incorrect..
748
			//in case item id is incorrect..
Line 754... Line 752...
754
		lineItem.setProductGroup(item.getProductGroup());
752
		lineItem.setProductGroup(item.getProductGroup());
755
		lineItem.setBrand(item.getBrand());
753
		lineItem.setBrand(item.getBrand());
756
		lineItem.setModel_number(item.getModelNumber());
754
		lineItem.setModel_number(item.getModelNumber());
757
		lineItem.setModel_name(item.getModelName());
755
		lineItem.setModel_name(item.getModelName());
758
		lineItem.setExtra_info(item.getFeatureDescription());
756
		lineItem.setExtra_info(item.getFeatureDescription());
759
		lineItem.setQuantity(1);
757
		lineItem.setQuantity(qty);
760
		lineItem.setItem_id(item.getId());
758
		lineItem.setItem_id(item.getId());
761
		lineItem.setUnit_weight(item.getWeight());
759
		lineItem.setUnit_weight(item.getWeight());
762
		lineItem.setTotal_weight(item.getWeight());
760
		lineItem.setTotal_weight(item.getWeight());
763
		lineItem.setUnit_price(amount);
761
		lineItem.setUnit_price(amount);
764
		lineItem.setTotal_price(amount);
762
		lineItem.setTotal_price(amount*qty);
765
 
-
 
766
		if (item.getColor() == null || "NA".equals(item.getColor())) {
763
		if (item.getColor() == null || "NA".equals(item.getColor())) {
767
			lineItem.setColor("");
764
			lineItem.setColor("");
768
		} else {
765
		} else {
769
			lineItem.setColor(item.getColor());
766
			lineItem.setColor(item.getColor());
770
		}
767
		}