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.base.secureApp.HttpSecureAppServlet; 25 import org.openbravo.base.secureApp.VariablesSecureApp; 26 import org.openbravo.xmlEngine.XmlDocument; 27 import java.io.*; 28 import javax.servlet.*; 29 import javax.servlet.http.*; 30 31 import org.openbravo.erpCommon.ad_combos.OrganizationComboData; 32 33 import org.openbravo.erpCommon.utility.DateTimeData; 34 35 import java.util.*; 36 import net.sf.jasperreports.engine.*; 37 import net.sf.jasperreports.engine.design.JasperDesign; 38 import java.sql.Connection ; 39 import net.sf.jasperreports.engine.xml.JRXmlLoader; 40 import net.sf.jasperreports.engine.export.JRHtmlExporter; 41 import net.sf.jasperreports.engine.export.JRHtmlExporterParameter; 42 43 public class ReportGeneralLedger extends HttpSecureAppServlet { 44 45 46 public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { 47 VariablesSecureApp vars = new VariablesSecureApp(request); 48 49 if (!Utility.hasProcessAccess(this, vars, "", "RV_ReportGeneralLedger")) { 50 bdError(response, "AccessTableNoView", vars.getLanguage()); 51 return; 52 } 53 54 if (vars.commandIn("DEFAULT")) { 55 String strcAcctSchemaId = vars.getGlobalVariable("inpcAcctSchemaId", "ReportGeneralLedger|cAcctSchemaId", ""); 56 String strDateFrom = vars.getGlobalVariable("inpDateFrom", "ReportGeneralLedger|DateFrom", ""); 57 String strDateTo = vars.getGlobalVariable("inpDateTo", "ReportGeneralLedger|DateTo", ""); 58 String strAmtFrom = vars.getGlobalVariable("inpAmtFrom", "ReportGeneralLedger|AmtFrom", ""); 59 String strAmtTo = vars.getGlobalVariable("inpAmtTo", "ReportGeneralLedger|AmtTo", ""); 60 String strcelementvaluefrom = vars.getGlobalVariable("inpcElementValueIdFrom", "ReportGeneralLedger|C_ElementValue_IDFROM", ""); 61 String strcelementvalueto = vars.getGlobalVariable("inpcElementValueIdTo", "ReportGeneralLedger|C_ElementValue_IDTO", ""); 62 String strOrg = vars.getGlobalVariable("inpOrg", "ReportGeneralLedger|Org", "0"); 63 String strcBpartnerId = vars.getInGlobalVariable("inpcBPartnerId_IN", "ReportGeneralLedger|cBpartnerId", ""); 64 String strAll = vars.getGlobalVariable("inpAll","ReportGeneralLedger|All",""); 65 String strHide = vars.getGlobalVariable("inpHideMatched","ReportGeneralLedger|HideMatched",""); 66 printPageDataSheet(response, vars, strDateFrom, strDateTo, strAmtFrom, strAmtTo, strcelementvaluefrom, strcelementvalueto, strOrg, strcBpartnerId, strAll, strHide, strcAcctSchemaId); 67 } else if (vars.commandIn("FIND")) { 68 String strcAcctSchemaId = vars.getRequestGlobalVariable("inpcAcctSchemaId", "ReportGeneralLedger|cAcctSchemaId"); 69 String strDateFrom = vars.getRequestGlobalVariable("inpDateFrom", "ReportGeneralLedger|DateFrom"); 70 String strDateTo = vars.getRequestGlobalVariable("inpDateTo", "ReportGeneralLedger|DateTo"); 71 String strAmtFrom = vars.getRequestGlobalVariable("inpAmtFrom", "ReportGeneralLedger|AmtFrom"); 72 String strAmtTo = vars.getRequestGlobalVariable("inpAmtTo", "ReportGeneralLedger|AmtTo"); 73 String strcelementvaluefrom = vars.getRequestGlobalVariable("inpcElementValueIdFrom", "ReportGeneralLedger|C_ElementValue_IDFROM"); 74 String strcelementvalueto = vars.getRequestGlobalVariable("inpcElementValueIdTo", "ReportGeneralLedger|C_ElementValue_IDTO"); 75 String strOrg = vars.getGlobalVariable("inpOrg", "ReportGeneralLedger|Org", "0"); 76 String strcBpartnerId = vars.getRequestInGlobalVariable("inpcBPartnerId_IN", "ReportGeneralLedger|cBpartnerId"); 77 String strAll = vars.getStringParameter("inpAll"); 78 String strHide = vars.getStringParameter("inpHideMatched"); 79 if (log4j.isDebugEnabled()) log4j.debug("inpAll: "+strAll); 80 if (strAll.equals("")) vars.removeSessionValue("ReportGeneralLedger|All"); 81 else strAll = vars.getGlobalVariable("inpAll","ReportGeneralLedger|All"); 82 if (strHide.equals("")) vars.removeSessionValue("ReportGeneralLedger|HideMatched"); 83 else strHide = vars.getGlobalVariable("inpHideMatched","ReportGeneralLedger|HideMatched"); 84 if (log4j.isDebugEnabled()) log4j.debug("##################### DoPost - Find - strcBpartnerId= " + strcBpartnerId); 85 if (log4j.isDebugEnabled()) log4j.debug("##################### DoPost - XLS - strcelementvaluefrom= " + strcelementvaluefrom); 86 if (log4j.isDebugEnabled()) log4j.debug("##################### DoPost - XLS - strcelementvalueto= " + strcelementvalueto); 87 vars.setSessionValue("ReportGeneralLedger.initRecordNumber", "0"); 88 printPageDataSheet(response, vars, strDateFrom, strDateTo, strAmtFrom, strAmtTo, strcelementvaluefrom, strcelementvalueto, strOrg, strcBpartnerId, strAll, strHide, strcAcctSchemaId); 89 } else if (vars.commandIn("PREVIOUS_RELATION")) { 90 String strInitRecord = vars.getSessionValue("ReportGeneralLedger.initRecordNumber"); 91 String strRecordRange = Utility.getContext(this, vars, "#RecordRange", "ReportGeneralLedger"); 92 int intRecordRange = strRecordRange.equals("")?0:Integer.parseInt(strRecordRange); 93 if (strInitRecord.equals("") || strInitRecord.equals("0")) vars.setSessionValue("ReportGeneralLedger.initRecordNumber", "0"); 94 else { 95 int initRecord = (strInitRecord.equals("")?0:Integer.parseInt(strInitRecord)); 96 initRecord -= intRecordRange; 97 strInitRecord = ((initRecord<0)?"0":Integer.toString(initRecord)); 98 vars.setSessionValue("ReportGeneralLedger.initRecordNumber", strInitRecord); 99 } 100 response.sendRedirect(strDireccion + request.getServletPath()); 101 } else if (vars.commandIn("NEXT_RELATION")) { 102 String strInitRecord = vars.getSessionValue("ReportGeneralLedger.initRecordNumber"); 103 String strRecordRange = Utility.getContext(this, vars, "#RecordRange", "ReportGeneralLedger"); 104 int intRecordRange = strRecordRange.equals("")?0:Integer.parseInt(strRecordRange); 105 int initRecord = (strInitRecord.equals("")?0:Integer.parseInt(strInitRecord)); 106 if (initRecord==0) initRecord=1; 107 initRecord += intRecordRange; 108 strInitRecord = ((initRecord<0)?"0":Integer.toString(initRecord)); 109 vars.setSessionValue("ReportGeneralLedger.initRecordNumber", strInitRecord); 110 response.sendRedirect(strDireccion + request.getServletPath()); 111 } else if (vars.commandIn("PDF","XLS")){ 112 String strcAcctSchemaId = vars.getRequestGlobalVariable("inpcAcctSchemaId", "ReportGeneralLedger|cAcctSchemaId"); 113 String strDateFrom = vars.getRequestGlobalVariable("inpDateFrom", "ReportGeneralLedger|DateFrom"); 114 String strDateTo = vars.getRequestGlobalVariable("inpDateTo", "ReportGeneralLedger|DateTo"); 115 String strAmtFrom = vars.getRequestGlobalVariable("inpAmtFrom", "ReportGeneralLedger|AmteFrom"); 116 String strAmtTo = vars.getRequestGlobalVariable("inpAmtTo", "ReportGeneralLedger|AmtTo"); 117 String strcelementvaluefrom = vars.getRequestGlobalVariable("inpcElementValueIdFrom", "ReportGeneralLedger|C_ElementValue_IDFROM"); 118 String strcelementvalueto = vars.getRequestGlobalVariable("inpcElementValueIdTo", "ReportGeneralLedger|C_ElementValue_IDTO"); 119 String strOrg = vars.getGlobalVariable("inpOrg", "ReportGeneralLedger|Org", "0"); 120 String strcBpartnerId = vars.getRequestInGlobalVariable("inpcBPartnerId_IN", "ReportGeneralLedger|cBpartnerId"); 121 String strAll = vars.getStringParameter("inpAll"); 122 String strHide = vars.getStringParameter("inpHideMatched"); 123 printPageDataPDF(response, vars, strDateFrom, strDateTo, strAmtFrom, strAmtTo, strcelementvaluefrom, strcelementvalueto, strOrg, strcBpartnerId, strAll, strHide, strcAcctSchemaId); 124 } else pageError(response); 125 } 126 127 void printPageDataSheet(HttpServletResponse response, VariablesSecureApp vars, String strDateFrom, String strDateTo, String strAmtFrom, String strAmtTo, String strcelementvaluefrom, String strcelementvalueto, String strOrg, String strcBpartnerId, String strAll, String strHide, String strcAcctSchemaId) throws IOException, ServletException { 128 String strRecordRange = Utility.getContext(this, vars, "#RecordRange", "ReportGeneralLedger"); 129 int intRecordRange = (strRecordRange.equals("")?0:Integer.parseInt(strRecordRange)); 130 String strInitRecord = vars.getSessionValue("ReportGeneralLedger.initRecordNumber"); 131 int initRecordNumber = (strInitRecord.equals("")?0:Integer.parseInt(strInitRecord)); 132 if (log4j.isDebugEnabled()) log4j.debug("Output: dataSheet"); 133 if (log4j.isDebugEnabled()) log4j.debug("Date From:"+strDateFrom+"- To:"+strDateTo+" - Schema:"+strcAcctSchemaId); 134 response.setContentType("text/html; charset=UTF-8"); 135 PrintWriter out = response.getWriter(); 136 XmlDocument xmlDocument=null; 137 ReportGeneralLedgerData [] [] subreport = null; 138 ReportGeneralLedgerData [] [] subreport2 = null; 139 ReportGeneralLedgerData[] data=null; 140 String strTreeOrg = ReportTrialBalanceData.treeOrg(this, vars.getClient()); 141 String strTreeAccount = ReportTrialBalanceData.treeAccount(this, vars.getClient()); 142 143 ToolBar toolbar = new ToolBar(this, vars.getLanguage(), "ReportGeneralLedger", true, "", "", "imprimir();return false;",false, "ad_reports", strReplaceWith, false, true); 144 String strcBpartnerIdAux = strcBpartnerId; 145 if (!strAll.equals("")) strcBpartnerId = ""; 146 147 148 if (strDateFrom.equals("") && strDateTo.equals("")) { 149 String discard[]={"sectionAmount","sectionPartner"}; 150 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportGeneralLedger", discard).createXmlDocument(); 151 toolbar.prepareRelationBarTemplate(false, false,"submitCommandForm('XLS', false, frmMain, 'ReportGeneralLedgerExcel.xls', 'EXCEL');return false;"); 152 data = ReportGeneralLedgerData.set(); 154 } else { 155 String [] discard = {"discard"}; 156 if (strcBpartnerId.equals("")&&strAll.equals("")) discard[0] = "sectionPartner"; 157 else discard[0] = "sectionAmount"; 158 String strOrgFamily = getFamily(strTreeOrg, strOrg); 159 if (strcelementvaluefrom !=null && !strcelementvaluefrom.equals("")){ 160 if (strcelementvalueto.equals("")) { 161 strcelementvalueto=strcelementvaluefrom; 162 } 163 String strRange = getRange(strcelementvaluefrom, strcelementvalueto); 164 if (log4j.isDebugEnabled()) log4j.debug("##################### strRange= " + strRange); 165 if (log4j.isDebugEnabled()) log4j.debug("##################### strcelementvaluefrom= " + strcelementvaluefrom); 166 if (log4j.isDebugEnabled()) log4j.debug("##################### strcelementvalueto= " + strcelementvalueto); 167 if (strHide.equals("")) 169 data = ReportGeneralLedgerData.select(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strRange.equals("")?"":"("+ strRange + ")", strcBpartnerId,strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&(strAll.equals("")))?"value":"partner", initRecordNumber, intRecordRange); 170 else 171 data = ReportGeneralLedgerData.selectHiding(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strRange.equals("")?"":"("+ strRange + ")", strcBpartnerId,strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&(strAll.equals("")))?"value":"partner", initRecordNumber, intRecordRange); 172 } else { 173 if (strHide.equals("")) 174 data = ReportGeneralLedgerData.selectAll(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strcBpartnerId, strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&strAll.equals(""))?"value":"partner", initRecordNumber, intRecordRange); 175 else 176 data = ReportGeneralLedgerData.selectAllHiding(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strcBpartnerId, strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&strAll.equals(""))?"value":"partner", initRecordNumber, intRecordRange); 177 } 178 if (log4j.isDebugEnabled()) log4j.debug("RecordNo: "+initRecordNumber); 179 if (initRecordNumber>1){ 180 String strAcctFamily = getFamily(strTreeAccount, data[0].id); 181 ReportGeneralLedgerData [] data2=null; 183 if (strHide.equals("")) 184 data2 = ReportGeneralLedgerData.select(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strAcctFamily.equals("")?"":"("+ strAcctFamily + ")", strcBpartnerId, strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&(strAll.equals(""))?"value":"partner")); 185 else 186 data2 = ReportGeneralLedgerData.selectHiding(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strAcctFamily.equals("")?"":"("+ strAcctFamily + ")", strcBpartnerId, strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&(strAll.equals(""))?"value":"partner")); 187 188 if (log4j.isDebugEnabled()) log4j.debug("acctFamily:"+strAcctFamily+" data2.length"+data2.length); 189 double amount = 0.0; 190 for (int i=0;data2!=null && i<data2.length;i++){ 191 if (data2[i].factAcctId.equals(data[0].factAcctId)) { 192 if (log4j.isDebugEnabled()) log4j.debug("break i:"+i); 193 break; 194 }; 195 if ((data2[i].partner.equals(data[0].partner) && (!(strcBpartnerId.equals("")&&(strAll.equals("")))))||(strcBpartnerId.equals("")&&(strAll.equals("")))) 197 amount += Double.valueOf(data2[i].total).doubleValue(); 198 } 199 203 data[0].saldo = Double.toString(amount); 204 if (log4j.isDebugEnabled()) log4j.debug("##################### BALANCE= " + data[0].saldo+" amount:"+amount); 205 } 206 subreport = new ReportGeneralLedgerData[data.length][]; 207 String strOld = ""; 208 int j = 0; 209 for (int i=0;data!=null && i<data.length;i++){ 210 if(!strOld.equals(((strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId) + data[i].id)){ 211 subreport[j] = ReportGeneralLedgerData.selectPrevious(this,(strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId, strcAcctSchemaId, data[i].id, data[i].dateacct, strOrgFamily); 212 j++; 213 } 214 strOld = (((strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId) + data[i].id); 215 } 216 subreport2 = new ReportGeneralLedgerData[data.length][]; 217 String strTotal = ""; 218 int g = 0; 219 for (int i=0;data!=null && i<data.length;i++){ 220 if(!strTotal.equals(((strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId) + data[i].id)){ 221 subreport2[g] = ReportGeneralLedgerData.selectTotal(this,(strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId, strcAcctSchemaId, data[i].id, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily); 222 g++; 223 } 224 strTotal = (((strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId) + data[i].id); 225 } 226 boolean hasPrevious = !(data==null || data.length==0 || initRecordNumber<=1); 227 boolean hasNext = !(data==null || data.length==0 || data.length<intRecordRange); 228 toolbar.prepareRelationBarTemplate(hasPrevious, hasNext,"submitCommandForm('XLS', true, frmMain, 'ReportGeneralLedgerExcel.xls', 'EXCEL');return false;"); 229 xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_reports/ReportGeneralLedger", discard).createXmlDocument(); 231 } 232 xmlDocument.setParameter("toolbar", toolbar.toString()); 233 234 try { 235 KeyMap key = new KeyMap(this, vars, "ReportGeneralLedger.html"); 236 xmlDocument.setParameter("keyMap", key.getReportKeyMaps()); 237 } catch (Exception ex) { 238 throw new ServletException(ex); 239 } 240 try { 241 WindowTabs tabs = new WindowTabs(this, vars, "org.openbravo.erpCommon.ad_reports.ReportGeneralLedger"); 242 xmlDocument.setParameter("parentTabContainer", tabs.parentTabs()); 243 xmlDocument.setParameter("mainTabContainer", tabs.mainTabs()); 244 xmlDocument.setParameter("childTabContainer", tabs.childTabs()); 245 xmlDocument.setParameter("theme", vars.getTheme()); 246 NavigationBar nav = new NavigationBar(this, vars.getLanguage(), "ReportGeneralLedger.html", classInfo.id, classInfo.type, strReplaceWith, tabs.breadcrumb()); 247 xmlDocument.setParameter("navigationBar", nav.toString()); 248 LeftTabsBar lBar = new LeftTabsBar(this, vars.getLanguage(), "ReportGeneralLedger.html", strReplaceWith); 249 xmlDocument.setParameter("leftTabs", lBar.manualTemplate()); 250 } catch (Exception ex) { 251 throw new ServletException(ex); 252 } 253 { 254 OBError myMessage = vars.getMessage("ReportGeneralLedger"); 255 vars.removeMessage("ReportGeneralLedger"); 256 if (myMessage!=null) { 257 xmlDocument.setParameter("messageType", myMessage.getType()); 258 xmlDocument.setParameter("messageTitle", myMessage.getTitle()); 259 xmlDocument.setParameter("messageMessage", myMessage.getMessage()); 260 } 261 } 262 263 xmlDocument.setParameter("calendar", vars.getLanguage().substring(0,2)); 264 xmlDocument.setData("reportAD_ORGID", "liststructure", OrganizationComboData.selectCombo(this, vars.getRole())); 265 xmlDocument.setParameter("direction", "var baseDirection = \"" + strReplaceWith + "/\";\n"); 266 xmlDocument.setParameter("paramLanguage", "LNG_POR_DEFECTO=\"" + vars.getLanguage() + "\";"); 267 xmlDocument.setParameter("cElementValueFrom", strcelementvaluefrom); 268 xmlDocument.setParameter("cElementValueTo", strcelementvalueto); 269 xmlDocument.setParameter("dateFrom", strDateFrom); 270 xmlDocument.setParameter("dateFromdisplayFormat", vars.getSessionValue("#AD_SqlDateFormat")); 271 xmlDocument.setParameter("dateFromsaveFormat", vars.getSessionValue("#AD_SqlDateFormat")); 272 xmlDocument.setParameter("dateTo", strDateTo); 273 xmlDocument.setParameter("dateTodisplayFormat", vars.getSessionValue("#AD_SqlDateFormat")); 274 xmlDocument.setParameter("dateTosaveFormat", vars.getSessionValue("#AD_SqlDateFormat")); 275 xmlDocument.setParameter("amtFrom", strAmtFrom); 276 xmlDocument.setParameter("amtTo", strAmtTo); 277 xmlDocument.setParameter("adOrgId", strOrg); 278 xmlDocument.setParameter("cAcctschemaId", strcAcctSchemaId); 279 xmlDocument.setParameter("paramAll0", strAll.equals("")?"0":"1"); 280 xmlDocument.setParameter("paramHide0", strHide.equals("")?"0":"1"); 281 xmlDocument.setData("reportCBPartnerId_IN", "liststructure", ReportRefundInvoiceCustomerDimensionalAnalysesData.selectBpartner(this, Utility.getContext(this, vars, "#User_Org", ""), Utility.getContext(this, vars, "#User_Client", ""), strcBpartnerIdAux)); 282 xmlDocument.setData("reportC_ELEMENTVALUEFROM","liststructure",ReportGeneralLedgerData.selectC_ElementValue_ID(this, Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), strcelementvaluefrom)); 283 xmlDocument.setData("reportC_ELEMENTVALUETO","liststructure",ReportGeneralLedgerData.selectC_ElementValue_ID(this, Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), strcelementvaluefrom)); 284 xmlDocument.setData("reportC_ACCTSCHEMA_ID","liststructure",ReportGeneralLedgerData.selectC_ACCTSCHEMA_ID(this, Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), strcAcctSchemaId)); 285 286 if (log4j.isDebugEnabled()) log4j.debug("data.length: "+data.length); 287 288 if (strcBpartnerId.equals("")&&strAll.equals("")) xmlDocument.setData("structure1", data); 289 else xmlDocument.setData("structure2", data); 290 if (strcBpartnerId.equals("")&&strAll.equals("")) xmlDocument.setDataArray("reportTotals", "structure", subreport); 291 else xmlDocument.setDataArray("reportTotals2", "structure", subreport); 292 if (strcBpartnerId.equals("")&&strAll.equals("")) xmlDocument.setDataArray("reportAll", "structure", subreport2); 293 else xmlDocument.setDataArray("reportAll2", "structure", subreport2); 294 295 out.println(xmlDocument.print()); 296 out.close(); 297 } 298 299 void printPageDataPDF(HttpServletResponse response, VariablesSecureApp vars, String strDateFrom, String strDateTo, String strAmtFrom, String strAmtTo, String strcelementvaluefrom, String strcelementvalueto, String strOrg, String strcBpartnerId, String strAll, String strHide, String strcAcctSchemaId) throws IOException, ServletException { 300 if (log4j.isDebugEnabled()) log4j.debug("Output: PDF"); 301 ReportGeneralLedgerData[] data=null; 302 ReportGeneralLedgerData [] [] subreport = null; 303 ReportGeneralLedgerData [] [] subreport2 = null; 304 String strTreeOrg = ReportTrialBalanceData.treeOrg(this, vars.getClient()); 305 String strTreeAccount = ReportTrialBalanceData.treeAccount(this, vars.getClient()); 306 String strOrgFamily = ""; 307 308 if (!strAll.equals("")) strcBpartnerId = ""; 309 if (strDateFrom.equals("") && strDateTo.equals("")) { 310 data = ReportGeneralLedgerData.set(); 311 } else { 312 strOrgFamily = getFamily(strTreeOrg, strOrg); 313 if (strcelementvaluefrom !=null && !strcelementvaluefrom.equals("")){ 314 if (strcelementvalueto.equals("")) { 315 strcelementvalueto=strcelementvaluefrom; 316 } 317 String strRange = getRange(strcelementvaluefrom, strcelementvalueto); 318 if (strHide.equals("")) 320 data = ReportGeneralLedgerData.select(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strRange.equals("")?"":"("+ strRange + ")", strcBpartnerId,strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&strAll.equals(""))?"value":"partner"); 321 else 322 data = ReportGeneralLedgerData.selectHiding(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strRange.equals("")?"":"("+ strRange + ")", strcBpartnerId,strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&strAll.equals(""))?"value":"partner"); 323 } else { 324 if (strHide.equals("")) 325 data = ReportGeneralLedgerData.selectAll(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strcBpartnerId, strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&strAll.equals(""))?"value":"partner"); 326 else 327 data = ReportGeneralLedgerData.selectAllHiding(this, Utility.getContext(this, vars, "#User_Client", "ReportGeneralLedger"), Utility.getContext(this, vars, "#User_Org", "ReportGeneralLedger"), strcAcctSchemaId, strDateFrom, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily, strcBpartnerId, strAmtFrom, strAmtTo, (strcBpartnerId.equals("")&&strAll.equals(""))?"value":"partner"); 328 } 329 } 330 subreport = new ReportGeneralLedgerData[data.length][]; 331 String strOld = ""; 332 int j = 0; 333 for (int i=0;data!=null && i<data.length;i++){ 334 if(!strOld.equals(((strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId) + data[i].id)){ 335 subreport[j] = ReportGeneralLedgerData.selectPrevious(this,(strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId, strcAcctSchemaId, data[i].id, data[i].dateacct, strOrgFamily); 336 j++; 337 } 338 strOld = (((strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId) + data[i].id); 339 } 340 subreport2 = new ReportGeneralLedgerData[data.length][]; 341 String strTotal = ""; 342 int g = 0; 343 for (int i=0;data!=null && i<data.length;i++){ 344 if(!strTotal.equals(((strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId) + data[i].id)){ 345 subreport2[g] = ReportGeneralLedgerData.selectTotal(this,(strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId, strcAcctSchemaId, data[i].id, DateTimeData.nDaysAfter(this, strDateTo,"1"), strOrgFamily); 346 g++; 347 } 348 strTotal = (((strcBpartnerId.equals("")&&strAll.equals(""))?"":data[i].cBpartnerId) + data[i].id); 349 } 350 351 352 JasperPrint jasperPrint; 353 String strOutput = vars.commandIn("PDF")?"pdf":"xls"; 354 String strReportName = "@basedesign@/org/openbravo/erpCommon/ad_reports/ReportGeneralLedger.jrxml"; 355 356 HashMap<String , Object > parameters = new HashMap<String , Object >(); 357 parameters.put("Title", classInfo.name); 358 parameters.put("ShowPartner",new Boolean (!(strcBpartnerId.equals("")&&strAll.equals("")))); 359 renderJR(vars, response, strReportName, strOutput, parameters, data, null ); 360 } 361 362 363 public String getFamily(String strTree, String strChild) throws IOException, ServletException { 364 return Tree.getMembers(this, strTree, strChild); 365 } 366 367 368 369 public String getRange (String accountfrom, String accountto) throws IOException,ServletException { 370 371 ReportGeneralLedgerData[] data = ReportGeneralLedgerData.selectRange(this,accountfrom,accountto); 372 373 boolean bolFirstLine = true; 374 String strText = ""; 375 for (int i = 0; i < data.length; i++) { 376 if (bolFirstLine){ 377 bolFirstLine = false; 378 strText = data[i].name; 379 } 380 else{ 381 strText = data[i].name + "," + strText ; 382 } 383 } 384 return strText; 385 } 386 387 388 public String getServletInfo() { 389 return "Servlet ReportGeneralLedger. This Servlet was made by Pablo Sarobe"; 390 } } 392 | Popular Tags |