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