KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openbravo > erpCommon > ad_forms > MaterialReceiptPending


1 /*
2  *************************************************************************
3  * The contents of this file are subject to the Openbravo Public License
4  * Version 1.0 (the "License"), being the Mozilla Public License
5  * Version 1.1 with a permitted attribution clause; you may not use this
6  * file except in compliance with the License. You may obtain a copy of
7  * the License at http://www.openbravo.com/legal/license.html
8  * Software distributed under the License is distributed on an "AS IS"
9  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
10  * License for the specific language governing rights and limitations
11  * under the License.
12  * The Original Code is Openbravo ERP.
13  * The Initial Developer of the Original Code is Openbravo SL
14  * All portions are Copyright (C) 2001-2006 Openbravo SL
15  * All Rights Reserved.
16  * Contributor(s): ______________________________________.
17  ************************************************************************
18 */

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 // imports for transactions
39
import java.sql.Connection JavaDoc;
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 JavaDoc strDateFrom = vars.getGlobalVariable("inpDateFrom", "MaterialReceiptPending|DateFrom", "");
59       String JavaDoc strDateTo = vars.getGlobalVariable("inpDateTo", "MaterialReceiptPending|DateTo", "");
60       String JavaDoc strC_BPartner_ID = vars.getGlobalVariable("inpcBpartnerId", "MaterialReceiptPending|C_BPartner_ID", "");
61       String JavaDoc 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 JavaDoc strDateFrom = vars.getRequestGlobalVariable("inpDateFrom", "MaterialReceiptPending|DateFrom");
66       String JavaDoc strDateTo = vars.getRequestGlobalVariable("inpDateTo", "MaterialReceiptPending|DateTo");
67       String JavaDoc strC_BPartner_ID = vars.getRequestGlobalVariable("inpcBpartnerId", "MaterialReceiptPending|C_BPartner_ID");
68       String JavaDoc 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 JavaDoc strcOrderLineId = vars.getRequiredInStringParameter("inpOrder");
72       String JavaDoc 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 JavaDoc strC_BPartner_ID, String JavaDoc strAD_Org_ID, String JavaDoc strDateFrom, String JavaDoc 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 JavaDoc discard[]={"sectionDetail"};
85     XmlDocument xmlDocument=null;
86     String JavaDoc strMessage = vars.getSessionValue("MaterialReceiptPending|message");
87     vars.removeSessionValue("MaterialReceiptPending|message");
88     MaterialReceiptPendingData[] data=null;
89     String JavaDoc 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 JavaDoc 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 JavaDoc 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 JavaDoc 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 JavaDoc processPurchaseOrder(VariablesSecureApp vars, String JavaDoc strcOrderLineId)
156       throws IOException, ServletException {
157
158     String JavaDoc strMessageResult = "";
159     int total = 0;
160     if (strcOrderLineId.equals("")) return "";
161     Connection JavaDoc 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 JavaDoc strmInoutId = "";
169         String JavaDoc strDateReceipt = "";
170         String JavaDoc docTargetType = MaterialReceiptPendingData.cDoctypeTarget(this, Utility.getContext(this, vars, "#User_Client", "MaterialReceiptPending"), Utility.getContext(this, vars, "#User_Org", "MaterialReceiptPending"));
171         String JavaDoc strLastBpartnerId = "";
172         int line = 0;
173         while (st.hasMoreTokens()) {
174           String JavaDoc 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 JavaDoc 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 JavaDoc 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 JavaDoc strQtyordered = vars.getStringParameter("inpQtyordered" + strOrderlineId);
191           String JavaDoc strLocator = vars.getStringParameter("inpmLocatorId" + strOrderlineId);
192           String JavaDoc 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 JavaDoc e){
203       try {
204         releaseRollbackConnection(conn);
205       } catch (Exception JavaDoc 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 JavaDoc mInoutPost(Connection JavaDoc conn, VariablesSecureApp vars, String JavaDoc strmInoutId)
214       throws IOException, ServletException {
215     String JavaDoc pinstance = SequenceIdData.getSequence(this, "AD_PInstance", vars.getClient());
216     //System.out.println("*************************"+pinstance);
217

218     PInstanceProcessData.insertPInstance(this, pinstance, "109", strmInoutId, "N", vars.getUser(), vars.getClient(), vars.getOrg());
219     //PInstanceProcessData.insertPInstanceParam(this, pinstance, "1", "Selection", "Y", vars.getClient(), vars.getOrg(), vars.getUser());
220
MaterialReceiptPendingData.mInoutPost0(conn, this, pinstance);
221     
222     PInstanceProcessData[] pinstanceData = PInstanceProcessData.select(this, pinstance);
223     String JavaDoc messageResult="";
224     if (pinstanceData!=null && pinstanceData.length>0) {
225       if (!pinstanceData[0].errormsg.equals("")) {
226         String JavaDoc message = pinstanceData[0].errormsg;
227         //System.out.println("*****************1"+message);
228
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         //String message = pinstanceData[0].pMsg;
237
//messageResult = Utility.parseTranslation(this, vars, vars.getLanguage(), message);
238
total += 1;
239         messageResult = Utility.messageBD(this, "Created", vars.getLanguage()) + ": " + Integer.toString(total);
240       } else if (pinstanceData[0].result.equals("1")) {
241         //messageResult = Utility.messageBD(this, "Success", vars.getLanguage());
242
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 JavaDoc getServletInfo() {
253     return "Servlet MaterialReceiptPending. This Servlet was made by Jon Alegría";
254   } // end of getServletInfo() method
255
}
256
257
Popular Tags