From fac70fa0594da033bd6830b4a0942761849ab6ed Mon Sep 17 00:00:00 2001 From: Juliana Corredor Date: Wed, 19 Jun 2013 08:08:43 -0500 Subject: [PATCH 01/16] IDEMPIERE-1067 Doc Matched Inv not processed and not posted --- org.adempiere.base/src/org/compiere/model/MMatchPO.java | 1 + 1 file changed, 1 insertion(+) diff --git a/org.adempiere.base/src/org/compiere/model/MMatchPO.java b/org.adempiere.base/src/org/compiere/model/MMatchPO.java index 09b719b58c..41904ec972 100644 --- a/org.adempiere.base/src/org/compiere/model/MMatchPO.java +++ b/org.adempiere.base/src/org/compiere/model/MMatchPO.java @@ -424,6 +424,7 @@ public class MMatchPO extends X_M_MatchPO matchInv.setM_AttributeSetInstance_ID(mpo.getM_AttributeSetInstance_ID()); matchInv.setQty(mpo.getQty()); matchInv.setDateTrx(dateTrx); + matchInv.setProcessed(true); if (!matchInv.save()) { if (savepoint != null) From c85e398cc4d9fda340983d1c007ff76537daefd5 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 19 Jun 2013 09:54:15 -0500 Subject: [PATCH 02/16] IDEMPIERE-1046 Ability to get a sequence number from everywhere / as suggested by Nicolas Micoud (nmicoud) --- org.adempiere.base/src/org/compiere/model/MSequence.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/MSequence.java b/org.adempiere.base/src/org/compiere/model/MSequence.java index e153b37754..04c5da7aa7 100644 --- a/org.adempiere.base/src/org/compiere/model/MSequence.java +++ b/org.adempiere.base/src/org/compiere/model/MSequence.java @@ -54,7 +54,7 @@ public class MSequence extends X_AD_Sequence /** * */ - private static final long serialVersionUID = -631878634759124313L; + private static final long serialVersionUID = 7331047665037991960L; /** Log Level for Next ID Call */ private static final Level LOGLEVEL = Level.ALL; @@ -323,7 +323,7 @@ public class MSequence extends X_AD_Sequence return getDocumentNoFromSeq(seq, trxName, po); } // getDocumentNo - private static String getDocumentNoFromSeq(MSequence seq, String trxName, PO po) { + public static String getDocumentNoFromSeq(MSequence seq, String trxName, PO po) { // Check AdempiereSys boolean adempiereSys = false; if (Ini.isClient()) From 08302647a0302727d91c2c5732cda681efb50c1f Mon Sep 17 00:00:00 2001 From: Nicolas Micoud Date: Thu, 6 Jun 2013 10:12:12 +0200 Subject: [PATCH 03/16] IDEMPIERE-1033 - Add REPORT_DIR in params for JasperReports --- .../src/org/compiere/report/ReportStarter.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java b/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java index 2c42722568..5aa4c8bf26 100644 --- a/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java +++ b/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java @@ -414,15 +414,18 @@ public class ReportStarter implements ProcessCall, ClientProcess String jasperName = data.getJasperName(); String name = jasperReport.getName(); File reportDir = data.getReportDir(); - + String resourcePath = reportDir.getAbsolutePath(); + String reportdir = reportPath.substring(0, reportPath.lastIndexOf("/")); if (!resourcePath.endsWith("/") && !resourcePath.endsWith("\\")); { resourcePath = resourcePath + "/"; + reportdir = reportdir + "/"; } params.put("SUBREPORT_DIR", resourcePath); params.put("RESOURCE_DIR", resourcePath); - + params.put("REPORT_DIR", reportdir); + if (jasperReport != null && pi.getTable_ID() > 0 && Record_ID <= 0 && pi.getRecord_IDs() != null && pi.getRecord_IDs().length > 0) { try From bf71a220f3beaa3a90e9154442e3ecaa1a6746d7 Mon Sep 17 00:00:00 2001 From: Nicolas Micoud Date: Mon, 17 Jun 2013 10:41:51 +0200 Subject: [PATCH 04/16] IDEMPIERE-1054 --- org.adempiere.server-feature/utils.unix/oracle/DBExportdp.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/org.adempiere.server-feature/utils.unix/oracle/DBExportdp.sh b/org.adempiere.server-feature/utils.unix/oracle/DBExportdp.sh index 2153e44609..fe17e77d7a 100644 --- a/org.adempiere.server-feature/utils.unix/oracle/DBExportdp.sh +++ b/org.adempiere.server-feature/utils.unix/oracle/DBExportdp.sh @@ -5,6 +5,7 @@ echo Adempiere Database Export $Revision: 1.5 $ # $Id: DBExport.sh,v 1.5 2005/12/20 07:12:17 jjanke Exp $ echo Saving database $1@$ADEMPIERE_DB_NAME to $IDEMPIERE_HOME/data/ExpDat.dmp +DATE=`date +%Y%m%d_%H%M%S` if [ $# -eq 0 ] then @@ -31,7 +32,7 @@ chgrp dba $IDEMPIERE_HOME/data chmod 770 $IDEMPIERE_HOME/data # Export -expdp $1/$2@$ADEMPIERE_DB_SERVER:$ADEMPIERE_DB_PORT/$ADEMPIERE_DB_NAME DIRECTORY=ADEMPIERE_DATA_PUMP_DIR DUMPFILE=ExpDat.dmp LOGFILE=ExpDat.log EXCLUDE=STATISTICS SCHEMAS=$1 +expdp $1/$2@$ADEMPIERE_DB_SERVER:$ADEMPIERE_DB_PORT/$ADEMPIERE_DB_NAME DIRECTORY=ADEMPIERE_DATA_PUMP_DIR DUMPFILE=ExpDat_$DATE.dmp LOGFILE=ExpDat_$DATE.log EXCLUDE=STATISTICS SCHEMAS=$1 cd $IDEMPIERE_HOME/data -jar cvfM ExpDat.jar ExpDat.dmp ExpDat.log +jar cvfM ExpDat.jar ExpDat_$DATE.dmp ExpDat_$DATE.log From 881041bd54b90e45fa81efc29654e5dc4f21ad03 Mon Sep 17 00:00:00 2001 From: Nicolas Micoud Date: Wed, 19 Jun 2013 16:17:18 +0200 Subject: [PATCH 05/16] IDEMPIERE 1054 --- .../utils.unix/oracle/DBExportFulldp.sh | 7 ++++--- .../utils.unix/oracle/DBExportdp.sh | 2 +- .../utils.windows/oracle/DBExportFulldp.bat | 8 ++++---- .../utils.windows/oracle/DBExportdp.bat | 8 ++++---- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/org.adempiere.server-feature/utils.unix/oracle/DBExportFulldp.sh b/org.adempiere.server-feature/utils.unix/oracle/DBExportFulldp.sh index 0eb6c50168..918e2ad964 100644 --- a/org.adempiere.server-feature/utils.unix/oracle/DBExportFulldp.sh +++ b/org.adempiere.server-feature/utils.unix/oracle/DBExportFulldp.sh @@ -4,7 +4,8 @@ echo Adempiere Full Database Export $Revision: 1.3 $ # $Id: DBExportFull.sh,v 1.3 2005/01/22 21:59:15 jjanke Exp $ -echo Saving database $1@$ADEMPIERE_DB_NAME to $IDEMPIERE_HOME/data/ExpDatFull.dmp +DATE=`date +%Y%m%d_%H%M%S` +echo Saving database $1@$ADEMPIERE_DB_NAME to $IDEMPIERE_HOME/data/ExpDatFull_$DATE.dmp if [ $# -eq 0 ] then @@ -27,8 +28,8 @@ sqlplus $1@$ADEMPIERE_DB_SERVER/$ADEMPIERE_DB_NAME @$IDEMPIERE_HOME/utils/$ADEMP chgrp dba $IDEMPIERE_HOME/data chmod 770 $IDEMPIERE_HOME/data -expdp $1@$ADEMPIERE_DB_SERVER:$ADEMPIERE_DB_PORT/$ADEMPIERE_DB_NAME DIRECTORY=ADEMPIERE_DATA_PUMP_DIR DUMPFILE=ExpDatFull.dmp LOGFILE=ExpDatFull.log EXCLUDE=STATISTICS FULL=Y +expdp $1@$ADEMPIERE_DB_SERVER:$ADEMPIERE_DB_PORT/$ADEMPIERE_DB_NAME DIRECTORY=ADEMPIERE_DATA_PUMP_DIR DUMPFILE=ExpDatFull_$DATE.dmp LOGFILE=ExpDatFull_$DATE.log EXCLUDE=STATISTICS FULL=Y cd $IDEMPIERE_HOME/data -jar cvfM ExpDatFull.jar ExpDatFull.dmp ExpDatFull.log +jar cvfM ExpDatFull.jar ExpDatFull_$DATE.dmp ExpDatFull_$DATE.log diff --git a/org.adempiere.server-feature/utils.unix/oracle/DBExportdp.sh b/org.adempiere.server-feature/utils.unix/oracle/DBExportdp.sh index fe17e77d7a..15cb3f33ac 100644 --- a/org.adempiere.server-feature/utils.unix/oracle/DBExportdp.sh +++ b/org.adempiere.server-feature/utils.unix/oracle/DBExportdp.sh @@ -4,8 +4,8 @@ echo Adempiere Database Export $Revision: 1.5 $ # $Id: DBExport.sh,v 1.5 2005/12/20 07:12:17 jjanke Exp $ -echo Saving database $1@$ADEMPIERE_DB_NAME to $IDEMPIERE_HOME/data/ExpDat.dmp DATE=`date +%Y%m%d_%H%M%S` +echo Saving database $1@$ADEMPIERE_DB_NAME to $IDEMPIERE_HOME/data/ExpDat_$DATE.dmp if [ $# -eq 0 ] then diff --git a/org.adempiere.server-feature/utils.windows/oracle/DBExportFulldp.bat b/org.adempiere.server-feature/utils.windows/oracle/DBExportFulldp.bat index 7aa2c36c52..4a2ab1eaa6 100644 --- a/org.adempiere.server-feature/utils.windows/oracle/DBExportFulldp.bat +++ b/org.adempiere.server-feature/utils.windows/oracle/DBExportFulldp.bat @@ -1,8 +1,8 @@ @Echo Adempiere Full Database Export $Revision: 1.6 $ @Rem $Id: DBExportFull.bat,v 1.6 2005/04/27 17:45:01 jjanke Exp $ - -@Echo Saving database %1@%ADEMPIERE_DB_NAME% to %IDEMPIERE_HOME%\data\ExpDatFull.dmp +@set Date=%date:~6,4%%date:~3,2%%date:~0,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2% +@Echo Saving database %1@%ADEMPIERE_DB_NAME% to %IDEMPIERE_HOME%\data\ExpDatFull_%Date%.dmp @if (%IDEMPIERE_HOME%) == () goto environment @if (%ADEMPIERE_DB_NAME%) == () goto environment @@ -16,10 +16,10 @@ @echo ------------------------------------- @sqlplus %1@%ADEMPIERE_DB_SERVER%:%ADEMPIERE_DB_PORT%/%ADEMPIERE_DB_NAME% @%IDEMPIERE_HOME%\utils\%ADEMPIERE_DB_PATH%\CreateDataPumpDir.sql %IDEMPIERE_HOME%\data -@expdp %1@%ADEMPIERE_DB_SERVER%:%ADEMPIERE_DB_PORT%/%ADEMPIERE_DB_NAME% DIRECTORY=ADEMPIERE_DATA_PUMP_DIR DUMPFILE=ExpDatFull.dmp LOGFILE=ExpDatFull.log EXCLUDE=STATISTICS FULL=Y +@expdp %1@%ADEMPIERE_DB_SERVER%:%ADEMPIERE_DB_PORT%/%ADEMPIERE_DB_NAME% DIRECTORY=ADEMPIERE_DATA_PUMP_DIR DUMPFILE=ExpDatFull_%Date%.dmp LOGFILE=ExpDatFull_%Date%.log EXCLUDE=STATISTICS FULL=Y @cd %IDEMPIERE_HOME%\data -@jar cvfM data\ExpDatFull.jar ExpDatFull.dmp ExpDatFull.log +@jar cvfM data\ExpDatFull.jar ExpDatFull_%Date%.dmp ExpDatFull_%Date%.log @goto end diff --git a/org.adempiere.server-feature/utils.windows/oracle/DBExportdp.bat b/org.adempiere.server-feature/utils.windows/oracle/DBExportdp.bat index a4dc3000fa..90031db2eb 100644 --- a/org.adempiere.server-feature/utils.windows/oracle/DBExportdp.bat +++ b/org.adempiere.server-feature/utils.windows/oracle/DBExportdp.bat @@ -2,7 +2,8 @@ @Rem $Id: DBExport.bat,v 1.8 2005/04/27 17:45:01 jjanke Exp $ @Rem -@Echo Saving database %1@%ADEMPIERE_DB_NAME% to %IDEMPIERE_HOME%\data\ExpDat.dmp +@set Date=%date:~6,4%%date:~3,2%%date:~0,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2% +@Echo Saving database %1@%ADEMPIERE_DB_NAME% to %IDEMPIERE_HOME%\data\ExpDat_%Date%.dmp @if (%IDEMPIERE_HOME%) == () goto environment @if (%ADEMPIERE_DB_NAME%) == () goto environment @@ -20,11 +21,10 @@ @sqlplus %3@%ADEMPIERE_DB_SERVER%:%ADEMPIERE_DB_PORT%/%ADEMPIERE_DB_NAME% @%IDEMPIERE_HOME%\utils\%ADEMPIERE_DB_PATH%\CreateDataPumpDir.sql %IDEMPIERE_HOME%\data @Rem The Export -@expdp %1/%2@%ADEMPIERE_DB_SERVER%:%ADEMPIERE_DB_PORT%/%ADEMPIERE_DB_NAME% DIRECTORY=ADEMPIERE_DATA_PUMP_DIR DUMPFILE=ExpDat.dmp LOGFILE=ExpDat.log EXCLUDE=STATISTICS SCHEMAS=%1 +@expdp %1/%2@%ADEMPIERE_DB_SERVER%:%ADEMPIERE_DB_PORT%/%ADEMPIERE_DB_NAME% DIRECTORY=ADEMPIERE_DATA_PUMP_DIR DUMPFILE=ExpDat_%Date%.dmp LOGFILE=ExpDat_%Date%.log EXCLUDE=STATISTICS SCHEMAS=%1 @cd %IDEMPIERE_HOME%\Data -@copy ExpDat.jar ExpDatOld.jar -@jar cvfM ExpDat.jar ExpDat.dmp ExpDat.log +@jar cvfM ExpDat.jar ExpDat_%Date%.dmp ExpDat_%Date%.log @goto end From 2a4d72720287ed1bae644e4c90e4eec0ba80b49a Mon Sep 17 00:00:00 2001 From: Juliana Corredor Date: Wed, 19 Jun 2013 11:02:34 -0500 Subject: [PATCH 06/16] IDEMPIERE-1077 Can not create advanced query with two filter --- .../src/org/adempiere/webui/window/FindWindow.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java index ecefb894ca..f57a29e3c5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java @@ -102,6 +102,7 @@ import org.zkoss.zul.Comboitem; import org.zkoss.zul.Datebox; import org.zkoss.zul.Div; import org.zkoss.zul.Hbox; +import org.zkoss.zul.North; import org.zkoss.zul.South; import org.zkoss.zul.Space; import org.zkoss.zul.Tab; @@ -119,7 +120,7 @@ public class FindWindow extends Window implements EventListener, ValueCha /** * */ - private static final long serialVersionUID = 2452116093966974927L; + private static final long serialVersionUID = -5019862772740854656L; // values and label for history combo private static final String HISTORY_DAY_ALL = "All"; @@ -471,11 +472,19 @@ public class FindWindow extends Window implements EventListener, ValueCha listhead.appendChild(lstHRightBracket); advancedPanel.appendChild(listhead); advancedPanel.setVflex(true); + + Borderlayout layout = new Borderlayout(); layout.setHflex("1"); layout.setVflex("1"); winAdvanced.appendChild(layout); + + North north =new North(); + layout.appendChild(north); + north.appendChild(toolBar); + + toolBar.setVflex("0"); Center center = new Center(); layout.appendChild(center); From ad88e1b357ecefa77245ed59efbc6bd403c106ed Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 19 Jun 2013 11:42:31 -0500 Subject: [PATCH 07/16] IDEMPIERE-1019 / because of IDEMPIERE-1058 - better restore and export all non java packages --- .../META-INF/MANIFEST.MF | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/org.adempiere.report.jasper.library/META-INF/MANIFEST.MF b/org.adempiere.report.jasper.library/META-INF/MANIFEST.MF index cbc8e1fbc4..e0ed64dee9 100644 --- a/org.adempiere.report.jasper.library/META-INF/MANIFEST.MF +++ b/org.adempiere.report.jasper.library/META-INF/MANIFEST.MF @@ -36,13 +36,23 @@ Export-Package: ., net.sf.jasperreports.components.headertoolbar, net.sf.jasperreports.components.headertoolbar.actions, net.sf.jasperreports.components.headertoolbar.htmlv2, + net.sf.jasperreports.components.headertoolbar.htmlv2.resources, + net.sf.jasperreports.components.headertoolbar.resources, + net.sf.jasperreports.components.headertoolbar.resources.images, + net.sf.jasperreports.components.headertoolbar.resources.images.format, + net.sf.jasperreports.components.headertoolbar.resources.images.jive, + net.sf.jasperreports.components.headertoolbar.resources.images.style, net.sf.jasperreports.components.iconlabel, net.sf.jasperreports.components.list, net.sf.jasperreports.components.map, net.sf.jasperreports.components.map.fill, + net.sf.jasperreports.components.map.resources, + net.sf.jasperreports.components.map.resources.templates, net.sf.jasperreports.components.map.type, net.sf.jasperreports.components.sort, net.sf.jasperreports.components.sort.actions, + net.sf.jasperreports.components.sort.resources, + net.sf.jasperreports.components.sort.resources.images, net.sf.jasperreports.components.spiderchart, net.sf.jasperreports.components.spiderchart.type, net.sf.jasperreports.components.table, @@ -83,18 +93,29 @@ Export-Package: ., net.sf.jasperreports.engine.data, net.sf.jasperreports.engine.design, net.sf.jasperreports.engine.design.events, + net.sf.jasperreports.engine.dtds, net.sf.jasperreports.engine.export, net.sf.jasperreports.engine.export.data, net.sf.jasperreports.engine.export.draw, net.sf.jasperreports.engine.export.legacy, net.sf.jasperreports.engine.export.oasis, net.sf.jasperreports.engine.export.ooxml, + net.sf.jasperreports.engine.export.ooxml.docx, + net.sf.jasperreports.engine.export.ooxml.docx._rels, + net.sf.jasperreports.engine.export.ooxml.pptx._rels, + net.sf.jasperreports.engine.export.ooxml.pptx.ppt.slideLayouts, + net.sf.jasperreports.engine.export.ooxml.pptx.ppt.slideLayouts._rels, + net.sf.jasperreports.engine.export.ooxml.pptx.ppt.slideMasters, + net.sf.jasperreports.engine.export.ooxml.pptx.ppt.slideMasters._rels, + net.sf.jasperreports.engine.export.ooxml.pptx.ppt.theme, net.sf.jasperreports.engine.export.ooxml.type, + net.sf.jasperreports.engine.export.ooxml.xlsx._rels, net.sf.jasperreports.engine.export.tabulator, net.sf.jasperreports.engine.export.type, net.sf.jasperreports.engine.export.zip, net.sf.jasperreports.engine.fill, net.sf.jasperreports.engine.fonts, + net.sf.jasperreports.engine.images, net.sf.jasperreports.engine.print, net.sf.jasperreports.engine.query, net.sf.jasperreports.engine.scriptlets, @@ -106,6 +127,8 @@ Export-Package: ., net.sf.jasperreports.engine.xml, net.sf.jasperreports.expressions, net.sf.jasperreports.extensions, + net.sf.jasperreports.fonts, + net.sf.jasperreports.fonts.dejavu, net.sf.jasperreports.functions, net.sf.jasperreports.functions.annotations, net.sf.jasperreports.governors, @@ -128,6 +151,9 @@ Export-Package: ., net.sf.jasperreports.web.commands, net.sf.jasperreports.web.listeners, net.sf.jasperreports.web.servlets, + net.sf.jasperreports.web.servlets.resources, + net.sf.jasperreports.web.servlets.resources.templates, + net.sf.jasperreports.web.servlets.resources.viewer, net.sf.jasperreports.web.util, org.apache.bcel, org.apache.bcel.classfile, From ac221701ca38f0889687a07373a84bd47386607a Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 19 Jun 2013 11:47:39 -0500 Subject: [PATCH 08/16] IDEMPIERE-944 Error in session timeout / try solution suggested by Dirk --- org.adempiere.ui.zk/build.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/org.adempiere.ui.zk/build.properties b/org.adempiere.ui.zk/build.properties index 210dcc99ff..f86021ab98 100644 --- a/org.adempiere.ui.zk/build.properties +++ b/org.adempiere.ui.zk/build.properties @@ -30,7 +30,8 @@ bin.includes = META-INF/,\ WEB-INF/lib/atmosphere-runtime-1.0.4.jar,\ OSGI-INF/defaultcreatefromfactory.xml,\ OSGI-INF/defaultformfactory.xml,\ - OSGI-INF/feedbackservice.xml + OSGI-INF/feedbackservice.xml,\ + sessiontimeout.zul src.includes = WEB-INF/classes/,\ WEB-INF/tld/,\ WEB-INF/web.xml,\ From f35a0b7ae0970e7ea6d33841b13c556cdf57fb1a Mon Sep 17 00:00:00 2001 From: anozimada Date: Wed, 19 Jun 2013 11:53:25 -0500 Subject: [PATCH 09/16] IDEMPIERE-1075 InvoiceNGL Bug --- .../src/org/compiere/process/InvoiceNGL.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/org.adempiere.base.process/src/org/compiere/process/InvoiceNGL.java b/org.adempiere.base.process/src/org/compiere/process/InvoiceNGL.java index 8382d1f284..5258e14872 100644 --- a/org.adempiere.base.process/src/org/compiere/process/InvoiceNGL.java +++ b/org.adempiere.base.process/src/org/compiere/process/InvoiceNGL.java @@ -258,7 +258,20 @@ public class InvoiceNGL extends SvrProcess continue; MInvoice invoice = new MInvoice(getCtx(), gl.getC_Invoice_ID(), null); if (invoice.getC_Currency_ID() == as.getC_Currency_ID()) - continue; + continue; + // + if (AD_Org_ID == 0) // invoice org id + AD_Org_ID = gl.getAD_Org_ID(); + // Change in Org + if (AD_Org_ID != gl.getAD_Org_ID()) + { + createBalancing (asDefaultAccts, journal, drTotal, crTotal, AD_Org_ID, (i+1) * 10); + // + AD_Org_ID = gl.getAD_Org_ID(); + drTotal = Env.ZERO; + crTotal = Env.ZERO; + journal = null; + } // if (journal == null) { @@ -288,19 +301,6 @@ public class InvoiceNGL extends SvrProcess line.setAmtSourceCr (cr); line.setAmtAcctCr (cr); line.saveEx(); - // - if (AD_Org_ID == 0) // invoice org id - AD_Org_ID = gl.getAD_Org_ID(); - // Change in Org - if (AD_Org_ID != gl.getAD_Org_ID()) - { - createBalancing (asDefaultAccts, journal, drTotal, crTotal, AD_Org_ID, (i+1) * 10); - // - AD_Org_ID = gl.getAD_Org_ID(); - drTotal = Env.ZERO; - crTotal = Env.ZERO; - journal = null; - } } createBalancing (asDefaultAccts, journal, drTotal, crTotal, AD_Org_ID, (list.size()+1) * 10); From d0aec1964d034bd3b3acfc5490e55ee7dfcf191e Mon Sep 17 00:00:00 2001 From: Nicolas Micoud Date: Wed, 19 Jun 2013 19:47:30 +0200 Subject: [PATCH 10/16] IDEMPIERE-958 --- .../src/org/compiere/process/DocActionTemplate.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/org.adempiere.base/src/org/compiere/process/DocActionTemplate.java b/org.adempiere.base/src/org/compiere/process/DocActionTemplate.java index 126602e950..ce10dccbfa 100644 --- a/org.adempiere.base/src/org/compiere/process/DocActionTemplate.java +++ b/org.adempiere.base/src/org/compiere/process/DocActionTemplate.java @@ -30,6 +30,7 @@ import org.compiere.model.POInfo; /** * Template for DocAction * + * Instead of modifying DocumentEngine, you could simply extend DocOptions interface and use customizeValidActions * @author Jorg Janke * @version $Id: DocActionTemplate.java,v 1.3 2006/07/30 00:54:44 jjanke Exp $ */ @@ -427,5 +428,5 @@ public class DocActionTemplate extends PO implements DocAction { return false; } - + } // DocActionTemplate From 8996d0bf6003755da36190c6d6a7696ab1454463 Mon Sep 17 00:00:00 2001 From: Richard Morales Date: Wed, 19 Jun 2013 16:31:28 -0500 Subject: [PATCH 11/16] IDEMPIERE-1037 Field Attribute Set Instance appears to be empty in form Attribute Set Instance if using ZK UI --- .../org/adempiere/webui/factory/DefaultEditorFactory.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java index 454eba76e9..cdd1141510 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java @@ -103,7 +103,7 @@ public class DefaultEditorFactory implements IEditorFactory { } /** Text */ - else if (displayType == DisplayType.Text || displayType == DisplayType.Memo || displayType == DisplayType.TextLong) + else if (displayType == DisplayType.Text || displayType == DisplayType.Memo || displayType == DisplayType.TextLong || displayType == DisplayType.ID) { editor = new WStringEditor(gridField, tableEditor); } @@ -127,8 +127,7 @@ public class DefaultEditorFactory implements IEditorFactory { /** Table Direct */ else if (displayType == DisplayType.TableDir || - displayType == DisplayType.Table || displayType == DisplayType.List - || displayType == DisplayType.ID ) + displayType == DisplayType.Table || displayType == DisplayType.List) { editor = new WTableDirEditor(gridField); } From 6b7e17119650892cb7930dec20d5969d7adf3d16 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 19 Jun 2013 18:33:28 -0500 Subject: [PATCH 12/16] IDEMPIERE-1070 Problem with Report in window Menu , tab traslation . Use language in Spanish --- .../src/org/compiere/model/MLookupFactory.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java index 7f9bca2eff..b3f1967920 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java @@ -772,7 +772,14 @@ public class MLookupFactory return lInfo; } // getLookup_TableDir - private static StringBuilder getDisplayColumn(Language language, String TableName, ArrayList list) { + private static StringBuilder getDisplayColumn(Language language, + String tableName, ArrayList list) { + return getDisplayColumn(language, tableName, list, null); + } + + private static StringBuilder getDisplayColumn(Language language, + String TableName, ArrayList list, + String baseTable) { StringBuilder displayColumn = new StringBuilder(); int size = list.size(); // Get Display Column @@ -787,7 +794,8 @@ public class MLookupFactory displayColumn.append("NVL("); // translated - if (ldc.IsTranslated && !Env.isBaseLanguage(language, TableName) && !ldc.IsVirtual) + if (ldc.IsTranslated && !Env.isBaseLanguage(language, TableName) && !ldc.IsVirtual + && baseTable != null && !(TableName+"_Trl").equalsIgnoreCase(baseTable)) { displayColumn.append(TableName).append("_Trl.").append(ldc.ColumnName); } @@ -886,11 +894,12 @@ public class MLookupFactory // StringBuilder embedSQL = new StringBuilder("SELECT "); - StringBuilder displayColumn = getDisplayColumn(language, TableName, list); + StringBuilder displayColumn = getDisplayColumn(language, TableName, list, BaseTable); embedSQL.append(displayColumn.toString()); embedSQL.append(" FROM ").append(TableName); // Translation - if (isTranslated && !Env.isBaseLanguage(language, TableName)) + if ( isTranslated && !Env.isBaseLanguage(language, TableName) + && !(TableName+"_Trl").equalsIgnoreCase(BaseTable)) // IDEMPIERE-1070 { embedSQL.append(" INNER JOIN ").append(TableName).append("_TRL ON (") .append(TableName).append(".").append(KeyColumn) From b3c1e844df3538461396de127cd742d37e2de940 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 19 Jun 2013 19:18:43 -0500 Subject: [PATCH 13/16] IDEMPIERE-1055 Print Dunning Letters on remote machine throwing errors / Print original class for zk modifications --- .../adempiere/webui/process/DunningPrint.java | 251 ++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java new file mode 100644 index 0000000000..835bfddee6 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java @@ -0,0 +1,251 @@ +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * For the text or an alternative of this public license, you may reach us * + * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * + * or via info@compiere.org or http://www.compiere.org/license.html * + *****************************************************************************/ +package org.compiere.process; + +import java.io.File; +import java.util.logging.Level; + +import org.compiere.model.MBPartner; +import org.compiere.model.MClient; +import org.compiere.model.MDunningLevel; +import org.compiere.model.MDunningRun; +import org.compiere.model.MDunningRunEntry; +import org.compiere.model.MMailText; +import org.compiere.model.MQuery; +import org.compiere.model.MUser; +import org.compiere.model.MUserMail; +import org.compiere.model.PrintInfo; +import org.compiere.print.MPrintFormat; +import org.compiere.print.ReportEngine; +import org.compiere.util.AdempiereUserError; +import org.compiere.util.EMail; + +/** + * Dunning Letter Print + * + * @author Jorg Janke + * @version $Id: DunningPrint.java,v 1.2 2006/07/30 00:51:02 jjanke Exp $ + * + * FR 2872010 - Dunning Run for a complete Dunning (not just level) - Developer: Carlos Ruiz - globalqss - Sponsor: Metas + */ +public class DunningPrint extends SvrProcess +{ + /** Mail PDF */ + private boolean p_EMailPDF = false; + /** Mail Template */ + private int p_R_MailText_ID = 0; + /** Dunning Run */ + private int p_C_DunningRun_ID = 0; + /** Print only Outstanding */ + private boolean p_IsOnlyIfBPBalance = true; + /** Print only unprocessed lines */ + private boolean p_PrintUnprocessedOnly = true; + + + /** + * Prepare - e.g., get Parameters. + */ + protected void prepare() + { + ProcessInfoParameter[] para = getParameter(); + for (int i = 0; i < para.length; i++) + { + String name = para[i].getParameterName(); + if (para[i].getParameter() == null) + ; + else if (name.equals("EMailPDF")) + p_EMailPDF = "Y".equals(para[i].getParameter()); + else if (name.equals("R_MailText_ID")) + p_R_MailText_ID = para[i].getParameterAsInt(); + else if (name.equals("C_DunningRun_ID")) + p_C_DunningRun_ID = para[i].getParameterAsInt(); + else if (name.equals("IsOnlyIfBPBalance")) + p_IsOnlyIfBPBalance = "Y".equals(para[i].getParameter()); + else if (name.equals("PrintUnprocessedOnly")) + p_PrintUnprocessedOnly = "Y".equals(para[i].getParameter()); + else + log.log(Level.SEVERE, "Unknown Parameter: " + name); + } + } // prepare + + /** + * Process + * @return info + * @throws Exception + */ + protected String doIt () throws Exception + { + if (log.isLoggable(Level.INFO)) log.info("C_DunningRun_ID=" + p_C_DunningRun_ID + ",R_MailText_ID=" + p_R_MailText_ID + + ", EmailPDF=" + p_EMailPDF + ",IsOnlyIfBPBalance=" + p_IsOnlyIfBPBalance + + ",PrintUnprocessedOnly=" + p_PrintUnprocessedOnly); + + // Need to have Template + if (p_EMailPDF && p_R_MailText_ID == 0) + throw new AdempiereUserError ("@NotFound@: @R_MailText_ID@"); +// String subject = ""; + MMailText mText = null; + if (p_EMailPDF) + { + mText = new MMailText (getCtx(), p_R_MailText_ID, get_TrxName()); + if (p_EMailPDF && mText.get_ID() == 0) + throw new AdempiereUserError ("@NotFound@: @R_MailText_ID@ - " + p_R_MailText_ID); +// subject = mText.getMailHeader(); + } + // + MDunningRun run = new MDunningRun (getCtx(), p_C_DunningRun_ID, get_TrxName()); + if (run.get_ID() == 0) + throw new AdempiereUserError ("@NotFound@: @C_DunningRun_ID@ - " + p_C_DunningRun_ID); + MClient client = MClient.get(getCtx()); + + int count = 0; + int errors = 0; + MDunningRunEntry[] entries = run.getEntries(false); + for (int i = 0; i < entries.length; i++) + { + MDunningRunEntry entry = entries[i]; + + // Print Format on Dunning Level + MDunningLevel level = new MDunningLevel (getCtx(), entry.getC_DunningLevel_ID(), get_TrxName()); + MPrintFormat format = null; + if (level.getDunning_PrintFormat_ID() > 0) + format = MPrintFormat.get (getCtx(), level.getDunning_PrintFormat_ID(), false); + + if (p_IsOnlyIfBPBalance && entry.getAmt().signum() <= 0) + continue; + if (p_PrintUnprocessedOnly && entry.isProcessed()) + continue; + // To BPartner + MBPartner bp = new MBPartner (getCtx(), entry.getC_BPartner_ID(), get_TrxName()); + if (bp.get_ID() == 0) + { + StringBuilder msglog = new StringBuilder("@NotFound@: @C_BPartner_ID@ ").append(entry.getC_BPartner_ID()); + addLog (entry.get_ID(), null, null,msglog.toString() ); + errors++; + continue; + } + // To User + MUser to = new MUser (getCtx(), entry.getAD_User_ID(), get_TrxName()); + if (p_EMailPDF) + { + if (to.get_ID() == 0) + { + StringBuilder msglog = new StringBuilder("@NotFound@: @AD_User_ID@ - ").append(bp.getName()); + addLog (entry.get_ID(), null, null,msglog.toString()); + errors++; + continue; + } + else if (to.getEMail() == null || to.getEMail().length() == 0) + { + StringBuilder msglog = new StringBuilder("@NotFound@: @EMail@ - ").append(to.getName()); + addLog (entry.get_ID(), null, null, msglog.toString()); + errors++; + continue; + } + } + // query + MQuery query = new MQuery("C_Dunning_Header_v"); + query.addRestriction("C_DunningRunEntry_ID", MQuery.EQUAL, + new Integer(entry.getC_DunningRunEntry_ID())); + + // Engine + PrintInfo info = new PrintInfo( + bp.getName(), + MDunningRunEntry.Table_ID, + entry.getC_DunningRunEntry_ID(), + entry.getC_BPartner_ID()); + StringBuilder msginfo = new StringBuilder().append(bp.getName()).append(", Amt=").append(entry.getAmt()); + info.setDescription(msginfo.toString()); + ReportEngine re = null; + if (format != null) + re = new ReportEngine(getCtx(), format, query, info); + boolean printed = false; + if (p_EMailPDF) + { + EMail email = client.createEMail(to.getEMail(), null, null); + if (!email.isValid()) + { + StringBuilder msglog = new StringBuilder( + "@RequestActionEMailError@ Invalid EMail: ").append(to); + addLog (entry.get_ID(), null, null,msglog.toString() ); + errors++; + continue; + } + mText.setUser(to); // variable context + mText.setBPartner(bp); + mText.setPO(entry); + String message = mText.getMailText(true); + if (mText.isHtml()) + email.setMessageHTML(mText.getMailHeader(), message); + else + { + email.setSubject (mText.getMailHeader()); + email.setMessageText (message); + } + // + if (re != null) { + File attachment = re.getPDF(File.createTempFile("Dunning", ".pdf")); + StringBuilder msglog = new StringBuilder().append(to.toString()).append(" - ").append(attachment); + if (log.isLoggable(Level.FINE)) log.fine(msglog.toString()); + email.addAttachment(attachment); + } + // + String msg = email.send(); + MUserMail um = new MUserMail(mText, entry.getAD_User_ID(), email); + um.saveEx(); + if (msg.equals(EMail.SENT_OK)) + { + StringBuilder msglog = new StringBuilder() + .append(bp.getName()).append(" @RequestActionEMailOK@"); + addLog (entry.get_ID(), null, null,msglog.toString()); + count++; + printed = true; + } + else + { + StringBuilder msglog = new StringBuilder().append(bp.getName()).append(" @RequestActionEMailError@ ").append(msg); + addLog (entry.get_ID(), null, null,msglog.toString() ); + errors++; + } + } + else + { + if (re != null) { + re.print (); + count++; + printed = true; + } + } + if (printed) + { + entry.setProcessed (true); + entry.save (); + } + + } // for all dunning letters + if (errors==0) { + run.setProcessed(true); + run.saveEx(); + } + if (p_EMailPDF){ + StringBuilder msgreturn = new StringBuilder("@Sent@=").append(count).append(" - @Errors@=").append(errors); + return msgreturn.toString(); + } + StringBuilder msgreturn = new StringBuilder("@Printed@=").append(count); + return msgreturn.toString(); + } // doIt + +} // DunningPrint From f8b6a4f7267c2f8d83a8e637f2baaee3b64d6d7b Mon Sep 17 00:00:00 2001 From: Juliana Corredor Date: Wed, 19 Jun 2013 19:19:09 -0500 Subject: [PATCH 14/16] IDEMPIERE-1055 Print Dunning Letters on remote machine throwing errors --- .../adempiere/webui/process/DunningPrint.java | 251 ++++++++++-------- 1 file changed, 143 insertions(+), 108 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java index 835bfddee6..6b5a917311 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java @@ -1,8 +1,8 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * * by the Free Software Foundation. This program is distributed in the hope * * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * @@ -14,33 +14,42 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package org.compiere.process; +package org.adempiere.webui.process; -import java.io.File; -import java.util.logging.Level; - -import org.compiere.model.MBPartner; -import org.compiere.model.MClient; -import org.compiere.model.MDunningLevel; -import org.compiere.model.MDunningRun; -import org.compiere.model.MDunningRunEntry; -import org.compiere.model.MMailText; -import org.compiere.model.MQuery; -import org.compiere.model.MUser; -import org.compiere.model.MUserMail; -import org.compiere.model.PrintInfo; -import org.compiere.print.MPrintFormat; -import org.compiere.print.ReportEngine; -import org.compiere.util.AdempiereUserError; -import org.compiere.util.EMail; +import java.io.File; +import java.io.FileInputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; + +import org.adempiere.webui.apps.AEnv; +import org.adempiere.webui.component.Window; +import org.adempiere.webui.session.SessionManager; +import org.adempiere.webui.window.SimplePDFViewer; +import org.compiere.model.MBPartner; +import org.compiere.model.MClient; +import org.compiere.model.MDunningLevel; +import org.compiere.model.MDunningRun; +import org.compiere.model.MDunningRunEntry; +import org.compiere.model.MMailText; +import org.compiere.model.MQuery; +import org.compiere.model.MUser; +import org.compiere.model.MUserMail; +import org.compiere.model.PrintInfo; +import org.compiere.print.MPrintFormat; +import org.compiere.print.ReportEngine; +import org.compiere.process.ProcessInfoParameter; +import org.compiere.process.SvrProcess; +import org.compiere.util.AdempiereUserError; +import org.compiere.util.EMail; /** * Dunning Letter Print * * @author Jorg Janke * @version $Id: DunningPrint.java,v 1.2 2006/07/30 00:51:02 jjanke Exp $ - * - * FR 2872010 - Dunning Run for a complete Dunning (not just level) - Developer: Carlos Ruiz - globalqss - Sponsor: Metas + * + * FR 2872010 - Dunning Run for a complete Dunning (not just level) - Developer: Carlos Ruiz - globalqss - Sponsor: Metas */ public class DunningPrint extends SvrProcess { @@ -51,8 +60,8 @@ public class DunningPrint extends SvrProcess /** Dunning Run */ private int p_C_DunningRun_ID = 0; /** Print only Outstanding */ - private boolean p_IsOnlyIfBPBalance = true; - /** Print only unprocessed lines */ + private boolean p_IsOnlyIfBPBalance = true; + /** Print only unprocessed lines */ private boolean p_PrintUnprocessedOnly = true; @@ -74,8 +83,8 @@ public class DunningPrint extends SvrProcess else if (name.equals("C_DunningRun_ID")) p_C_DunningRun_ID = para[i].getParameterAsInt(); else if (name.equals("IsOnlyIfBPBalance")) - p_IsOnlyIfBPBalance = "Y".equals(para[i].getParameter()); - else if (name.equals("PrintUnprocessedOnly")) + p_IsOnlyIfBPBalance = "Y".equals(para[i].getParameter()); + else if (name.equals("PrintUnprocessedOnly")) p_PrintUnprocessedOnly = "Y".equals(para[i].getParameter()); else log.log(Level.SEVERE, "Unknown Parameter: " + name); @@ -89,51 +98,52 @@ public class DunningPrint extends SvrProcess */ protected String doIt () throws Exception { - if (log.isLoggable(Level.INFO)) log.info("C_DunningRun_ID=" + p_C_DunningRun_ID + ",R_MailText_ID=" + p_R_MailText_ID - + ", EmailPDF=" + p_EMailPDF + ",IsOnlyIfBPBalance=" + p_IsOnlyIfBPBalance + if (log.isLoggable(Level.INFO)) log.info("C_DunningRun_ID=" + p_C_DunningRun_ID + ",R_MailText_ID=" + p_R_MailText_ID + + ", EmailPDF=" + p_EMailPDF + ",IsOnlyIfBPBalance=" + p_IsOnlyIfBPBalance + ",PrintUnprocessedOnly=" + p_PrintUnprocessedOnly); - - // Need to have Template - if (p_EMailPDF && p_R_MailText_ID == 0) - throw new AdempiereUserError ("@NotFound@: @R_MailText_ID@"); -// String subject = ""; - MMailText mText = null; - if (p_EMailPDF) - { - mText = new MMailText (getCtx(), p_R_MailText_ID, get_TrxName()); - if (p_EMailPDF && mText.get_ID() == 0) - throw new AdempiereUserError ("@NotFound@: @R_MailText_ID@ - " + p_R_MailText_ID); -// subject = mText.getMailHeader(); - } - // - MDunningRun run = new MDunningRun (getCtx(), p_C_DunningRun_ID, get_TrxName()); - if (run.get_ID() == 0) - throw new AdempiereUserError ("@NotFound@: @C_DunningRun_ID@ - " + p_C_DunningRun_ID); + + // Need to have Template + if (p_EMailPDF && p_R_MailText_ID == 0) + throw new AdempiereUserError ("@NotFound@: @R_MailText_ID@"); +// String subject = ""; + MMailText mText = null; + if (p_EMailPDF) + { + mText = new MMailText (getCtx(), p_R_MailText_ID, get_TrxName()); + if (p_EMailPDF && mText.get_ID() == 0) + throw new AdempiereUserError ("@NotFound@: @R_MailText_ID@ - " + p_R_MailText_ID); +// subject = mText.getMailHeader(); + } + // + MDunningRun run = new MDunningRun (getCtx(), p_C_DunningRun_ID, get_TrxName()); + if (run.get_ID() == 0) + throw new AdempiereUserError ("@NotFound@: @C_DunningRun_ID@ - " + p_C_DunningRun_ID); MClient client = MClient.get(getCtx()); int count = 0; int errors = 0; MDunningRunEntry[] entries = run.getEntries(false); + List pdfList = new ArrayList(); for (int i = 0; i < entries.length; i++) { MDunningRunEntry entry = entries[i]; - - // Print Format on Dunning Level - MDunningLevel level = new MDunningLevel (getCtx(), entry.getC_DunningLevel_ID(), get_TrxName()); - MPrintFormat format = null; - if (level.getDunning_PrintFormat_ID() > 0) - format = MPrintFormat.get (getCtx(), level.getDunning_PrintFormat_ID(), false); - + + // Print Format on Dunning Level + MDunningLevel level = new MDunningLevel (getCtx(), entry.getC_DunningLevel_ID(), get_TrxName()); + MPrintFormat format = null; + if (level.getDunning_PrintFormat_ID() > 0) + format = MPrintFormat.get (getCtx(), level.getDunning_PrintFormat_ID(), false); + if (p_IsOnlyIfBPBalance && entry.getAmt().signum() <= 0) - continue; - if (p_PrintUnprocessedOnly && entry.isProcessed()) + continue; + if (p_PrintUnprocessedOnly && entry.isProcessed()) continue; // To BPartner MBPartner bp = new MBPartner (getCtx(), entry.getC_BPartner_ID(), get_TrxName()); if (bp.get_ID() == 0) { - StringBuilder msglog = new StringBuilder("@NotFound@: @C_BPartner_ID@ ").append(entry.getC_BPartner_ID()); - addLog (entry.get_ID(), null, null,msglog.toString() ); + StringBuilder msglog = new StringBuilder("@NotFound@: @C_BPartner_ID@ ").append(entry.getC_BPartner_ID()); + addLog (entry.get_ID(), null, null,msglog.toString() ); errors++; continue; } @@ -143,19 +153,20 @@ public class DunningPrint extends SvrProcess { if (to.get_ID() == 0) { - StringBuilder msglog = new StringBuilder("@NotFound@: @AD_User_ID@ - ").append(bp.getName()); - addLog (entry.get_ID(), null, null,msglog.toString()); + StringBuilder msglog = new StringBuilder("@NotFound@: @AD_User_ID@ - ").append(bp.getName()); + addLog (entry.get_ID(), null, null,msglog.toString()); errors++; continue; } else if (to.getEMail() == null || to.getEMail().length() == 0) { - StringBuilder msglog = new StringBuilder("@NotFound@: @EMail@ - ").append(to.getName()); - addLog (entry.get_ID(), null, null, msglog.toString()); + StringBuilder msglog = new StringBuilder("@NotFound@: @EMail@ - ").append(to.getName()); + addLog (entry.get_ID(), null, null, msglog.toString()); errors++; continue; } - } + } + // query MQuery query = new MQuery("C_Dunning_Header_v"); query.addRestriction("C_DunningRunEntry_ID", MQuery.EQUAL, @@ -164,23 +175,23 @@ public class DunningPrint extends SvrProcess // Engine PrintInfo info = new PrintInfo( bp.getName(), - MDunningRunEntry.Table_ID, + MDunningRunEntry.Table_ID, entry.getC_DunningRunEntry_ID(), - entry.getC_BPartner_ID()); - StringBuilder msginfo = new StringBuilder().append(bp.getName()).append(", Amt=").append(entry.getAmt()); - info.setDescription(msginfo.toString()); - ReportEngine re = null; - if (format != null) - re = new ReportEngine(getCtx(), format, query, info); + entry.getC_BPartner_ID()); + StringBuilder msginfo = new StringBuilder().append(bp.getName()).append(", Amt=").append(entry.getAmt()); + info.setDescription(msginfo.toString()); + ReportEngine re = null; + if (format != null) + re = new ReportEngine(getCtx(), format, query, info); boolean printed = false; if (p_EMailPDF) { EMail email = client.createEMail(to.getEMail(), null, null); if (!email.isValid()) { - StringBuilder msglog = new StringBuilder( - "@RequestActionEMailError@ Invalid EMail: ").append(to); - addLog (entry.get_ID(), null, null,msglog.toString() ); + StringBuilder msglog = new StringBuilder( + "@RequestActionEMailError@ Invalid EMail: ").append(to); + addLog (entry.get_ID(), null, null,msglog.toString() ); errors++; continue; } @@ -196,56 +207,80 @@ public class DunningPrint extends SvrProcess email.setMessageText (message); } // - if (re != null) { - File attachment = re.getPDF(File.createTempFile("Dunning", ".pdf")); - StringBuilder msglog = new StringBuilder().append(to.toString()).append(" - ").append(attachment); - if (log.isLoggable(Level.FINE)) log.fine(msglog.toString()); - email.addAttachment(attachment); - } + if (re != null) { + File attachment = re.getPDF(File.createTempFile("Dunning", ".pdf")); + StringBuilder msglog = new StringBuilder().append(to.toString()).append(" - ").append(attachment); + if (log.isLoggable(Level.FINE)) log.fine(msglog.toString()); + email.addAttachment(attachment); + } // String msg = email.send(); MUserMail um = new MUserMail(mText, entry.getAD_User_ID(), email); um.saveEx(); if (msg.equals(EMail.SENT_OK)) { - StringBuilder msglog = new StringBuilder() - .append(bp.getName()).append(" @RequestActionEMailOK@"); - addLog (entry.get_ID(), null, null,msglog.toString()); + StringBuilder msglog = new StringBuilder() + .append(bp.getName()).append(" @RequestActionEMailOK@"); + addLog (entry.get_ID(), null, null,msglog.toString()); count++; printed = true; } else { - StringBuilder msglog = new StringBuilder().append(bp.getName()).append(" @RequestActionEMailError@ ").append(msg); - addLog (entry.get_ID(), null, null,msglog.toString() ); + StringBuilder msglog = new StringBuilder().append(bp.getName()).append(" @RequestActionEMailError@ ").append(msg); + addLog (entry.get_ID(), null, null,msglog.toString() ); errors++; } } else { - if (re != null) { - re.print (); - count++; - printed = true; - } - } - if (printed) - { - entry.setProcessed (true); - entry.save (); - } - - } // for all dunning letters - if (errors==0) { - run.setProcessed(true); - run.saveEx(); - } - if (p_EMailPDF){ - StringBuilder msgreturn = new StringBuilder("@Sent@=").append(count).append(" - @Errors@=").append(errors); - return msgreturn.toString(); - } - StringBuilder msgreturn = new StringBuilder("@Printed@=").append(count); - return msgreturn.toString(); + if (re != null) { + re.print (); + count++; + printed = true; + pdfList.add(re.getPDF()); + } + + + } + if (printed) + { + entry.setProcessed (true); + entry.save (); + } + + } // for all dunning letters + if (errors==0) { + run.setProcessed(true); + run.saveEx(); + } + if (p_EMailPDF){ + StringBuilder msgreturn = new StringBuilder("@Sent@=").append(count).append(" - @Errors@=").append(errors); + return msgreturn.toString(); + } + + if (pdfList.size() > 1) { + try { + File outFile = File.createTempFile("DunningPrint", ".pdf"); + AEnv.mergePdf(pdfList, outFile); + Window win = new SimplePDFViewer(this.getName(), new FileInputStream(outFile)); + win.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED); + SessionManager.getAppDesktop().showWindow(win, "center"); + } catch (Exception e) { + log.log(Level.SEVERE, e.getLocalizedMessage(), e); + } + } else if (pdfList.size() > 0) { + try { + Window win = new SimplePDFViewer(this.getName(), new FileInputStream(pdfList.get(0))); + win.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED); + SessionManager.getAppDesktop().showWindow(win, "center"); + } catch (Exception e) + { + log.log(Level.SEVERE, e.getLocalizedMessage(), e); + } + } + StringBuilder msgreturn = new StringBuilder("@Printed@=").append(count); + return msgreturn.toString(); } // doIt } // DunningPrint From 975fcc3c6e1e6d7283b240f99bcb8dd5ce30d9bd Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 19 Jun 2013 19:23:58 -0500 Subject: [PATCH 15/16] IDEMPIERE-1055 Print Dunning Letters on remote machine throwing errors / peer review --- .../WEB-INF/src/org/adempiere/webui/process/DunningPrint.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java index 6b5a917311..27a8080009 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/process/DunningPrint.java @@ -235,10 +235,9 @@ public class DunningPrint extends SvrProcess else { if (re != null) { - re.print (); + pdfList.add(re.getPDF()); count++; printed = true; - pdfList.add(re.getPDF()); } From b1b6d8ba0b0d1b722f66d5f8031d6b1a5fc3d232 Mon Sep 17 00:00:00 2001 From: Richard Morales Date: Wed, 19 Jun 2013 19:44:43 -0500 Subject: [PATCH 16/16] IDEMPIERE-1071 Problem with using Report in tab Export Format Line --- .../src/org/compiere/model/MLookupFactory.java | 18 +++++++++++------- .../src/org/compiere/print/DataEngine.java | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java index b3f1967920..faabcfb338 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java @@ -634,10 +634,11 @@ public class MLookupFactory } StringBuilder embedSQL = new StringBuilder("SELECT "); - + boolean translated = false; // Translated if (IsTranslated && !Env.isBaseLanguage(language, TableName)) { + translated = true; if (isValueDisplayed) embedSQL.append(TableNameAlias).append(".Value||'-'||"); embedSQL.append(TableName).append("_Trl.").append(DisplayColumn); @@ -660,16 +661,19 @@ public class MLookupFactory } embedSQL.append(" WHERE "); + + int Column_ID = MColumn.getColumn_ID(BaseTable, BaseColumn); + MColumn column = MColumn.get(Env.getCtx(), Column_ID); // If is not virtual column - teo_sarca [ 1739530 ] - if (! BaseColumn.trim().startsWith("(")) + if (!column.isVirtualColumn()) { embedSQL.append(BaseTable).append(".").append(BaseColumn); + embedSQL.append("=").append(TableNameAlias).append(".").append(KeyColumn); + } else if (translated) { + embedSQL.append(TableNameAlias).append(".").append(BaseColumn).append("=").append(column.getColumnSQL()); + } else { + embedSQL.append(BaseColumn).append("=").append(column.getColumnSQL()); } - else - { - embedSQL.append(BaseColumn); - } - embedSQL.append("=").append(TableNameAlias).append(".").append(KeyColumn); return embedSQL.toString(); } // getLookup_TableEmbed diff --git a/org.adempiere.base/src/org/compiere/print/DataEngine.java b/org.adempiere.base/src/org/compiere/print/DataEngine.java index 0489bf31d8..00c82ca7b4 100644 --- a/org.adempiere.base/src/org/compiere/print/DataEngine.java +++ b/org.adempiere.base/src/org/compiere/print/DataEngine.java @@ -406,6 +406,7 @@ public class DataEngine .append(lookupSQL).append(" AS ").append(ColumnName).append(","); groupByColumns.add(m_synonym+display); groupByColumns.add(lookupSQL); + orderName = m_synonym + display; // TableReference tr = getTableReference(AD_Reference_Value_ID); String foreignColumnName = tr.KeyColumn;