Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
21234 kshitij.so 1
package in.shop2020.hotspot.dashbaord.server;
2
 
21237 kshitij.so 3
import in.shop2020.model.v1.order.Order;
4
import in.shop2020.model.v1.order.TransactionService.Client;
21234 kshitij.so 5
import in.shop2020.thrift.clients.TransactionClient;
21242 kshitij.so 6
import in.shop2020.thrift.clients.WarehouseClient;
7
import in.shop2020.warehouse.InventoryItem;
21234 kshitij.so 8
 
9
import java.io.File;
10
import java.io.FileInputStream;
11
import java.util.ArrayList;
21242 kshitij.so 12
import java.util.HashMap;
21234 kshitij.so 13
import java.util.List;
21242 kshitij.so 14
import java.util.Map;
21234 kshitij.so 15
 
16
import org.apache.poi.hssf.usermodel.HSSFSheet;
17
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
18
import org.slf4j.Logger;
19
import org.slf4j.LoggerFactory;
20
 
21242 kshitij.so 21
import com.google.gwt.user.client.ui.TextBox;
22
 
21234 kshitij.so 23
public class ProcessBulkBilling{
24
	private static  Logger logger = LoggerFactory.getLogger(ProcessBulkBilling.class);
21242 kshitij.so 25
 
21237 kshitij.so 26
	private String fileName;
27
	private String logisticsTransactionId;
28
	private String packageDimensions;
21242 kshitij.so 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>>();
21237 kshitij.so 32
	private ArrayList<String> imei_list = new ArrayList<String>();
21242 kshitij.so 33
 
34
 
21237 kshitij.so 35
	ProcessBulkBilling(String fileName, String logisticsTransactionId, String packageDimensions) {
36
		logger.info("FileName "+fileName+" logisticsTransactionId "+logisticsTransactionId+" packageDimension "+packageDimensions);
37
		this.fileName = fileName;
38
		this.logisticsTransactionId = logisticsTransactionId;
39
		this.packageDimensions = packageDimensions;
40
	}
21234 kshitij.so 41
 
21237 kshitij.so 42
	public boolean processReport() {
21234 kshitij.so 43
		try{
44
 
45
			FileInputStream iFile = new FileInputStream(new File(fileName));
46
			HSSFWorkbook workbook = new HSSFWorkbook(iFile);
47
			HSSFSheet sheet = workbook.getSheetAt(0);
48
 
49
			for (int iterator=sheet.getFirstRowNum()+1;iterator<=sheet.getLastRowNum();iterator++){
21237 kshitij.so 50
				String imei = (sheet.getRow(iterator).getCell(0).getStringCellValue()).trim();
51
				if (imei == null || imei.isEmpty()){
52
					break;
53
				}
21242 kshitij.so 54
				if (imei_list.contains(imei)){
55
					return false;
56
				}
21237 kshitij.so 57
				imei_list.add(imei);
21234 kshitij.so 58
			}
59
			return true;
60
		}
61
		catch(Exception e){
62
			e.printStackTrace();
63
			return false;
64
		}
65
	}
21242 kshitij.so 66
 
21237 kshitij.so 67
	public String checkBillingDetails(){
68
		List<Order> orders_list;
69
		try{
21242 kshitij.so 70
			Client tc = new TransactionClient().getClient();
71
			orders_list = tc.getGroupOrdersByLogisticsTxnId(logisticsTransactionId);
21237 kshitij.so 72
		}
73
		catch(Exception e){
74
			e.printStackTrace();
75
			return "Service Error!!!";
76
		}
77
		long total_quantity = 0;
78
		for (Order o : orders_list){
21242 kshitij.so 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
			}
21237 kshitij.so 85
			total_quantity = (long) (total_quantity + o.getLineitems().get(0).getQuantity());
86
		}
87
		if (total_quantity != imei_list.size()){
88
			return "Quantity and imei mismatch.Supplied imei's not equal to quantity to bill";
89
		}
21242 kshitij.so 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);
109
		return "success";
21237 kshitij.so 110
	}
21234 kshitij.so 111
 
112
}