Subversion Repositories SmartDukaan

Rev

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

Rev 21237 Rev 21242
Line 1... Line 1...
1
package in.shop2020.hotspot.dashbaord.server;
1
package in.shop2020.hotspot.dashbaord.server;
2
 
2
 
3
import in.shop2020.model.v1.order.Order;
3
import in.shop2020.model.v1.order.Order;
4
import in.shop2020.model.v1.order.TransactionService.Client;
4
import in.shop2020.model.v1.order.TransactionService.Client;
5
import in.shop2020.thrift.clients.TransactionClient;
5
import in.shop2020.thrift.clients.TransactionClient;
-
 
6
import in.shop2020.thrift.clients.WarehouseClient;
-
 
7
import in.shop2020.warehouse.InventoryItem;
6
 
8
 
7
import java.io.File;
9
import java.io.File;
8
import java.io.FileInputStream;
10
import java.io.FileInputStream;
9
import java.util.ArrayList;
11
import java.util.ArrayList;
-
 
12
import java.util.HashMap;
10
import java.util.List;
13
import java.util.List;
-
 
14
import java.util.Map;
11
 
15
 
12
import org.apache.poi.hssf.usermodel.HSSFSheet;
16
import org.apache.poi.hssf.usermodel.HSSFSheet;
13
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
17
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
14
import org.slf4j.Logger;
18
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
19
import org.slf4j.LoggerFactory;
16
 
20
 
-
 
21
import com.google.gwt.user.client.ui.TextBox;
-
 
22
 
17
public class ProcessBulkBilling{
23
public class ProcessBulkBilling{
18
	private static  Logger logger = LoggerFactory.getLogger(ProcessBulkBilling.class);
24
	private static  Logger logger = LoggerFactory.getLogger(ProcessBulkBilling.class);
19
	
25
 
20
	private String fileName;
26
	private String fileName;
21
	private String logisticsTransactionId;
27
	private String logisticsTransactionId;
22
	private String packageDimensions;
28
	private String packageDimensions;
-
 
29
	private List<InventoryItem> inventoryItems;
-
 
30
	private Map<Long, Long> itemQuantityMap= new HashMap<Long, Long>();
-
 
31
	private Map<Long, List<InventoryItem>> inventoryItemMap= new HashMap<Long, List<InventoryItem>>();
23
	private ArrayList<String> imei_list = new ArrayList<String>();
32
	private ArrayList<String> imei_list = new ArrayList<String>();
24
	
33
 
25
	
34
 
26
	ProcessBulkBilling(String fileName, String logisticsTransactionId, String packageDimensions) {
35
	ProcessBulkBilling(String fileName, String logisticsTransactionId, String packageDimensions) {
27
		logger.info("FileName "+fileName+" logisticsTransactionId "+logisticsTransactionId+" packageDimension "+packageDimensions);
36
		logger.info("FileName "+fileName+" logisticsTransactionId "+logisticsTransactionId+" packageDimension "+packageDimensions);
28
		this.fileName = fileName;
37
		this.fileName = fileName;
29
		this.logisticsTransactionId = logisticsTransactionId;
38
		this.logisticsTransactionId = logisticsTransactionId;
30
		this.packageDimensions = packageDimensions;
39
		this.packageDimensions = packageDimensions;
31
	}
40
	}
32
 
41
 
33
	public boolean processReport() {
42
	public boolean processReport() {
34
		logger.info("Inside bulk billing process");
-
 
35
		try{
43
		try{
36
 
44
 
37
			FileInputStream iFile = new FileInputStream(new File(fileName));
45
			FileInputStream iFile = new FileInputStream(new File(fileName));
38
			HSSFWorkbook workbook = new HSSFWorkbook(iFile);
46
			HSSFWorkbook workbook = new HSSFWorkbook(iFile);
39
			HSSFSheet sheet = workbook.getSheetAt(0);
47
			HSSFSheet sheet = workbook.getSheetAt(0);
Line 41... Line 49...
41
			for (int iterator=sheet.getFirstRowNum()+1;iterator<=sheet.getLastRowNum();iterator++){
49
			for (int iterator=sheet.getFirstRowNum()+1;iterator<=sheet.getLastRowNum();iterator++){
42
				String imei = (sheet.getRow(iterator).getCell(0).getStringCellValue()).trim();
50
				String imei = (sheet.getRow(iterator).getCell(0).getStringCellValue()).trim();
43
				if (imei == null || imei.isEmpty()){
51
				if (imei == null || imei.isEmpty()){
44
					break;
52
					break;
45
				}
53
				}
-
 
54
				if (imei_list.contains(imei)){
-
 
55
					return false;
-
 
56
				}
46
				imei_list.add(imei);
57
				imei_list.add(imei);
47
			}
58
			}
48
			return true;
59
			return true;
49
		}
60
		}
50
		catch(Exception e){
61
		catch(Exception e){
51
			e.printStackTrace();
62
			e.printStackTrace();
52
			return false;
63
			return false;
53
		}
64
		}
54
	}
65
	}
55
	
66
 
56
	public String checkBillingDetails(){
67
	public String checkBillingDetails(){
57
		List<Order> orders_list;
68
		List<Order> orders_list;
58
		try{
69
		try{
59
		Client tc = new TransactionClient().getClient();
70
			Client tc = new TransactionClient().getClient();
60
		orders_list = tc.getGroupOrdersByLogisticsTxnId(logisticsTransactionId);
71
			orders_list = tc.getGroupOrdersByLogisticsTxnId(logisticsTransactionId);
61
		}
72
		}
62
		catch(Exception e){
73
		catch(Exception e){
63
			e.printStackTrace();
74
			e.printStackTrace();
64
			return "Service Error!!!";
75
			return "Service Error!!!";
65
		}
76
		}
66
		long total_quantity = 0;
77
		long total_quantity = 0;
67
		for (Order o : orders_list){
78
		for (Order o : orders_list){
-
 
79
			if (itemQuantityMap.containsKey(o.getLineitems().get(0).getItem_id())){
-
 
80
				itemQuantityMap.put(o.getLineitems().get(0).getItem_id(), itemQuantityMap.get(o.getLineitems().get(0).getItem_id())+(long)o.getLineitems().get(0).getQuantity());
-
 
81
			}
-
 
82
			else{
-
 
83
				itemQuantityMap.put(o.getLineitems().get(0).getItem_id(), (long)o.getLineitems().get(0).getQuantity());
-
 
84
			}
68
			total_quantity = (long) (total_quantity + o.getLineitems().get(0).getQuantity());
85
			total_quantity = (long) (total_quantity + o.getLineitems().get(0).getQuantity());
69
		}
86
		}
70
		if (total_quantity != imei_list.size()){
87
		if (total_quantity != imei_list.size()){
71
			return "Quantity and imei mismatch.Supplied imei's not equal to quantity to bill";
88
			return "Quantity and imei mismatch.Supplied imei's not equal to quantity to bill";
72
		}
89
		}
-
 
90
		try{
-
 
91
			in.shop2020.warehouse.WarehouseService.Client wc = new WarehouseClient().getClient();
-
 
92
			inventoryItems = wc.getInventoryItems(imei_list);
-
 
93
			for (InventoryItem it : inventoryItems){
-
 
94
				if (inventoryItemMap.containsKey(it.getItemId())){
-
 
95
					inventoryItemMap.get(it.getItemId()).add(it);
-
 
96
				}
-
 
97
				else{
-
 
98
					List<InventoryItem> it_list = new ArrayList<InventoryItem>();
-
 
99
					it_list.add(it);
-
 
100
					inventoryItemMap.put(it.getItemId(), it_list);
-
 
101
				}
-
 
102
			}
-
 
103
		}
-
 
104
		catch(Exception e){
-
 
105
			return "Exception while getting inventory items from warehouse";
-
 
106
		}
-
 
107
		logger.info("itemQuantityMap "+itemQuantityMap);
-
 
108
		logger.info("inventoryItemMap "+inventoryItemMap);
73
		return "Success";
109
		return "success";
74
	}
110
	}
75
 
111
 
76
}
112
}
77
113