private void doList() { System.out.printf("%-3s %-20s %-10s %-10s %-40s\n", "No", "Title", "Start", "End", "Members"); Project project = null; for (int i = 0; i < projects.size(); i++) { project = projects.get(i); if (project == null) // 배열의 항목이 null인 경우, 다음 항목으로 바로 이동. continue; System.out.printf( "% 3d %-20s %3$tY-%3$tm-%3$td %4$s %5$-40s\n", i, project.getTitle(), project.getStartDate(), project.getEndDate(), project.getMember()); } }
// ---------------------------------------------------------------// public int editProject(Project project, Connection conn) throws SQLException { PreparedStatement prepStmt = null; int rtrn = -1; java.util.Date date = new java.util.Date(); Timestamp currentdate = new Timestamp(date.getTime()); conn = select(); String sql = "UPDATE PROJECTS SET PROJ_NAME=?,MODIFIED_AT=?,MODIFIED_BY=?,PROJ_ACTIVE=?,PROJ_BUDGET=?,PROJ_DEADLINE=?,PROJ_DESCRIPTION=?,PROJ_FROM=?,PROJ_TYPE=?,PROJ_TO=?,CUST_ID=?,ROWVERSION=ROWVERSION+1" + "WHERE PROJ_ID=?"; prepStmt = conn.prepareStatement(sql); prepStmt.setString(1, project.getName()); prepStmt.setTimestamp(2, currentdate); prepStmt.setString(3, project.getModified_by()); if (project.isActive()) prepStmt.setString(4, "Y"); else prepStmt.setString(4, "N"); if (project.getBudget() != -1) prepStmt.setFloat(5, project.getBudget()); else prepStmt.setInt(5, 0); if (project.getNextDeadline() == null) prepStmt.setDate(6, null); else prepStmt.setDate(6, new java.sql.Date(project.getNextDeadline().getTime())); prepStmt.setString(7, project.getDescription()); prepStmt.setDate(8, new java.sql.Date(project.getStartDate().getTime())); prepStmt.setString(9, project.getProjectType()); if (project.getEndDate() == null) prepStmt.setDate(10, null); else prepStmt.setDate(10, new java.sql.Date(project.getEndDate().getTime())); prepStmt.setInt(11, project.getCustomerID()); prepStmt.setInt(12, project.getProjectID()); prepStmt.executeUpdate(); rtrn = project.getProjectID(); return rtrn; }
// ---------------------------------------------------------------// public int insertProject(Project project, Connection conn) throws SQLException { PreparedStatement prepStmt = null; int rtrn = -1; java.util.Date date = new java.util.Date(); Timestamp currentdate = new Timestamp(date.getTime()); conn = select(); String sql = "INSERT INTO PROJECTS(PROJ_ID,PROJ_NAME,INSERTED_AT,INSERTED_BY,MODIFIED_AT,MODIFIED_BY,PROJ_ACTIVE,PROJ_BUDGET,PROJ_DEADLINE,PROJ_DESCRIPTION,PROJ_FROM,PROJ_TYPE,PROJ_TO,CUST_ID,ROWVERSION)" + " VALUES(PROJ_SEQ.NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; String cols[] = {"PROJ_ID"}; prepStmt = conn.prepareStatement(sql, cols); prepStmt.setString(1, project.getName()); prepStmt.setTimestamp(2, currentdate); prepStmt.setString(3, project.getInserted_by()); prepStmt.setDate(4, null); prepStmt.setString(5, null); if (project.isActive()) prepStmt.setString(6, "Y"); else prepStmt.setString(6, "N"); if (project.getBudget() != -1) prepStmt.setFloat(7, project.getBudget()); else prepStmt.setInt(7, 0); if (project.getNextDeadline() == null) prepStmt.setDate(8, null); else prepStmt.setDate(8, new java.sql.Date(project.getNextDeadline().getTime())); prepStmt.setString(9, project.getDescription()); prepStmt.setDate(10, new java.sql.Date(project.getStartDate().getTime())); prepStmt.setString(11, project.getProjectType()); if (project.getEndDate() == null) prepStmt.setDate(12, null); else prepStmt.setDate(12, new java.sql.Date(project.getEndDate().getTime())); prepStmt.setInt(13, project.getCustomerID()); prepStmt.setInt(14, project.getRowversion()); prepStmt.executeUpdate(); ResultSet rs = prepStmt.getGeneratedKeys(); if (rs.next()) { rtrn = rs.getInt(1); } rs.close(); return rtrn; }
/** * 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")); }