Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
13691 manish.sha 1
package in.shop2020.support.controllers;
2
 
3
import in.shop2020.model.v1.catalog.CatalogService;
4
import in.shop2020.model.v1.catalog.CatalogServiceException;
13709 manish.sha 5
import in.shop2020.model.v1.catalog.HsItem;
13691 manish.sha 6
import in.shop2020.model.v1.catalog.Item;
7
import in.shop2020.model.v1.inventory.InventoryService;
8
import in.shop2020.model.v1.inventory.InventoryServiceException;
9
import in.shop2020.model.v1.inventory.InventoryType;
10
import in.shop2020.model.v1.inventory.VendorItemPricing;
11
import in.shop2020.model.v1.inventory.Warehouse;
12
import in.shop2020.model.v1.inventory.WarehouseType;
13
import in.shop2020.model.v1.order.HsOrder;
14
import in.shop2020.model.v1.order.LineItem;
15
import in.shop2020.model.v1.order.Order;
16
import in.shop2020.model.v1.order.OrderStatus;
17
import in.shop2020.model.v1.order.OrderType;
18
import in.shop2020.model.v1.order.SourceDetail;
19
import in.shop2020.model.v1.order.Transaction;
20
import in.shop2020.model.v1.order.TransactionStatus;
21
import in.shop2020.model.v1.order.TransactionService.Client;
22
import in.shop2020.model.v1.user.User;
23
import in.shop2020.payments.PaymentException;
24
import in.shop2020.payments.PaymentStatus;
25
import in.shop2020.support.utils.ReportsUtils;
26
import in.shop2020.thrift.clients.CatalogClient;
27
import in.shop2020.thrift.clients.InventoryClient;
28
import in.shop2020.thrift.clients.PaymentClient;
29
import in.shop2020.thrift.clients.TransactionClient;
30
import in.shop2020.thrift.clients.UserClient;
31
 
32
import java.io.File;
33
import java.io.FileInputStream;
34
import java.util.ArrayList;
35
import java.util.Calendar;
36
import java.util.Collection;
37
import java.util.Collections;
38
import java.util.Date;
39
import java.util.List;
40
 
41
import javax.servlet.http.HttpServletRequest;
42
import javax.servlet.http.HttpSession;
43
 
44
import org.apache.commons.io.FileUtils;
45
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
46
import org.apache.poi.ss.usermodel.Cell;
47
import org.apache.poi.ss.usermodel.Row;
48
import org.apache.poi.ss.usermodel.Sheet;
49
import org.apache.poi.ss.usermodel.Workbook;
50
import org.apache.struts2.convention.annotation.InterceptorRef;
51
import org.apache.struts2.convention.annotation.InterceptorRefs;
52
import org.apache.struts2.convention.annotation.Result;
53
import org.apache.struts2.convention.annotation.Results;
54
import org.apache.struts2.interceptor.ServletRequestAware;
55
import org.apache.thrift.TException;
56
import org.slf4j.Logger;
57
import org.slf4j.LoggerFactory;
58
 
59
import com.opensymphony.xwork2.ActionSupport;
60
 
61
@SuppressWarnings("serial")
62
@InterceptorRefs({
63
	@InterceptorRef("defaultStack"),
64
	@InterceptorRef("login")
65
})
66
@Results({
67
	@Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})
68
})
69
public class HsOrderCreatorController extends ActionSupport implements ServletRequestAware {
70
	private HttpServletRequest request;
71
	private HttpSession session;
72
 
73
	private static Logger logger = LoggerFactory.getLogger(HsOrderCreatorController.class);
74
	private static final int HS_GATEWAY_ID = 20;
75
	private static final int HS_SOURCE_ID = 4;
76
 
77
	private File orderDataFile;
78
	private String orderDataFileName;
79
	private String transactionId;
80
	private String errorMsg = "";
81
	private Long rowId = 0L;
82
 
83
	private long paymentId;
84
	//	ORDER NO Suborder No	Catalogue Name	Billing Name	Shipping Name	Product Id	Item Name	Item Id	Seller SKU Code	Quantity	Suborder Amount	Payment Mode	Suborder Status	Courier Name	Status Date	Pending Days	Sla Days	Overdue Days	Shipping Address	Shipping City	Shipping State	Zip Code	Mobile	Order Date	Desired Date	Remarks
85
	//  0			1				2				3				4				5			6			7		8				9			10				11				12				13				14			15				16			17				18					19				20				21			22		23			24				25
86
	private static final int HS_ORDER_NO_INDEX = 0;
87
	private static final int HS_SUB_ORDER_NO_INDEX = 1;
88
	private static final int CATALOGUE_NAME_INDEX = 2;
13709 manish.sha 89
	private static final int BILLING_NAME_INDEX = 3;
13691 manish.sha 90
	private static final int PRODUCT_ID_INDEX = 5;
91
	private static final int ITEM_ID_INDEX = 7;
92
	private static final int SELLER_SKU_INDEX = 8;
93
	private static final int QUANTITY_INDEX = 9;
94
	private static final int SUB_ORDER_AMOUNT_INDEX = 10;
95
	private static final int PAYMENT_MODE_INDEX = 11;
96
	private static final int SUB_ORDER_STATUS_INDEX = 12;
97
	private static final int COURIER_NAME_INDEX = 13;
98
	private static final int SLA_DAYS_INDEX = 16;
99
	private static final int SHIPPING_ADDRESS_INDEX = 18;
100
	private static final int SHIPPING_CITY_INDEX = 19;
101
	private static final int SHIPPING_STATE_INDEX = 20;
102
	private static final int ZIPCODE_INDEX = 21;
103
	private static final int MOBILE_NO_INDEX = 22;
104
	private static final int ORDER_DATE_INDEX = 23;
105
	private static final int WAREHOUSE_ID_INDEX = 26;
106
 
107
 
108
	public String index() {
109
        if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), "/hs-dashboard"))
110
            return "authfail";
111
        checkForErrors();
112
        return "authsuccess";
113
    }
114
 
115
	public String create(){
116
		File fileToCreate = null;
117
		orderDataFileName = "OrderSheet_HomeShop18_"+(new Date().toString());
118
		try {
119
			fileToCreate = new File("/tmp/", this.orderDataFileName);
120
			FileUtils.copyFile(this.orderDataFile, fileToCreate);
121
		} catch (Exception e) {
122
			logger.error("Error while writing order data file to the local file system for Homeshop18", e);
123
			addActionError("Error while writing order data file to the local file system");
124
		}
125
 
126
		if(checkForErrors())
127
			return "authsuccess";
128
 
129
		Workbook wb = null;
130
		try {
131
			wb = new HSSFWorkbook(new FileInputStream(fileToCreate));
132
		} catch (Exception e) {
133
			logger.error("Unable to open the File for Order Creation for Homeshop18 ", e);
134
			setErrorMsg(getErrorMsg() + "Error in opening File for Order creation");
135
			addActionError("Unable to open the File for Order creation");
136
		}
137
		if(checkForErrors())
138
			return "authsuccess";
139
 
140
		SourceDetail sourceDetail = null;
141
		User user = null;
142
		TransactionClient tsc = null;
143
		try {
144
			tsc = new TransactionClient();
145
			sourceDetail = tsc.getClient().getSourceDetail(HS_SOURCE_ID);
146
		} catch (Exception e) {
147
			logger.error("Unable to establish connection to the transaction service while getting Homeshop18 Source Detail", e);
148
			setErrorMsg(getErrorMsg() + "Error in Order Service while getting Homeshop18 Source Detail");
149
			addActionError("Error in connecting to Order Service");
150
		}
151
 
152
		if(checkForErrors())
153
			return "authsuccess";
154
 
155
		try {   
156
			in.shop2020.model.v1.user.UserContextService.Client userClient = new UserClient().getClient();
157
			user = userClient.getUserByEmail(sourceDetail.getEmail());
158
		} catch (Exception e) {
159
			logger.error("Unable to establish connection to the User service", e);
160
			setErrorMsg(getErrorMsg() + "Unable to get Default Email for Snapdeal ");
161
			addActionError("Unable to get Default Email for Snapdeal ");
162
		}
163
 
164
		if(checkForErrors())
165
			return "authsuccess";
166
 
167
		Sheet sheet = wb.getSheetAt(0);
168
		Row firstRow = sheet.getRow(0);
169
		Item item;
13709 manish.sha 170
		HsItem hsItem;
13691 manish.sha 171
		in.shop2020.model.v1.catalog.CatalogService.Client catalogClient;
13713 manish.sha 172
		in.shop2020.model.v1.catalog.CatalogService.Client prodCatalogClient;
13691 manish.sha 173
		for (Row row : sheet) {
174
			long orderCountForRow = 0;
175
			rowId++;
176
			if(row.equals(firstRow))
177
				continue;
178
 
179
			row.getCell(SUB_ORDER_STATUS_INDEX).setCellType(Cell.CELL_TYPE_STRING);
180
			String subOrderStatus = row.getCell(SUB_ORDER_STATUS_INDEX).getStringCellValue();
181
 
13733 manish.sha 182
			if("VERIFIED".equalsIgnoreCase(subOrderStatus) || "ORDER_FORM".equalsIgnoreCase(subOrderStatus)){
13691 manish.sha 183
				try {
184
					Transaction txn = new Transaction();
185
					txn.setShoppingCartid(user.getActiveCartId());
186
					txn.setCustomer_id(user.getUserId());
187
					txn.setCreatedOn(new Date().getTime());
188
					txn.setTransactionStatus(TransactionStatus.INIT);
189
					txn.setStatusDescription("Order for Homeshop18 ");
190
 
191
					List<Order> orders = new ArrayList<Order>();
192
 
193
					row.getCell(SELLER_SKU_INDEX).setCellType(Cell.CELL_TYPE_STRING);
194
					String sku = row.getCell(SELLER_SKU_INDEX).getStringCellValue();
195
 
196
					Long itemId;
197
					double totalPrice = 0;
198
 
199
					totalPrice = row.getCell(SUB_ORDER_AMOUNT_INDEX).getNumericCellValue();
13713 manish.sha 200
					row.getCell(ITEM_ID_INDEX).setCellType(Cell.CELL_TYPE_STRING);
201
					String item_Id = row.getCell(ITEM_ID_INDEX).getStringCellValue();
13691 manish.sha 202
 
203
					LineItem lineItem = null;
204
					try {
205
						catalogClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient();
13713 manish.sha 206
						prodCatalogClient = new CatalogClient().getClient();
207
						hsItem = prodCatalogClient.getHsItem(item_Id);
208
						if(hsItem!=null && hsItem.getItemId()>0){
209
							item = catalogClient.getItem(hsItem.getItemId());
210
							itemId = item.getId();
211
							if(itemId == 0){
212
								logger.error("No Item found for " + rowId + " "+ itemId);
213
								continue;
214
							}
215
							lineItem = createLineItem(itemId, totalPrice, row.getCell(QUANTITY_INDEX).getNumericCellValue());
216
							row.getCell(HS_ORDER_NO_INDEX).setCellType(Cell.CELL_TYPE_STRING);
217
							row.getCell(HS_SUB_ORDER_NO_INDEX).setCellType(Cell.CELL_TYPE_STRING);
218
							String hsOrderNo = row.getCell(HS_ORDER_NO_INDEX).getStringCellValue();
219
							String hsSubOrderNo = row.getCell(HS_SUB_ORDER_NO_INDEX).getStringCellValue();
220
							lineItem.setExtra_info("HSOrderNo = " + hsOrderNo + " HSSubOrderNo = " + hsSubOrderNo);
221
						}else{
222
							logger.error("Unable to get Item Mapping For this HsItemId "+item_Id+"for RowId " + rowId);
223
							setErrorMsg(getErrorMsg() + "Unable to get Item Mapping For this HsItemId "+item_Id+"for RowId " + rowId);
13691 manish.sha 224
							continue;
225
						}
226
					} catch (Exception tex) {
227
						logger.error("Unable to create order for RowId " + rowId, tex);
228
						setErrorMsg(getErrorMsg() + "<br>Unable to create lineitem using catalog info for RowId " + rowId);
229
						continue;
230
					}
231
 
232
					Order t_order = new Order();
233
					t_order.setCustomer_id(user.getUserId());
234
					t_order.setCustomer_email(sourceDetail.getEmail());
13709 manish.sha 235
					row.getCell(BILLING_NAME_INDEX).setCellType(Cell.CELL_TYPE_STRING);
13691 manish.sha 236
					row.getCell(SHIPPING_ADDRESS_INDEX).setCellType(Cell.CELL_TYPE_STRING);
237
					row.getCell(SHIPPING_CITY_INDEX).setCellType(Cell.CELL_TYPE_STRING);
238
					row.getCell(SHIPPING_STATE_INDEX).setCellType(Cell.CELL_TYPE_STRING);
239
					row.getCell(MOBILE_NO_INDEX).setCellType(Cell.CELL_TYPE_STRING);
240
					row.getCell(ZIPCODE_INDEX).setCellType(Cell.CELL_TYPE_STRING);
13709 manish.sha 241
					t_order.setCustomer_name(row.getCell(BILLING_NAME_INDEX).getStringCellValue());
13691 manish.sha 242
					t_order.setCustomer_mobilenumber(row.getCell(MOBILE_NO_INDEX).getStringCellValue());
243
					t_order.setCustomer_address1(row.getCell(SHIPPING_ADDRESS_INDEX).getStringCellValue());
244
					t_order.setCustomer_address2("");
245
					t_order.setCustomer_city(row.getCell(SHIPPING_CITY_INDEX).getStringCellValue());
246
					t_order.setCustomer_state(row.getCell(SHIPPING_STATE_INDEX).getStringCellValue());
247
					t_order.setCustomer_pincode(row.getCell(ZIPCODE_INDEX).getStringCellValue());
248
					t_order.setTotal_amount(lineItem.getTotal_price());            	
249
					t_order.setTotal_weight(lineItem.getTotal_weight());
250
					t_order.setLineitems(Collections.singletonList(lineItem));            
251
					t_order.setStatus(OrderStatus.PAYMENT_PENDING);
13733 manish.sha 252
					if("ORDER_FORM".equalsIgnoreCase(subOrderStatus)){
253
						t_order.setStatusDescription("In Process- Order Form");
254
					}else{
255
						t_order.setStatusDescription("In Process");
256
					}
13691 manish.sha 257
					t_order.setCreated_timestamp(new Date().getTime());
258
					t_order.setOrderType(OrderType.B2C);
259
					t_order.setCod(false);
260
					int slaDays = (int)row.getCell(SLA_DAYS_INDEX).getNumericCellValue();
261
					try {
262
						Calendar time = Calendar.getInstance();
263
						time.add(Calendar.DAY_OF_MONTH, slaDays);
264
						if(time.get(Calendar.DAY_OF_WEEK)!=1){
265
							t_order.setPromised_shipping_time(time.getTimeInMillis());
266
							t_order.setExpected_shipping_time(time.getTimeInMillis());
267
						}
268
						else{
269
							t_order.setPromised_shipping_time(time.getTimeInMillis()+24*60*60*1000);
270
							t_order.setExpected_shipping_time(time.getTimeInMillis()+24*60*60*1000);
271
						}
272
						time.add(Calendar.DAY_OF_MONTH, 3);
273
						t_order.setPromised_delivery_time(time.getTimeInMillis());
274
						t_order.setExpected_delivery_time(time.getTimeInMillis());
275
					}catch(Exception e) {
276
						addActionError("Error in updating Shipping or Delivery Time for row number " + rowId);
277
						logger.error("Error in updating Shipping or Delivery Time for row number " + rowId,e);
278
						continue;
279
					}
280
 
281
					InventoryService.Client inventoryClient = null;
282
					Warehouse fulfillmentWarehouse= null; 
283
					try {
284
						inventoryClient = new InventoryClient().getClient();
13713 manish.sha 285
						if(hsItem.getDefaultWarehouseId()>0){
286
							fulfillmentWarehouse = inventoryClient.getWarehouse(hsItem.getDefaultWarehouseId());
13691 manish.sha 287
						} else {
288
							List<Long> itemAvailability = inventoryClient.getItemAvailabilityAtLocation(itemId, 1);
289
							fulfillmentWarehouse = inventoryClient.getWarehouse(itemAvailability.get(0));
290
						}
291
						t_order.setFulfilmentWarehouseId(fulfillmentWarehouse.getId());
292
 
293
						long billingWarehouseId = 0;
294
						if(fulfillmentWarehouse.getBillingWarehouseId()== 0) {
295
							inventoryClient = new InventoryClient().getClient();
296
							List<Warehouse> warehouses = inventoryClient.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, fulfillmentWarehouse.getVendor().getId(), 0, 0);
297
							for(Warehouse warehouse : warehouses) {
298
								if(warehouse.getBillingWarehouseId()!=0) {
299
									billingWarehouseId = warehouse.getBillingWarehouseId();
300
									break;
301
								}
302
							}
303
						} else {
304
							billingWarehouseId = fulfillmentWarehouse.getBillingWarehouseId();
305
						}
306
 
307
						t_order.setWarehouse_id(billingWarehouseId);
308
						//t_order.setWarehouse_id(fulfillmentWarehouse.getBillingWarehouseId());
309
						VendorItemPricing vendorItemPricing = inventoryClient.getItemPricing(lineItem.getItem_id(), fulfillmentWarehouse.getVendor().getId());
310
						t_order.getLineitems().get(0).setTransfer_price(vendorItemPricing.getTransferPrice());
311
						t_order.getLineitems().get(0).setNlc(vendorItemPricing.getNlc());
312
					} catch (InventoryServiceException e) {
313
						addActionError("Error in updating WarehouseId for row number " + rowId);
314
						setErrorMsg(getErrorMsg() + "<br>Error in updating WarehouseId for row number  " + rowId);
315
						logger.error("Error in updating WarehouseId for row number " + rowId,e);
316
						continue;
317
					}
318
 
319
					t_order.setLogistics_provider_id(45);
320
					t_order.setTotal_amount(lineItem.getTotal_price());
321
					t_order.setOrderType(OrderType.B2C);
322
					t_order.setSource(HS_SOURCE_ID);
323
					t_order.setTotal_weight(lineItem.getTotal_weight());
324
					t_order.setOrderType(OrderType.B2C);	
325
 
326
					orders.add(t_order);
327
					orderCountForRow++;
328
 
329
					txn.setOrders(orders);
330
					Client transaction_client = new TransactionClient().getClient();
331
 
332
					try {
333
						row.getCell(HS_ORDER_NO_INDEX).setCellType(Cell.CELL_TYPE_STRING);
334
						row.getCell(HS_SUB_ORDER_NO_INDEX).setCellType(Cell.CELL_TYPE_STRING);
335
						row.getCell(PRODUCT_ID_INDEX).setCellType(Cell.CELL_TYPE_STRING);
336
						row.getCell(CATALOGUE_NAME_INDEX).setCellType(Cell.CELL_TYPE_STRING);
337
						row.getCell(COURIER_NAME_INDEX).setCellType(Cell.CELL_TYPE_STRING);
338
						row.getCell(PAYMENT_MODE_INDEX).setCellType(Cell.CELL_TYPE_STRING);
339
 
340
						String hsOrderNo = row.getCell(HS_ORDER_NO_INDEX).getStringCellValue();
341
						String hsSubOrderNo = row.getCell(HS_SUB_ORDER_NO_INDEX).getStringCellValue();
342
						String productId = row.getCell(PRODUCT_ID_INDEX).getStringCellValue();
13713 manish.sha 343
 
13691 manish.sha 344
						String catalogueName = row.getCell(CATALOGUE_NAME_INDEX).getStringCellValue();
345
						String courierName = row.getCell(COURIER_NAME_INDEX).getStringCellValue();
346
						String paymentMode = row.getCell(PAYMENT_MODE_INDEX).getStringCellValue();
347
						Date hsTxnDate = row.getCell(ORDER_DATE_INDEX).getDateCellValue();
348
 
349
						if(transaction_client.homeShopOrderExists(hsOrderNo, hsSubOrderNo)) {
350
							setErrorMsg(getErrorMsg() + "<br>Duplicate order for Home Shop OrderNo " + hsOrderNo + " and Home Shop Sub Order No "+hsSubOrderNo+"for row number  " + rowId);
351
							logger.error("Duplicate order for Home Shop OrderNo " + hsOrderNo + " and Home Shop Sub Order No "+hsSubOrderNo+"for row number  " + rowId);
352
							continue;
353
						}
354
 
355
						transactionId =  String.valueOf(transaction_client.createTransaction(txn));
356
						paymentId = createPayment(user, hsSubOrderNo, totalPrice);
357
 
358
						logger.info("Successfully created transaction: " + transactionId + " for amount: " + totalPrice);
359
 
360
						Transaction transaction = transaction_client.getTransaction(Long.parseLong(transactionId));
361
						Order order = transaction.getOrders().get(0);
362
 
363
						inventoryClient.reserveItemInWarehouse(itemId, fulfillmentWarehouse.getId(), 1, 
364
								order.getId(), order.getCreated_timestamp(), order.getPromised_shipping_time(), order.getLineitems().get(0).getQuantity());
365
 
366
 
367
						HsOrder homeshopOrder = new HsOrder();
368
						homeshopOrder.setOrderId(order.getId());
369
						homeshopOrder.setHsOrderNo(hsOrderNo);
370
						homeshopOrder.setHsSubOrderNo(hsSubOrderNo);
371
						homeshopOrder.setHsOrderDate(hsTxnDate.getTime());
372
						homeshopOrder.setHsProductId(productId);
373
						homeshopOrder.setHsItemId(item_Id);
374
						homeshopOrder.setSellerSku(sku);
375
						homeshopOrder.setPaymentMode(paymentMode);
376
						homeshopOrder.setCourierName(courierName);
377
						homeshopOrder.setSlaDays(slaDays);
378
						homeshopOrder.setCatalogueName(catalogueName);
379
						transaction_client.createHomeShopOrder(homeshopOrder);
380
						new PaymentClient().getClient().updatePaymentDetails(paymentId, null, null, null, null, null, null, hsSubOrderNo, null, PaymentStatus.SUCCESS, null, null);
381
 
382
					} catch (Exception e) {
383
						logger.error("Error while creating order for rowId " + rowId, e);
384
						addActionError("Error while creating order for rowId " + rowId);
385
						setErrorMsg(getErrorMsg() + "<br>Error while creating order for row number " + rowId);
386
						continue;
387
					}
388
 
389
 
390
				}catch (Exception e) {
391
					logger.error("Error while creating order for row number " + rowId, e);
392
					setErrorMsg(getErrorMsg() + "<br>Error while creating order for row number " + rowId);
393
					continue;
394
				}
395
 
396
			}/*if("CANCELLED".equalsIgnoreCase(subOrderStatus)){
397
				try {
398
					Client transaction_client = new TransactionClient().getClient();
399
					row.getCell(HS_ORDER_NO_INDEX).setCellType(Cell.CELL_TYPE_STRING);
400
					row.getCell(HS_SUB_ORDER_NO_INDEX).setCellType(Cell.CELL_TYPE_STRING);
401
					String hsOrderNo = row.getCell(HS_ORDER_NO_INDEX).getStringCellValue();
402
					String hsSubOrderNo = row.getCell(HS_SUB_ORDER_NO_INDEX).getStringCellValue();
403
					List<HsOrder> hsOrders = transaction_client.getHomeShopOrder(0, hsOrderNo, hsSubOrderNo);
404
					transaction_client.refundOrder(hsOrders.get(0).getOrderId(), "homeshop18", "As per Buyer's Request");
405
 
406
				}catch (Exception e) {
407
					logger.error("Error while cancelling order for row number " + rowId, e);
408
					setErrorMsg(getErrorMsg() + "<br>Error while creating order for row number " + rowId);
409
					continue;
410
				}
411
			}*/
412
		}
413
		return "authsuccess";
414
	}
415
 
416
	private LineItem createLineItem(long itemId, double amount, double quantity) throws CatalogServiceException, TException {
417
		LineItem lineItem = new LineItem();
418
		CatalogService.Client catalogClient = new CatalogClient().getClient();
419
		Item item = catalogClient.getItem(itemId);
420
 
421
		lineItem.setProductGroup(item.getProductGroup());
422
		lineItem.setBrand(item.getBrand());
423
		lineItem.setModel_number(item.getModelNumber());
424
		lineItem.setModel_name(item.getModelName());
425
		lineItem.setExtra_info(item.getFeatureDescription());
426
		lineItem.setQuantity(quantity);
427
		lineItem.setItem_id(item.getId());
428
		lineItem.setUnit_weight(item.getWeight());
429
		lineItem.setTotal_weight(item.getWeight()*quantity);
13694 manish.sha 430
		lineItem.setUnit_price(amount/quantity);
431
		lineItem.setTotal_price(amount);
13691 manish.sha 432
 
433
		if (item.getColor() == null || "NA".equals(item.getColor())) {
434
			lineItem.setColor("");
435
		} else {
436
			lineItem.setColor(item.getColor());
437
		}
438
		return lineItem;
439
	}
440
 
441
	private long createPayment(User user, String subOrderId, double amount) throws NumberFormatException, PaymentException, TException {
442
		in.shop2020.payments.PaymentService.Client client = new PaymentClient().getClient();
443
		return client.createPayment(user.getUserId(), amount, HS_GATEWAY_ID, Long.valueOf(transactionId), false);
444
	}
445
 
446
	private boolean checkForErrors(){
447
		Collection<String> actionErrors = getActionErrors();
448
		if(actionErrors != null && !actionErrors.isEmpty()){
449
			for (String str : actionErrors) {
450
				errorMsg += "<BR/>" + str;
451
			}
452
			return true;
453
		}
454
		return false;
455
	}
456
 
457
	@Override
458
	public void setServletRequest(HttpServletRequest request) {
459
		this.request = request;
460
		this.session = request.getSession();
461
	}
462
 
463
	public File getOrderDataFile() {
464
		return orderDataFile;
465
	}
466
 
467
	public void setOrderDataFile(File orderDataFile) {
468
		this.orderDataFile = orderDataFile;
469
	}
470
 
471
	public String getOrderDataFileName() {
472
		return orderDataFileName;
473
	}
474
 
475
	public void setOrderDataFileName(String orderDataFileName) {
476
		this.orderDataFileName = orderDataFileName;
477
	}
478
 
479
	public String getTransactionId() {
480
		return transactionId;
481
	}
482
 
483
	public void setTransactionId(String transactionId) {
484
		this.transactionId = transactionId;
485
	}
486
 
487
	public String getErrorMsg() {
488
		return errorMsg;
489
	}
490
 
491
	public void setErrorMsg(String errorMsg) {
492
		this.errorMsg = errorMsg;
493
	}
494
 
495
	public Long getRowId() {
496
		return rowId;
497
	}
498
 
499
	public void setRowId(Long rowId) {
500
		this.rowId = rowId;
501
	}
502
 
503
	public long getPaymentId() {
504
		return paymentId;
505
	}
506
 
507
	public void setPaymentId(long paymentId) {
508
		this.paymentId = paymentId;
509
	}
510
 
511
}