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