1 19 package org.openbravo.erpCommon.ad_process; 20 21 import java.io.*; 22 import java.util.*; 23 import javax.servlet.*; 24 import javax.servlet.http.*; 25 import org.openbravo.base.secureApp.HttpSecureAppServlet; 26 import org.openbravo.base.secureApp.VariablesSecureApp; 27 import org.openbravo.erpCommon.ad_combos.*; 28 import org.openbravo.erpCommon.businessUtility.WindowTabs; 29 import org.openbravo.erpCommon.utility.*; 30 import org.openbravo.utils.Replace; 31 import org.openbravo.xmlEngine.XmlDocument; 32 33 34 import java.sql.Connection ; 36 37 public class ChangeOrderOrg extends HttpSecureAppServlet { 38 39 public void init (ServletConfig config) { 40 super.init(config); 41 boolHist = false; 42 } 43 44 public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { 45 VariablesSecureApp vars = new VariablesSecureApp(request); 46 47 if (!Utility.hasProcessAccess(this, vars, "", "C_Order_Reset")) { 48 bdError(response, "AccessTableNoView", vars.getLanguage()); 49 return; 50 } 51 52 if (vars.commandIn("DEFAULT")) { 53 String strBPartner = vars.getGlobalVariable("inpcBpartnerId", "ChangeOrderOrg.cBpartnerId", ""); 54 String strOrg = vars.getGlobalVariable("inpadOrgId", "ChangeOrderOrg.adOrgId", ""); 55 String strShipperpath = vars.getGlobalVariable("inpadShipperpathId", "ChangeOrderOrg.adShipperpathId", ""); 56 String strForcedOrg = vars.getGlobalVariable("inpadForcedOrgId", "ChangeOrderOrg.adForcedOrgId", ""); 57 String strPayment = vars.getGlobalVariable("inppaymentrule", "ChangeOrderOrg.paymentrule", ""); 58 60 printPage(response, vars, strBPartner, strOrg, strForcedOrg, "", strPayment, "", ""); 61 } else if (vars.commandIn("FIND")) { 62 String strBPartner = vars.getRequestGlobalVariable("inpcBpartnerId", "ChangeOrderOrg.cBpartnerId"); 63 String strOrg = vars.getRequestGlobalVariable("inpadOrgId", "ChangeOrderOrg.adOrgId"); 64 String strShipperpath = vars.getRequestGlobalVariable("inpadShipperpathId", "ChangeOrderOrg.adShipperpathId"); 65 String strForcedOrg = vars.getRequestGlobalVariable("inpadForcedOrgId", "ChangeOrderOrg.adForcedOrgId"); 66 String strPayment = vars.getRequestGlobalVariable("inppaymentrule", "ChangeOrderOrg.paymentrule"); 67 String strNewOrg = vars.getStringParameter("inpadOrgIdNew"); 68 String strTax = vars.getStringParameter("inpcTaxId"); 69 printPage(response, vars, strBPartner, strOrg, strForcedOrg, strShipperpath, strPayment, strNewOrg, strTax); 70 } else if (vars.commandIn("SAVE")) { 71 String strNewOrg = vars.getRequiredStringParameter("inpadOrgIdNew"); 72 String strTax = vars.getStringParameter("inpcTaxId"); 73 String strOrder = vars.getRequiredInParameter("inpcOrderId"); 74 String strMessage = processSave(vars, strOrder, strNewOrg, strTax); 75 if (!strMessage.equals("")) vars.setSessionValue("ChangeOrderOrg.message", strMessage); 76 response.sendRedirect(strDireccion + request.getServletPath()); 77 } else pageErrorPopUp(response); 78 } 79 80 String processSave(VariablesSecureApp vars, String strOrder, String strNewOrg, String strTax) { 81 if (log4j.isDebugEnabled()) log4j.debug("Save: ChangeOrderOrg "); 82 if (strOrder.equals("")) return ""; 83 Connection conn = null; 84 try { 85 conn = this.getTransactionConnection(); 86 if (strOrder.startsWith("(")) strOrder = strOrder.substring(1, strOrder.length()-1); 87 if (!strOrder.equals("")) { 88 strOrder = Replace.replace(strOrder, "'", ""); 89 StringTokenizer st = new StringTokenizer(strOrder, ",", false); 90 while (st.hasMoreTokens()) { 91 String strOrderId = st.nextToken(); 92 String StrDocBaseType = ChangeOrderOrgData.selectDocbasetype(this, strOrderId); 93 String StrDocSubTypeSo = ChangeOrderOrgData.selectDocsubtypeso(this, strOrderId); 94 String StrDocTypeID = ChangeOrderOrgData.selectDoctypeneworg(this, StrDocBaseType, StrDocSubTypeSo, strNewOrg); 95 String StrExistsShipment = ChangeOrderOrgData.selectExistsShipment(this, strOrderId); 96 if (ChangeOrderOrgData.checkRestrictions(conn, this, strOrderId)) { 97 releaseRollbackConnection(conn); 98 log4j.warn("The order is incorrect"); 99 return Utility.messageBD(this, "ProcessRunError", vars.getLanguage()); 100 } 101 boolean shouldDelete = ChangeOrderOrgData.shouldDeleteCashLine(conn, this, strOrderId); 102 ChangeOrderOrgData.resetOrder(conn, this, strOrderId); 103 ChangeOrderOrgData.updateDocAction(conn, this, vars.getUser(), strOrderId); 104 String pinstance = SequenceIdData.getSequence(this, "AD_PInstance", vars.getClient()); 105 ChangeOrderOrgData.insertPInstance(conn, this, pinstance, "104", strOrderId, vars.getUser(), vars.getClient(), vars.getOrg()); 106 ChangeOrderOrgData.processOrder(conn, this, pinstance); 107 ChangeOrderOrgData.updateLines(conn, this, strTax, vars.getUser(), strNewOrg, strOrderId); 108 ChangeOrderOrgData.update(conn, this, vars.getUser(), strNewOrg, StrDocTypeID, StrDocTypeID, strOrderId); 109 if (!StrExistsShipment.equals("0")) { 110 int i=0; 111 ChangeOrderOrgData[] shipmentsData = ChangeOrderOrgData.selectShipment(this, strOrderId); 112 for (i=0;i<shipmentsData.length;i++) { 113 ChangeOrderOrgData.updateProcessed(conn, this, vars.getUser(), shipmentsData[i].mInoutId); 114 String StrDocTypeIDShipment = ChangeOrderOrgData.cDocttypeshipment(this, StrDocTypeID); 115 String DocumentnoShipment = Utility.getDocumentNo(this, vars, "169", "M_Inout", StrDocTypeIDShipment, StrDocTypeIDShipment, false, true); 116 ChangeOrderOrgData.updateShipment(conn, this, vars.getUser(), DocumentnoShipment, StrDocTypeIDShipment, strNewOrg, shipmentsData[i].mInoutId); 117 ChangeOrderOrgData.updateShipmentlines(conn, this, vars.getUser(), strNewOrg, shipmentsData[i].mInoutId); 118 ChangeOrderOrgData.updateMtransaction(conn, this, strNewOrg, vars.getUser(), shipmentsData[i].mInoutId); 119 } 120 } 121 122 pinstance = SequenceIdData.getSequence(this, "AD_PInstance", vars.getClient()); 123 ChangeOrderOrgData.insertPInstance(conn, this, pinstance, "104", strOrderId, vars.getUser(), vars.getClient(), vars.getOrg()); 124 ChangeOrderOrgData.processOrder(conn, this, pinstance); 125 if (shouldDelete) ChangeOrderOrgData.deleteCashLine(conn, this, strOrderId); 126 } 127 } 128 releaseCommitConnection(conn); 129 } catch (Exception e) { 130 try { 131 releaseRollbackConnection(conn); 132 } catch (Exception ignored) {} 133 e.printStackTrace(); 134 log4j.warn("Rollback in transaction"); 135 return Utility.messageBD(this, "ProcessRunError", vars.getLanguage()); 136 } 137 return Utility.messageBD(this, "Success", vars.getLanguage()); 138 } 139 140 void printPage(HttpServletResponse response, VariablesSecureApp vars, String strBPartner, String strOrg, String strForcedOrg, String strShipperpath, String strPayment, String strNewOrg, String strTax) throws IOException, ServletException { 141 if (log4j.isDebugEnabled()) log4j.debug("Output: process ChangeOrderOrg"); 142 143 XmlDocument xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_process/ChangeOrderOrg").createXmlDocument(); 144 145 ToolBar toolbar = new ToolBar(this, vars.getLanguage(), "ChangeOrderOrg", false, "", "", "",false, "ad_process", strReplaceWith, false, true); 146 toolbar.prepareSimpleToolBarTemplate(); 147 xmlDocument.setParameter("toolbar", toolbar.toString()); 148 149 try { 150 KeyMap key = new KeyMap(this, vars, "ChangeOrderOrg.html"); 151 xmlDocument.setParameter("keyMap", key.getReportKeyMaps()); 152 } catch (Exception ex) { 153 throw new ServletException(ex); 154 } 155 try { 156 WindowTabs tabs = new WindowTabs(this, vars, "org.openbravo.erpCommon.ad_process.ChangeOrderOrg"); 157 xmlDocument.setParameter("parentTabContainer", tabs.parentTabs()); 158 xmlDocument.setParameter("mainTabContainer", tabs.mainTabs()); 159 xmlDocument.setParameter("childTabContainer", tabs.childTabs()); 160 xmlDocument.setParameter("theme", vars.getTheme()); 161 NavigationBar nav = new NavigationBar(this, vars.getLanguage(), "ChangeOrderOrg.html", classInfo.id, classInfo.type, strReplaceWith, tabs.breadcrumb()); 162 xmlDocument.setParameter("navigationBar", nav.toString()); 163 LeftTabsBar lBar = new LeftTabsBar(this, vars.getLanguage(), "ChangeOrderOrg.html", strReplaceWith); 164 xmlDocument.setParameter("leftTabs", lBar.manualTemplate()); 165 } catch (Exception ex) { 166 throw new ServletException(ex); 167 } 168 { 169 OBError myMessage = vars.getMessage("ChangeOrderOrg"); 170 vars.removeMessage("ChangeOrderOrg"); 171 if (myMessage!=null) { 172 xmlDocument.setParameter("messageType", myMessage.getType()); 173 xmlDocument.setParameter("messageTitle", myMessage.getTitle()); 174 xmlDocument.setParameter("messageMessage", myMessage.getMessage()); 175 } 176 } 177 178 xmlDocument.setParameter("language", "LNG_POR_DEFECTO=\"" + vars.getLanguage() + "\";"); 179 xmlDocument.setParameter("direction", "var baseDirection = \"" + strReplaceWith + "/\";\n"); 180 181 xmlDocument.setParameter("bpartner", strBPartner); 182 xmlDocument.setParameter("organization", strOrg); 183 xmlDocument.setParameter("forcedOrg", strForcedOrg); 184 xmlDocument.setParameter("paymentRule", strPayment); 185 xmlDocument.setParameter("organizationNew", strNewOrg); 186 xmlDocument.setParameter("shipperpath", strShipperpath); 187 xmlDocument.setParameter("tax", strTax); 188 xmlDocument.setParameter("bpartnerDes", ChangeOrderOrgData.selectBPartner(this, strBPartner)); 189 String strMessage = vars.getSessionValue("ChangeOrderOrg.message"); 190 if (!strMessage.equals("")) { 191 vars.removeSessionValue("ChangeOrderOrg.message"); 192 strMessage = "alert('" + Replace.replace(strMessage, "'", "\'") + "');"; 193 } 194 xmlDocument.setParameter("body", strMessage); 195 196 xmlDocument.setData("reportAD_Org_ID", "liststructure", OrganizationComboData.selectCombo(this, vars.getRole())); 197 xmlDocument.setData("reportAD_Org_IDNew", "liststructure", OrganizationComboData.selectCombo(this, vars.getRole())); 198 199 try { 200 ComboTableData comboTableData = new ComboTableData(vars, this, "TABLEDIR", "C_Tax_ID", "", "", Utility.getContext(this, vars, "#User_Org", "ChangeOrderOrg"), Utility.getContext(this, vars, "#User_Client", "ChangeOrderOrg"), 0); 201 Utility.fillSQLParameters(this, vars, null, comboTableData, "ChangeOrderOrg", strTax); 202 xmlDocument.setData("reportC_TAX_ID", "liststructure", comboTableData.select(false)); 203 comboTableData = null; 204 } catch (Exception ex) { 205 throw new ServletException(ex); 206 } 207 208 209 try { 210 ComboTableData comboTableData = new ComboTableData(vars, this, "TABLEDIR", "AD_Org_ID", "", "", Utility.getContext(this, vars, "#User_Org", "ChangeOrderOrg"), Utility.getContext(this, vars, "#User_Client", "ChangeOrderOrg"), 0); 211 Utility.fillSQLParameters(this, vars, null, comboTableData, "ChangeOrderOrg", strForcedOrg); 212 xmlDocument.setData("reportAD_Forced_Org_ID", "liststructure", comboTableData.select(false)); 213 comboTableData = null; 214 } catch (Exception ex) { 215 throw new ServletException(ex); 216 } 217 218 219 try { 220 ComboTableData comboTableData = new ComboTableData(vars, this, "TABLEDIR", "M_Warehouse_ID", "", "", Utility.getContext(this, vars, "#User_Org", "ChangeOrderOrg"), Utility.getContext(this, vars, "#User_Client","ChangeOrderOrg"), 0); 221 Utility.fillSQLParameters(this, vars, null, comboTableData, "ChangeOrderOrg", strShipperpath); 222 xmlDocument.setData("reportM_Warehouse_ID","liststructure", comboTableData.select(false)); 223 comboTableData = null; 224 } catch (Exception ex) { 225 throw new ServletException(ex); 226 } 227 228 try { 229 ComboTableData comboTableData = new ComboTableData(vars, this, "LIST", "", "All_Payment Rule", "", Utility.getContext(this, vars, "#User_Org", "ChangeOrderOrg"), Utility.getContext(this, vars, "#User_Client","ChangeOrderOrg"), 0); 230 Utility.fillSQLParameters(this, vars, null, comboTableData, "ChangeOrderOrg", ""); 231 xmlDocument.setData("reportPaymentRule","liststructure", comboTableData.select(false)); 232 comboTableData = null; 233 } catch (Exception ex) { 234 throw new ServletException(ex); 235 } 236 237 238 if (vars.commandIn("DEFAULT") && strBPartner.equals("") && strOrg.equals("")) { 239 xmlDocument.setData("structure1", new ChangeOrderOrgData[0]); 240 } else { 241 xmlDocument.setData("structure1", ChangeOrderOrgData.select(this, vars.getLanguage(), Utility.getContext(this, vars, "#User_Client", "ChangeOrderOrg"), Utility.getContext(this, vars, "#User_Org", "ChangeOrderOrg"), strBPartner, strOrg, strForcedOrg, strPayment, strShipperpath)); 242 } 243 244 response.setContentType("text/html; charset=UTF-8"); 245 PrintWriter out = response.getWriter(); 246 out.println(xmlDocument.print()); 247 out.close(); 248 } 249 250 public String getServletInfo() { 251 return "Servlet ChangeOrderOrg"; 252 } } 254 255
| Popular Tags
|