1 19 20 package org.openbravo.erpCommon.ad_forms; 21 22 import org.openbravo.erpCommon.utility.ToolBar; 23 24 import org.openbravo.erpCommon.utility.*; 25 import org.openbravo.erpCommon.reference.*; 26 import org.openbravo.erpCommon.businessUtility.WindowTabs; 27 import org.openbravo.erpCommon.businessUtility.Tree; 28 import org.openbravo.base.secureApp.HttpSecureAppServlet; 29 import org.openbravo.base.secureApp.VariablesSecureApp; 30 import org.openbravo.xmlEngine.XmlDocument; 31 import java.io.*; 32 import javax.servlet.*; 33 import java.util.*; 34 import javax.servlet.http.*; 35 36 import org.openbravo.utils.Replace; 37 38 import java.sql.Connection ; 40 41 import org.openbravo.erpCommon.utility.DateTimeData; 42 43 import org.openbravo.erpCommon.utility.ComboTableData; 44 45 public class MaterialReceiptPending extends HttpSecureAppServlet { 46 47 static int total = 0; 48 49 public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { 50 VariablesSecureApp vars = new VariablesSecureApp(request); 51 52 if (!Utility.hasFormAccess(this, vars, "", "org.openbravo.erpCommon.ad_forms.MaterialReceiptPending")) { 53 bdError(response, "AccessTableNoView", vars.getLanguage()); 54 return; 55 } 56 57 if (vars.commandIn("DEFAULT")) { 58 String strDateFrom = vars.getGlobalVariable("inpDateFrom", "MaterialReceiptPending|DateFrom", ""); 59 String strDateTo = vars.getGlobalVariable("inpDateTo", "MaterialReceiptPending|DateTo", ""); 60 String strC_BPartner_ID = vars.getGlobalVariable("inpcBpartnerId", "MaterialReceiptPending|C_BPartner_ID", ""); 61 String strAD_Org_ID = vars.getGlobalVariable("inpadOrgId", "MaterialReceiptPending|AD_Org_ID", vars.getOrg()); 62 vars.setSessionValue("GenerateShipmentsmanual|isSOTrx", "Y"); 63 printPageDataSheet(response, vars, strC_BPartner_ID, strAD_Org_ID, strDateFrom, strDateTo); 64 } else if (vars.commandIn("FIND")) { 65 String strDateFrom = vars.getRequestGlobalVariable("inpDateFrom", "MaterialReceiptPending|DateFrom"); 66 String strDateTo = vars.getRequestGlobalVariable("inpDateTo", "MaterialReceiptPending|DateTo"); 67 String strC_BPartner_ID = vars.getRequestGlobalVariable("inpcBpartnerId", "MaterialReceiptPending|C_BPartner_ID"); 68 String strAD_Org_ID = vars.getGlobalVariable("inpadOrgId", "MaterialReceiptPending|AD_Org_ID"); 69 printPageDataSheet(response, vars, strC_BPartner_ID, strAD_Org_ID, strDateFrom, strDateTo); 70 } else if (vars.commandIn("GENERATE")) { 71 String strcOrderLineId = vars.getRequiredInStringParameter("inpOrder"); 72 String strMessage = processPurchaseOrder(vars, strcOrderLineId); 73 vars.setSessionValue("MaterialReceiptPending|message", strMessage); 74 response.sendRedirect(strDireccion + request.getServletPath()); 75 } else pageError(response); 76 } 77 78 79 void printPageDataSheet(HttpServletResponse response, VariablesSecureApp vars, String strC_BPartner_ID, String strAD_Org_ID, String strDateFrom, String strDateTo) 80 throws IOException, ServletException { 81 if (log4j.isDebugEnabled()) log4j.debug("Output: dataSheet"); 82 response.setContentType("text/html; charset=UTF-8"); 83 PrintWriter out = response.getWriter(); 84 String discard[]={"sectionDetail"}; 85 XmlDocument xmlDocument=null; 86 String strMessage = vars.getSessionValue("MaterialReceiptPending|message"); 87 vars.removeSessionValue("MaterialReceiptPending|message"); 88 MaterialReceiptPendingData[] data=null; 89 String strTreeOrg = MaterialReceiptPendingData.treeOrg(this, vars.getClient()); 90 if (strC_BPartner_ID.equals("") && strAD_Org_ID.equals("")){ 91 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_forms/MaterialReceiptPending", discard).createXmlDocument(); 92 data = MaterialReceiptPendingData.set(); 93 } else { 94 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_forms/MaterialReceiptPending").createXmlDocument(); 95 data = MaterialReceiptPendingData.selectLines(this, Utility.getContext(this, vars, "#User_Client", "MaterialReceiptPending"), Tree.getMembers(this, strTreeOrg, strAD_Org_ID), strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strC_BPartner_ID); 96 } 97 98 ToolBar toolbar = new ToolBar(this, vars.getLanguage(), "MaterialReceiptPending", false, "", "", "",false, "ad_forms", strReplaceWith, false, true); 99 toolbar.prepareSimpleToolBarTemplate(); 100 xmlDocument.setParameter("toolbar", toolbar.toString()); 101 102 try { 103 KeyMap key = new KeyMap(this, vars, "MaterialReceiptPending.html"); 104 xmlDocument.setParameter("keyMap", key.getActionButtonKeyMaps()); 105 } catch (Exception ex) { 106 throw new ServletException(ex); 107 } 108 try { 109 WindowTabs tabs = new WindowTabs(this, vars, "org.openbravo.erpCommon.ad_forms.MaterialReceiptPending"); 110 xmlDocument.setParameter("parentTabContainer", tabs.parentTabs()); 111 xmlDocument.setParameter("mainTabContainer", tabs.mainTabs()); 112 xmlDocument.setParameter("childTabContainer", tabs.childTabs()); 113 xmlDocument.setParameter("theme", vars.getTheme()); 114 NavigationBar nav = new NavigationBar(this, vars.getLanguage(), "MaterialReceiptPending.html", classInfo.id, classInfo.type, strReplaceWith, tabs.breadcrumb()); 115 xmlDocument.setParameter("navigationBar", nav.toString()); 116 LeftTabsBar lBar = new LeftTabsBar(this, vars.getLanguage(), "MaterialReceiptPending.html", strReplaceWith); 117 xmlDocument.setParameter("leftTabs", lBar.manualTemplate()); 118 } catch (Exception ex) { 119 throw new ServletException(ex); 120 } 121 { 122 OBError myMessage = vars.getMessage("MaterialReceiptPending"); 123 vars.removeMessage("MaterialReceiptPending"); 124 if (myMessage!=null) { 125 xmlDocument.setParameter("messageType", myMessage.getType()); 126 xmlDocument.setParameter("messageTitle", myMessage.getTitle()); 127 xmlDocument.setParameter("messageMessage", myMessage.getMessage()); 128 } 129 } 130 131 xmlDocument.setParameter("calendar", vars.getLanguage().substring(0,2)); 132 xmlDocument.setParameter("direction", "var baseDirection = \"" + strReplaceWith + "/\";\n"); 133 xmlDocument.setParameter("paramLanguage", "LNG_POR_DEFECTO=\"" + vars.getLanguage() + "\";"); 134 xmlDocument.setParameter("paramBPartnerId", strC_BPartner_ID); 135 xmlDocument.setParameter("paramAdOrgId", strAD_Org_ID); 136 xmlDocument.setParameter("dateFrom", strDateFrom); 137 xmlDocument.setParameter("dateTo", strDateTo); 138 xmlDocument.setParameter("paramBPartnerDescription", MaterialReceiptPendingData.bPartnerDescription(this, strC_BPartner_ID)); 139 try { 140 ComboTableData comboTableData = new ComboTableData(vars, this, "TABLEDIR", "AD_Org_ID", "", "AD_Org Security validation", Utility.getContext(this, vars, "#User_Org", "MaterialReceiptPending"), Utility.getContext(this, vars, "#User_Client", "MaterialReceiptPending"), 0); 141 Utility.fillSQLParameters(this, vars, null, comboTableData, "MaterialReceiptPending", strAD_Org_ID); 142 xmlDocument.setData("reportAD_Org_ID","liststructure", comboTableData.select(false)); 143 comboTableData = null; 144 } catch (Exception ex) { 145 throw new ServletException(ex); 146 } 147 148 xmlDocument.setParameter("paramMessage", (strMessage.equals("")?"":"alert('" + strMessage + "');")); 149 xmlDocument.setParameter("displayFormat", vars.getSessionValue("#AD_SqlDateFormat")); 150 xmlDocument.setData("structure1", data); 151 out.println(xmlDocument.print()); 152 out.close(); 153 } 154 155 String processPurchaseOrder(VariablesSecureApp vars, String strcOrderLineId) 156 throws IOException, ServletException { 157 158 String strMessageResult = ""; 159 int total = 0; 160 if (strcOrderLineId.equals("")) return ""; 161 Connection conn = null; 162 try{ 163 conn = this.getTransactionConnection(); 164 if (strcOrderLineId.startsWith("(")) strcOrderLineId = strcOrderLineId.substring(1, strcOrderLineId.length()-1); 165 if (!strcOrderLineId.equals("")) { 166 strcOrderLineId = Replace.replace(strcOrderLineId, "'", ""); 167 StringTokenizer st = new StringTokenizer(strcOrderLineId, ",", false); 168 String strmInoutId = ""; 169 String strDateReceipt = ""; 170 String docTargetType = MaterialReceiptPendingData.cDoctypeTarget(this, Utility.getContext(this, vars, "#User_Client", "MaterialReceiptPending"), Utility.getContext(this, vars, "#User_Org", "MaterialReceiptPending")); 171 String strLastBpartnerId = ""; 172 int line = 0; 173 while (st.hasMoreTokens()) { 174 String strOrderlineId = st.nextToken().trim(); 175 MaterialReceiptPendingData[] data = MaterialReceiptPendingData.select(this, strOrderlineId); 176 if (!strLastBpartnerId.equals(data[0].cBpartnerId)){ 177 if (!strmInoutId.equals("")){ 178 strMessageResult = mInoutPost(conn, vars, strmInoutId); 179 } 180 line = 10; 181 strmInoutId = SequenceIdData.getSequence(this, "M_InOut", vars.getClient()); 182 String strDocumentno = Utility.getDocumentNo(this, vars, "", "M_InOut", Utility.getContext(this, vars, "C_DocTypeTarget_ID", docTargetType), Utility.getContext(this, vars, "C_DocType_ID", docTargetType), false, true); 183 String strDocType = MaterialReceiptPendingData.cDoctypeId(this, data[0].cDoctypeId); 184 strDateReceipt = vars.getStringParameter("inpDateReceipt" + data[0].cBpartnerId); 185 186 if (strDateReceipt.equals("")) return(Utility.messageBD(this, "DateReceipt", vars.getLanguage()) + " " + MaterialReceiptPendingData.bPartnerDescription(this, data[0].cBpartnerId)); 187 MaterialReceiptPendingData.insert(conn, this, strmInoutId, vars.getClient(), vars.getOrg(), "Y", vars.getUser(), vars.getUser(), "N", strDocumentno, "CO", "DR", "N", "N", "N", docTargetType, data[0].description, data[0].cOrderId, data[0].dateordered, "N", "V+", strDateReceipt, strDateReceipt, data[0].cBpartnerId, data[0].cBpartnerLocationId, data[0].mWarehouseId, data[0].poreference, data[0].deliveryrule, data[0].freightcostrule, data[0].freightamt, data[0].deliveryviarule, data[0].mShipperId, data[0].cChargeId, data[0].chargeamt, data[0].priorityrule, "N", "N", "N", vars.getUser(), data[0].salesrepId, data[0].adOrgtrxId, data[0].cProjectId, data[0].cCampaignId, data[0].cActivityId, data[0].user1Id, data[0].user2Id, "N", "N", "N"); 188 } 189 strLastBpartnerId = data[0].cBpartnerId; 190 String strQtyordered = vars.getStringParameter("inpQtyordered" + strOrderlineId); 191 String strLocator = vars.getStringParameter("inpmLocatorId" + strOrderlineId); 192 String strSequenceLine = SequenceIdData.getSequence(this, "M_InOutLine", vars.getClient()); 193 MaterialReceiptPendingLinesData[] dataLine = MaterialReceiptPendingLinesData.select(this, strOrderlineId); 194 195 int rowCount = MaterialReceiptPendingLinesData.insert(conn, this, strSequenceLine, vars.getClient(), vars.getOrg(), "Y", vars.getUser(), vars.getUser(), String.valueOf(line), dataLine[0].description, strmInoutId, strOrderlineId, strLocator, dataLine[0].mProductId, dataLine[0].cUomId, strQtyordered, "N", dataLine[0].lot, dataLine[0].serno, dataLine[0].mAttributesetinstanceId, "N", dataLine[0].quantityorder, dataLine[0].mProductUomId); 196 line += 10; 197 } 198 strMessageResult = mInoutPost(conn, vars, strmInoutId); 199 } 200 releaseCommitConnection(conn); 201 } 202 catch (Exception e){ 203 try { 204 releaseRollbackConnection(conn); 205 } catch (Exception ignored) {} 206 e.printStackTrace(); 207 log4j.warn("Rollback in transaction"); 208 return Utility.messageBD(this, "ProcessRunError", vars.getLanguage()); 209 } 210 return strMessageResult.equals("")?Utility.messageBD(this, "Success", vars.getLanguage()):strMessageResult; 211 } 212 213 String mInoutPost(Connection conn, VariablesSecureApp vars, String strmInoutId) 214 throws IOException, ServletException { 215 String pinstance = SequenceIdData.getSequence(this, "AD_PInstance", vars.getClient()); 216 218 PInstanceProcessData.insertPInstance(this, pinstance, "109", strmInoutId, "N", vars.getUser(), vars.getClient(), vars.getOrg()); 219 MaterialReceiptPendingData.mInoutPost0(conn, this, pinstance); 221 222 PInstanceProcessData[] pinstanceData = PInstanceProcessData.select(this, pinstance); 223 String messageResult=""; 224 if (pinstanceData!=null && pinstanceData.length>0) { 225 if (!pinstanceData[0].errormsg.equals("")) { 226 String message = pinstanceData[0].errormsg; 227 if (message.startsWith("@") && message.endsWith("@")) { 229 message = message.substring(1, message.length()-1); 230 if (message.indexOf("@")==-1) messageResult = Utility.messageBD(this, message, vars.getLanguage()); 231 else messageResult = Utility.parseTranslation(this, vars, vars.getLanguage(), "@" + message + "@"); 232 } else { 233 messageResult = Utility.parseTranslation(this, vars, vars.getLanguage(), message); 234 } 235 } else if (!pinstanceData[0].pMsg.equals("")) { 236 total += 1; 239 messageResult = Utility.messageBD(this, "Created", vars.getLanguage()) + ": " + Integer.toString(total); 240 } else if (pinstanceData[0].result.equals("1")) { 241 total += 1; 243 messageResult = Utility.messageBD(this, "Created", vars.getLanguage() + " :" + String.valueOf(total)); 244 } else { 245 messageResult = Utility.messageBD(this, "Error", vars.getLanguage()); 246 } 247 } 248 return messageResult; 249 } 250 251 252 public String getServletInfo() { 253 return "Servlet MaterialReceiptPending. This Servlet was made by Jon AlegrÃa"; 254 } } 256 257 | Popular Tags |