Rev 3423 | Blame | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.thrift.clients.WarehouseClient;import in.shop2020.warehouse.ScanType;import in.shop2020.warehouse.WarehouseServiceException;import in.shop2020.warehouse.WarehouseService.Client;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 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 {WarehouseClient warehouseClient = new WarehouseClient();Client client = warehouseClient.getClient();id = "" + client.startPurchase(poId, invoiceNumber, freightCharges);} 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);}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();client.scanIn(id, itemNumber, imeiNumber, ScanType.PURCHASE);} 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);}if(!errorMsg.isEmpty()){addActionError(errorMsg);}return "show";}public String destroy(){long id = Long.parseLong(this.id);try {WarehouseClient warehouseClient = new WarehouseClient();Client client = warehouseClient.getClient();client.closePurchase(id);}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);}return "redirect";}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();}}