Subversion Repositories SmartDukaan

Rev

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

Rev 13361 Rev 16284
Line 239... Line 239...
239
		} catch (IOException e) {
239
		} catch (IOException e) {
240
			logger.error("Encountered error while sending invoice response: ", e);
240
			logger.error("Encountered error while sending invoice response: ", e);
241
		}
241
		}
242
		return "info";
242
		return "info";
243
	}
243
	}
-
 
244
	
-
 
245
	private String getItemDisplayName(LineItem lineitem, boolean appendIMEI){
-
 
246
		StringBuffer itemName = new StringBuffer();
-
 
247
		if(lineitem.getBrand()!= null)
-
 
248
			itemName.append(lineitem.getBrand() + " ");
-
 
249
		if(lineitem.getModel_name() != null)
-
 
250
			itemName.append(lineitem.getModel_name() + " ");
-
 
251
		if(lineitem.getModel_number() != null )
-
 
252
			itemName.append(lineitem.getModel_number() + " ");
-
 
253
		if(lineitem.getColor() != null && !lineitem.getColor().trim().equals("NA"))
-
 
254
			itemName.append("("+lineitem.getColor()+")");
-
 
255
		if(appendIMEI && lineitem.isSetSerial_number()){
-
 
256
			itemName.append("\nIMEI No. " + lineitem.getSerial_number());
-
 
257
		}
-
 
258
 
-
 
259
		return itemName.toString();
-
 
260
	}
244
 
261
 
245
	private void createAwbDetailList(String[] awbArray) {
262
	private void createAwbDetailList(String[] awbArray) {
246
		List<Order> orderList;
263
		List<Order> orderList;
247
		List<AwbDetails> tempList = new ArrayList<AwbDetails>() ;
264
		List<AwbDetails> tempList = new ArrayList<AwbDetails>() ;
248
		for(String awbNumber : awbArray) {
265
		for(String awbNumber : awbArray) {
Line 260... Line 277...
260
				 */
277
				 */
261
				logger.info("Session : " + session);
278
				logger.info("Session : " + session);
262
				logger.info("provider Id : " + ((Long)session.getAttribute("providerId")).longValue());
279
				logger.info("provider Id : " + ((Long)session.getAttribute("providerId")).longValue());
263
				Provider provider = logisticsClient.getProvider(((Long)session.getAttribute("providerId")).longValue());
280
				Provider provider = logisticsClient.getProvider(((Long)session.getAttribute("providerId")).longValue());
264
				orderList = txnClient.getOrderForAwb(awbNumber);
281
				orderList = txnClient.getOrderForAwb(awbNumber);
-
 
282
				
-
 
283
				Map<String, List<Order>> logisticsTxnIdOrdersMap = new HashMap<String, List<Order>>(); 
-
 
284
			    Map<Long, String> itemNamesMap = new HashMap<Long, String>();
-
 
285
			    Map<String, Map<Long, Double>> logisticsTxnIdOrderQuantityMap = new HashMap<String, Map<Long, Double>>();
-
 
286
			    
-
 
287
			    for(Order order:orderList){
-
 
288
					if(order.getLogistics_provider_id()!=provider.getId())
-
 
289
						continue;
-
 
290
					LineItem lineItem = order.getLineitems().get(0);
-
 
291
					if(order.isSetLogisticsTransactionId()){
-
 
292
						if(logisticsTxnIdOrdersMap.containsKey(order.getLogisticsTransactionId())){
-
 
293
							List<Order> ordersList = logisticsTxnIdOrdersMap.get(order.getLogisticsTransactionId());
-
 
294
							ordersList.add(order);
-
 
295
							logisticsTxnIdOrdersMap.put(order.getLogisticsTransactionId(), ordersList);
-
 
296
						} else{
-
 
297
							List<Order> ordersList = new ArrayList<Order>();
-
 
298
							ordersList.add(order);
-
 
299
							logisticsTxnIdOrdersMap.put(order.getLogisticsTransactionId(), ordersList);
-
 
300
						}
-
 
301
						if(logisticsTxnIdOrderQuantityMap.containsKey(order.getLogisticsTransactionId())){
-
 
302
							Map<Long, Double> orderItemQuantityMap = logisticsTxnIdOrderQuantityMap.get(order.getLogisticsTransactionId());
-
 
303
							if(orderItemQuantityMap.containsKey(lineItem.getItem_id())){
-
 
304
								double orderQuantity = orderItemQuantityMap.get(lineItem.getItem_id())+ lineItem.getQuantity();
-
 
305
								orderItemQuantityMap.put(lineItem.getItem_id(),orderQuantity);
-
 
306
								logisticsTxnIdOrderQuantityMap.put(order.getLogisticsTransactionId(), orderItemQuantityMap);
-
 
307
							}else{
-
 
308
								double orderQuantity = lineItem.getQuantity();
-
 
309
								orderItemQuantityMap.put(lineItem.getItem_id(),orderQuantity);
-
 
310
								logisticsTxnIdOrderQuantityMap.put(order.getLogisticsTransactionId(), orderItemQuantityMap);
-
 
311
							}
-
 
312
						}else{
-
 
313
							Map<Long, Double> orderItemQuantityMap = new HashMap<Long, Double>();
-
 
314
							orderItemQuantityMap.put(lineItem.getItem_id(), lineItem.getQuantity());
-
 
315
							logisticsTxnIdOrderQuantityMap.put(order.getLogisticsTransactionId(), orderItemQuantityMap);
-
 
316
						}
-
 
317
					}else{
-
 
318
						List<Order> ordersList = new ArrayList<Order>();
-
 
319
						ordersList.add(order);
-
 
320
						logisticsTxnIdOrdersMap.put(order.getId()+"", ordersList);
-
 
321
						Map<Long, Double> orderItemQuantityMap = new HashMap<Long, Double>();
-
 
322
						orderItemQuantityMap.put(lineItem.getItem_id(), lineItem.getQuantity());
-
 
323
						logisticsTxnIdOrderQuantityMap.put(order.getId()+"", orderItemQuantityMap);
-
 
324
					}
-
 
325
					if(!itemNamesMap.containsKey(lineItem.getItem_id())){
-
 
326
						itemNamesMap.put(lineItem.getItem_id(), getItemDisplayName(lineItem, false));
-
 
327
					}
-
 
328
			    }
-
 
329
			    
-
 
330
			    for(String logisticsTxnId : logisticsTxnIdOrdersMap.keySet()){
-
 
331
			    	List<Order> ordersList = logisticsTxnIdOrdersMap.get(logisticsTxnId);
-
 
332
			    	Warehouse warehouse = inventoryClient.getWarehouse(ordersList.get(0).getWarehouse_id());
-
 
333
			    	String accountNo = "";
-
 
334
 
-
 
335
					DeliveryType dt =  DeliveryType.PREPAID;
-
 
336
					if (ordersList.get(0).isLogisticsCod()) {
-
 
337
						dt = DeliveryType.COD;
-
 
338
					}
-
 
339
 
-
 
340
					for (ProviderDetails detail : provider.getDetails()) {
-
 
341
						if(in.shop2020.model.v1.inventory.WarehouseLocation.findByValue((int) detail.getLogisticLocation()) == warehouse.getLogisticsLocation() && detail.getDeliveryType() == dt) {
-
 
342
							accountNo = detail.getAccountNo();
-
 
343
						}
-
 
344
					}
-
 
345
					
-
 
346
					double totalAmount = 0.0;
-
 
347
			    	double totalWeight = 0.0;
-
 
348
			    	for(Order o:ordersList){
-
 
349
			    		totalAmount = totalAmount + (o.getTotal_amount()-o.getGvAmount());
-
 
350
			    		totalWeight = totalWeight + o.getTotal_weight();
-
 
351
			    	}
-
 
352
					
-
 
353
					AwbDetails detailedAwb = new AwbDetails();
-
 
354
 
-
 
355
					String[] addresses = warehouse.getLocation().split(",+");
-
 
356
 
-
 
357
					detailedAwb.setReturnAddress1((addresses[0].trim() + ", " + addresses[1].trim()).replace("\n", ", "));
-
 
358
					detailedAwb.setReturnAddress2((addresses[2].trim() + (addresses.length > 3 ? ", " + addresses[3].trim() : "")).replace("\n", ", "));
-
 
359
 
-
 
360
					String line3 = "";
-
 
361
					if(addresses.length > 4) {
-
 
362
						for(int i = 4; i<addresses.length; i++) {
-
 
363
							line3 += addresses[i] + ", ";
-
 
364
						}
-
 
365
					}
-
 
366
 
-
 
367
					if(StringUtils.isNotEmpty(line3)) {
-
 
368
						detailedAwb.setReturnAddress3(line3.trim().replace("\n", ", "));
-
 
369
					} else {
-
 
370
						detailedAwb.setReturnAddress3(EMPTY_STRING);
-
 
371
					}
-
 
372
					detailedAwb.setReturnPin(warehouse.getPincode());
-
 
373
					detailedAwb.setAwbNumber(awbNumber);
-
 
374
					detailedAwb.setAccountCode(accountNo);
-
 
375
					detailedAwb.setVendorCode((int) ordersList.get(0).getWarehouse_id());
-
 
376
					if(ordersList.get(0).isLogisticsCod()){
-
 
377
						detailedAwb.setAmountToCollect("" + totalAmount);
-
 
378
					} else {
-
 
379
						detailedAwb.setAmountToCollect("" + 0 );
-
 
380
					}
-
 
381
					
-
 
382
					if(ordersList.get(0).getShipping_timestamp() > 0) {
-
 
383
						Date date = new Date(ordersList.get(0).getShipping_timestamp());
-
 
384
						detailedAwb.setAwbDate(date.toString());
-
 
385
					} else {
-
 
386
						detailedAwb.setAwbDate("N/A");
-
 
387
					}
-
 
388
 
-
 
389
					if(ordersList.get(0).getPickupStoreId() > 0) {
-
 
390
						PickupStore store = lsc.getClient().getPickupStore(ordersList.get(0).getPickupStoreId());
-
 
391
						detailedAwb.setAddress1(store.getLine1());
-
 
392
						detailedAwb.setAddress2(store.getLine2());
-
 
393
						detailedAwb.setCity(store.getCity());
-
 
394
						detailedAwb.setCustomerName("Spice Hotspot");
-
 
395
						detailedAwb.setPhoneNumber("" + store.getPhone());
-
 
396
						detailedAwb.setPinCode(store.getPin());
-
 
397
						detailedAwb.setState(store.getState());
-
 
398
					} else {
-
 
399
						detailedAwb.setAddress1(ordersList.get(0).getCustomer_address1());
-
 
400
						detailedAwb.setAddress2(ordersList.get(0).getCustomer_address2());
-
 
401
						detailedAwb.setCity(ordersList.get(0).getCustomer_city());
-
 
402
						detailedAwb.setCustomerName(ordersList.get(0).getCustomer_name());
-
 
403
						detailedAwb.setPhoneNumber("" + ordersList.get(0).getCustomer_mobilenumber());
-
 
404
						detailedAwb.setPinCode(ordersList.get(0).getCustomer_pincode());
-
 
405
						detailedAwb.setState(ordersList.get(0).getCustomer_state());
-
 
406
					}
-
 
407
 
-
 
408
					detailedAwb.setItemId("" + ordersList.get(0).getLineitems().get(0).getItem_id());
-
 
409
					detailedAwb.setOrderId("" + ordersList.get(0).getId());
-
 
410
					detailedAwb.setPacketWeight("" + totalWeight);
-
 
411
					if(ordersList.get(0).isLogisticsCod()){
-
 
412
						detailedAwb.setPaymentMode("COD");
-
 
413
					} else {
-
 
414
						detailedAwb.setPaymentMode("Prepaid");
-
 
415
					}
-
 
416
 
-
 
417
 
-
 
418
					detailedAwb.setPickupLocation(warehouse.getLocation());
-
 
419
					
-
 
420
					StringBuffer productNameBuffer = new StringBuffer();
-
 
421
				    int skuSizeTxn = logisticsTxnIdOrderQuantityMap.get(logisticsTxnId).keySet().size();
-
 
422
				    int count = 1;
-
 
423
				    for(Long itemId : logisticsTxnIdOrderQuantityMap.get(logisticsTxnId).keySet()){
-
 
424
				    	Map<Long, Double> quantityMap = logisticsTxnIdOrderQuantityMap.get(logisticsTxnId);
-
 
425
				    	double quantity = quantityMap.get(itemId);
-
 
426
				    	productNameBuffer.append(itemNamesMap.get(itemId)+"("+quantity+")");
-
 
427
				    	if(count<skuSizeTxn){
-
 
428
				    		productNameBuffer.append(",");
-
 
429
				    	}
-
 
430
				    	count++;
-
 
431
				    }
-
 
432
				    
-
 
433
				    detailedAwb.setProductName(productNameBuffer.toString());
-
 
434
				    LineItem lineitem = ordersList.get(0).getLineitems().get(0);
-
 
435
					if (ordersList.get(0).getFreebieItemId() > 0) {
-
 
436
						//If order has a freebie order attached with it
-
 
437
						detailedAwb.setShipmentValue("" + (ordersList.get(0).getTotal_amount()));
-
 
438
					} else {
-
 
439
						//else if the order is itself a split freebie order then we don't know how much was the selling price at the time of order
-
 
440
						//so we set the transfer price as shipment value
-
 
441
						if (lineitem.getExtra_info() != null && lineitem.getExtra_info().contains("Freebie Order for Order ID")) {
-
 
442
							detailedAwb.setShipmentValue("" + (totalAmount));
-
 
443
						} else {
-
 
444
							//Else set total amount
-
 
445
							detailedAwb.setShipmentValue("" +totalAmount);
-
 
446
						}
-
 
447
					}
-
 
448
					
-
 
449
					if(ordersList.get(0).isSetLogisticsTransactionId()){
-
 
450
						detailedAwb.setMasterOrderId(ordersList.get(0).getLogisticsTransactionId());
-
 
451
					}else{
-
 
452
						detailedAwb.setMasterOrderId("-");
-
 
453
					}
-
 
454
 
-
 
455
					tempList.add(detailedAwb);
-
 
456
			    }
-
 
457
				
265
				for(Order order : orderList){
458
				/*for(Order order : orderList){
266
					Warehouse warehouse = inventoryClient.getWarehouse(order.getWarehouse_id());
459
					Warehouse warehouse = inventoryClient.getWarehouse(order.getWarehouse_id());
267
 
460
 
268
					String accountNo = "";
461
					String accountNo = "";
269
 
462
 
270
					DeliveryType dt =  DeliveryType.PREPAID;
463
					DeliveryType dt =  DeliveryType.PREPAID;
Line 369... Line 562...
369
					}else{
562
					}else{
370
						detailedAwb.setMasterOrderId("-");
563
						detailedAwb.setMasterOrderId("-");
371
					}
564
					}
372
 
565
 
373
					tempList.add(detailedAwb);
566
					tempList.add(detailedAwb);
374
				}
567
				}*/
375
 
568
 
376
			} catch (TTransportException e) {
569
			} catch (TTransportException e) {
377
				setErrorMsg("Your request cannot be processed due to technical error. Please try later.");
570
				setErrorMsg("Your request cannot be processed due to technical error. Please try later.");
378
			} catch (TException e) {
571
			} catch (TException e) {
379
				setErrorMsg(e.getMessage());
572
				setErrorMsg(e.getMessage());
Line 398... Line 591...
398
		CellStyle dateCellStyle = wb.createCellStyle();
591
		CellStyle dateCellStyle = wb.createCellStyle();
399
		dateCellStyle.setDataFormat(createHelper.createDataFormat().getFormat("d/m/yyyy"));
592
		dateCellStyle.setDataFormat(createHelper.createDataFormat().getFormat("d/m/yyyy"));
400
 
593
 
401
		CellStyle weightStyle = wb.createCellStyle();
594
		CellStyle weightStyle = wb.createCellStyle();
402
		weightStyle.setDataFormat(createHelper.createDataFormat().getFormat("0.000"));
595
		weightStyle.setDataFormat(createHelper.createDataFormat().getFormat("0.000"));
-
 
596
		
-
 
597
		
403
 
598
 
404
		Row headerRow = sheet.createRow((short)0);
599
		Row headerRow = sheet.createRow((short)0);
405
		headerRow.createCell(0).setCellValue("Airwaybill");
600
		headerRow.createCell(0).setCellValue("Airwaybill");
406
		headerRow.createCell(1).setCellValue("Type"); //Values : "COD" / "NONCOD"
601
		headerRow.createCell(1).setCellValue("Type"); //Values : "COD" / "NONCOD"
407
		headerRow.createCell(2).setCellValue("Mater Order Id");
602
		headerRow.createCell(2).setCellValue("Master Order Id");
408
		headerRow.createCell(3).setCellValue("Reference Number"); //OrderId
603
		headerRow.createCell(3).setCellValue("Reference Number"); //OrderId
409
		headerRow.createCell(4).setCellValue("Sender / Store name"); //"Spice Online retail pvt ltd"
604
		headerRow.createCell(4).setCellValue("Sender / Store name"); //"Spice Online retail pvt ltd"
410
		headerRow.createCell(5).setCellValue("attention"); //Customer name
605
		headerRow.createCell(5).setCellValue("attention"); //Customer name
411
		headerRow.createCell(6).setCellValue("address1"); //Line 1
606
		headerRow.createCell(6).setCellValue("address1"); //Line 1
412
		headerRow.createCell(7).setCellValue("address2"); //Line 2
607
		headerRow.createCell(7).setCellValue("address2"); //Line 2