1 19 package org.openbravo.erpCommon.ad_actionButton; 20 21 import org.openbravo.erpCommon.utility.SequenceIdData; 22 import org.openbravo.erpCommon.utility.Utility; 23 import org.openbravo.utils.FormatUtilities; 24 import org.openbravo.base.secureApp.HttpSecureAppServlet; 25 import org.openbravo.base.secureApp.VariablesSecureApp; 26 import org.openbravo.xmlEngine.XmlDocument; 27 import java.io.*; 28 import javax.servlet.*; 29 import javax.servlet.http.*; 30 31 import java.sql.Connection ; 33 34 35 public class ProjectCopyFrom extends HttpSecureAppServlet { 36 37 38 public void init (ServletConfig config) { 39 super.init(config); 40 boolHist = false; 41 } 42 43 public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { 44 VariablesSecureApp vars = new VariablesSecureApp(request); 45 46 if (vars.commandIn("DEFAULT")) { 47 String strProcessId = vars.getStringParameter("inpProcessId"); 48 String strWindow = vars.getStringParameter("inpwindowId"); 49 String strTab = vars.getStringParameter("inpTabId"); 50 String strProject = vars.getStringParameter("inpProject", ""); 51 String strKey = vars.getRequiredGlobalVariable("inpcProjectId", strWindow + "|C_Project_ID"); 52 printPage(response, vars, strKey, strProject, strWindow, strTab, strProcessId); 53 } else if (vars.commandIn("SAVE")) { 54 String strWindow = vars.getStringParameter("inpwindowId"); 55 String strProject = vars.getStringParameter("inpProject"); 56 String strKey = vars.getRequestGlobalVariable("inpcProjectId", strWindow + "|C_Project_ID"); 57 String strTab = vars.getStringParameter("inpTabId"); 58 ActionButtonDefaultData[] tab = ActionButtonDefaultData.windowName(this, strTab); 59 String strWindowPath="", strTabName=""; 60 if (tab!=null && tab.length!=0) { 61 strTabName = FormatUtilities.replace(tab[0].name); 62 strWindowPath = "../" + FormatUtilities.replace(tab[0].description) + "/" + strTabName + "_Relation.html"; 63 } else strWindowPath = strDefaultServlet; 64 String messageResult = processButton(vars, strKey, strProject, strWindow); 65 vars.setSessionValue(strWindow + "|" + strTabName + ".message", messageResult); 66 printPageClosePopUp(response, vars, strWindowPath); 67 } else pageErrorPopUp(response); 68 } 69 70 71 String processButton(VariablesSecureApp vars, String strKey, String strProject, String windowId) { 72 Connection conn = null; 73 try { 74 conn = this.getTransactionConnection(); 75 String projectCategory = ProjectCopyFromData.selectProjectCategory(this, strKey); 76 if (projectCategory.equals("S")){ 77 ProjectCopyFromData[] data = ProjectCopyFromData.select(this, strProject); 78 ProjectSetTypeData[] dataProject = ProjectSetTypeData.selectProject(this, strKey); 79 String strProjectPhase = ""; 80 String strProjectTask = ""; 81 for (int i=0;data!=null && i<data.length;i++){ 82 strProjectPhase = SequenceIdData.getSequence(this, "C_ProjectPhase", dataProject[0].adClientId); 83 if (!ProjectCopyFromData.hasPhase(this, strKey, data[i].cPhaseId)) if (ProjectCopyFromData.insertProjectPhase(conn, this, strKey, dataProject[0].adClientId, dataProject[0].adOrgId, vars.getUser(), data[i].description, data[i].mProductId, data[i].cPhaseId, strProjectPhase, data[i].help, data[i].name, data[i].qty, data[i].seqno)==1){ 84 ProjectCopyFromData[] data1 = ProjectCopyFromData.selectTask(this, data[i].cProjectphaseId); 85 for (int j=0;data1!=null && j<data1.length;j++){ 86 strProjectTask = SequenceIdData.getSequence(this, "C_ProjectTask", dataProject[0].adClientId); 87 ProjectCopyFromData.insertProjectTask(conn, this,strProjectTask,data1[j].cTaskId, dataProject[0].adClientId, dataProject[0].adOrgId, vars.getUser(), data1[j].seqno, data1[j].name,data1[j].description, data1[j].help, data1[j].mProductId, strProjectPhase, data1[j].qty); 88 } 89 } 90 } 91 }else { 92 String strProjectLine = SequenceIdData.getSequence(this, "C_ProjectLine", vars.getClient()); 93 ProjectCopyFromData.insertProjectLine(conn, this, strProjectLine, vars.getClient(), vars.getOrg(), vars.getUser(), strKey, strProject); 94 } 95 String strProjectType = ProjectCopyFromData.selectProjectType(this, strProject); 96 String strProjectCategory = ProjectSetTypeData.selectProjectCategory(this, strProjectType); 97 ProjectSetTypeData.update(conn, this, vars.getUser(), strProjectType, strProjectCategory, strKey); 98 99 releaseCommitConnection(conn); 100 return Utility.messageBD(this, "ProcessOK", vars.getLanguage()); 101 } catch (Exception e) { 102 try { 103 releaseRollbackConnection(conn); 104 } catch (Exception ignored) {} 105 e.printStackTrace(); 106 log4j.warn("Rollback in transaction"); 107 return Utility.messageBD(this, "ProcessRunError", vars.getLanguage()); 108 } 109 } 110 111 112 void printPage(HttpServletResponse response, VariablesSecureApp vars, String strKey, String strProject, String windowId, String strTab, String strProcessId) 113 throws IOException, ServletException { 114 if (log4j.isDebugEnabled()) log4j.debug("Output: Button process Project set Type"); 115 116 ActionButtonDefaultData[] data = null; 117 String strHelp="", strDescription=""; 118 if (vars.getLanguage().equals("en_US")) data = ActionButtonDefaultData.select(this, strProcessId); 119 else data = ActionButtonDefaultData.selectLanguage(this, vars.getLanguage(), strProcessId); 120 121 if (data!=null && data.length!=0) { 122 strDescription = data[0].description; 123 strHelp = data[0].help; 124 } 125 String [] discard = {""}; 126 if (strHelp.equals("")) discard[0] = new String ("helpDiscard"); 127 XmlDocument xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_actionButton/ProjectCopyFrom", discard).createXmlDocument(); 128 xmlDocument.setParameter("key", strKey); 129 xmlDocument.setParameter("window", windowId); 130 xmlDocument.setParameter("tab", strTab); 131 xmlDocument.setParameter("language", "LNG_POR_DEFECTO=\"" + vars.getLanguage() + "\";"); 132 xmlDocument.setParameter("question", Utility.messageBD(this, "StartProcess?", vars.getLanguage())); 133 xmlDocument.setParameter("direction", "var baseDirection = \"" + strReplaceWith + "/\";\n"); 134 xmlDocument.setParameter("description", strDescription); 135 xmlDocument.setParameter("help", strHelp); 136 137 xmlDocument.setData("reportcProjectId", "liststructure", ProjectCopyFromData.selectC_Project_ID(this, Utility.getContext(this, vars, "#User_Org", ""), Utility.getContext(this, vars, "#User_Client", ""), strKey)); 138 xmlDocument.setParameter("Project", strProject); 139 140 response.setContentType("text/html; charset=UTF-8"); 141 PrintWriter out = response.getWriter(); 142 out.println(xmlDocument.print()); 143 out.close(); 144 } 145 146 public String getServletInfo() { 147 return "Servlet Project set Type"; 148 } } 150 151 | Popular Tags |