Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
12166 manish.sha 1
package in.shop2020.support.utils;
2
 
3
import java.io.BufferedWriter;
4
import java.io.File;
5
import java.io.FileOutputStream;
6
import java.io.FileWriter;
7
import java.util.ArrayList;
8
import java.util.Collections;
9
import java.util.Date;
10
import java.util.HashMap;
11
import java.util.Hashtable;
12
import java.util.List;
13
import java.util.Map;
14
 
15
import org.apache.commons.lang.StringUtils;
16
import org.apache.commons.logging.Log;
17
import org.apache.poi.hssf.usermodel.HSSFSheet;
18
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
19
import org.apache.poi.ss.usermodel.Cell;
20
import org.apache.poi.ss.usermodel.Row;
21
 
22
import java.util.Set;
23
import org.slf4j.Logger;
24
import org.slf4j.LoggerFactory;
25
 
26
import com.mysql.jdbc.log.LogFactory;
27
import in.shop2020.model.v1.catalog.CatalogService;
28
import in.shop2020.model.v1.catalog.Category;
29
import in.shop2020.model.v1.catalog.Item;
30
import in.shop2020.model.v1.inventory.InventoryService;
31
import in.shop2020.model.v1.inventory.InventoryType;
32
import in.shop2020.model.v1.inventory.ItemInventory;
33
import in.shop2020.model.v1.inventory.OOSStatus;
34
import in.shop2020.model.v1.inventory.VendorItemPricing;
35
import in.shop2020.model.v1.inventory.Warehouse;
36
import in.shop2020.model.v1.inventory.WarehouseType;
37
import in.shop2020.support.models.MovingStockSaleDetailComparator;
38
import in.shop2020.support.models.SnmMovingStockSaleDetailComparator;
39
import in.shop2020.support.models.StockSaleDetail;
40
import in.shop2020.thrift.clients.CatalogClient;
41
import in.shop2020.thrift.clients.InventoryClient;
42
import in.shop2020.utils.GmailUtils;
43
 
44
public class NewStockSalesReportFetcher {
45
	private static final int NUMBER_OF_DAYS_SALE = 5;
12235 manish.sha 46
	private static final String[] mailToMT = {"chaitnaya.vats@saholic.com", "manoj.kumar@saholic.com", "khushal.bhatia@saholic.com", "rajneesh.arora@saholic.com", "manish.sharma@shop2020.in"};
47
	private static final String[] mailToEMT = {"khushal.bhatia@saholic.com", "rajneesh.arora@saholic.com", "chandan.kumar@saholic.com", "manoj.pal@shop2020.in", "manish.sharma@shop2020.in"};
12166 manish.sha 48
	private static final String[] mailTo = {"manish.sharma@shop2020.in"};
49
	private static final String senderAccountMail = "build-staging@shop2020.in";
50
	private static final String senderAccountPswd = "shop2020";
51
 
52
	static String tmpDir = System.getProperty("java.io.tmpdir");
53
	static File stockSalesReportMT = new File(tmpDir + "/StockSaleReport-MT" + (new Date()) + ".xls");
54
	static File stockSalesReportEMT = new File(tmpDir + "/StockSaleReport-EMT" + (new Date()) + ".xls");
55
 
56
	static List<StockSaleDetail> movingStockSaleListMT = new ArrayList<StockSaleDetail>();
57
	static List<StockSaleDetail> nonMovingStockSaleListMT = new ArrayList<StockSaleDetail>();
58
	static List<StockSaleDetail> slowMovingStockSaleListMT = new ArrayList<StockSaleDetail>();
59
	static List<StockSaleDetail> movingStockSaleListEMT = new ArrayList<StockSaleDetail>();
60
	static List<StockSaleDetail> nonMovingStockSaleListEMT = new ArrayList<StockSaleDetail>();
61
	static List<StockSaleDetail> slowMovingStockSaleListEMT = new ArrayList<StockSaleDetail>();
62
 
63
	private static Logger logger = LoggerFactory.getLogger(StockSalesReportFetcher.class);
64
 
65
	private static void createAndMailReport() {
66
		try {
67
			CatalogClient catalogServiceClient = new CatalogClient();
68
			CatalogService.Client catalogClient = catalogServiceClient.getClient();
69
			List<Item> itemList = catalogClient.getAllAliveItems();
70
 
71
			if(!catalogClient.isAlive()){
72
				catalogClient = catalogServiceClient.getClient();
73
			}
74
			List<Category> allCategories = catalogClient.getAllCategories();
75
			Map<Long, String> categoryIdLabelMap = new Hashtable<Long, String>();
76
			for(Category category : allCategories) {
77
				categoryIdLabelMap.put(category.getId(), category.getLabel());
78
			}
79
 
80
			InventoryClient inventoryServiceClient = new InventoryClient();		
81
			InventoryService.Client inventoryClient = inventoryServiceClient.getClient();
82
			Map<Long, ItemInventory> inventoryMap = inventoryClient.getInventorySnapshot(0);
83
 
84
			if(!inventoryClient.isAlive()){
85
				inventoryClient = inventoryServiceClient.getClient();
86
			}
87
			List<OOSStatus> oosStatuses = inventoryClient.getOosStatusesForXDays(-1, NUMBER_OF_DAYS_SALE);
88
			Map<Long, List<OOSStatus>> oosStatusMapByItem = new Hashtable<Long, List<OOSStatus>>(5000);
89
			for(OOSStatus oosStatus : oosStatuses) {
90
				List<OOSStatus> oosStatusList;
91
				Long itemId = oosStatus.getItem_id();
92
				if(oosStatusMapByItem.containsKey(itemId)) {
93
					oosStatusList = oosStatusMapByItem.get(itemId);
94
					oosStatusList.add(oosStatus);
95
				} else {
96
					oosStatusList = new ArrayList<OOSStatus>(6);
97
					oosStatusList.add(oosStatus);
98
				}
99
				oosStatusMapByItem.put(itemId, oosStatusList);
100
			}
101
 
102
			if(!inventoryClient.isAlive()){
103
				inventoryClient = inventoryServiceClient.getClient();
104
			}
105
			List<Warehouse>  ourGoodWarehouses = inventoryClient.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, 0, 0, 0);
106
			Map<Long, Warehouse> ourWarehouseMap = new Hashtable<Long, Warehouse>(200);
107
			for(Warehouse warehouse : ourGoodWarehouses) {
108
				//System.out.println("Warehouse = " + warehouse.getId());
109
				ourWarehouseMap.put(warehouse.getId(), warehouse);
110
			}
111
 
112
			if(!inventoryClient.isAlive()){
113
				inventoryClient = inventoryServiceClient.getClient();
114
			}
115
			List<VendorItemPricing> vendorItemPricings = inventoryClient.getAllVendorItemPricing(0, 0);
116
			Map<Long, List<VendorItemPricing>> itemPricingMap = new Hashtable<Long, List<VendorItemPricing>>(5000);
117
			for(VendorItemPricing vendorItemPricing : vendorItemPricings) {
118
				List<VendorItemPricing> pricingListForItem;
119
				Long itemId = vendorItemPricing.getItemId();
120
				if(itemPricingMap.containsKey(itemId)) {
121
					pricingListForItem = itemPricingMap.get(itemId);
122
					pricingListForItem.add(vendorItemPricing);
123
				} else {
124
					pricingListForItem = new ArrayList<VendorItemPricing>();
125
					pricingListForItem.add(vendorItemPricing);
126
				}
127
				itemPricingMap.put(itemId, pricingListForItem);
128
			}
129
 
130
			Long stockCount;
131
			Double stockValue;
132
			for (Item item : itemList) {
133
				stockCount = 0L;
134
				stockValue = 0.0;
135
				Long totalOrderCount    = 0L;
136
				Long websiteOrderCount  = 0L;
137
				Long ebayOrderCount     = 0L;
138
				Long snapdealOrderCount = 0L;
139
				Long flipkartOrderCount = 0L;
140
				Long amzn_mfnOrderCount = 0L;
14655 manish.sha 141
				Long homeshopOrderCount = 0L;
12166 manish.sha 142
				Long totalInStockDays    = 0L;
143
				Long websiteInStockDays  = 0L;
144
				Long ebayInStockDays     = 0L;
145
				Long snapdealInStockDays = 0L;
146
				Long flipkartInStockDays = 0L;
147
				Long amzn_mfnInStockDays = 0L;
14655 manish.sha 148
				Long homeshopInStockDays= 0L;
12166 manish.sha 149
				Double websiteAverageSale  = 0.0;
150
				Double totalAverageSale = 0.0;
151
				Double ebayAverageSale     = 0.0;
152
				Double snapdealAverageSale = 0.0;
153
				Double flipkartAverageSale = 0.0;
154
				Double amzn_mfnAverageSale  = 0.0;
14655 manish.sha 155
				Double homeshopAverageSale  = 0.0;			
12166 manish.sha 156
				StringBuilder totalSaleHistory    = new StringBuilder("");
157
				StringBuilder websiteSaleHistory  = new StringBuilder("");
158
				StringBuilder ebaySaleHistory     = new StringBuilder("");
159
				StringBuilder snapdealSaleHistory = new StringBuilder("");
160
				StringBuilder flipkartSaleHistory = new StringBuilder("");
161
				StringBuilder amzn_mfnSaleHistory = new StringBuilder("");
14655 manish.sha 162
				StringBuilder homeshopSaleHistory = new StringBuilder("");
12166 manish.sha 163
 
164
				ItemInventory itemInventory = inventoryMap.get(item.getId());
165
				Map<Long, Long> availabilityMap;
166
				if(itemInventory!= null) {
167
					//System.out.println("itemId =" + item.getId());
168
					availabilityMap = itemInventory.getAvailability();
169
					for (Long warehouseId : availabilityMap.keySet()) {
170
						if(ourWarehouseMap.containsKey(warehouseId)) {
171
							long currentAvailability = availabilityMap.get(warehouseId);
172
							//System.out.println("itemId =" + item.getId() + " availability = "+ currentAvailability);
173
							stockCount += currentAvailability;
174
							if(currentAvailability>0) {
175
								List<VendorItemPricing> pricingList = itemPricingMap.get(item.getId());
176
								for(VendorItemPricing vendorItemPricing: pricingList) {
177
									if(vendorItemPricing.getVendorId() == ourWarehouseMap.get(warehouseId).getVendor().getId()) {
178
										stockValue = stockValue + (vendorItemPricing.getNlc()*currentAvailability); 
179
									}
180
								}
181
							}
182
						}
183
					}
184
				}
185
				if(stockCount<=0) {
186
					continue;
187
				}
12221 manish.sha 188
				if(oosStatusMapByItem.containsKey(item.getId())){
189
					for(OOSStatus oosStatus : oosStatusMapByItem.get(item.getId())) {
190
						switch(oosStatus.getSourceId()) {
191
						case 0: 
192
							if(oosStatus.isIs_oos()== false) {
193
								totalInStockDays++;
194
								totalOrderCount += oosStatus.getNum_orders();
195
								totalSaleHistory.append(oosStatus.getNum_orders() + "-");
196
							} else {
197
								totalSaleHistory.append("X-");
198
							}
199
							break;
200
						case 1: 
201
							if(oosStatus.isIs_oos()== false) {
202
								websiteInStockDays++;
203
								websiteOrderCount += oosStatus.getNum_orders();
204
								websiteSaleHistory.append(oosStatus.getNum_orders() + "-");
205
							} else {
206
								websiteSaleHistory.append("X-");
207
							}
208
							break;
209
						case 3: 
210
							if(oosStatus.isIs_oos()== false) {
211
								amzn_mfnInStockDays++;
212
								amzn_mfnOrderCount += oosStatus.getNum_orders();
213
								amzn_mfnSaleHistory.append(oosStatus.getNum_orders() + "-");
214
							} else {
215
								amzn_mfnSaleHistory.append("X-");
216
							}
217
							break;
14655 manish.sha 218
						case 4:
219
							if(oosStatus.isIs_oos()== false) {
220
								homeshopInStockDays++;
221
								homeshopOrderCount += oosStatus.getNum_orders();
222
								homeshopSaleHistory.append(oosStatus.getNum_orders() + "-");
223
							} else {
14657 manish.sha 224
								homeshopSaleHistory.append("X-");
14655 manish.sha 225
							}
226
							break;
12221 manish.sha 227
						case 6: 
228
							if(oosStatus.isIs_oos()== false) {
229
								ebayInStockDays++;
230
								ebayOrderCount += oosStatus.getNum_orders();
231
								ebaySaleHistory.append(oosStatus.getNum_orders() + "-");
232
							} else {
233
								ebaySaleHistory.append("X-");
234
							}
235
							break;
236
						case 7: 
237
							if(oosStatus.isIs_oos()== false) {
238
								snapdealInStockDays++;
239
								snapdealOrderCount += oosStatus.getNum_orders();
240
								snapdealSaleHistory.append(oosStatus.getNum_orders() + "-");
241
							} else {
242
								snapdealSaleHistory.append("X-");
243
							}
244
							break;
245
						case 8: 
246
							if(oosStatus.isIs_oos()== false) {
247
								flipkartInStockDays++;
248
								flipkartOrderCount += oosStatus.getNum_orders();
249
								flipkartSaleHistory.append(oosStatus.getNum_orders() + "-");
250
							} else {
251
								flipkartSaleHistory.append("X-");
252
							}
253
							break;
254
						default:
255
							//do nothing
256
							break;
12166 manish.sha 257
						}
258
					}
259
				}
12221 manish.sha 260
				else{
261
					System.out.println("Oos Status is not available for item : - "+ item.getId());
12222 manish.sha 262
					continue;
12221 manish.sha 263
				}
12166 manish.sha 264
				totalAverageSale    = (double)totalOrderCount/totalInStockDays;
12178 manish.sha 265
				totalAverageSale    = Math.round(totalAverageSale * 10.0)/10.0;
12166 manish.sha 266
				websiteAverageSale  = (double)websiteOrderCount/websiteInStockDays;
12178 manish.sha 267
				websiteAverageSale  = Math.round(websiteAverageSale * 10.0)/10.0;
12166 manish.sha 268
				ebayAverageSale     = (double)ebayOrderCount/ebayInStockDays;
12178 manish.sha 269
				ebayAverageSale     = Math.round(ebayAverageSale * 10.0)/10.0;
12166 manish.sha 270
				snapdealAverageSale = (double)snapdealOrderCount/snapdealInStockDays;
12178 manish.sha 271
				snapdealAverageSale = Math.round(snapdealAverageSale * 10.0)/10.0;
12166 manish.sha 272
				flipkartAverageSale = (double)flipkartOrderCount/flipkartInStockDays;
12178 manish.sha 273
				flipkartAverageSale = Math.round(flipkartAverageSale * 10.0)/10.0;
12166 manish.sha 274
				amzn_mfnAverageSale = (double)amzn_mfnOrderCount/amzn_mfnInStockDays;
12178 manish.sha 275
				amzn_mfnAverageSale = Math.round(amzn_mfnAverageSale * 10.0)/10.0;
14655 manish.sha 276
				homeshopAverageSale = (double)homeshopOrderCount/homeshopInStockDays;
277
				homeshopAverageSale = Math.round(homeshopAverageSale * 10.0)/10.0;
12166 manish.sha 278
 
279
				if(totalAverageSale<=0.0) {
280
					StockSaleDetail ssDetail = new StockSaleDetail();
281
					ssDetail.setItemId(item.getId());
282
					ssDetail.setCategory(categoryIdLabelMap.get(item.getCategory()));
283
					ssDetail.setProductGroup(item.getProductGroup());
284
					ssDetail.setBrand(item.getBrand());
285
					ssDetail.setModelName(item.getModelName());
286
					ssDetail.setModelNumber(item.getModelNumber());
287
					ssDetail.setColor(item.getColor());
288
					ssDetail.setStockQuantity(stockCount);
289
					ssDetail.setStockValue(stockValue);
290
					ssDetail.setNodStock(totalAverageSale>0 ? new Long(new Double(stockCount/totalAverageSale).longValue()) : 0);
291
					ssDetail.setSalesHistoryAll(totalSaleHistory.substring(0, totalSaleHistory.length()-1));
292
					ssDetail.setAvgSalesAll(totalAverageSale);
293
					ssDetail.setSalesHistoryWS(websiteSaleHistory.substring(0, websiteSaleHistory.length()-1));
294
					ssDetail.setAvgSalesWS(websiteAverageSale);
295
					ssDetail.setSalesHistoryEbay(ebaySaleHistory.substring(0, ebaySaleHistory.length()-1));
296
					ssDetail.setAvgSalesEbay(ebayAverageSale);
297
					ssDetail.setSalesHistorySD(snapdealSaleHistory.substring(0, snapdealSaleHistory.length()-1));
298
					ssDetail.setAvgSalesSD(snapdealAverageSale);
299
					ssDetail.setSalesHistoryFK(flipkartSaleHistory.substring(0, flipkartSaleHistory.length()-1));
300
					ssDetail.setAvgSalesFK(flipkartAverageSale);
301
					ssDetail.setSalesHistoryMFN(amzn_mfnSaleHistory.substring(0, amzn_mfnSaleHistory.length()-1));
302
					ssDetail.setAvgSalesMFN(amzn_mfnAverageSale);
14655 manish.sha 303
					ssDetail.setSalesHistoryHomeShop(homeshopSaleHistory.substring(0, homeshopSaleHistory.length()-1));
304
					ssDetail.setAvgSalesHomeShop(homeshopAverageSale);
12166 manish.sha 305
					if(item.getCategory() == 10006 || item.getCategory() == 10010){
306
						nonMovingStockSaleListMT.add(ssDetail);
307
					} else {
308
						nonMovingStockSaleListEMT.add(ssDetail);
309
					}            		
310
				}
311
				else {
312
					double nodStock = totalAverageSale > 0 ? new Double(stockCount/totalAverageSale): 0;
313
					if(nodStock>30) {
314
						StockSaleDetail ssDetail = new StockSaleDetail();
315
						ssDetail.setItemId(item.getId());
316
						ssDetail.setCategory(categoryIdLabelMap.get(item.getCategory()));
317
						ssDetail.setProductGroup(item.getProductGroup());
318
						ssDetail.setBrand(item.getBrand());
319
						ssDetail.setModelName(item.getModelName());
320
						ssDetail.setModelNumber(item.getModelNumber());
321
						ssDetail.setColor(item.getColor());
322
						ssDetail.setStockQuantity(stockCount);
323
						ssDetail.setStockValue(stockValue);
324
						ssDetail.setNodStock(totalAverageSale>0 ? new Long(new Double(stockCount/totalAverageSale).longValue()) : 0);
325
						ssDetail.setSalesHistoryAll(totalSaleHistory.substring(0, totalSaleHistory.length()-1));
326
						ssDetail.setAvgSalesAll(totalAverageSale);
327
						ssDetail.setSalesHistoryWS(websiteSaleHistory.substring(0, websiteSaleHistory.length()-1));
328
						ssDetail.setAvgSalesWS(websiteAverageSale);
329
						ssDetail.setSalesHistoryEbay(ebaySaleHistory.substring(0, ebaySaleHistory.length()-1));
330
						ssDetail.setAvgSalesEbay(ebayAverageSale);
331
						ssDetail.setSalesHistorySD(snapdealSaleHistory.substring(0, snapdealSaleHistory.length()-1));
332
						ssDetail.setAvgSalesSD(snapdealAverageSale);
333
						ssDetail.setSalesHistoryFK(flipkartSaleHistory.substring(0, flipkartSaleHistory.length()-1));
334
						ssDetail.setAvgSalesFK(flipkartAverageSale);
335
						ssDetail.setSalesHistoryMFN(amzn_mfnSaleHistory.substring(0, amzn_mfnSaleHistory.length()-1));
336
						ssDetail.setAvgSalesMFN(amzn_mfnAverageSale);
14655 manish.sha 337
						ssDetail.setSalesHistoryHomeShop(homeshopSaleHistory.substring(0, homeshopSaleHistory.length()-1));
338
						ssDetail.setAvgSalesHomeShop(homeshopAverageSale);
12166 manish.sha 339
						if(item.getCategory() == 10006 || item.getCategory() == 10010){
340
							slowMovingStockSaleListMT.add(ssDetail);
341
						} else {
342
							slowMovingStockSaleListEMT.add(ssDetail);
343
						} 
344
					} else {
345
						StockSaleDetail ssDetail = new StockSaleDetail();
346
						ssDetail.setItemId(item.getId());
347
						ssDetail.setCategory(categoryIdLabelMap.get(item.getCategory()));
348
						ssDetail.setProductGroup(item.getProductGroup());
349
						ssDetail.setBrand(item.getBrand());
350
						ssDetail.setModelName(item.getModelName());
351
						ssDetail.setModelNumber(item.getModelNumber());
352
						ssDetail.setColor(item.getColor());
353
						ssDetail.setStockQuantity(stockCount);
354
						ssDetail.setStockValue(stockValue);
355
						ssDetail.setNodStock(totalAverageSale>0 ? new Long(new Double(stockCount/totalAverageSale).longValue()) : 0);
356
						ssDetail.setSalesHistoryAll(totalSaleHistory.substring(0, totalSaleHistory.length()-1));
357
						ssDetail.setAvgSalesAll(totalAverageSale);
358
						ssDetail.setSalesHistoryWS(websiteSaleHistory.substring(0, websiteSaleHistory.length()-1));
359
						ssDetail.setAvgSalesWS(websiteAverageSale);
360
						ssDetail.setSalesHistoryEbay(ebaySaleHistory.substring(0, ebaySaleHistory.length()-1));
361
						ssDetail.setAvgSalesEbay(ebayAverageSale);
362
						ssDetail.setSalesHistorySD(snapdealSaleHistory.substring(0, snapdealSaleHistory.length()-1));
363
						ssDetail.setAvgSalesSD(snapdealAverageSale);
364
						ssDetail.setSalesHistoryFK(flipkartSaleHistory.substring(0, flipkartSaleHistory.length()-1));
365
						ssDetail.setAvgSalesFK(flipkartAverageSale);
366
						ssDetail.setSalesHistoryMFN(amzn_mfnSaleHistory.substring(0, amzn_mfnSaleHistory.length()-1));
367
						ssDetail.setAvgSalesMFN(amzn_mfnAverageSale);
14655 manish.sha 368
						ssDetail.setSalesHistoryHomeShop(homeshopSaleHistory.substring(0, homeshopSaleHistory.length()-1));
369
						ssDetail.setAvgSalesHomeShop(homeshopAverageSale);
12166 manish.sha 370
						if(item.getCategory() == 10006 || item.getCategory() == 10010){
371
							movingStockSaleListMT.add(ssDetail);
372
						} else {
373
							movingStockSaleListEMT.add(ssDetail);
374
						} 
375
					}
376
				}
377
			}
378
 
379
			if(movingStockSaleListMT!=null && movingStockSaleListMT.size()>2){
380
				Collections.sort(movingStockSaleListMT, new MovingStockSaleDetailComparator());
381
			}
382
			if(movingStockSaleListEMT!=null && movingStockSaleListEMT.size()>2){
383
				Collections.sort(movingStockSaleListEMT, new MovingStockSaleDetailComparator());
384
			}
385
			if(slowMovingStockSaleListMT!=null && slowMovingStockSaleListMT.size()>2){
386
				Collections.sort(slowMovingStockSaleListMT, new SnmMovingStockSaleDetailComparator());
387
			}
388
			if(slowMovingStockSaleListEMT!=null && slowMovingStockSaleListEMT.size()>2){
389
				Collections.sort(slowMovingStockSaleListEMT, new SnmMovingStockSaleDetailComparator());
390
			}
391
			if(nonMovingStockSaleListMT!=null && nonMovingStockSaleListMT.size()>2){
392
				Collections.sort(nonMovingStockSaleListMT, new SnmMovingStockSaleDetailComparator());
393
			}
394
			if(nonMovingStockSaleListEMT!=null && nonMovingStockSaleListEMT.size()>2){
395
				Collections.sort(nonMovingStockSaleListEMT, new SnmMovingStockSaleDetailComparator());
396
			}
12221 manish.sha 397
 
398
 
12220 manish.sha 399
			List<StockSaleDetail> itemToReplenishMT = new ArrayList<StockSaleDetail>();
400
			List<StockSaleDetail> itemToReplenishEMT = new ArrayList<StockSaleDetail>();
401
			for(StockSaleDetail ssDetail  : movingStockSaleListMT){
402
				if(ssDetail.getNodStock() <= 5){
403
					itemToReplenishMT.add(ssDetail);
404
				}
405
			}
406
			for(StockSaleDetail ssDetail  : movingStockSaleListEMT){
407
				if(ssDetail.getNodStock() <= 5){
408
					itemToReplenishEMT.add(ssDetail);
409
				}
410
			}
12221 manish.sha 411
 
12220 manish.sha 412
			if(itemToReplenishMT!=null && itemToReplenishMT.size()>2){
413
				Collections.sort(itemToReplenishMT, new MovingStockSaleDetailComparator());
414
			}
415
			if(itemToReplenishEMT!=null && itemToReplenishEMT.size()>2){
416
				Collections.sort(itemToReplenishEMT, new MovingStockSaleDetailComparator());
417
			}
12221 manish.sha 418
 
12166 manish.sha 419
			StringBuffer sb = new StringBuffer();
420
			sb.append("<html>" );
421
			sb.append("<table border=\"1\" align=\"center\">"
422
					+ "<caption><b>" + "ITEMS TO REPLENISH" + "</b></caption>"
423
					+ "<tr>" + "<td><b>" + "ITEM-ID" + "</b></td>" 
424
					+ "<td><b>" + "BRAND" + "</b></td>"
425
					+ "<td><b>" + "CATEGORY" + "</b></td>"
426
					+ "<td><b>" + "PRODUCT-GROUP" + "</b></td>"
427
					+ "<td><b>" + "PRODUCT-NAME" + "</b></td>"
428
					+ "<td><b>" + "STOCK-QTY" + "</b></td>"
429
					+ "<td><b>" + "STOCK-VALUE" + "</b></td>"
430
					+ "<td><b>" + "NOD-STOCK" + "</b></td>"
431
					+ "<td><b>" + "SALES-HISTORY-ALL" + "</b></td>"
432
					+ "<td><b>" + "AVG-SALE-ALL" + "</b></td>"
433
					+ "</tr>");
434
			int i=1;
12220 manish.sha 435
			for(StockSaleDetail ssDetail  : itemToReplenishMT){
12166 manish.sha 436
				if(i==10){
437
					break;
438
				}
439
				sb.append("<tr>" + "<td><b>" + ssDetail.getItemId() + "</b></td>" 
12221 manish.sha 440
						+ "<td>" + ssDetail.getBrand() + "</td>"
441
						+ "<td>" + ssDetail.getCategory() + "</td>"
442
						+ "<td>" + ssDetail.getProductGroup() + "</td>"
443
						+ "<td>" + ssDetail.getBrand() +" "+ ssDetail.getModelName()+ " "+ssDetail.getModelNumber()+ " "+ssDetail.getColor() + "</td>"
444
						+ "<td>" + ssDetail.getStockQuantity() + "</td>"
445
						+ "<td>" + ssDetail.getStockValue() + "</td>"
446
						+ "<td>" + ssDetail.getNodStock() + "</td>"
447
						+ "<td>" + ssDetail.getSalesHistoryAll() + "</td>"
448
						+ "<td>" + ssDetail.getAvgSalesAll() + "</td>"
449
						+ "</tr>");
12166 manish.sha 450
				i++;
451
			}
12221 manish.sha 452
 
12166 manish.sha 453
			sb.append("</table>" );
12221 manish.sha 454
 
12166 manish.sha 455
			sb.append("<table border=\"1\" align=\"center\">"
456
					+ "<caption><b>" + "SLOW MOVING ITEMS" + "</b></caption>"
457
					+ "<tr>" + "<td><b>" + "ITEM-ID" + "</b></td>" 
458
					+ "<td><b>" + "BRAND" + "</b></td>"
459
					+ "<td><b>" + "CATEGORY" + "</b></td>"
460
					+ "<td><b>" + "PRODUCT-GROUP" + "</b></td>"
461
					+ "<td><b>" + "PRODUCT-NAME" + "</b></td>"
462
					+ "<td><b>" + "STOCK-QTY" + "</b></td>"
463
					+ "<td><b>" + "STOCK-VALUE" + "</b></td>"
464
					+ "<td><b>" + "NOD-STOCK" + "</b></td>"
465
					+ "<td><b>" + "SALES-HISTORY-ALL" + "</b></td>"
466
					+ "<td><b>" + "AVG-SALE-ALL" + "</b></td>"
467
					+ "</tr>");
468
			i=1;
469
			for(StockSaleDetail ssDetail  : slowMovingStockSaleListMT){
470
				if(i==10){
471
					break;
472
				}
473
				sb.append("<tr>" + "<td><b>" + ssDetail.getItemId() + "</b></td>" 
12221 manish.sha 474
						+ "<td>" + ssDetail.getBrand() + "</td>"
475
						+ "<td>" + ssDetail.getCategory() + "</td>"
476
						+ "<td>" + ssDetail.getProductGroup() + "</td>"
477
						+ "<td>" + ssDetail.getBrand() +" "+ ssDetail.getModelName()+ " "+ssDetail.getModelNumber()+ " "+ssDetail.getColor() + "</td>"
478
						+ "<td>" + ssDetail.getStockQuantity() + "</td>"
479
						+ "<td>" + ssDetail.getStockValue() + "</td>"
480
						+ "<td>" + ssDetail.getNodStock() + "</td>"
481
						+ "<td>" + ssDetail.getSalesHistoryAll() + "</td>"
482
						+ "<td>" + ssDetail.getAvgSalesAll() + "</td>"
483
						+ "</tr>");
12166 manish.sha 484
				i++;
485
			}
12221 manish.sha 486
 
12166 manish.sha 487
			sb.append("</table>" );
12221 manish.sha 488
 
12166 manish.sha 489
			sb.append("<table border=\"1\" align=\"center\">"
490
					+ "<caption><b>" + "NON MOVING ITEMS" + "</b></caption>"
491
					+ "<tr>" + "<td><b>" + "ITEM-ID" + "</b></td>" 
492
					+ "<td><b>" + "BRAND" + "</b></td>"
493
					+ "<td><b>" + "CATEGORY" + "</b></td>"
494
					+ "<td><b>" + "PRODUCT-GROUP" + "</b></td>"
495
					+ "<td><b>" + "PRODUCT-NAME" + "</b></td>"
496
					+ "<td><b>" + "STOCK-QTY" + "</b></td>"
497
					+ "<td><b>" + "STOCK-VALUE" + "</b></td>"
498
					+ "<td><b>" + "NOD-STOCK" + "</b></td>"
499
					+ "<td><b>" + "SALES-HISTORY-ALL" + "</b></td>"
500
					+ "<td><b>" + "AVG-SALE-ALL" + "</b></td>"
501
					+ "</tr>");
502
			i=1;
503
			for(StockSaleDetail ssDetail  : nonMovingStockSaleListMT){
504
				if(i==10){
505
					break;
506
				}
507
				sb.append("<tr>" + "<td><b>" + ssDetail.getItemId() + "</b></td>" 
12221 manish.sha 508
						+ "<td>" + ssDetail.getBrand() + "</td>"
509
						+ "<td>" + ssDetail.getCategory() + "</td>"
510
						+ "<td>" + ssDetail.getProductGroup() + "</td>"
511
						+ "<td>" + ssDetail.getBrand() +" "+ ssDetail.getModelName()+ " "+ssDetail.getModelNumber()+ " "+ssDetail.getColor() + "</td>"
512
						+ "<td>" + ssDetail.getStockQuantity() + "</td>"
513
						+ "<td>" + ssDetail.getStockValue() + "</td>"
514
						+ "<td>" + ssDetail.getNodStock() + "</td>"
515
						+ "<td>" + ssDetail.getSalesHistoryAll() + "</td>"
516
						+ "<td>" + ssDetail.getAvgSalesAll() + "</td>"
517
						+ "</tr>");
12166 manish.sha 518
				i++;
519
			}
12221 manish.sha 520
 
12166 manish.sha 521
			sb.append("</table>");
522
			sb.append("</html>");
12221 manish.sha 523
 
12166 manish.sha 524
			BufferedWriter out = new BufferedWriter(new FileWriter("/tmp/MobileTablets-StockSales-file.htm"));
525
			out.write(sb.toString());
526
			out.flush();
527
			out.close();
12221 manish.sha 528
 
529
 
12166 manish.sha 530
			sb = new StringBuffer();
531
			sb.append("<html>" );
532
			sb.append("<table border=\"1\" align=\"center\">"
533
					+ "<caption><b>" + "ITEMS TO REPLENISH" + "</b></caption>"
534
					+ "<tr>" + "<td><b>" + "ITEM-ID" + "</b></td>" 
535
					+ "<td><b>" + "BRAND" + "</b></td>"
536
					+ "<td><b>" + "CATEGORY" + "</b></td>"
537
					+ "<td><b>" + "PRODUCT-GROUP" + "</b></td>"
538
					+ "<td><b>" + "PRODUCT-NAME" + "</b></td>"
539
					+ "<td><b>" + "STOCK-QTY" + "</b></td>"
540
					+ "<td><b>" + "STOCK-VALUE" + "</b></td>"
541
					+ "<td><b>" + "NOD-STOCK" + "</b></td>"
542
					+ "<td><b>" + "SALES-HISTORY-ALL" + "</b></td>"
543
					+ "<td><b>" + "AVG-SALE-ALL" + "</b></td>"
544
					+ "</tr>");
545
			i=1;
12220 manish.sha 546
			for(StockSaleDetail ssDetail  : itemToReplenishEMT){
12166 manish.sha 547
				if(i==10){
548
					break;
549
				}
550
				sb.append("<tr>" + "<td><b>" + ssDetail.getItemId() + "</b></td>" 
12221 manish.sha 551
						+ "<td>" + ssDetail.getBrand() + "</td>"
552
						+ "<td>" + ssDetail.getCategory() + "</td>"
553
						+ "<td>" + ssDetail.getProductGroup() + "</td>"
554
						+ "<td>" + ssDetail.getBrand() +" "+ ssDetail.getModelName()+ " "+ssDetail.getModelNumber()+ " "+ssDetail.getColor() + "</td>"
555
						+ "<td>" + ssDetail.getStockQuantity() + "</td>"
556
						+ "<td>" + ssDetail.getStockValue() + "</td>"
557
						+ "<td>" + ssDetail.getNodStock() + "</td>"
558
						+ "<td>" + ssDetail.getSalesHistoryAll() + "</td>"
559
						+ "<td>" + ssDetail.getAvgSalesAll() + "</td>"
560
						+ "</tr>");
12166 manish.sha 561
				i++;
562
			}
12221 manish.sha 563
 
12166 manish.sha 564
			sb.append("</table>" );
12221 manish.sha 565
 
12166 manish.sha 566
			sb.append("<table border=\"1\" align=\"center\">"
567
					+ "<caption><b>" + "SLOW MOVING ITEMS" + "</b></caption>"
568
					+ "<tr>" + "<td><b>" + "ITEM-ID" + "</b></td>" 
569
					+ "<td><b>" + "BRAND" + "</b></td>"
570
					+ "<td><b>" + "CATEGORY" + "</b></td>"
571
					+ "<td><b>" + "PRODUCT-GROUP" + "</b></td>"
572
					+ "<td><b>" + "PRODUCT-NAME" + "</b></td>"
573
					+ "<td><b>" + "STOCK-QTY" + "</b></td>"
574
					+ "<td><b>" + "STOCK-VALUE" + "</b></td>"
575
					+ "<td><b>" + "NOD-STOCK" + "</b></td>"
576
					+ "<td><b>" + "SALES-HISTORY-ALL" + "</b></td>"
577
					+ "<td><b>" + "AVG-SALE-ALL" + "</b></td>"
578
					+ "</tr>");
579
			i=1;
580
			for(StockSaleDetail ssDetail  : slowMovingStockSaleListEMT){
581
				if(i==10){
582
					break;
583
				}
584
				sb.append("<tr>" + "<td><b>" + ssDetail.getItemId() + "</b></td>" 
12221 manish.sha 585
						+ "<td>" + ssDetail.getBrand() + "</td>"
586
						+ "<td>" + ssDetail.getCategory() + "</td>"
587
						+ "<td>" + ssDetail.getProductGroup() + "</td>"
588
						+ "<td>" + ssDetail.getBrand() +" "+ ssDetail.getModelName()+ " "+ssDetail.getModelNumber()+ " "+ssDetail.getColor() + "</td>"
589
						+ "<td>" + ssDetail.getStockQuantity() + "</td>"
590
						+ "<td>" + ssDetail.getStockValue() + "</td>"
591
						+ "<td>" + ssDetail.getNodStock() + "</td>"
592
						+ "<td>" + ssDetail.getSalesHistoryAll() + "</td>"
593
						+ "<td>" + ssDetail.getAvgSalesAll() + "</td>"
594
						+ "</tr>");
12166 manish.sha 595
				i++;
596
			}
12221 manish.sha 597
 
12166 manish.sha 598
			sb.append("</table>" );
12221 manish.sha 599
 
12166 manish.sha 600
			sb.append("<table border=\"1\" align=\"center\">"
601
					+ "<caption><b>" + "NON MOVING ITEMS" + "</b></caption>"
602
					+ "<tr>" + "<td><b>" + "ITEM-ID" + "</b></td>" 
603
					+ "<td><b>" + "BRAND" + "</b></td>"
604
					+ "<td><b>" + "CATEGORY" + "</b></td>"
605
					+ "<td><b>" + "PRODUCT-GROUP" + "</b></td>"
606
					+ "<td><b>" + "PRODUCT-NAME" + "</b></td>"
607
					+ "<td><b>" + "STOCK-QTY" + "</b></td>"
608
					+ "<td><b>" + "STOCK-VALUE" + "</b></td>"
609
					+ "<td><b>" + "NOD-STOCK" + "</b></td>"
610
					+ "<td><b>" + "SALES-HISTORY-ALL" + "</b></td>"
611
					+ "<td><b>" + "AVG-SALE-ALL" + "</b></td>"
612
					+ "</tr>");
613
			i=1;
614
			for(StockSaleDetail ssDetail  : nonMovingStockSaleListEMT){
615
				if(i==10){
616
					break;
617
				}
618
				sb.append("<tr>" + "<td><b>" + ssDetail.getItemId() + "</b></td>" 
12221 manish.sha 619
						+ "<td>" + ssDetail.getBrand() + "</td>"
620
						+ "<td>" + ssDetail.getCategory() + "</td>"
621
						+ "<td>" + ssDetail.getProductGroup() + "</td>"
622
						+ "<td>" + ssDetail.getBrand() +" "+ ssDetail.getModelName()+ " "+ssDetail.getModelNumber()+ " "+ssDetail.getColor() + "</td>"
623
						+ "<td>" + ssDetail.getStockQuantity() + "</td>"
624
						+ "<td>" + ssDetail.getStockValue() + "</td>"
625
						+ "<td>" + ssDetail.getNodStock() + "</td>"
626
						+ "<td>" + ssDetail.getSalesHistoryAll() + "</td>"
627
						+ "<td>" + ssDetail.getAvgSalesAll() + "</td>"
628
						+ "</tr>");
12166 manish.sha 629
				i++;
630
			}
12221 manish.sha 631
 
12166 manish.sha 632
			sb.append("</table>");
633
			sb.append("</html>");
12221 manish.sha 634
 
12166 manish.sha 635
			out = new BufferedWriter(new FileWriter("/tmp/ExceptMobileTablets-StockSales-file.htm"));
636
			out.write(sb.toString());
637
			out.flush();
638
			out.close();
12221 manish.sha 639
 
12177 manish.sha 640
			createXlsFile(movingStockSaleListMT, slowMovingStockSaleListMT, nonMovingStockSaleListMT, true);
641
			createXlsFile(movingStockSaleListEMT, slowMovingStockSaleListEMT, nonMovingStockSaleListEMT, false);
12166 manish.sha 642
 
12221 manish.sha 643
 
12166 manish.sha 644
			GmailUtils mailer = new GmailUtils();
12234 manish.sha 645
			mailer.sendSSLMessage(mailToMT, "Stock Sales Report - Mobile And Tablets ", "", senderAccountMail, senderAccountPswd, tmpDir +"/"+ stockSalesReportMT.getName(), "/tmp/MobileTablets-StockSales-file.htm");
646
			mailer.sendSSLMessage(mailToEMT, "Stock Sales Report - Except Mobile And Tablets ", "", senderAccountMail, senderAccountPswd, tmpDir +"/"+stockSalesReportEMT.getName(), "/tmp/ExceptMobileTablets-StockSales-file.htm");
12166 manish.sha 647
		} catch (Exception e) {
648
			logger.error("Error in generating/sending Stock Sales Report", e);
649
		}
650
 
651
 
652
	}
653
 
12177 manish.sha 654
	private static void createXlsFile(List<StockSaleDetail> movingStockSaleList, 
12166 manish.sha 655
			List<StockSaleDetail> slowMovingStockSaleList, 
656
			List<StockSaleDetail> nonMovingStockSaleList, 
657
			boolean mobTab) {
658
		try{
12177 manish.sha 659
			HSSFWorkbook workbook = new HSSFWorkbook();
660
			HSSFSheet movingSheet = workbook.createSheet("Moving-Stock");
661
			HSSFSheet nonMovingSheet = workbook.createSheet("Non-Moving-Stock");
662
			HSSFSheet slowMovingSheet = workbook.createSheet("Slow-Moving-Stock");
12166 manish.sha 663
			Row row = movingSheet.createRow(0);
664
 
665
			row.createCell(0).setCellValue("ItemId");
666
			row.createCell(1).setCellValue("Category");
667
			row.createCell(2).setCellValue("ProductGroup");
668
			row.createCell(3).setCellValue("Brand");
669
			row.createCell(4).setCellValue("Model Name");
670
			row.createCell(5).setCellValue("Model Number");
671
			row.createCell(6).setCellValue("Color");
672
			row.createCell(7).setCellValue("Product");
673
			row.createCell(8).setCellValue("Stock Qty");
674
			row.createCell(9).setCellValue("Stock Value");
675
			row.createCell(10).setCellValue("NOD Stock");
676
			row.createCell(11).setCellValue("Sales History(All-Sources)");
677
			row.createCell(12).setCellValue("Avg Sales(All-Sources)");
678
			row.createCell(13).setCellValue("Sales History(Website)");
679
			row.createCell(14).setCellValue("Avg Sales(Website)");
680
			row.createCell(15).setCellValue("Sales History(Ebay)");
681
			row.createCell(16).setCellValue("Avg Sales(Ebay)");
682
			row.createCell(17).setCellValue("Sales History(Snapdeal)");
683
			row.createCell(18).setCellValue("Avg Sales(Snapdeal)");
684
			row.createCell(19).setCellValue("Sales History(Flipkart)");
685
			row.createCell(20).setCellValue("Avg Sales(Flipkart)");
686
			row.createCell(21).setCellValue("Sales History(Amazon-MFN)");
687
			row.createCell(22).setCellValue("Avg Sales(Amazon-MFN)");
14655 manish.sha 688
			row.createCell(23).setCellValue("Sales History(HomeShop18)");
689
			row.createCell(24).setCellValue("Avg Sales(HomeShop18)");
690
 
12166 manish.sha 691
			int i=1;
692
			for(StockSaleDetail ssDetail : movingStockSaleList){
693
				row = movingSheet.createRow(i);
694
				row.createCell(0).setCellValue(ssDetail.getItemId()+"");
695
				row.createCell(1).setCellValue(ssDetail.getCategory());
696
				row.createCell(2).setCellValue(ssDetail.getProductGroup());
697
				row.createCell(3).setCellValue(ssDetail.getBrand());
698
				row.createCell(4).setCellValue(ssDetail.getModelName());
699
				row.createCell(5).setCellValue(ssDetail.getModelNumber());
700
				row.createCell(6).setCellValue(ssDetail.getColor());
701
				row.createCell(7).setCellValue(ssDetail.getBrand()+" "+ssDetail.getModelName()+" "+ssDetail.getModelNumber()+" "+ssDetail.getColor());
702
				row.createCell(8).setCellValue(ssDetail.getStockQuantity()+"");
703
				row.createCell(9).setCellValue(ssDetail.getStockValue()+"");
704
				row.createCell(10).setCellValue(ssDetail.getNodStock()+"");
705
				row.createCell(11).setCellValue(ssDetail.getSalesHistoryAll());
706
				row.createCell(12).setCellValue(ssDetail.getAvgSalesAll()+"");
707
				row.createCell(13).setCellValue(ssDetail.getSalesHistoryWS());
708
				row.createCell(14).setCellValue(ssDetail.getAvgSalesWS()+"");
709
				row.createCell(15).setCellValue(ssDetail.getSalesHistoryEbay());
710
				row.createCell(16).setCellValue(ssDetail.getAvgSalesEbay()+"");
711
				row.createCell(17).setCellValue(ssDetail.getSalesHistorySD());
712
				row.createCell(18).setCellValue(ssDetail.getAvgSalesSD()+"");
713
				row.createCell(19).setCellValue(ssDetail.getSalesHistoryFK());
714
				row.createCell(20).setCellValue(ssDetail.getAvgSalesFK()+"");
715
				row.createCell(21).setCellValue(ssDetail.getSalesHistoryMFN());
716
				row.createCell(22).setCellValue(ssDetail.getAvgSalesMFN());
14655 manish.sha 717
				row.createCell(23).setCellValue(ssDetail.getSalesHistoryHomeShop());
718
				row.createCell(24).setCellValue(ssDetail.getAvgSalesHomeShop()+"");
12166 manish.sha 719
				i++;
720
			}
721
 
722
			row = nonMovingSheet.createRow(0);
723
 
724
			row.createCell(0).setCellValue("ItemId");
725
			row.createCell(1).setCellValue("Category");
726
			row.createCell(2).setCellValue("ProductGroup");
727
			row.createCell(3).setCellValue("Brand");
728
			row.createCell(4).setCellValue("Model Name");
729
			row.createCell(5).setCellValue("Model Number");
730
			row.createCell(6).setCellValue("Color");
731
			row.createCell(7).setCellValue("Product");
732
			row.createCell(8).setCellValue("Stock Qty");
733
			row.createCell(9).setCellValue("Stock Value");
734
			row.createCell(10).setCellValue("NOD Stock");
735
			row.createCell(11).setCellValue("Sales History(All-Sources)");
736
			row.createCell(12).setCellValue("Avg Sales(All-Sources)");
737
			row.createCell(13).setCellValue("Sales History(Website)");
738
			row.createCell(14).setCellValue("Avg Sales(Website)");
739
			row.createCell(15).setCellValue("Sales History(Ebay)");
740
			row.createCell(16).setCellValue("Avg Sales(Ebay)");
741
			row.createCell(17).setCellValue("Sales History(Snapdeal)");
742
			row.createCell(18).setCellValue("Avg Sales(Snapdeal)");
743
			row.createCell(19).setCellValue("Sales History(Flipkart)");
744
			row.createCell(20).setCellValue("Avg Sales(Flipkart)");
745
			row.createCell(21).setCellValue("Sales History(Amazon-MFN)");
746
			row.createCell(22).setCellValue("Avg Sales(Amazon-MFN)");
14655 manish.sha 747
			row.createCell(23).setCellValue("Sales History(HomeShop18)");
748
			row.createCell(24).setCellValue("Avg Sales(HomeShop18)");
12166 manish.sha 749
 
750
			i=1;
751
			for(StockSaleDetail ssDetail : nonMovingStockSaleList){
12179 manish.sha 752
				row = nonMovingSheet.createRow(i);
12166 manish.sha 753
				row.createCell(0).setCellValue(ssDetail.getItemId()+"");
754
				row.createCell(1).setCellValue(ssDetail.getCategory());
755
				row.createCell(2).setCellValue(ssDetail.getProductGroup());
756
				row.createCell(3).setCellValue(ssDetail.getBrand());
757
				row.createCell(4).setCellValue(ssDetail.getModelName());
758
				row.createCell(5).setCellValue(ssDetail.getModelNumber());
759
				row.createCell(6).setCellValue(ssDetail.getColor());
760
				row.createCell(7).setCellValue(ssDetail.getBrand()+" "+ssDetail.getModelName()+" "+ssDetail.getModelNumber()+" "+ssDetail.getColor());
761
				row.createCell(8).setCellValue(ssDetail.getStockQuantity()+"");
762
				row.createCell(9).setCellValue(ssDetail.getStockValue()+"");
763
				row.createCell(10).setCellValue(ssDetail.getNodStock()+"");
764
				row.createCell(11).setCellValue(ssDetail.getSalesHistoryAll());
765
				row.createCell(12).setCellValue(ssDetail.getAvgSalesAll()+"");
766
				row.createCell(13).setCellValue(ssDetail.getSalesHistoryWS());
767
				row.createCell(14).setCellValue(ssDetail.getAvgSalesWS()+"");
768
				row.createCell(15).setCellValue(ssDetail.getSalesHistoryEbay());
769
				row.createCell(16).setCellValue(ssDetail.getAvgSalesEbay()+"");
770
				row.createCell(17).setCellValue(ssDetail.getSalesHistorySD());
771
				row.createCell(18).setCellValue(ssDetail.getAvgSalesSD()+"");
772
				row.createCell(19).setCellValue(ssDetail.getSalesHistoryFK());
773
				row.createCell(20).setCellValue(ssDetail.getAvgSalesFK()+"");
774
				row.createCell(21).setCellValue(ssDetail.getSalesHistoryMFN());
775
				row.createCell(22).setCellValue(ssDetail.getAvgSalesMFN());
14655 manish.sha 776
				row.createCell(23).setCellValue(ssDetail.getSalesHistoryHomeShop());
777
				row.createCell(24).setCellValue(ssDetail.getAvgSalesHomeShop()+"");
12166 manish.sha 778
				i++;
779
			}
780
 
781
			row = slowMovingSheet.createRow(0);
782
 
783
			row.createCell(0).setCellValue("ItemId");
784
			row.createCell(1).setCellValue("Category");
785
			row.createCell(2).setCellValue("ProductGroup");
786
			row.createCell(3).setCellValue("Brand");
787
			row.createCell(4).setCellValue("Model Name");
788
			row.createCell(5).setCellValue("Model Number");
789
			row.createCell(6).setCellValue("Color");
790
			row.createCell(7).setCellValue("Product");
791
			row.createCell(8).setCellValue("Stock Qty");
792
			row.createCell(9).setCellValue("Stock Value");
793
			row.createCell(10).setCellValue("NOD Stock");
794
			row.createCell(11).setCellValue("Sales History(All-Sources)");
795
			row.createCell(12).setCellValue("Avg Sales(All-Sources)");
796
			row.createCell(13).setCellValue("Sales History(Website)");
797
			row.createCell(14).setCellValue("Avg Sales(Website)");
798
			row.createCell(15).setCellValue("Sales History(Ebay)");
799
			row.createCell(16).setCellValue("Avg Sales(Ebay)");
800
			row.createCell(17).setCellValue("Sales History(Snapdeal)");
801
			row.createCell(18).setCellValue("Avg Sales(Snapdeal)");
802
			row.createCell(19).setCellValue("Sales History(Flipkart)");
803
			row.createCell(20).setCellValue("Avg Sales(Flipkart)");
804
			row.createCell(21).setCellValue("Sales History(Amazon-MFN)");
805
			row.createCell(22).setCellValue("Avg Sales(Amazon-MFN)");
14655 manish.sha 806
			row.createCell(23).setCellValue("Sales History(HomeShop18)");
807
			row.createCell(24).setCellValue("Avg Sales(HomeShop18)");
12166 manish.sha 808
 
809
			i=1;
810
			for(StockSaleDetail ssDetail : slowMovingStockSaleList){
12179 manish.sha 811
				row = slowMovingSheet.createRow(i);
12166 manish.sha 812
				row.createCell(0).setCellValue(ssDetail.getItemId()+"");
813
				row.createCell(1).setCellValue(ssDetail.getCategory());
814
				row.createCell(2).setCellValue(ssDetail.getProductGroup());
815
				row.createCell(3).setCellValue(ssDetail.getBrand());
816
				row.createCell(4).setCellValue(ssDetail.getModelName());
817
				row.createCell(5).setCellValue(ssDetail.getModelNumber());
818
				row.createCell(6).setCellValue(ssDetail.getColor());
819
				row.createCell(7).setCellValue(ssDetail.getBrand()+" "+ssDetail.getModelName()+" "+ssDetail.getModelNumber()+" "+ssDetail.getColor());
820
				row.createCell(8).setCellValue(ssDetail.getStockQuantity()+"");
821
				row.createCell(9).setCellValue(ssDetail.getStockValue()+"");
822
				row.createCell(10).setCellValue(ssDetail.getNodStock()+"");
823
				row.createCell(11).setCellValue(ssDetail.getSalesHistoryAll());
824
				row.createCell(12).setCellValue(ssDetail.getAvgSalesAll()+"");
825
				row.createCell(13).setCellValue(ssDetail.getSalesHistoryWS());
826
				row.createCell(14).setCellValue(ssDetail.getAvgSalesWS()+"");
827
				row.createCell(15).setCellValue(ssDetail.getSalesHistoryEbay());
828
				row.createCell(16).setCellValue(ssDetail.getAvgSalesEbay()+"");
829
				row.createCell(17).setCellValue(ssDetail.getSalesHistorySD());
830
				row.createCell(18).setCellValue(ssDetail.getAvgSalesSD()+"");
831
				row.createCell(19).setCellValue(ssDetail.getSalesHistoryFK());
832
				row.createCell(20).setCellValue(ssDetail.getAvgSalesFK()+"");
833
				row.createCell(21).setCellValue(ssDetail.getSalesHistoryMFN());
834
				row.createCell(22).setCellValue(ssDetail.getAvgSalesMFN());
14655 manish.sha 835
				row.createCell(23).setCellValue(ssDetail.getSalesHistoryHomeShop());
836
				row.createCell(24).setCellValue(ssDetail.getAvgSalesHomeShop()+"");
12166 manish.sha 837
				i++;
838
			}
839
 
12177 manish.sha 840
			FileOutputStream out = null;
12166 manish.sha 841
			if(mobTab){
842
				out = new FileOutputStream(stockSalesReportMT);
843
			} else {
844
				out = new FileOutputStream(stockSalesReportEMT);
845
			}
12177 manish.sha 846
			workbook.write(out);
12166 manish.sha 847
			out.close();
848
			System.out.println("Excel written successfully..");
849
		}catch(Exception e){
850
			e.printStackTrace();
851
		}
852
 
853
	}
854
 
855
	public static void main(String[] args) {
856
		createAndMailReport();
857
	}
858
 
859
}