1 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 strDateFrom = vars.getRequestGlobalVariable("inpDateFrom", "ReportSalesDimensionalAnalyses|dateFrom"); 55 String strDateTo = vars.getRequestGlobalVariable("inpDateTo", "ReportSalesDimensionalAnalyses|dateTo"); 56 String strDateFromRef = vars.getRequestGlobalVariable("inpDateFromRef", "ReportSalesDimensionalAnalyses|dateFromRef"); 57 String strDateToRef = vars.getRequestGlobalVariable("inpDateToRef", "ReportSalesDimensionalAnalyses|dateToRef"); 58 String strPartnerGroup = vars.getRequestGlobalVariable("inpPartnerGroup", "ReportSalesDimensionalAnalyses|partnerGroup"); 59 String strcBpartnerId = vars.getRequestInGlobalVariable("inpcBPartnerId_IN", "ReportSalesDimensionalAnalyses|partner"); 60 String strProductCategory = vars.getRequestGlobalVariable("inpProductCategory", "ReportSalesDimensionalAnalyses|productCategory"); 61 String strmProductId = vars.getRequestInGlobalVariable("inpmProductId_IN", "ReportSalesDimensionalAnalyses|product"); 62 String strmWarehouseId = vars.getRequestGlobalVariable("inpmWarehouseId", "ReportSalesDimensionalAnalyze|warehouse"); 63 String strNotShown = vars.getInStringParameter("inpNotShown"); 64 String strShown = vars.getInStringParameter("inpShown"); 65 String strOrg = vars.getGlobalVariable("inpOrg", "ReportSalesDimensionalAnalyses|org", "0"); 66 String strsalesrepId = vars.getRequestGlobalVariable("inpSalesrepId", "ReportSalesDimensionalAnalyses|salesrep"); 67 String strOrder = vars.getRequestGlobalVariable("inpOrder","ReportSalesDimensionalAnalyze|order"); 68 String strMayor = vars.getStringParameter("inpMayor", ""); 69 String strMenor = vars.getStringParameter("inpMenor", ""); 70 String strComparative = vars.getStringParameter("inpComparative", "N"); 71 String 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 strComparative, String strDateFrom, String strDateTo, String strPartnerGroup, String 78 strcBpartnerId, String strProductCategory, String strmProductId, String strmWarehouseId, String strNotShown, String strShown, String strDateFromRef, String strDateToRef, String 79 strOrg, String strsalesrepId, String strOrder, String strMayor, String strMenor, String strPartnerSalesrepId) throws IOException, ServletException{ 80 if (log4j.isDebugEnabled()) log4j.debug("Output: print html"); 81 XmlDocument xmlDocument=null; 82 String strOrderby = ""; 83 String strPage = "basicPSMSecond"; 84 String [] discard = {"", "", "", "", "", "", "", "", ""}; 85 String [] 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 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 [] 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 [] strTextShow = {"", "", "", "", "", "", "", "", ""}; 118 int intDiscard = 0; 119 int intAuxDiscard = -1; 120 String strEliminateQty = " "; 121 String strEliminateQtyRef = " "; 122 String strEliminateQtyAvg = " "; 123 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 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 } 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 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 } 248 int count=9; 249 while(count>contador){ 250 discard1[count+45] = "fieldNoncomparativeTotalNivel"+String.valueOf(count); 251 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 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 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 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 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("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 strResult = xmlDocument.print(); 327 renderFO(strResult, response); 328 } 329 330 public String getServletInfo() { 331 return "Servlet ReportRefundInvoiceCustomerDimensionalAnalyses. This Servlet was made by Jon AlegrÃa"; 332 } } 334 335 | Popular Tags |