1 19 package org.openbravo.erpCommon.utility; 20 21 import org.openbravo.base.secureApp.*; 22 import java.io.*; 23 import javax.servlet.*; 24 import javax.servlet.http.*; 25 import org.openbravo.utils.FormatUtilities; 26 27 28 public class ReferencedLink extends HttpSecureAppServlet { 29 30 31 public void init (ServletConfig config) { 32 super.init(config); 33 boolHist = false; 34 } 35 36 public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { 37 VariablesSecureApp vars = new VariablesSecureApp(request); 38 39 if (vars.commandIn("DEFAULT")) { 40 41 42 String strKeyReferenceColumnName = vars.getRequiredStringParameter("inpKeyReferenceColumnName"); 43 String strTableReferenceId = vars.getRequiredStringParameter("inpTableReferenceId"); 46 String strKeyReferenceId = vars.getStringParameter("inpKeyReferenceId"); 47 String strWindowId = vars.getStringParameter("inpwindowId"); 49 String strTableName = ReferencedLinkData.selectTableName(this, strTableReferenceId); 50 boolean isSOTrx = true; 51 52 if (log4j.isDebugEnabled()) log4j.debug("strKeyReferenceColumnName:"+strKeyReferenceColumnName+" strTableReferenceId:"+strTableReferenceId+" strKeyReferenceId:"+strKeyReferenceId+" strWindowId:"+strWindowId+" strTableName:"+strTableName); 53 { 54 ReferencedTables ref = new ReferencedTables(this, strTableReferenceId, strKeyReferenceColumnName, strKeyReferenceId); 55 if (!ref.hasSOTrx()) isSOTrx = (Utility.getContext(this, vars, "IsSOTrx", strWindowId).equals("N")?false:true); 56 else isSOTrx = ref.isSOTrx(); 57 ref=null; 58 } 59 { 60 String strTableRealReference = strTableReferenceId; 61 if (strTableReferenceId.equals("800018")) { if (ReferencedTablesData.selectKeyId(this, "C_INVOICE_ID", strTableName, strKeyReferenceColumnName, strKeyReferenceId).equals("")) { 63 if (!ReferencedTablesData.selectKeyId(this, "C_ORDER_ID", strTableName, strKeyReferenceColumnName, strKeyReferenceId).equals("")) { 64 strTableRealReference = ReferencedTablesData.selectTableId(this, "C_Order"); 65 }else { 66 strTableRealReference = ReferencedTablesData.selectTableId(this, "C_Settlement"); 67 strTableReferenceId = "800021"; 68 } 69 } 70 } 71 ReferencedLinkData[] data = ReferencedLinkData.selectWindows(this, strTableRealReference); 72 if (data==null || data.length==0) throw new ServletException("Window not found"); 73 74 strWindowId = data[0].adWindowId; 75 if (!isSOTrx && !data[0].poWindowId.equals("")) strWindowId = data[0].poWindowId; 76 } 77 ReferencedLinkData[] data = ReferencedLinkData.select(this, strWindowId, strTableReferenceId); 78 if (data == null || data.length==0) throw new ServletException("Window not found: " + strWindowId); 79 String windowName = data[0].windowname; 80 String tabName = data[0].tabname; 81 if (strKeyReferenceId.equals("")) { 82 data = ReferencedLinkData.selectParent(this, strWindowId); 83 if (data == null || data.length==0) throw new ServletException("Window parent not found: " + strWindowId); 84 windowName = data[0].windowname; 85 tabName = data[0].tabname; 86 } 87 StringBuffer cadena = new StringBuffer (); 88 cadena.append(strDireccion).append("/").append(FormatUtilities.replace(windowName)).append("/").append(FormatUtilities.replace(tabName)); 89 cadena.append("_Edition.html?Command=").append((strKeyReferenceId.equals("")?"DEFAULT":"DIRECT")).append("&"); 90 cadena.append("inpDirectKey").append("=").append(strKeyReferenceId); 91 if (log4j.isDebugEnabled()) log4j.debug(cadena.toString()); 92 response.sendRedirect(cadena.toString()); 93 } else throw new ServletException(); 94 } 95 96 public String getServletInfo() { 97 return "Servlet that presents the referenced links"; 98 } } 100 | Popular Tags |