1 package com.instantbank.collections.collectionsQueuing.web; 2 3 import java.io.IOException; 4 import java.util.Enumeration; 5 import javax.ejb.FinderException; 6 import javax.servlet.RequestDispatcher; 7 import javax.servlet.ServletConfig; 8 import javax.servlet.ServletContext; 9 import javax.servlet.ServletException; 10 import javax.servlet.http.HttpServlet; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13 import javax.servlet.http.HttpSession; 14 import com.instantbank.collections.collectionsQueuing.ejb.CollectionsQueuingServices; 15 import com.instantbank.collections.collectionsQueuing.ejb.CollectionsQueuingServicesHome; 16 import com.instantbank.collections.util.FilterChain; 17 import com.instantbank.collections.util.InstantbankException; 18 import com.instantbank.collections.util.ServiceLocator; 19 20 public class CollectionsQueuingController extends HttpServlet { 21 private String debug = ""; 22 private CollectionsQueuingServices services; 23 private HttpSession session; 24 25 26 public void init(ServletConfig config) throws ServletException { 27 super.init(config); 28 try { 29 CollectionsQueuingServicesHome home = (CollectionsQueuingServicesHome)ServiceLocator.instance().createEJB("CollectionsQueuingServicesHome", CollectionsQueuingServicesHome.class, false); 30 services = home.create(); 31 } 32 catch(Exception e) { 33 throw new ServletException(e); 34 } 35 } 36 37 38 private void distribute(HttpServletRequest request, HttpServletResponse response) throws ServletException, InstantbankException, IOException, FinderException { 39 Long companyId; 40 Long queue; 41 String xml = null; 42 43 companyId = (Long)session.getAttribute("companyId"); 44 queue = new Long(request.getParameter("queueId")); 45 xml = services.distributeWork(queue, companyId); 46 request.setAttribute("data", xml); 47 ServletContext sc = getServletConfig().getServletContext(); 48 RequestDispatcher rd = sc.getRequestDispatcher("/collectionsQueuing_web/DistributeWorkView.jsp?title=Distribute Work Result"); 49 rd.forward(request, response); 50 } 51 52 53 private void distributeDownload(HttpServletRequest request, HttpServletResponse response) throws ServletException, InstantbankException, IOException, FinderException { 54 Long companyId; 55 Long downloadId; 56 String xml = null; 57 58 companyId = (Long)session.getAttribute("companyId"); 59 downloadId = new Long(request.getParameter("downloadId")); 60 xml = services.distributeDownload(downloadId, companyId); 61 request.setAttribute("data", xml); 62 ServletContext sc = getServletConfig().getServletContext(); 63 RequestDispatcher rd = sc.getRequestDispatcher("/collectionsQueuing_web/DistributeDownloadView.jsp?title=Distribute Download Result"); 64 rd.forward(request, response); 65 } 66 67 68 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 69 doPost(request, response); 70 } 71 72 73 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 74 String action = ""; 75 com.instantbank.collections.util.FilterChain chain; 76 77 try { 78 action = request.getParameter("action"); 79 session = request.getSession(false); 80 session.setAttribute("hasException", "0"); 81 try { 82 chain = new com.instantbank.collections.util.FilterChain(true, getServletConfig().getServletContext()); 83 if(chain.processFilter(request, response)) { 84 return; 85 } 86 if(action.equals("preview")) { 87 preview(request, response); 88 } 89 else if(action.equals("searchPreview")) { 90 searchPreview(request, response); 91 } 92 else if(action.equals("generate")) { 93 generate(request, response); 94 } 95 else if(action.equals("distribute")) { 96 distribute(request, response); 97 } 98 else if(action.equals("previewDownload")) { 99 previewDownload(request, response); 100 } 101 else if(action.equals("generateDownload")) { 102 generateDownload(request, response); 103 } 104 else if(action.equals("distributeDownload")) { 105 distributeDownload(request, response); 106 } 107 else { 108 throw new InstantbankException("112001", "Action " + action + " not supported"); 109 } 110 } 111 catch(Exception e) { 112 throw new InstantbankException(e, "112002", "Failed to execute controller action " + action + " (" + debug + ")"); 113 } 114 } 115 catch(InstantbankException e) { 116 session.setAttribute("hasException", "1"); 117 session.setAttribute("Exception", e); 118 if(response.isCommitted()) { 119 return; 120 } 121 response.sendRedirect("../main_web/ControllerError.jsp?showTechnical=0"); 122 } 123 } 124 125 126 private void generate(HttpServletRequest request, HttpServletResponse response) throws ServletException, InstantbankException, IOException, FinderException { 127 Long companyId; 128 Long queue; 129 String xml = null; 130 131 companyId = (Long)session.getAttribute("companyId"); 132 queue = new Long(request.getParameter("queueId")); 133 xml = services.generateWork(queue, companyId); 134 request.setAttribute("data", xml); 135 ServletContext sc = getServletConfig().getServletContext(); 136 RequestDispatcher rd = sc.getRequestDispatcher("/collectionsQueuing_web/GenerateWorkView.jsp?title=Generate Work Result"); 137 rd.forward(request, response); 138 } 139 140 141 private void generateDownload(HttpServletRequest request, HttpServletResponse response) throws ServletException, InstantbankException, IOException, FinderException { 142 Long companyId; 143 Long downloadId; 144 String xml = null; 145 146 companyId = (Long)session.getAttribute("companyId"); 147 downloadId = new Long(request.getParameter("downloadId")); 148 xml = services.generateDownload(downloadId, companyId); 149 request.setAttribute("data", xml); 150 ServletContext sc = getServletConfig().getServletContext(); 151 RequestDispatcher rd = sc.getRequestDispatcher("/collectionsQueuing_web/GenerateDownloadView.jsp?title=Generate Download Result"); 152 rd.forward(request, response); 153 } 154 155 156 private void preview(HttpServletRequest request, HttpServletResponse response) throws ServletException, InstantbankException, IOException, FinderException { 157 Long companyId; 158 Long queue; 159 Long maxRows; 160 Boolean isAttr = new Boolean(false); 161 String attr = ""; 162 163 Enumeration AttributeNames = request.getAttributeNames(); 164 while(AttributeNames.hasMoreElements()) { 165 attr = (String)AttributeNames.nextElement(); 166 if(attr.equals("maxRows")) { 167 isAttr = new Boolean(true); 168 } 169 } 170 171 companyId = (Long)session.getAttribute("companyId"); 172 queue = new Long(request.getParameter("queueId")); 173 174 if(isAttr.equals(new Boolean(false))) { 175 maxRows = services.getRowsQueueAccounts(queue, companyId); 176 } 177 else { 178 maxRows = new Long((String)request.getAttribute("maxRows")); 179 } 180 181 showPage(request, response, maxRows); 182 } 183 184 185 private void previewDownload(HttpServletRequest request, HttpServletResponse response) throws ServletException, InstantbankException, IOException, FinderException { 186 Long companyId; 187 Long downloadId; 188 String xml = null; 189 190 companyId = (Long)session.getAttribute("companyId"); 191 downloadId = new Long(request.getParameter("downloadId")); 192 xml = services.getDownloadAccounts(downloadId, companyId); 193 request.setAttribute("data", xml); 194 ServletContext sc = getServletConfig().getServletContext(); 195 RequestDispatcher rd = sc.getRequestDispatcher("/collectionsQueuing_web/PreviewDownload.jsp?title=Preview Download Accounts"); 196 rd.forward(request, response); 197 } 198 199 200 private void searchPreview(HttpServletRequest request, HttpServletResponse response) throws InstantbankException, ServletException, IOException { 201 Long rowNum; 202 Long queueId; 203 Long maxRows; 204 rowNum = new Long((String)request.getParameter("rowNum")); 205 queueId = new Long((String)request.getParameter("queueId")); 206 maxRows = new Long((String)request.getParameter("maxRows")); 207 response.sendRedirect("/Instantbank/collectionsQueuing_web/CollectionsQueuingDispatcher.jsp?useCase=PreviewWorkGenerated&rowNum=" + rowNum + "&queueId=" + queueId + "&maxRows=" + maxRows); 208 } 209 210 211 private void showPage(HttpServletRequest request, HttpServletResponse response, Long maxRows) throws InstantbankException, ServletException, IOException { 212 String attr = ""; 213 Long companyId; 214 Long queue; 215 String xml = null; 216 Long rowNum; 217 Boolean isAttr = new Boolean(false); 218 219 Enumeration AttributeNames = request.getAttributeNames(); 220 while(AttributeNames.hasMoreElements()) { 221 attr = (String)AttributeNames.nextElement(); 222 if(attr.equals("rowNum")) { 223 isAttr = new Boolean(true); 224 } 225 } 226 227 if(isAttr.equals(new Boolean(false))) { 228 rowNum = new Long("1"); 229 } 230 else { 231 rowNum = new Long((String)request.getAttribute("rowNum")); 232 } 233 234 companyId = (Long)session.getAttribute("companyId"); 235 queue = new Long(request.getParameter("queueId")); 236 xml = services.getQueueAccounts(queue, companyId, rowNum); 237 request.setAttribute("queueId", queue); 238 request.setAttribute("rowNum", rowNum); 239 request.setAttribute("maxRows", maxRows); 240 request.setAttribute("data", xml); 241 ServletContext sc = getServletConfig().getServletContext(); 242 RequestDispatcher rd = sc.getRequestDispatcher("/collectionsQueuing_web/PreviewWork.jsp?title=Preview Work Generated"); 243 rd.forward(request, response); 244 } 245 246 247 public String getServletInfo() { 248 return "com.instantbank.collections.collectionsQueuing.web.CollectionsQueuingController Information"; 249 } 250 } 251 252