Subversion Repositories SmartDukaan

Rev

Rev 14419 | 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 {
23454 amit.gupta 290
							List<Long> itemAvailability = inventoryClient.getItemAvailabilityAtLocation(itemId, 1, -1);
13691 manish.sha 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();
14419 manish.sha 351
 
352
						hsOrderNo = hsOrderNo.trim();
353
						hsSubOrderNo = hsSubOrderNo.trim();
13691 manish.sha 354
						if(transaction_client.homeShopOrderExists(hsOrderNo, hsSubOrderNo)) {
355
							setErrorMsg(getErrorMsg() + "<br>Duplicate order for Home Shop OrderNo " + hsOrderNo + " and Home Shop Sub Order No "+hsSubOrderNo+"for row number  " + rowId);
356
							logger.error("Duplicate order for Home Shop OrderNo " + hsOrderNo + " and Home Shop Sub Order No "+hsSubOrderNo+"for row number  " + rowId);
357
							continue;
358
						}
359
 
360
						transactionId =  String.valueOf(transaction_client.createTransaction(txn));
361
						paymentId = createPayment(user, hsSubOrderNo, totalPrice);
362
 
363
						logger.info("Successfully created transaction: " + transactionId + " for amount: " + totalPrice);
364
 
365
						Transaction transaction = transaction_client.getTransaction(Long.parseLong(transactionId));
366
						Order order = transaction.getOrders().get(0);
367
 
368
						inventoryClient.reserveItemInWarehouse(itemId, fulfillmentWarehouse.getId(), 1, 
369
								order.getId(), order.getCreated_timestamp(), order.getPromised_shipping_time(), order.getLineitems().get(0).getQuantity());
370
 
371
 
372
						HsOrder homeshopOrder = new HsOrder();
373
						homeshopOrder.setOrderId(order.getId());
374
						homeshopOrder.setHsOrderNo(hsOrderNo);
375
						homeshopOrder.setHsSubOrderNo(hsSubOrderNo);
376
						homeshopOrder.setHsOrderDate(hsTxnDate.getTime());
377
						homeshopOrder.setHsProductId(productId);
378
						homeshopOrder.setHsItemId(item_Id);
379
						homeshopOrder.setSellerSku(sku);
380
						homeshopOrder.setPaymentMode(paymentMode);
381
						homeshopOrder.setCourierName(courierName);
382
						homeshopOrder.setSlaDays(slaDays);
383
						homeshopOrder.setCatalogueName(catalogueName);
13734 manish.sha 384
						homeshopOrder.setShippingName(shippingName);
13691 manish.sha 385
						transaction_client.createHomeShopOrder(homeshopOrder);
386
						new PaymentClient().getClient().updatePaymentDetails(paymentId, null, null, null, null, null, null, hsSubOrderNo, null, PaymentStatus.SUCCESS, null, null);
387
 
388
					} catch (Exception e) {
389
						logger.error("Error while creating order for rowId " + rowId, e);
390
						addActionError("Error while creating order for rowId " + rowId);
391
						setErrorMsg(getErrorMsg() + "<br>Error while creating order for row number " + rowId);
392
						continue;
393
					}
394
 
395
 
396
				}catch (Exception e) {
397
					logger.error("Error while creating order for row number " + rowId, e);
398
					setErrorMsg(getErrorMsg() + "<br>Error while creating order for row number " + rowId);
399
					continue;
400
				}
401
 
402
			}/*if("CANCELLED".equalsIgnoreCase(subOrderStatus)){
403
				try {
404
					Client transaction_client = new TransactionClient().getClient();
405
					row.getCell(HS_ORDER_NO_INDEX).setCellType(Cell.CELL_TYPE_STRING);
406
					row.getCell(HS_SUB_ORDER_NO_INDEX).setCellType(Cell.CELL_TYPE_STRING);
407
					String hsOrderNo = row.getCell(HS_ORDER_NO_INDEX).getStringCellValue();
408
					String hsSubOrderNo = row.getCell(HS_SUB_ORDER_NO_INDEX).getStringCellValue();
409
					List<HsOrder> hsOrders = transaction_client.getHomeShopOrder(0, hsOrderNo, hsSubOrderNo);
410
					transaction_client.refundOrder(hsOrders.get(0).getOrderId(), "homeshop18", "As per Buyer's Request");
411
 
412
				}catch (Exception e) {
413
					logger.error("Error while cancelling order for row number " + rowId, e);
414
					setErrorMsg(getErrorMsg() + "<br>Error while creating order for row number " + rowId);
415
					continue;
416
				}
417
			}*/
418
		}
419
		return "authsuccess";
420
	}
421
 
422
	private LineItem createLineItem(long itemId, double amount, double quantity) throws CatalogServiceException, TException {
423
		LineItem lineItem = new LineItem();
424
		CatalogService.Client catalogClient = new CatalogClient().getClient();
425
		Item item = catalogClient.getItem(itemId);
426
 
427
		lineItem.setProductGroup(item.getProductGroup());
428
		lineItem.setBrand(item.getBrand());
429
		lineItem.setModel_number(item.getModelNumber());
430
		lineItem.setModel_name(item.getModelName());
431
		lineItem.setExtra_info(item.getFeatureDescription());
432
		lineItem.setQuantity(quantity);
433
		lineItem.setItem_id(item.getId());
434
		lineItem.setUnit_weight(item.getWeight());
435
		lineItem.setTotal_weight(item.getWeight()*quantity);
13694 manish.sha 436
		lineItem.setUnit_price(amount/quantity);
437
		lineItem.setTotal_price(amount);
13691 manish.sha 438
 
439
		if (item.getColor() == null || "NA".equals(item.getColor())) {
440
			lineItem.setColor("");
441
		} else {
442
			lineItem.setColor(item.getColor());
443
		}
444
		return lineItem;
445
	}
446
 
447
	private long createPayment(User user, String subOrderId, double amount) throws NumberFormatException, PaymentException, TException {
448
		in.shop2020.payments.PaymentService.Client client = new PaymentClient().getClient();
449
		return client.createPayment(user.getUserId(), amount, HS_GATEWAY_ID, Long.valueOf(transactionId), false);
450
	}
451
 
452
	private boolean checkForErrors(){
453
		Collection<String> actionErrors = getActionErrors();
454
		if(actionErrors != null && !actionErrors.isEmpty()){
455
			for (String str : actionErrors) {
456
				errorMsg += "<BR/>" + str;
457
			}
458
			return true;
459
		}
460
		return false;
461
	}
462
 
463
	@Override
464
	public void setServletRequest(HttpServletRequest request) {
465
		this.request = request;
466
		this.session = request.getSession();
467
	}
468
 
469
	public File getOrderDataFile() {
470
		return orderDataFile;
471
	}
472
 
473
	public void setOrderDataFile(File orderDataFile) {
474
		this.orderDataFile = orderDataFile;
475
	}
476
 
477
	public String getOrderDataFileName() {
478
		return orderDataFileName;
479
	}
480
 
481
	public void setOrderDataFileName(String orderDataFileName) {
482
		this.orderDataFileName = orderDataFileName;
483
	}
484
 
485
	public String getTransactionId() {
486
		return transactionId;
487
	}
488
 
489
	public void setTransactionId(String transactionId) {
490
		this.transactionId = transactionId;
491
	}
492
 
493
	public String getErrorMsg() {
494
		return errorMsg;
495
	}
496
 
497
	public void setErrorMsg(String errorMsg) {
498
		this.errorMsg = errorMsg;
499
	}
500
 
501
	public Long getRowId() {
502
		return rowId;
503
	}
504
 
505
	public void setRowId(Long rowId) {
506
		this.rowId = rowId;
507
	}
508
 
509
	public long getPaymentId() {
510
		return paymentId;
511
	}
512
 
513
	public void setPaymentId(long paymentId) {
514
		this.paymentId = paymentId;
515
	}
516
 
517
}