KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openbravo > erpCommon > ad_reports > ReportSalesOrderDimensionalPDF


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_reports;
21
22 import org.openbravo.erpCommon.utility.Utility;
23 import org.openbravo.erpCommon.businessUtility.Tree;
24 import org.openbravo.erpCommon.businessUtility.TreeData;
25 import org.openbravo.base.secureApp.HttpSecureAppServlet;
26 import org.openbravo.base.secureApp.VariablesSecureApp;
27 import org.openbravo.xmlEngine.XmlDocument;
28 import java.io.*;
29 import java.util.*;
30 import javax.servlet.*;
31 import javax.servlet.http.*;
32
33 import org.openbravo.utils.Replace;
34
35 import org.openbravo.erpCommon.utility.DateTimeData;
36
37 public class ReportSalesOrderDimensionalPDF extends HttpSecureAppServlet {
38
39
40   public void init (ServletConfig config) {
41     super.init(config);
42     boolHist = false;
43   }
44
45   public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException {
46     VariablesSecureApp vars = new VariablesSecureApp(request);
47
48     if (!Utility.hasProcessAccess(this, vars, "", "RV_ReportInvoiceCustomerDimensionalAnaly")) {
49       bdError(response, "AccessTableNoView", vars.getLanguage());
50       return;
51     }
52
53     if (vars.commandIn("DEFAULT")){
54       String JavaDoc strDateFrom = vars.getRequestGlobalVariable("inpDateFrom", "ReportSalesDimensionalAnalyses|dateFrom");
55       String JavaDoc strDateTo = vars.getRequestGlobalVariable("inpDateTo", "ReportSalesDimensionalAnalyses|dateTo");
56       String JavaDoc strDateFromRef = vars.getRequestGlobalVariable("inpDateFromRef", "ReportSalesDimensionalAnalyses|dateFromRef");
57       String JavaDoc strDateToRef = vars.getRequestGlobalVariable("inpDateToRef", "ReportSalesDimensionalAnalyses|dateToRef");
58       String JavaDoc strPartnerGroup = vars.getRequestGlobalVariable("inpPartnerGroup", "ReportSalesDimensionalAnalyses|partnerGroup");
59       String JavaDoc strcBpartnerId = vars.getRequestInGlobalVariable("inpcBPartnerId_IN", "ReportSalesDimensionalAnalyses|partner");
60       String JavaDoc strProductCategory = vars.getRequestGlobalVariable("inpProductCategory", "ReportSalesDimensionalAnalyses|productCategory");
61       String JavaDoc strmProductId = vars.getRequestInGlobalVariable("inpmProductId_IN", "ReportSalesDimensionalAnalyses|product");
62       String JavaDoc strmWarehouseId = vars.getRequestGlobalVariable("inpmWarehouseId", "ReportSalesDimensionalAnalyze|warehouse");
63       String JavaDoc strNotShown = vars.getInStringParameter("inpNotShown");
64       String JavaDoc strShown = vars.getInStringParameter("inpShown");
65       String JavaDoc strOrg = vars.getGlobalVariable("inpOrg", "ReportSalesDimensionalAnalyses|org", "0");
66       String JavaDoc strsalesrepId = vars.getRequestGlobalVariable("inpSalesrepId", "ReportSalesDimensionalAnalyses|salesrep");
67       String JavaDoc strOrder = vars.getRequestGlobalVariable("inpOrder","ReportSalesDimensionalAnalyze|order");
68       String JavaDoc strMayor = vars.getStringParameter("inpMayor", "");
69       String JavaDoc strMenor = vars.getStringParameter("inpMenor", "");
70       String JavaDoc strComparative = vars.getStringParameter("inpComparative", "N");
71       String JavaDoc strPartnerSalesrepId = vars.getRequestGlobalVariable("inpPartnerSalesrepId", "ReportSalesDimensionalAnalyses|partnersalesrep");
72       printPagePdf(response, vars, strComparative, strDateFrom, strDateTo, strPartnerGroup, strcBpartnerId, strProductCategory, strmProductId, strmWarehouseId, strNotShown,
73           strShown, strDateFromRef, strDateToRef, strOrg, strsalesrepId, strOrder, strMayor, strMenor, strPartnerSalesrepId);
74     } else pageErrorPopUp(response);
75   }
76
77   void printPagePdf(HttpServletResponse response, VariablesSecureApp vars, String JavaDoc strComparative, String JavaDoc strDateFrom, String JavaDoc strDateTo, String JavaDoc strPartnerGroup, String JavaDoc
78       strcBpartnerId, String JavaDoc strProductCategory, String JavaDoc strmProductId, String JavaDoc strmWarehouseId, String JavaDoc strNotShown, String JavaDoc strShown, String JavaDoc strDateFromRef, String JavaDoc strDateToRef, String JavaDoc
79       strOrg, String JavaDoc strsalesrepId, String JavaDoc strOrder, String JavaDoc strMayor, String JavaDoc strMenor, String JavaDoc strPartnerSalesrepId) throws IOException, ServletException{
80     if (log4j.isDebugEnabled()) log4j.debug("Output: print html");
81     XmlDocument xmlDocument=null;
82     String JavaDoc strOrderby = "";
83     String JavaDoc strPage = "basicPSMSecond";
84     String JavaDoc[] discard = {"", "", "", "", "", "", "", "", ""};
85     String JavaDoc[] discard1={"selEliminarBody1", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard",
86       "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard",
87       "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard",
88       "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard",
89       "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard",
90       "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard", "discard"};
91     if (strComparative.equals("Y")) {
92       discard1[0] = "selEliminarBody2";
93       strPage = "basicPSM";
94     }
95     String JavaDoc strTitle = "";
96     strTitle = Utility.messageBD(this, "From", vars.getLanguage()) + " "+strDateFrom+" " + Utility.messageBD(this, "To", vars.getLanguage()) + " "+strDateTo;
97     if (!strPartnerGroup.equals("")) strTitle = strTitle + ", " + Utility.messageBD(this, "ForBPartnerGroup", vars.getLanguage()) + " "+ReportSalesDimensionalAnalyzeData.selectBpgroup(this, strPartnerGroup);
98     if (!strProductCategory.equals("")) strTitle = strTitle+", " + Utility.messageBD(this, "ProductCategory", vars.getLanguage()) + " "+ReportSalesDimensionalAnalyzeData.selectProductCategory(this, strProductCategory);
99     if (!strsalesrepId.equals("")) strTitle = strTitle+", " + Utility.messageBD(this, "TheSalesRep", vars.getLanguage()) + " "+ReportSalesDimensionalAnalyzeData.selectSalesrep(this, strsalesrepId);
100     if (!strPartnerSalesrepId.equals("")) strTitle = strTitle+", " + Utility.messageBD(this, "TheClientSalesRep", vars.getLanguage()) + " "+ReportSalesDimensionalAnalyzeData.selectSalesrep(this, strPartnerSalesrepId);
101     if (!strmWarehouseId.equals("")) strTitle = strTitle+" " + Utility.messageBD(this, "And", vars.getLanguage()) + " " + Utility.messageBD(this, "TheWarehouse", vars.getLanguage()) + " "+ReportSalesDimensionalAnalyzeData.selectMwarehouse(this, strmWarehouseId);
102
103     ReportSalesDimensionalAnalyzeData[] data = null;
104     String JavaDoc[] strShownArray = {"", "", "", "", "", "", "", "", ""};
105     if (strShown.startsWith("(")) strShown = strShown.substring(1, strShown.length()-1);
106     if (!strShown.equals("")) {
107       strShown = Replace.replace(strShown, "'", "");
108       strShown = Replace.replace(strShown, " ", "");
109       StringTokenizer st = new StringTokenizer(strShown, ",", false);
110       int intContador = 0;
111       while (st.hasMoreTokens()){
112         strShownArray[intContador] = st.nextToken();
113         intContador++;
114       }
115
116     }
117     String JavaDoc[] strTextShow = {"", "", "", "", "", "", "", "", ""};
118     int intDiscard = 0;
119     int intAuxDiscard = -1;
120     String JavaDoc strEliminateQty = " ";
121     String JavaDoc strEliminateQtyRef = " ";
122     String JavaDoc strEliminateQtyAvg = " ";
123     //String strEliminateWeight = " ";
124
//String strEliminateWeightRef = " ";
125
for (int i = 0; i<9; i++){
126       if (strShownArray[i].equals("1")) {
127         strTextShow[i] = "C_BP_GROUP.NAME";
128         intDiscard++;
129       }
130       else if (strShownArray[i].equals("2")) {
131         strTextShow[i] = "AD_COLUMN_IDENTIFIER('C_Bpartner', TO_CHAR(C_BPARTNER.C_BPARTNER_ID), 'es_ES')";
132         intDiscard++;
133       }
134       else if (strShownArray[i].equals("3")) {
135         strTextShow[i] = "M_PRODUCT_CATEGORY.NAME";
136         intDiscard++;
137       }
138       else if (strShownArray[i].equals("4")) {
139         strTextShow[i] = "AD_COLUMN_IDENTIFIER('M_Product', TO_CHAR(M_PRODUCT.M_PRODUCT_ID), 'es_ES')";
140         strEliminateQty = "Cantidad";
141         strEliminateQtyRef = "Cantidad ref";
142         strEliminateQtyAvg = "%cantidad";
143        
144         intAuxDiscard = i;
145       }
146       else if (strShownArray[i].equals("5")) {
147         strTextShow[i] = "C_ORDER.DOCUMENTNO";
148         intDiscard++;
149       }
150       else if (strShownArray[i].equals("6")) {
151         strTextShow[i] = "AD_USER.FIRSTNAME||' '||' '||AD_USER.LASTNAME";
152         intDiscard++;
153       }
154       else if (strShownArray[i].equals("7")) {
155         strTextShow[i] = "M_WAREHOUSE.NAME";
156         intDiscard++;
157       }
158       else if (strShownArray[i].equals("8")) {
159         strTextShow[i] = "AD_ORG.NAME";
160         intDiscard++;
161       }
162       else if (strShownArray[i].equals("9")) {
163         strTextShow[i] = "CB.NAME";
164         intDiscard++;
165       }
166       else {
167         strTextShow[i] = "''";
168         discard[i] = "0.1";
169       }
170     }
171     if (intDiscard != 0 || intAuxDiscard != -1){
172       int k=1;
173       strOrderby = " ORDER BY NIVEL"+k+",";
174       while (k<intDiscard){
175         strOrderby = strOrderby+"NIVEL"+k+",";
176         k++;
177       }
178       if (k==1){
179         if (strOrder.equals("Normal")){
180           strOrderby = " ORDER BY NIVEL"+k;
181         } else if (strOrder.equals("Amountasc")){
182           strOrderby = " ORDER BY LINENETAMT ASC";
183         } else if (strOrder.equals("Amountdesc")){
184           strOrderby = " ORDER BY LINENETAMT DESC";
185         } else{
186           strOrderby = "1";
187         }
188       } else{
189         if (strOrder.equals("Normal")){
190           strOrderby += "NIVEL"+k;
191         } else if (strOrder.equals("Amountasc")){
192           strOrderby += "LINENETAMT ASC";
193         } else if (strOrder.equals("Amountdesc")){
194           strOrderby += "LINENETAMT DESC";
195         } else{
196           strOrderby = "1";
197         }
198       }
199
200     } else{
201       strOrderby = " ORDER BY 1";
202     }
203     String JavaDoc strHaving = "";
204     if (!strMayor.equals("") && !strMenor.equals("")) {strHaving = " HAVING SUM(LINENETAMT) > "+strMayor+" AND SUM(LINENETAMT) < "+strMenor;}
205     else if (!strMayor.equals("") && strMenor.equals("")) {strHaving = " HAVING SUM(LINENETAMT) > "+strMayor;}
206     else if (strMayor.equals("") && !strMenor.equals("")) {strHaving = " HAVING SUM(LINENETAMT) < "+strMenor;}
207     else{ strHaving = " HAVING SUM(LINENETAMT) <> 0 OR SUM(LINENETREF) <> 0";}
208     strOrderby = strHaving + strOrderby;
209     if (strComparative.equals("Y")){
210       data = ReportSalesDimensionalAnalyzeData.select(this, strTextShow[0], strTextShow[1], strTextShow[2], strTextShow[3], strTextShow[4], strTextShow[5], strTextShow[6],
211           strTextShow[7], strTextShow[8], Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), Utility.getContext(this, vars, "#User_Client", "ReportSalesDimensionalAnalyze"), strDateFrom,
212           DateTimeData.nDaysAfter(this, strDateTo,"1"), strPartnerGroup, strcBpartnerId, strProductCategory, strmProductId, strmWarehouseId, strsalesrepId, strPartnerSalesrepId, strDateFromRef, DateTimeData.nDaysAfter(this, strDateToRef,"1"), strOrderby);
213     } else {
214       data = ReportSalesDimensionalAnalyzeData.selectNoComparative(this, strTextShow[0], strTextShow[1], strTextShow[2], strTextShow[3], strTextShow[4], strTextShow[5],
215           strTextShow[6], strTextShow[7], strTextShow[8], Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), Utility.getContext(this, vars, "#User_Client", "ReportSalesDimensionalAnalyze"), strDateFrom,
216           DateTimeData.nDaysAfter(this, strDateTo,"1"), strPartnerGroup, strcBpartnerId, strProductCategory, strmProductId, strmWarehouseId, strsalesrepId, strPartnerSalesrepId, strOrderby);
217     }
218     if (data.length == 0 || data == null){
219       
220       data = ReportSalesDimensionalAnalyzeData.set();
221     } else {
222       int contador = intDiscard;
223       if (intAuxDiscard == -1) {
224         if (strComparative.equals("Y")){
225           for ( int j=1; j<10; j++){
226             discard1[j] = "fieldTotalQtyNivel"+String.valueOf(j);
227             discard1[j+9] = "fieldTotalRefQtyNivel"+String.valueOf(j);
228             discard1[j+18] = "fieldTotalQty"+String.valueOf(j);
229             discard1[j+27] = "fieldUomsymbol"+String.valueOf(j);
230             //discard1[j+36] = "fieldTotalWeightNivel"+String.valueOf(j);
231
//discard1[j+45] = "fieldTotalRefWeightNivel"+String.valueOf(j);
232
}
233           int count=7;
234           while (count>contador){
235             discard1[count+54] = "fieldTotalNivel"+String.valueOf(count);
236             discard1[count+63] = "fieldTotalRefNivel"+String.valueOf(count);
237             discard1[count+72] = "fieldTotal"+String.valueOf(count);
238             //discard1[count+81] = "fieldTotalWeightNivel"+String.valueOf(count);
239
//discard1[count+90] = "fieldTotalRefWeightNivel"+String.valueOf(count);
240
count--;
241           }
242         } else {
243           for ( int j=1; j<10; j++){
244             discard1[j] = "fieldNoncomparativeTotalQtyNivel"+String.valueOf(j);
245             discard1[j+27] = "fieldNoncomparativeUomsymbol"+String.valueOf(j);
246             //discard1[j+36] = "fieldNoncomparativeTotalWeightNivel"+String.valueOf(j);
247
}
248           int count=9;
249           while(count>contador){
250             discard1[count+45] = "fieldNoncomparativeTotalNivel"+String.valueOf(count);
251             //discard1[count+54] = "fieldNoncomparativeTotalWeightNivel"+String.valueOf(count);
252
count--;
253           }
254         }
255
256       }
257       else {
258         contador = intAuxDiscard;
259         int k = 1;
260         if (strComparative.equals("Y")){
261           for (int j = contador; j>0; j--){
262             discard1[k] = "fieldTotalQtyNivel"+String.valueOf(j);
263             discard1[k+9] = "fieldTotalRefQtyNivel"+String.valueOf(j);
264             discard1[k+18] = "fieldTotalQty"+String.valueOf(j);
265             discard1[k+27] = "fieldUomsymbol"+String.valueOf(j);
266             //discard1[k+36] = "fieldTotalWeightNivel"+String.valueOf(j);
267
//discard1[k+45] = "fieldTotalRefWeightNivel"+String.valueOf(j);
268
k++;
269           }
270           int count = 9;
271           while (count>intDiscard+1){
272             discard1[count+54] = "fieldTotal"+String.valueOf(count);
273             discard1[count+63] = "fieldTotalNivel"+String.valueOf(count);
274             discard1[count+72] = "fieldTotalRefNivel"+String.valueOf(count);
275             discard1[count+81] = "fieldTotalQtyNivel"+String.valueOf(count);
276             discard1[count+90] = "fieldTotalRefQtyNivel"+String.valueOf(count);
277             discard1[count+99] = "fieldTotalQty"+String.valueOf(count);
278             discard1[count+108] = "fieldUomsymbol"+String.valueOf(count);
279             //discard1[count+117] = "fieldTotalWeightNivel"+String.valueOf(count);
280
//discard1[count+126] = "fieldTotalRefWeightNivel"+String.valueOf(count);
281
count--;
282           }
283         } else {
284           for (int j = contador; j>0; j--){
285             discard1[k] = "fieldNoncomparativeTotalQtyNivel"+String.valueOf(j);
286             discard1[k+27] = "fieldNoncomparativeUomsymbol"+String.valueOf(j);
287             //discard1[k+36] = "fieldNoncomparativeTotalWeightNivel"+String.valueOf(j);
288
k++;
289           }
290           int countNon = 9;
291           while (countNon>intDiscard+1){
292             discard1[countNon+45] = "fieldNoncomparativeTotalNivel"+String.valueOf(countNon);
293             discard1[countNon+54] = "fieldNoncomparativeTotalQtyNivel"+String.valueOf(countNon);
294             discard1[countNon+63] = "fieldNoncomparativeUomsymbol"+String.valueOf(countNon);
295             //discard1[countNon+72] = "fieldNoncomparativeTotalWeightNivel"+String.valueOf(countNon);
296
countNon--;
297           }
298         }
299       }
300
301
302     }
303     xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportSalesOrderDimensionalPDF", discard1).createXmlDocument();
304     xmlDocument.setParameter("eliminar2", discard[1]);
305     xmlDocument.setParameter("eliminar3", discard[2]);
306     xmlDocument.setParameter("eliminar4", discard[3]);
307     xmlDocument.setParameter("eliminar5", discard[4]);
308     xmlDocument.setParameter("eliminar6", discard[5]);
309     xmlDocument.setParameter("eliminar7", discard[6]);
310     xmlDocument.setParameter("eliminar8", discard[7]);
311     xmlDocument.setParameter("eliminar9", discard[8]);
312     xmlDocument.setParameter("eliminateQty", strEliminateQty);
313     xmlDocument.setParameter("eliminateQtyRef", strEliminateQtyRef);
314     xmlDocument.setParameter("eliminateQtyAvg", strEliminateQtyAvg);
315     //xmlDocument.setParameter("eliminateWeight", strEliminateWeight);
316
//xmlDocument.setParameter("eliminateWeightRef", strEliminateWeightRef);
317
xmlDocument.setParameter("constante", "100");
318     xmlDocument.setParameter("title", strTitle);
319     xmlDocument.setParameter("entity", ReportSalesDimensionalAnalyzeData.selectEntity(this, vars.getClient()));
320     xmlDocument.setParameter("page", strPage);
321     if (strComparative.equals("Y")){
322       xmlDocument.setData("structure1", data);
323     } else{
324       xmlDocument.setData("structure2", data);
325     }
326     String JavaDoc strResult = xmlDocument.print();
327     renderFO(strResult, response);
328       }
329
330   public String JavaDoc getServletInfo() {
331     return "Servlet ReportRefundInvoiceCustomerDimensionalAnalyses. This Servlet was made by Jon Alegría";
332   } // end of getServletInfo() method
333
}
334
335
Popular Tags