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