Subversion Repositories SmartDukaan

Rev

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