1 package com.instantbank.collections.commonQueuing.web; 2 3 import java.io.IOException; 4 import java.io.OutputStreamWriter; 5 import java.io.PrintWriter; 6 import java.rmi.RemoteException; 7 import javax.ejb.FinderException; 8 import javax.servlet.RequestDispatcher; 9 import javax.servlet.ServletConfig; 10 import javax.servlet.ServletContext; 11 import javax.servlet.ServletException; 12 import javax.servlet.http.HttpServlet; 13 import javax.servlet.http.HttpServletRequest; 14 import javax.servlet.http.HttpServletResponse; 15 import javax.servlet.http.HttpSession; 16 import com.instantbank.collections.commonQueuing.ejb.QueueServices; 17 import com.instantbank.collections.commonQueuing.ejb.QueueServicesHome; 18 import com.instantbank.collections.util.FilterChain; 19 import com.instantbank.collections.util.InstantbankException; 20 import com.instantbank.collections.util.ServiceLocator; 21 import com.instantbank.collections.util.StringFormat; 22 23 public class WorkLoadReviewController extends HttpServlet { 24 private String debug = ""; 25 private QueueServices services; 26 private HttpSession session; 27 28 29 public void init(ServletConfig config) throws ServletException { 30 super.init(config); 31 try { 32 QueueServicesHome home = (QueueServicesHome)ServiceLocator.instance().createEJB("QueueServicesHome", QueueServicesHome.class, false); 33 services = home.create(); 34 } 35 catch(Exception e) { 36 } 37 } 38 39 40 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 41 doPost(request, response); 42 } 43 44 45 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 46 String action = ""; 47 com.instantbank.collections.util.FilterChain chain; 48 49 try { 50 action = request.getParameter("action"); 51 session = request.getSession(false); 52 session.setAttribute("hasException", "0"); 53 try { 54 chain = new com.instantbank.collections.util.FilterChain(true, getServletConfig().getServletContext()); 55 if(chain.processFilter(request, response)) { 56 return; 57 } 58 if(((Long)session.getAttribute("groupId")).longValue() == 0) { 59 throw new InstantbankException("212001", "The user must belong to a valid group to use this function"); 60 } 61 62 if(action.equals("initialize")) { 63 initialize(request, response); 64 } 65 else if(action.equals("getQueues")) { 66 getQueues(request, response); 67 } 68 else if(action.equals("transfer")) { 69 transfer(request, response); 70 } 71 else { 72 throw new InstantbankException("112001", "Action " + action + " not supported"); 73 } 74 } 75 catch(Exception e) { 76 throw new InstantbankException(e, "112002", "Failed to execute controller action " + action + " (" + debug + ")"); 77 } 78 } 79 catch(InstantbankException e) { 80 session.setAttribute("hasException", "1"); 81 session.setAttribute("Exception", e); 82 if(response.isCommitted()) { 83 return; 84 } 85 response.sendRedirect("../main_web/ControllerError.jsp?showTechnical=0"); 86 } 87 } 88 89 90 private void getQueues(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, FinderException { 91 Long companyId = (Long)session.getAttribute("companyId"); 92 String responseXml = ""; 93 Long rowInit = new Long(request.getParameter("rowInit")); 94 Long userId = new Long(request.getParameter("userId")); 95 96 response.setContentType("text/html"); 97 OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream()); 98 PrintWriter out = new PrintWriter(osw); 99 try { 100 responseXml = StringFormat.cleanXml(services.getQueuesSummary(companyId, userId, 1, 0)); 101 out.println("<script>"); 102 out.print("top.xmlQueues='"); 103 out.print(responseXml); 104 out.println("';"); 105 out.println("top.loadQueues();"); 106 out.println("</script>"); 107 out.close(); 108 } 109 catch(Exception e) { 110 out.println("<script>"); 111 out.print("alert('Error: " + e.getMessage() + "');"); 112 out.println("</script>"); 113 out.close(); 114 } 115 } 116 117 118 private void initialize(HttpServletRequest request, HttpServletResponse response) throws ServletException, RemoteException, IOException, InstantbankException { 119 Long actualQueue = new Long(1); 120 Long actualFirstQueue = new Long(1); 121 Long companyId = (Long)session.getAttribute("companyId"); 122 String objectType = (String)request.getParameter("objectType"); 123 Long userId = (Long)session.getAttribute("userId"); 124 String xmlQueues = new String(); 125 String xmlUserGroups = new String(); 126 127 xmlQueues = services.getQueuesSupervisor(companyId, userId, objectType); 128 xmlUserGroups = services.getGroupsUsersSummaries(companyId, userId, objectType); 129 request.setAttribute("dataUser", xmlUserGroups); 130 request.setAttribute("dataQueue", xmlQueues); 131 session.setAttribute("actualQueue", actualQueue); 132 session.setAttribute("actualFirstQueue", actualFirstQueue); 133 ServletContext sc = getServletConfig().getServletContext(); 134 RequestDispatcher rd = sc.getRequestDispatcher("/commonQueuing_web/WorkLoadReviewView.jsp?title=Work Load Review"); 135 rd.forward(request, response); 136 } 137 138 139 private void transfer(HttpServletRequest request, HttpServletResponse response) throws ServletException, RemoteException, IOException, InstantbankException { 140 Long companyId = (Long)session.getAttribute("companyId"); 141 Long supervisorId = (Long)session.getAttribute("userId"); 142 ; 143 Long queueId = new Long(request.getParameter("queueId")); 144 String responseXml = ""; 145 int transferTotal; 146 Long userFrom = new Long(request.getParameter("userFrom")); 147 Long userTo = new Long(request.getParameter("userTo")); 148 149 transferTotal = services.transferUserToUser(userFrom, userTo, queueId, companyId, supervisorId); 150 initialize(request, response); 151 } 152 153 154 public String getServletInfo() { 155 return "com.instantbank.collections.commonQueuing.web.WorkLoadReviewController Information"; 156 } 157 } 158 159