1 19 package org.openbravo.erpCommon.ad_reports; 20 21 import org.openbravo.erpCommon.utility.*; 22 import org.openbravo.erpCommon.businessUtility.WindowTabs; 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 java.util.Vector ; 31 import javax.servlet.*; 32 import javax.servlet.http.*; 33 34 import org.openbravo.utils.Replace; 35 import org.openbravo.erpCommon.ad_combos.OrganizationComboData; 36 37 38 import org.openbravo.erpCommon.utility.DateTimeData; 39 40 41 public class ReportAccountingCountDimensionalAnalyses extends HttpSecureAppServlet { 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, "", "RV_ReportAccountingCountDimensionalAnaly")) { 48 bdError(response, "AccessTableNoView", vars.getLanguage()); 49 return; 50 } 51 52 if (vars.commandIn("DEFAULT", "DEFAULT_COMPARATIVE")){ 53 String strDateFrom = vars.getGlobalVariable("inpDateFrom", "ReportAccountingCountDimensionalAnalyses|dateFrom", ""); 54 String strDateTo = vars.getGlobalVariable("inpDateTo", "ReportAccountingCountDimensionalAnalyses|dateTo", ""); 55 String strDateFromRef = vars.getGlobalVariable("inpDateFromRef", "ReportAccountingCountDimensionalAnalyses|dateFromRef", ""); 56 String strDateToRef = vars.getGlobalVariable("inpDateToRef", "ReportAccountingCountDimensionalAnalyses|dateToRef", ""); 57 String strAccountingCount = vars.getGlobalVariable("inpAccountingCount", "ReportAccountingCountDimensionalAnalyses|accountingCount", ""); 58 String strcBpartnerId = vars.getInGlobalVariable("inpcBPartnerId_IN", "ReportAccountingCountDimensionalAnalyses|cBpartnerId", ""); 59 String strmProductId = vars.getInGlobalVariable("inpmProductId_IN", "ReportAccountingCountDimensionalAnalyses|mProductId", ""); 60 String strShown = vars.getInGlobalVariable("inpShown", "ReportAccountingCountDimensionalAnalyses|shown", ""); 61 String strOrg = vars.getGlobalVariable("inpOrg", "ReportAccountingCountDimensionalAnalyses|org", "0"); 62 String strcProjectId = vars.getGlobalVariable("inpcProjectId", "ReportAccountingCountDimensionalAnalyses|project", ""); 63 String strComparative = "Y"; 64 String strLevel = vars.getStringParameter("inpLevel", "0"); 65 String strColumnLevel = ""; 66 if (vars.commandIn("DEFAULT_COMPARATIVE")) strComparative = vars.getRequestGlobalVariable("inpComparative", "ReportAccountingCountDimensionalAnalyses|comparative"); 67 else strComparative = vars.getGlobalVariable("inpComparative", "ReportAccountingCountDimensionalAnalyses|comparative", "Y"); 68 String strPeriod = vars.getGlobalVariable("inpPeriod", "ReportAccountingCountDimensionalAnalyses|period", "without"); 69 printPageDataSheet(response, vars, strComparative, strDateFrom, strDateTo, strAccountingCount, strcBpartnerId, strmProductId, strShown, strDateFromRef, strDateToRef, strOrg, strcProjectId, strPeriod, strLevel, strColumnLevel); 70 }else if (vars.commandIn("EDIT_HTML", "EDIT_HTML_COMPARATIVE")) { 71 String strDateFrom = vars.getRequestGlobalVariable("inpDateFrom", "ReportAccountingCountDimensionalAnalyses|dateFrom"); 72 String strDateTo = vars.getRequestGlobalVariable("inpDateTo", "ReportAccountingCountDimensionalAnalyses|dateTo"); 73 String strDateFromRef = vars.getRequestGlobalVariable("inpDateFromRef", "ReportAccountingCountDimensionalAnalyses|dateFromRef"); 74 String strDateToRef = vars.getRequestGlobalVariable("inpDateToRef", "ReportAccountingCountDimensionalAnalyses|dateToRef"); 75 String strAccountingCount = vars.getRequestGlobalVariable("inpAccountingCount", "ReportAccountingCountDimensionalAnalyses|accountingCount"); 76 String strcBpartnerId = vars.getRequestInGlobalVariable("inpcBPartnerId_IN", "ReportAccountingCountDimensionalAnalyses|cBpartnerId"); 77 String strmProductId = vars.getRequestInGlobalVariable("inpmProductId_IN", "ReportAccountingCountDimensionalAnalyses|mProductId"); 78 String strShown = vars.getRequestInGlobalVariable("inpShown", "ReportAccountingCountDimensionalAnalyses|shown"); 79 String strOrg = vars.getGlobalVariable("inpOrg", "ReportAccountingCountDimensionalAnalyses|org", "0"); 80 String strcProjectId = vars.getRequestGlobalVariable("inpcProjectId", "ReportAccountingCountDimensionalAnalyses|project"); 81 String strComparative = vars.getStringParameter("inpComparative", "N"); 82 String strLevel = "0"; 83 String strColumnLevel = ""; 84 String strPeriod = vars.getRequiredStringParameter("inpPeriod"); 85 printPageDataHtml(response, vars, strComparative, strDateFrom, strDateTo, strAccountingCount, strcBpartnerId, strmProductId, strShown, strDateFromRef, strDateToRef, strOrg, strcProjectId, strPeriod, strLevel, strColumnLevel); 86 } else if (vars.commandIn("OPEN")){ 87 String strDateFrom = vars.getRequestGlobalVariable("inpDateFrom", "ReportAccountingCountDimensionalAnalyses|dateFrom"); 88 String strDateTo = vars.getRequestGlobalVariable("inpDateTo", "ReportAccountingCountDimensionalAnalyses|dateTo"); 89 String strDateFromRef = vars.getRequestGlobalVariable("inpDateFromRef", "ReportAccountingCountDimensionalAnalyses|dateFromRef"); 90 String strDateToRef = vars.getRequestGlobalVariable("inpDateToRef", "ReportAccountingCountDimensionalAnalyses|dateToRef"); 91 String strAccountingCount = vars.getRequestGlobalVariable("inpAccountingCount", "ReportAccountingCountDimensionalAnalyses|accountingCount"); 92 String strcBpartnerId = vars.getRequestInGlobalVariable("inpcBPartnerId_IN", "ReportAccountingCountDimensionalAnalyses|cBpartnerId"); 93 String strmProductId = vars.getRequestInGlobalVariable("inpmProductId_IN", "ReportAccountingCountDimensionalAnalyses|mProductId"); 94 String strShown = vars.getInStringParameter("inpShown"); 95 String strOrg = vars.getGlobalVariable("inpOrg", "ReportAccountingCountDimensionalAnalyses|org", "0"); 96 String strcProjectId = vars.getRequestGlobalVariable("inpcProjectId", "ReportAccountingCountDimensionalAnalyses|project"); 97 String strComparative = vars.getStringParameter("inpComparative", "N"); 98 String strLevel = vars.getRequiredStringParameter("inpLevel"); 99 String strColumnLevel = vars.getStringParameter("inpColumnLevel"); 100 String strPeriod = vars.getRequiredStringParameter("inpPeriod"); 101 printPageOpen(response, vars, strComparative, strDateFrom, strDateTo, strAccountingCount, strcBpartnerId, strmProductId, strShown, strDateFromRef, strDateToRef, strOrg, strcProjectId, strPeriod, strLevel, strColumnLevel); 102 } else if (vars.commandIn("DIRECT")){ 103 String strDateFrom = vars.getRequestGlobalVariable("inpDateFrom", "ReportAccountingCountDimensionalAnalyses|dateFrom"); 104 String strDateTo = vars.getRequestGlobalVariable("inpDateTo", "ReportAccountingCountDimensionalAnalyses|dateTo"); 105 String strDateFromRef = vars.getRequestGlobalVariable("inpDateFromRef", "ReportAccountingCountDimensionalAnalyses|dateFromRef"); 106 String strDateToRef = vars.getRequestGlobalVariable("inpDateToRef", "ReportAccountingCountDimensionalAnalyses|dateToRef"); 107 String strAccountingCount = vars.getRequestGlobalVariable("inpAccountingCount", "ReportAccountingCountDimensionalAnalyses|accountingCount"); 108 String strcBpartnerId = vars.getRequestInGlobalVariable("inpcBPartnerId_IN", "ReportAccountingCountDimensionalAnalyses|cBpartnerId"); 109 String strmProductId = vars.getRequestInGlobalVariable("inpmProductId_IN", "ReportAccountingCountDimensionalAnalyses|mProductId"); 110 String strShown = vars.getStringParameter("inpShown"); 111 String strOrg = vars.getGlobalVariable("inpOrg", "ReportAccountingCountDimensionalAnalyses|org", "0"); 112 String strcProjectId = vars.getRequestGlobalVariable("inpcProjectId", "ReportAccountingCountDimensionalAnalyses|project"); 113 String strComparative = vars.getStringParameter("inpComparative", "N"); 114 String strLevel = vars.getRequiredStringParameter("inpLevel"); 115 String strColumnLevel = vars.getStringParameter("inpColumnLevel"); 116 String strPeriod = vars.getRequiredStringParameter("inpPeriod"); 117 printPageDataSheet(response, vars, strComparative, strDateFrom, strDateTo, strAccountingCount, strcBpartnerId, strmProductId, strShown, strDateFromRef, strDateToRef, strOrg, strcProjectId, strPeriod, strLevel, strColumnLevel); 118 } else pageErrorPopUp(response); 119 } 120 121 void printPageDataHtml(HttpServletResponse response, VariablesSecureApp vars, String strComparative, String strDateFrom, String strDateTo, String strAccountingCount, String strcBpartnerId, String strmProductId, String strShown, String strDateFromRef, String strDateToRef, String strOrg, String strcProjectId, String strPeriod, String strLevel, String strColumnLevel) throws IOException, ServletException { 122 if (log4j.isDebugEnabled()) log4j.debug("Output: dataSheet"); 124 String discard1[]={"discard", "discard", "discard", "discard", "discard"}; 125 String discard[] = {"discard", "discard", "discard", "discard"}; 126 String [] arrayVector = {"", "", "", "", "", ""}; 127 Vector <Object > vectorArray = createVector(); 128 129 XmlDocument xmlDocument=null; 130 String strTitle = ""; 131 String strGroupBy = ""; 132 String strFilter = ""; 133 134 135 String [] arrayString = {"", "", "", "", "", ""}; 136 ReportAccountingCountDimensionalAnalysesData[] data = null; 137 ReportAccountingCountDimensionalAnalysesData[] dataPeriod = null; 138 139 if (strAccountingCount.equals("")){ 141 discard1[0] = "selEliminarDetail1"; 142 discard1[1] = "selEliminarDetail2"; 143 discard1[2] = "selEliminarDetail3"; 144 discard1[3] = "selEliminarDetail4"; 145 data = ReportAccountingCountDimensionalAnalysesData.set(); 146 } else{ 147 arrayString = createArrayString(vectorArray, strShown, strColumnLevel); 148 strFilter = createFilter(vars, vectorArray, strShown, arrayString[1]); 149 strGroupBy = createGroupby(vectorArray, strShown, arrayString[1]); 150 if (strPeriod.equals("without")){ 151 if (strComparative.equals("Y")){ 152 discard1[0] = "selEliminarDetail1"; 153 discard1[1] = "selEliminarDetail2"; 154 discard1[2] = "selEliminarDetail4"; 155 data = ReportAccountingCountDimensionalAnalysesData.selectComparative(this, "'"+arrayString[0]+"'", "''", arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), 156 strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateFromRef, DateTimeData.nDaysAfter(this, strDateToRef,"1"), arrayString[4], arrayString[5]); 157 } else{ 158 discard1[0] = "selEliminarDetail2"; 159 discard1[1] = "selEliminarDetail3"; 160 discard1[2] = "selEliminarDetail4"; 161 data = ReportAccountingCountDimensionalAnalysesData.select(this, "'"+arrayString[0]+"'", "''", arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, arrayString[4], arrayString[5]); 162 } 163 if (data == null || data.length == 0) ReportAccountingCountDimensionalAnalysesData.set(); 164 } else if (strPeriod.equals("month")){ 165 166 dataPeriod = ReportAccountingCountDimensionalAnalysesData.selectDate(this, strDateFrom, strDateTo); 167 if (!strComparative.equals("Y")){ 168 discard1[0] = "selEliminarDetail1"; 169 discard1[1] = "selEliminarDetail3"; 170 discard1[2] = "selEliminarDetail4"; 171 if (log4j.isDebugEnabled()) log4j.debug("Output: dataSheet"); 172 if (log4j.isDebugEnabled()) log4j.debug("Level1 = " + vars.getStringParameter("inpNivel1", "0")); 173 if (log4j.isDebugEnabled()) log4j.debug("Level2 = " + vars.getStringParameter("inpNivel2", "0")); 174 if (log4j.isDebugEnabled()) log4j.debug("Level3 = " + vars.getStringParameter("inpNivel3", "0")); 175 if (log4j.isDebugEnabled()) log4j.debug("Level4 = " + vars.getStringParameter("inpNivel4", "0")); 176 data = ReportAccountingCountDimensionalAnalysesData.selectPeriod(this, "'"+arrayString[0]+"'", "''", arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateTo, arrayString[4], arrayString[5]); 177 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 178 } else{ 179 discard1[0] = "selEliminarDetail1"; 180 discard1[1] = "selEliminarDetail3"; 181 discard1[2] = "selEliminarDetail2"; 182 data = ReportAccountingCountDimensionalAnalysesData.selectPeriodComparative(this, "'"+arrayString[0]+"'", "''", arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateFromRef, DateTimeData.nDaysAfter(this, strDateToRef,"1"), strDateTo, arrayString[4], arrayString[5]); 183 } 184 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 185 } else { 186 dataPeriod = ReportAccountingCountDimensionalAnalysesData.selectQuarter(this, strDateFrom, strDateTo); 187 if (!strComparative.equals("Y")){ 188 discard1[0] = "selEliminarDetail1"; 189 discard1[1] = "selEliminarDetail3"; 190 discard1[2] = "selEliminarDetail4"; 191 data = ReportAccountingCountDimensionalAnalysesData.selectPeriodQuarter(this, "'"+arrayString[0]+"'", "''", arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateTo, arrayString[4], arrayString[5]); 192 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 193 } else{ 194 discard1[0] = "selEliminarDetail1"; 195 discard1[1] = "selEliminarDetail3"; 196 discard1[2] = "selEliminarDetail2"; 197 data = ReportAccountingCountDimensionalAnalysesData.selectPeriodComparativeQuarter(this, "'"+arrayString[0]+"'", "''", arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateFromRef, DateTimeData.nDaysAfter(this, strDateToRef,"1"), strDateTo, arrayString[4], arrayString[5]); 198 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 199 } 200 } 201 202 } 203 204 205 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportAccountingCountDimensionalAnalysesEdit", discard1).createXmlDocument(); 206 207 xmlDocument.setParameter("title", " From: "+strDateFrom+" - To: "+strDateTo); 208 209 xmlDocument.setParameter("eliminar2", discard[1]); 210 xmlDocument.setParameter("eliminar3", discard[2]); 211 xmlDocument.setParameter("eliminar4", discard[3]); 212 213 xmlDocument.setParameter("language", "LNG_POR_DEFECTO=\"" + vars.getLanguage() + "\";"); 214 xmlDocument.setParameter("direction", "var baseDirection = \"" + strReplaceWith + "/\";\n"); 215 216 217 xmlDocument.setParameter("constante", "100"); 218 219 220 221 if (strPeriod.equals("month") || strPeriod.equals("quarter")){ 222 xmlDocument.setData("structure", dataPeriod); 223 if (strComparative.equals("Y")) xmlDocument.setData("structureComparativePeriod", data); 224 else xmlDocument.setData("structurePeriod", data); 225 } else { 226 if (strComparative.equals("Y")) xmlDocument.setData("structureComparative", data); 227 else xmlDocument.setData("structureNoperiod", data); 228 } 229 230 231 232 response.setContentType("text/html; charset=UTF-8"); 233 PrintWriter out = response.getWriter(); 234 out.println(xmlDocument.print()); 235 out.close(); 236 } 237 238 337 338 339 void printPageDataSheet(HttpServletResponse response, VariablesSecureApp vars, String strComparative, String strDateFrom, String strDateTo, String strAccountingCount, String strcBpartnerId, String strmProductId, String strShown, String strDateFromRef, String strDateToRef, String strOrg, String strcProjectId, String strPeriod, String strLevel, String strColumnLevel) throws IOException, ServletException { 340 if (log4j.isDebugEnabled()) log4j.debug("Output: dataSheet"); 342 String [] arrayVector = {"", "", "", "", "", ""}; 343 Vector <Object > vectorArray = createVector(); 344 345 XmlDocument xmlDocument=null; 346 String strTitle = ""; 347 String strGroupBy = ""; 348 String strFilter = ""; 349 350 String discard1[] = {"discard", "discard", "discard", "discard"}; 351 String [] arrayString = {"", "", "", "", "", ""}; 352 353 ReportAccountingCountDimensionalAnalysesData[] dataList = createList(vars, strShown); 354 if (!strComparative.equals("Y")){ 355 discard1[0] = "selEliminarHeader1"; 356 } 357 358 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportAccountingCountDimensionalAnalysesFilter", discard1).createXmlDocument(); 359 360 ToolBar toolbar = new ToolBar(this, vars.getLanguage(), "ReportAccountingCountDimensionalAnalysesFilter", false, "", "", "",false, "ad_reports", strReplaceWith, false, true); 361 toolbar.prepareSimpleToolBarTemplate(); 362 xmlDocument.setParameter("toolbar", toolbar.toString()); 363 364 365 xmlDocument.setParameter("language", "LNG_POR_DEFECTO=\"" + vars.getLanguage() + "\";"); 366 xmlDocument.setParameter("direction", "var baseDirection = \"" + strReplaceWith + "/\";\n"); 367 xmlDocument.setParameter("calendarLanguage", vars.getLanguage().substring(0,2)); 368 xmlDocument.setParameter("dateFrom", strDateFrom); 369 xmlDocument.setParameter("dateFromdisplayFormat", vars.getSessionValue("#AD_SqlDateFormat")); 370 xmlDocument.setParameter("dateFromsaveFormat", vars.getSessionValue("#AD_SqlDateFormat")); 371 xmlDocument.setParameter("dateTo", strDateTo); 372 xmlDocument.setParameter("dateTodisplayFormat", vars.getSessionValue("#AD_SqlDateFormat")); 373 xmlDocument.setParameter("dateTosaveFormat", vars.getSessionValue("#AD_SqlDateFormat")); 374 xmlDocument.setParameter("dateFromRef", strDateFromRef); 375 xmlDocument.setParameter("dateFromRefdisplayFormat", vars.getSessionValue("#AD_SqlDateFormat")); 376 xmlDocument.setParameter("dateFromRefsaveFormat", vars.getSessionValue("#AD_SqlDateFormat")); 377 xmlDocument.setParameter("dateToRef", strDateToRef); 378 xmlDocument.setParameter("dateToRefdisplayFormat", vars.getSessionValue("#AD_SqlDateFormat")); 379 xmlDocument.setParameter("dateToRefsaveFormat", vars.getSessionValue("#AD_SqlDateFormat")); 380 xmlDocument.setParameter("accounting", strAccountingCount); 381 xmlDocument.setParameter("adOrgId", strOrg); 382 xmlDocument.setParameter("comparative", strComparative); 383 xmlDocument.setParameter("period", strPeriod); 384 xmlDocument.setParameter("cProjectId", strcProjectId); 385 xmlDocument.setParameter("projectName", ReportAccountingCountDimensionalAnalysesData.selectProject(this, strcProjectId)); 386 xmlDocument.setParameter("withoutPeriod", strPeriod); 387 xmlDocument.setParameter("monthPeriod", strPeriod); 388 xmlDocument.setParameter("quarterPeriod", strPeriod); 389 390 391 xmlDocument.setData("reportCBPartnerId_IN", "liststructure", ReportRefundInvoiceCustomerDimensionalAnalysesData.selectBpartner(this, Utility.getContext(this, vars, "#User_Org", ""), Utility.getContext(this, vars, "#User_Client", ""), strcBpartnerId)); 392 xmlDocument.setData("reportMProductId_IN", "liststructure", ReportRefundInvoiceCustomerDimensionalAnalysesData.selectMproduct(this, Utility.getContext(this, vars, "#User_Org", ""), Utility.getContext(this, vars, "#User_Client", ""), strmProductId)); 393 xmlDocument.setData("reportAD_ORGID", "liststructure", OrganizationComboData.selectCombo(this, vars.getRole())); 394 395 try { 396 KeyMap key = new KeyMap(this, vars, "ReportAccountingCountDimensionalAnalyses.html"); 397 xmlDocument.setParameter("keyMap", key.getReportKeyMaps()); 398 } catch (Exception ex) { 399 throw new ServletException(ex); 400 } 401 try { 402 WindowTabs tabs = new WindowTabs(this, vars, "org.openbravo.erpCommon.ad_reports.ReportAccountingCountDimensionalAnalyses"); 403 xmlDocument.setParameter("parentTabContainer", tabs.parentTabs()); 404 xmlDocument.setParameter("mainTabContainer", tabs.mainTabs()); 405 xmlDocument.setParameter("childTabContainer", tabs.childTabs()); 406 xmlDocument.setParameter("theme", vars.getTheme()); 407 NavigationBar nav = new NavigationBar(this, vars.getLanguage(), "ReportAccountingCountDimensionalAnalyses.html", classInfo.id, classInfo.type, strReplaceWith, tabs.breadcrumb()); 408 xmlDocument.setParameter("navigationBar", nav.toString()); 409 LeftTabsBar lBar = new LeftTabsBar(this, vars.getLanguage(), "ReportAccountingCountDimensionalAnalyses.html", strReplaceWith); 410 xmlDocument.setParameter("leftTabs", lBar.manualTemplate()); 411 } catch (Exception ex) { 412 throw new ServletException(ex); 413 } 414 { 415 OBError myMessage = vars.getMessage("ReportAccountingCountDimensionalAnalyses"); 416 vars.removeMessage("ReportAccountingCountDimensionalAnalyses"); 417 if (myMessage!=null) { 418 xmlDocument.setParameter("messageType", myMessage.getType()); 419 xmlDocument.setParameter("messageTitle", myMessage.getTitle()); 420 xmlDocument.setParameter("messageMessage", myMessage.getMessage()); 421 } 422 } 423 424 try { 425 ComboTableData comboTableData = new ComboTableData(vars, this, "TABLE", "Account_ID", "C_ElementValue (Accounts)", "", Utility.getContext(this, vars, "#User_Org", "Account"), Utility.getContext(this, vars, "#User_Client", "Account"), 0); 426 Utility.fillSQLParameters(this, vars, null, comboTableData, "Account", strAccountingCount); 427 xmlDocument.setData("reportAccount_ID","liststructure", comboTableData.select(false)); 428 comboTableData = null; 429 } catch (Exception ex) { 430 throw new ServletException(ex); 431 } 432 433 xmlDocument.setData("structure2", dataList); 434 435 response.setContentType("text/html; charset=UTF-8"); 436 PrintWriter out = response.getWriter(); 437 out.println(xmlDocument.print()); 438 out.close(); 439 } 440 441 void printPageOpen(HttpServletResponse response, VariablesSecureApp vars, String strComparative, String strDateFrom, String strDateTo, String strAccountingCount, String strcBpartnerId, String strmProductId, String strShown, String strDateFromRef, String strDateToRef, String strOrg, String strcProjectId, String strPeriod, String strLevel, String strColumnLevel) throws IOException, ServletException { 442 if (log4j.isDebugEnabled()) log4j.debug("Output: open"); 444 Vector <Object > vectorArray = createVector(); 445 String strGroupBy = ""; 446 String strFilter = ""; 447 String strReturnMessage = ""; 448 XmlDocument xmlDocument = null; 449 450 ReportAccountingCountDimensionalAnalysesData[] data = null; 451 if (strAccountingCount.equals("")){ 452 data = ReportAccountingCountDimensionalAnalysesData.set(); 453 } else{ 454 String [] arrayString = createArrayString(vectorArray, strShown, strColumnLevel); 455 456 strFilter = createFilter(vars, vectorArray, strShown, arrayString[1]); 457 strGroupBy = createGroupby(vectorArray, strShown, arrayString[1]); 458 if (strPeriod.equals("without")){ 459 if (!strComparative.equals("Y")){ 460 461 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportAccountingNoComparativeNoPeriod").createXmlDocument(); 462 463 data = ReportAccountingCountDimensionalAnalysesData.select(this, "'"+arrayString[0]+"'", vars.getStringParameter("inpNivel"+strLevel), arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, arrayString[4], arrayString[5]); 464 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 465 } else { 466 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportAccountingComparativeNoPeriod").createXmlDocument(); 467 468 data = ReportAccountingCountDimensionalAnalysesData.selectComparative(this, "'"+arrayString[0]+"'", vars.getStringParameter("inpNivel"+strLevel), arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateFromRef, DateTimeData.nDaysAfter(this, strDateToRef,"1"), arrayString[4], arrayString[5]); 469 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 470 } 471 472 473 } else if (strPeriod.equals("month")){ 474 if (!strComparative.equals("Y")){ 475 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportAccountingNoComparativePeriod").createXmlDocument(); 476 477 data = ReportAccountingCountDimensionalAnalysesData.selectPeriod(this, "'"+arrayString[0]+"'", vars.getStringParameter("inpNivel"+strLevel), arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateTo, arrayString[4], arrayString[5]); 478 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 479 } else{ 480 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportAccountingComparativePeriod").createXmlDocument(); 481 data = ReportAccountingCountDimensionalAnalysesData.selectPeriodComparative(this, "'"+arrayString[0]+"'", vars.getStringParameter("inpNivel"+strLevel), arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateFromRef, DateTimeData.nDaysAfter(this, strDateToRef,"1"), strDateTo, arrayString[4], arrayString[5]); 482 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 483 } 484 } else { 485 if (!strComparative.equals("Y")){ 486 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportAccountingNoComparativePeriod").createXmlDocument(); 487 488 data = ReportAccountingCountDimensionalAnalysesData.selectPeriodQuarter(this, "'"+arrayString[0]+"'", vars.getStringParameter("inpNivel"+strLevel), arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateTo, arrayString[4], arrayString[5]); 489 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 490 } else { 491 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportAccountingComparativePeriod").createXmlDocument(); 492 data = ReportAccountingCountDimensionalAnalysesData.selectPeriodComparativeQuarter(this, "'"+arrayString[0]+"'", vars.getStringParameter("inpNivel"+strLevel), arrayString[2], arrayString[1], vars.getStringParameter("inpNivel1", "0"), vars.getStringParameter("inpNivel2", "0"), vars.getStringParameter("inpNivel3", "0"), vars.getStringParameter("inpNivel4", "0"), arrayString[3], Utility.getContext(this, vars, "#User_Client", "ReportAccountingCountDimensionalAnalyses"), strAccountingCount, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), Tree.getMembers(this, TreeData.getTreeOrg(this, vars.getClient()), strOrg), strcBpartnerId, strmProductId, strcProjectId, strFilter, strGroupBy, strDateFromRef, DateTimeData.nDaysAfter(this, strDateToRef,"1"), strDateTo, arrayString[4], arrayString[5]); 493 if (data == null || data.length == 0) data = ReportAccountingCountDimensionalAnalysesData.set(); 494 } 495 } 496 497 } 498 response.setContentType("text/plain"); 499 response.setHeader("Cache-Control", "no-cache"); 500 PrintWriter out = response.getWriter(); 501 502 xmlDocument.setData("structure", data); 503 out.println(xmlDocument.print()); 504 out.close(); 505 506 507 } 508 509 Vector <Object > createVector()throws IOException, ServletException{ 510 ReportAccountingCountDimensionalAnalysesData[] data = ReportAccountingCountDimensionalAnalysesData.selectDimension(this, "RV_ReportAccountingCountDimensionalAnaly"); 512 Vector <Object > vectorArray = new Vector <Object >(); 513 for ( int i = 0; i<data.length; i++){ 514 String [] arrayAux = {"", "", "", "", "", ""}; 515 arrayAux[0] = data[i].columnname; 516 arrayAux[1] = data[i].line; 517 arrayAux[2] = data[i].description; 518 arrayAux[3] = data[i].joinGroup1; 519 arrayAux[4] = data[i].tablename; 520 arrayAux[5] = data[i].joinGroup2; 521 vectorArray.addElement(arrayAux); 522 String aux[] = (String [])vectorArray.elementAt(i); 523 } 524 return vectorArray; 525 } 526 527 ReportAccountingCountDimensionalAnalysesData[] createList(VariablesSecureApp vars, String strShown)throws IOException, ServletException{ 528 ReportAccountingCountDimensionalAnalysesData[] dataDimension = ReportAccountingCountDimensionalAnalysesData.selectDimension(this, "RV_ReportAccountingCountDimensionalAnaly"); 530 ReportAccountingCountDimensionalAnalysesData[] data = ReportAccountingCountDimensionalAnalysesData.selectShown(this); 531 int intContador = 0; 532 if (!strShown.equals("")){ 533 if (strShown.startsWith("(")) strShown = strShown.substring(1, strShown.length()-1); 534 if (!strShown.equals("")) { 535 strShown = Replace.replace(strShown, "'", ""); 536 strShown = Replace.replace(strShown, " ", ""); 537 StringTokenizer st = new StringTokenizer(strShown, ",", false); 538 String strAux = ""; 539 while (st.hasMoreTokens()){ 540 strAux = st.nextToken(); 541 data[intContador].id = strAux; 542 data[intContador].name = ReportAccountingCountDimensionalAnalysesData.selectDimensionName(this, vars.getLanguage(), strAux ); 543 intContador++; 544 } 545 } 546 } else{ 547 for (int i = 0; i < dataDimension.length; i++){ 548 data[i].id = dataDimension[i].columnname; 549 data[i].name = ReportAccountingCountDimensionalAnalysesData.selectDimensionName(this, vars.getLanguage(), dataDimension[i].columnname); 550 } 551 } 552 return data; 553 554 } 555 556 String [] createArrayString(Vector <Object > vectorArray, String strShown, String strColumnLevel)throws IOException, ServletException{ 557 String [] arrayString = null; 559 int intContador = 0; 560 if (strShown.startsWith("(")) strShown = strShown.substring(1, strShown.length()-1); 561 if (!strShown.equals("")) { 562 strShown = Replace.replace(strShown, "'", ""); 563 strShown = Replace.replace(strShown, " ", ""); 564 StringTokenizer st = new StringTokenizer(strShown, ",", false); 565 String strAux = ""; 566 while (st.hasMoreTokens() && !strAux.equals(strColumnLevel)){ 567 strAux = st.nextToken(); 568 intContador++; 569 } 570 strAux = st.nextToken(); 571 intContador++; 572 int intCount = 0; 573 arrayString = (String [])(vectorArray.elementAt(intCount)); 574 while (!arrayString[0].equals(strAux) && arrayString[0] != null){ 575 intCount++; 576 arrayString = (String [])(vectorArray.elementAt(intCount)); 577 } 578 579 arrayString[1] = String.valueOf(intContador); 580 } 581 582 return arrayString; 583 } 584 585 String createFilter(VariablesSecureApp vars, Vector <Object > vectorArray, String strShown, String strLevel)throws IOException, ServletException{ 586 String strFilter = ""; 588 String [] arrayAux = inicializarArray(); 589 if (strShown.startsWith("(")) strShown = strShown.substring(1, strShown.length()-1); 590 if (!strShown.equals("")) { 591 strShown = Replace.replace(strShown, "'", ""); 592 strShown = Replace.replace(strShown, " ", ""); 593 StringTokenizer st = new StringTokenizer(strShown, ",", false); 594 String strAux = ""; 595 if (!strLevel.equals("1")){ 596 for (int i=0; i<Integer.valueOf(strLevel).intValue()-1; i++){ 597 strAux = st.nextToken(); 598 int j = 0; 599 while (!strAux.equals(arrayAux[0])){ 600 arrayAux = (String [])(vectorArray.elementAt(j)); 601 j++; 602 } 603 strFilter += " AND " + arrayAux[3] + " = " + vars.getStringParameter("inpNivel"+(i+1)); 604 } 605 } 606 } 607 return strFilter; 608 } 609 610 String createGroupby(Vector <Object > vectorArray, String strShown, String strLevel)throws IOException, ServletException{ 611 String strGroupBy = ""; 613 String [] arrayAux = inicializarArray(); 614 if (strShown.startsWith("(")) strShown = strShown.substring(1, strShown.length()-1); 615 if (!strShown.equals("")) { 616 strShown = Replace.replace(strShown, "'", ""); 617 strShown = Replace.replace(strShown, " ", ""); 618 StringTokenizer st = new StringTokenizer(strShown, ",", false); 619 String strAux = ""; 620 for (int i=0; i<Integer.valueOf(strLevel).intValue(); i++){ 621 strAux = st.nextToken(); 622 int j = 0; 623 while (!strAux.equals(arrayAux[0])){ 624 arrayAux = (String [])(vectorArray.elementAt(j)); 625 j++; 626 } 627 strGroupBy += ", " + arrayAux[3]; 628 } 629 } 630 return strGroupBy; 631 } 632 633 String [] inicializarArray()throws IOException, ServletException{ 634 String [] defaultArray = {"", "", "", "", "", ""}; 635 return defaultArray; 636 } 637 638 public String getServletInfo() { 639 return "Servlet ReportAccountingCountDimensionalAnalyses. This Servlet was made by Jon AlegrÃa"; 640 } } 642 643 | Popular Tags |