Rev 4531 | Blame | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.model.v1.catalog.InventoryServiceException;import in.shop2020.purchase.PurchaseServiceException;import in.shop2020.thrift.clients.CatalogClient;import in.shop2020.thrift.clients.PurchaseClient;import in.shop2020.thrift.clients.WarehouseClient;import in.shop2020.warehouse.InventoryItem;import in.shop2020.warehouse.ScanType;import in.shop2020.warehouse.WarehouseService.Client;import in.shop2020.warehouse.WarehouseServiceException;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.util.ServletContextAware;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.opensymphony.xwork2.ValidationAwareSupport;@SuppressWarnings("serial")@Results({@Result(name="redirect", type="redirectAction", params = {"actionName" , "warehouse"})})public class PurchaseController extends ValidationAwareSupport implements ServletRequestAware, ServletContextAware {private static Logger logger = LoggerFactory.getLogger(PurchaseController.class);protected HttpServletRequest request;private ServletContext context;private String id;private String itemId;private String itemNo;private String errorMsg="";private String purchaseOrderId;public String editNew(){purchaseOrderId = request.getParameter("poId");return "new";}public String create(){this.purchaseOrderId = request.getParameter("poId");long poId = Long.parseLong(purchaseOrderId);String invoiceNumber = request.getParameter("invoiceNo");String fc = request.getParameter("freightCharges").trim();double freightCharges = 0;if(fc != null && !fc.isEmpty())freightCharges = Double.parseDouble(fc);try {PurchaseClient purchaseClient = new PurchaseClient();in.shop2020.purchase.PurchaseService.Client client = purchaseClient.getClient();id = "" + client.startPurchase(poId, invoiceNumber, freightCharges);} catch (TTransportException e) {errorMsg = "Error while establishing connection to the warehouse server";logger.error(errorMsg, e);} catch (TException e) {errorMsg = "Error while scanning in the item";logger.error(errorMsg, e);} catch (PurchaseServiceException e) {errorMsg = e.getMessage();logger.error(errorMsg, e);}if(errorMsg.isEmpty())return "create";else{addActionError(errorMsg);return "new";}}public String show(){return "show";}public String update(){long id = Long.parseLong(this.id);String itemNumber = request.getParameter("itemNo");String imeiNumber = request.getParameter("imeiNo");try {WarehouseClient warehouseClient = new WarehouseClient();Client client = warehouseClient.getClient();long warehouseId = 7;InventoryItem inventoryItem = client.createSerializedInventoryItemFromItemNumber(itemNumber, imeiNumber, id);client.scanSerializedItem(inventoryItem.getId(), ScanType.PURCHASE, warehouseId);in.shop2020.model.v1.catalog.InventoryService.Client catalaogClient = new CatalogClient().getClient();catalaogClient.addInventory(inventoryItem.getItemId(), warehouseId, 1);} catch (TTransportException e) {errorMsg = "Error while establishing connection to the warehouse server";logger.error(errorMsg, e);} catch (WarehouseServiceException e) {errorMsg = e.getMessage();logger.error(errorMsg, e);} catch (TException e) {errorMsg = "Error while scanning in the item";logger.error(errorMsg, e);} catch (InventoryServiceException e) {errorMsg = "Error while incresing item's inventory availability";logger.error(errorMsg, e);}if(!errorMsg.isEmpty()){addActionError(errorMsg);}return "show";}public String destroy(){long id = Long.parseLong(this.id);try {PurchaseClient warehouseClient = new PurchaseClient();in.shop2020.purchase.PurchaseService.Client client = warehouseClient.getClient();client.closePurchase(id);}catch (TTransportException e) {errorMsg = "Error while establishing connection to the warehouse server";logger.error(errorMsg, e);} catch (TException e) {errorMsg = "Error while scanning in the item";logger.error(errorMsg, e);} catch (PurchaseServiceException e) {errorMsg = e.getMessage();logger.error(errorMsg, e);}return "redirect";}public String createItemNumberMapping() {long itemIdLong = Long.parseLong(itemId);try {Client warehouseClient = new WarehouseClient().getClient();warehouseClient.createItemNumberMapping(itemNo, itemIdLong);} catch (TTransportException e) {logger.error("Could not create thrift client", e);} catch (TException e) {logger.error("Could not create item number mapping", e);}return show();}public void setId(String id){this.id = id;}public String getId(){return id;}public String getErrorMessage(){return errorMsg;}public String getPurchaseOrderId() {return purchaseOrderId;}@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;}@Overridepublic void setServletContext(ServletContext context) {this.context = context;}public String getServletContextPath() {return context.getContextPath();}public String getItemId() {return itemId;}public void setItemId(String itemId) {this.itemId = itemId;}public String getItemNo() {return itemNo;}public void setItemNo(String itemNo) {this.itemNo = itemNo;}}