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