/** * Process the specified HTTP request, and create the corresponding HTTP response (or forward to * another web component that will create it). Return an <code>ActionForward</code> instance * describing where and how control should be forwarded, or <code>null</code> if the response has * already been completed. * * @param mapping The ActionMapping used to select this instance * @param form The optional ActionForm bean for this request (if any) * @param request The HTTP request we are processing * @param response The HTTP response we are creating * @exception Exception if business logic throws an exception */ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // Extract attributes we will need MessageResources messages = getResources(request); // save errors ActionMessages errors = new ActionMessages(); // START check for login (security) if (!SecurityService.getInstance().checkForLogin(request.getSession(false))) { return (mapping.findForward("welcome")); } // END check for login (security) // START get id of current project from either request, attribute, or cookie // id of project from request String projectId = null; projectId = request.getParameter("projectViewId"); // check attribute in request if (projectId == null) { projectId = (String) request.getAttribute("projectViewId"); } // id of project from cookie if (projectId == null) { projectId = StandardCode.getInstance().getCookie("projectViewId", request.getCookies()); } // default project to last if not in request or cookie if (projectId == null) { java.util.List results = ProjectService.getInstance().getProjectList(); ListIterator iterScroll = null; for (iterScroll = results.listIterator(); iterScroll.hasNext(); iterScroll.next()) {} iterScroll.previous(); Project p = (Project) iterScroll.next(); projectId = String.valueOf(p.getProjectId()); } Integer id = Integer.valueOf(projectId); // END get id of current project from either request, attribute, or cookie // get project Project p = ProjectService.getInstance().getSingleProject(id); // get user (project manager) User u = UserService.getInstance() .getSingleUserRealName( StandardCode.getInstance().getFirstName(p.getPm()), StandardCode.getInstance().getLastName(p.getPm())); // START process pdf try { PdfReader reader = new PdfReader("C://templates/CL01_001.pdf"); // the template // save the pdf in memory ByteArrayOutputStream pdfStream = new ByteArrayOutputStream(); // the filled-in pdf PdfStamper stamp = new PdfStamper(reader, pdfStream); // stamp.setEncryption(true, "pass", "pass", PdfWriter.AllowCopy | PdfWriter.AllowPrinting); AcroFields form1 = stamp.getAcroFields(); Date cDate = new Date(); Integer month = cDate.getMonth(); Integer day = cDate.getDate(); Integer year = cDate.getYear() + 1900; String[] monthName = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; // set the field values in the pdf form // form1.setField("", projectId) form1.setField("currentdate", monthName[month] + " " + day + ", " + year); form1.setField( "firstname", StandardCode.getInstance().noNull(p.getContact().getFirst_name())); form1.setField("pm", p.getPm()); form1.setField("emailpm", u.getWorkEmail1()); if (u.getWorkPhoneEx() != null && u.getWorkPhoneEx().length() > 0) { // ext present form1.setField( "phonepm", StandardCode.getInstance().noNull(u.getWorkPhone()) + " ext " + StandardCode.getInstance().noNull(u.getWorkPhoneEx())); } else { // no ext present form1.setField("phonepm", StandardCode.getInstance().noNull(u.getWorkPhone())); } form1.setField("faxpm", StandardCode.getInstance().noNull(u.getLocation().getFax_number())); form1.setField("postalpm", StandardCode.getInstance().printLocation(u.getLocation())); // START add images // if(u.getPicture() != null && u.getPicture().length() > 0) { // PdfContentByte over; // Image img = Image.getInstance("C:/Program Files (x86)/Apache Software // Foundation/Tomcat 7.0/webapps/logo/images/" + u.getPicture()); // img.setAbsolutePosition(200, 200); // over = stamp.getOverContent(1); // over.addImage(img, 54, 0,0, 65, 47, 493); // } // END add images form1.setField("productname", StandardCode.getInstance().noNull(p.getProduct())); form1.setField("project", p.getNumber() + p.getCompany().getCompany_code()); form1.setField("description", StandardCode.getInstance().noNull(p.getProductDescription())); form1.setField("additional", p.getProjectRequirements()); // get sources and targets StringBuffer sources = new StringBuffer(""); StringBuffer targets = new StringBuffer(""); if (p.getSourceDocs() != null) { for (Iterator iterSource = p.getSourceDocs().iterator(); iterSource.hasNext(); ) { SourceDoc sd = (SourceDoc) iterSource.next(); sources.append(sd.getLanguage() + " "); if (sd.getTargetDocs() != null) { for (Iterator iterTarget = sd.getTargetDocs().iterator(); iterTarget.hasNext(); ) { TargetDoc td = (TargetDoc) iterTarget.next(); if (!td.getLanguage().equals("All")) targets.append(td.getLanguage() + " "); } } } } form1.setField("source", sources.toString()); form1.setField("target", targets.toString()); form1.setField( "start", (p.getStartDate() != null) ? DateFormat.getDateInstance(DateFormat.SHORT).format(p.getStartDate()) : ""); form1.setField( "due", (p.getDueDate() != null) ? DateFormat.getDateInstance(DateFormat.SHORT).format(p.getDueDate()) : ""); if (p.getCompany().getCcurrency().equalsIgnoreCase("USD")) { form1.setField( "cost", (p.getProjectAmount() != null) ? "$ " + StandardCode.getInstance().formatDouble(p.getProjectAmount()) : ""); } else { form1.setField( "cost", (p.getProjectAmount() != null) ? "€ " + StandardCode.getInstance() .formatDouble(p.getProjectAmount() / p.getEuroToUsdExchangeRate()) : ""); } // stamp.setFormFlattening(true); stamp.close(); // write to client (web browser) response.setHeader( "Content-disposition", "attachment; filename=" + p.getNumber() + p.getCompany().getCompany_code() + "-Order-Confirmation" + ".pdf"); OutputStream os = response.getOutputStream(); pdfStream.writeTo(os); os.flush(); } catch (Exception e) { System.err.println("PDF Exception:" + e.getMessage()); throw new RuntimeException(e); } // END process pdf // Forward control to the specified success URI return (mapping.findForward("Success")); }
/** * Process the specified HTTP request, and create the corresponding HTTP response (or forward to * another web component that will create it). Return an <code>ActionForward</code> instance * describing where and how control should be forwarded, or <code>null</code> if the response has * already been completed. * * @param mapping The ActionMapping used to select this instance * @param form The optional ActionForm bean for this request (if any) * @param request The HTTP request we are processing * @param response The HTTP response we are creating * @exception Exception if business logic throws an exception */ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // Extract attributes we will need MessageResources messages = getResources(request); // save errors ActionMessages errors = new ActionMessages(); // START check for login (security) if (!SecurityService.getInstance().checkForLogin(request.getSession(false))) { return (mapping.findForward("welcome")); } // END check for login (security) // values for adding a new target Doc DynaValidatorForm qvgate1 = (DynaValidatorForm) form; String[] targets = (String[]) qvgate1.get("targets"); String all = (String) qvgate1.get("all"); // the all languages box String engPrelim = (String) qvgate1.get("engPrelim"); String engOther = (String) qvgate1.get("engOther"); String engVerification = (String) qvgate1.get("engVerification"); String engQA = (String) qvgate1.get("engQA"); String engPrep = (String) qvgate1.get("engPrep"); String engFunct = (String) qvgate1.get("engFunct"); String engEng = (String) qvgate1.get("engEng"); String engFinalQA = (String) qvgate1.get("engFinalQA"); String engFinal = (String) qvgate1.get("engFinal"); String eng0 = (String) (qvgate1.get("eng0")); String eng1 = (String) (qvgate1.get("eng1")); String eng2 = (String) (qvgate1.get("eng2")); String eng3 = (String) (qvgate1.get("eng3")); String eng4 = (String) (qvgate1.get("eng4")); String eng5 = (String) (qvgate1.get("eng5")); String eng6 = (String) (qvgate1.get("eng6")); String eng7 = (String) (qvgate1.get("eng7")); String eng8 = (String) (qvgate1.get("eng8")); String[] engTaskOptions = ProjectService.getInstance().getEngTaskOptions(); // get the user's chosen source array for later use in case new target "new" needs to be created HttpSession session = request.getSession(false); SourceDoc[] sources = (SourceDoc[]) session.getAttribute("sourceArray"); if (!all.equals("on")) { // if specific to only a few targets // for each target, add the new target to db and each target's new engineering tasks selected // from form for (int i = 0; i < targets.length; i++) { Set engTasks = new HashSet(); // list of new engTasks // need target doc and source doc to add tasks to it TargetDoc td = ProjectService.getInstance().getSingleTargetDoc(Integer.valueOf(targets[i])); SourceDoc sd = td.getSourceDoc(); if (eng1.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[1 - 1]); et.setOrderNum(new Integer(1)); engTasks.add(et); } if (eng2.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[2 - 1]); et.setOrderNum(new Integer(2)); engTasks.add(et); } if (eng3.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[3 - 1]); et.setOrderNum(new Integer(3)); engTasks.add(et); } if (eng4.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[4 - 1]); et.setOrderNum(new Integer(4)); engTasks.add(et); } if (eng5.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[5 - 1]); et.setOrderNum(new Integer(5)); engTasks.add(et); } if (eng6.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[6 - 1]); et.setOrderNum(new Integer(6)); engTasks.add(et); } if (eng7.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[7 - 1]); et.setOrderNum(new Integer(7)); engTasks.add(et); } if (eng8.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setNotes((String) (qvgate1.get("engOtherText"))); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[8 - 1]); et.setOrderNum(new Integer(8)); engTasks.add(et); } // for each EngTask, add it to db and link it to this targetDoc for (Iterator iter = engTasks.iterator(); iter.hasNext(); ) { EngTask et = (EngTask) iter.next(); // link this engTask to the targetDoc; add new engTask to db Integer z = ProjectService.getInstance().linkTargetDocEngTask(td, et); } } } // end if all.equals("on") else { // add tasks to all targets (actually a single "all" target) // for each source, add the new target to db and each target's new engineering tasks selected // from form for (int i = 0; i < sources.length; i++) { Set engTasks = new HashSet(); // list of new engTasks // target language's new object TargetDoc td = new TargetDoc(new HashSet(), new HashSet(), new HashSet(), new HashSet()); td.setLanguage("All"); SourceDoc sd = sources[i]; // link this target Doc to the source Doc; add new target Doc to db Integer x = ProjectService.getInstance().linkSourceDocTargetDoc(sd, td); if (eng1.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[1 - 1]); et.setOrderNum(new Integer(1)); engTasks.add(et); } if (eng2.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[2 - 1]); et.setOrderNum(new Integer(2)); engTasks.add(et); } if (eng3.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[3 - 1]); et.setOrderNum(new Integer(3)); engTasks.add(et); } if (eng4.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[4 - 1]); et.setOrderNum(new Integer(4)); engTasks.add(et); } if (eng5.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[5 - 1]); et.setOrderNum(new Integer(5)); engTasks.add(et); } if (eng6.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[6 - 1]); et.setOrderNum(new Integer(6)); engTasks.add(et); } if (eng7.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[7 - 1]); et.setOrderNum(new Integer(7)); engTasks.add(et); } if (eng8.equals("on")) { // if checked in form, then add this task to target Doc EngTask et = new EngTask(); et.setNotes((String) (qvgate1.get("engOtherText"))); et.setSourceLanguage(sd.getLanguage()); et.setTargetLanguage(td.getLanguage()); et.setPostQuote("true"); et.setTargetDoc(td); et.setTaskName(engTaskOptions[8 - 1]); et.setOrderNum(new Integer(8)); engTasks.add(et); } // for each EngTask, add it to db and link it to this targetDoc for (Iterator iter = engTasks.iterator(); iter.hasNext(); ) { EngTask et = (EngTask) iter.next(); // link this engTask to the targetDoc; add new engTask to db Integer z = ProjectService.getInstance().linkTargetDocEngTask(td, et); } } } // end else (new target per source with tasks) // Forward control to the specified success URI return (mapping.findForward("Success")); }