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