diff --git a/org.adempiere.base/src/org/compiere/model/MMatchPO.java b/org.adempiere.base/src/org/compiere/model/MMatchPO.java
index e6b2c17b8b..52ea5233db 100644
--- a/org.adempiere.base/src/org/compiere/model/MMatchPO.java
+++ b/org.adempiere.base/src/org/compiere/model/MMatchPO.java
@@ -1289,7 +1289,7 @@ public class MMatchPO extends X_M_MatchPO
this.saveEx();
// auto create new matchpo if have invoice line
- if ( reversal.getC_InvoiceLine_ID() > 0)
+ if ( reversal.getC_InvoiceLine_ID() > 0 && reversal.getM_InOutLine_ID() > 0 )
{
MMatchPO[] matchPOs = MMatchPO.getOrderLine(reversal.getCtx(), reversal.getC_OrderLine_ID(), reversal.get_TrxName());
BigDecimal matchQty = getQty();
diff --git a/org.adempiere.payment.processor/pom.xml b/org.adempiere.payment.processor/pom.xml
index 4922742ad8..2501a0acde 100644
--- a/org.adempiere.payment.processor/pom.xml
+++ b/org.adempiere.payment.processor/pom.xml
@@ -22,7 +22,7 @@
wget
- ${url.file.srv}/jarfile/6.1/jpayment.jar
+ ${url.file.srv}/extra.jar/jpayment.jar
false
lib
5
@@ -35,7 +35,7 @@
wget
- ${url.file.srv}/jarfile/6.1/Verisign.jar
+ ${url.file.srv}/extra.jar/Verisign.jar
false
lib
5
@@ -48,7 +48,7 @@
wget
- ${url.file.srv}/jarfile/6.1/payflow.jar
+ ${url.file.srv}/extra.jar/payflow.jar
false
lib
5
diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java
index e1a6913c85..c4b9e40f86 100644
--- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java
+++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java
@@ -20,6 +20,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
+import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
@@ -195,7 +196,7 @@ public class GenericPOElementHandler extends AbstractElementHandler {
for (int i = 1; i < components.length; i++) {
String tables[] = components[i].split("[>]");
- exportDetail(ctx, document, po, 0, tables);
+ exportDetail(ctx, document, po, tables);
}
if (createElement) {
@@ -209,19 +210,19 @@ public class GenericPOElementHandler extends AbstractElementHandler {
}
}
- private void exportDetail(PIPOContext ctx, TransformerHandler document, GenericPO parent, int index, String[] tables) {
+ private void exportDetail(PIPOContext ctx, TransformerHandler document, GenericPO parent, String[] tables) {
+ String mainTable = tables[0];
AttributesImpl atts = new AttributesImpl();
- tables[index] = tables[index].trim();
- String sql = "SELECT * FROM " + tables[index] + " WHERE " + parent.get_TableName() + "_ID = ?";
+ String sql = "SELECT * FROM " + mainTable + " WHERE " + parent.get_TableName() + "_ID = ?";
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
- sql = MRole.getDefault().addAccessSQL(sql, tables[index], true, true);
+ sql = MRole.getDefault().addAccessSQL(sql, mainTable, true, true);
pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, parent.get_ID());
rs = pstmt.executeQuery();
while (rs.next()) {
- GenericPO po = new GenericPO(tables[index], ctx.ctx, rs, getTrxName(ctx));
+ GenericPO po = new GenericPO(mainTable, ctx.ctx, rs, getTrxName(ctx));
int AD_Client_ID = po.getAD_Client_ID();
if (AD_Client_ID != Env.getAD_Client_ID(ctx.ctx))
continue;
@@ -237,12 +238,12 @@ public class GenericPOElementHandler extends AbstractElementHandler {
}
if (createElement) {
verifyPackOutRequirement(po);
- List excludes = defaultExcludeList(tables[index]);
+ List excludes = defaultExcludeList(mainTable);
addTypeName(atts, "table");
- document.startElement("", "", tables[index], atts);
+ document.startElement("", "", mainTable, atts);
PoExporter filler = new PoExporter(ctx, document, po);
filler.export(excludes, true);
- ctx.packOut.getCtx().ctx.put("Table_Name",tables[index]);
+ ctx.packOut.getCtx().ctx.put("Table_Name",mainTable);
try {
new CommonTranslationHandler().packOut(ctx.packOut,document,null,po.get_ID());
} catch(Exception e) {
@@ -250,11 +251,27 @@ public class GenericPOElementHandler extends AbstractElementHandler {
}
}
}
- for (int i=index+1; i detTablesArr = new ArrayList();
+ for (int j=i; j gridTab.getTabLevel()+1) {
- sql = sql.append(">").append(child.getTableName());
+ int level = child.getTabLevel() - gridTab.getTabLevel() - 1;
+ String sep = ">";
+ for (int i = 1; i < level; i++)
+ sep += "+";
+ sql = sql.append(sep).append(child.getTableName());
} else {
sql = sql.append(";").append(child.getTableName());
}
diff --git a/org.adempiere.report.jasper.library/pom.xml b/org.adempiere.report.jasper.library/pom.xml
index c37b210c63..ba1d29df53 100644
--- a/org.adempiere.report.jasper.library/pom.xml
+++ b/org.adempiere.report.jasper.library/pom.xml
@@ -78,7 +78,7 @@
wget
- ${url.file.srv}/jarfile/jp-${jp.version}/jasperreports-fonts-${jp.version}.jar
+ ${url.file.srv}/extra.jar/jasperreports-fonts-${jp.version}.jar
false
lib
jasperreports-fonts.jar
diff --git a/org.adempiere.server-feature/pom.xml b/org.adempiere.server-feature/pom.xml
index 312b721fdb..c116c4aa66 100644
--- a/org.adempiere.server-feature/pom.xml
+++ b/org.adempiere.server-feature/pom.xml
@@ -184,7 +184,7 @@
wget
- ${url.file.srv}/jarfile/6.1/101-20121212164242.zip
+ ${url.file.srv}/extra.jar/101-20121212164242.zip
false
../fitnesse/FitNesseRoot/FitLibraryWeb
5
@@ -197,7 +197,7 @@
wget
- ${url.file.srv}/jarfile/6.1/21-20121212154702.zip
+ ${url.file.srv}/extra.jar/21-20121212154702.zip
false
../fitnesse/FitNesseRoot/FitLibraryWeb
5
@@ -210,7 +210,7 @@
wget
- ${url.file.srv}/jarfile/6.1/6-20121212124109.zip
+ ${url.file.srv}/extra.jar/6-20121212124109.zip
false
../fitnesse/FitNesseRoot/FitLibraryWeb
5
diff --git a/org.adempiere.ui.swing/pom.xml b/org.adempiere.ui.swing/pom.xml
index 179214d205..55c30a1bb5 100644
--- a/org.adempiere.ui.swing/pom.xml
+++ b/org.adempiere.ui.swing/pom.xml
@@ -69,7 +69,7 @@
wget
- ${url.file.srv}/jarfile/6.1/jpedal.jar
+ ${url.file.srv}/extra.jar/jpedal.jar
false
lib
5
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java
index 5a2a377261..27701017fb 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java
@@ -92,32 +92,30 @@ public class NumberBox extends Div
char separatorChar = DisplayType.getNumberFormat(DisplayType.Number, Env.getLanguage(Env.getCtx())).getDecimalFormatSymbols().getDecimalSeparator();
String separator = Character.toString(separatorChar);
boolean processDotKeypad = MSysConfig.getBooleanValue(MSysConfig.ZK_DECIMALBOX_PROCESS_DOTKEYPAD, true, Env.getAD_Client_ID(Env.getCtx()));
- if (".".equals(separator))
- processDotKeypad = false;
if (processDotKeypad) {
StringBuffer funct = new StringBuffer();
funct.append("function(evt)");
funct.append("{");
- // ignore dot and process it on key up
- funct.append(" if (!this._shallIgnore(evt, '0123456789-%").append(separator).append("'))");
+ // ignore dot, comma and decimal separator and process them on key down
+ funct.append(" if (!this._shallIgnore(evt, '0123456789-%'))");
funct.append(" {");
funct.append(" this.$doKeyPress_(evt);");
funct.append(" }");
funct.append("}");
decimalBox.setWidgetOverride("doKeyPress_", funct.toString());
funct = new StringBuffer();
- // not working correctly on opera
+ // debug // funct.append("console.log('keyCode='+event.keyCode);");
funct.append("if (window.event)");
funct.append(" key = event.keyCode;");
funct.append("else");
funct.append(" key = event.which;");
- funct.append("if ((key == 110 || key == 190) && !window.opera) {");
+ funct.append("if (key == 108 || key == 110 || key == 188 || key == 190 || key == 194) {");
funct.append(" var id = '$'.concat('").append(decimalBox.getId()).append("');");
funct.append(" var calcText = jq(id)[0];");
funct.append(" calcText.value += '").append(separator).append("';");
funct.append(" event.stop;");
funct.append("};");
- decimalBox.setWidgetListener("onKeyUp", funct.toString());
+ decimalBox.setWidgetListener("onKeyDown", funct.toString());
}
appendChild(decimalBox);
@@ -251,29 +249,27 @@ public class NumberBox extends Div
txtCalc.setId(txtCalc.getUuid());
boolean processDotKeypad = MSysConfig.getBooleanValue(MSysConfig.ZK_DECIMALBOX_PROCESS_DOTKEYPAD, true, Env.getAD_Client_ID(Env.getCtx()));
- if (".".equals(separator))
- processDotKeypad = false;
-
- // restrict allowed characters
- String decimalSep = separator;
- if (!processDotKeypad && !".".equals(separator))
- decimalSep += ".";
StringBuffer funct = new StringBuffer();
funct.append("function(evt)");
funct.append("{");
- funct.append(" if (!this._shallIgnore(evt, '= -/()*%+0123456789").append(decimalSep).append("'))");
+ if (processDotKeypad) {
+ funct.append(" if (!this._shallIgnore(evt, '= -/()*%+0123456789'))");
+ } else {
+ // restrict allowed characters
+ String decimalSep = separator;
+ if (!processDotKeypad && !".".equals(separator))
+ decimalSep += ".";
+ funct.append(" if (!this._shallIgnore(evt, '= -/()*%+0123456789").append(decimalSep).append("'))");
+ }
funct.append(" {");
funct.append(" this.$doKeyPress_(evt);");
funct.append(" }");
funct.append("}");
txtCalc.setWidgetOverride("doKeyPress_", funct.toString());
- txtCalc.setWidgetListener("onKeyUp", "calc.validateUp('" +
+ txtCalc.setWidgetListener("onKeyDown", "calc.validateDown('" +
decimalBox.getId() + "','" + txtCalc.getId()
+ "'," + integral + "," + (int)separatorChar + ", event, " + ( processDotKeypad ? "true" : "false" ) + ");");
- txtCalc.setWidgetListener("onKeyPress", "calc.validatePress('" +
- decimalBox.getId() + "','" + txtCalc.getId()
- + "'," + integral + "," + (int)separatorChar + ", event);");
txtCalc.setMaxlength(250);
txtCalc.setCols(30);
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java
index 0435823bfc..c6946c4588 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java
@@ -216,6 +216,7 @@ public class ExportAction implements EventListener
chkSelectionTab.setAttribute("tabBinding", child);
vlayout.appendChild(chkSelectionTab);
chkSelectionTabForExport.add(chkSelectionTab);
+ chkSelectionTab.addEventListener(Events.ON_CHECK, this);
isHasSelectionTab = true;
}
@@ -235,6 +236,26 @@ public class ExportAction implements EventListener
panel.hideBusyMask();
}else if (event.getTarget().equals(cboType) && event.getName().equals(Events.ON_SELECT)) {
displayExportTabSelection();
+ }else if (event.getTarget() instanceof Checkbox) {
+ // A child is not exportable without its parent
+ Checkbox cbSel = (Checkbox) event.getTarget();
+ GridTab gtSel = (GridTab)cbSel.getAttribute("tabBinding");
+ boolean found = false;
+ for (Checkbox cb : chkSelectionTabForExport) {
+ if (cb == cbSel) {
+ found = true;
+ continue;
+ }
+ GridTab gt = (GridTab)cb.getAttribute("tabBinding");
+ if (found) {
+ if (gt.getTabLevel() > gtSel.getTabLevel()) {
+ cb.setChecked(cbSel.isChecked());
+ cb.setEnabled(cbSel.isChecked());
+ } else {
+ break;
+ }
+ }
+ }
}else if (event.getName().equals("onExporterException")){
FDialog.error(0, winExportFile, "FileInvalidExtension");
winExportFile.onClose();
diff --git a/org.adempiere.ui.zk/js/calc.js b/org.adempiere.ui.zk/js/calc.js
index 40e0904160..2a502fa327 100644
--- a/org.adempiere.ui.zk/js/calc.js
+++ b/org.adempiere.ui.zk/js/calc.js
@@ -1,41 +1,25 @@
function Calc()
{
- this.validateUp = validateUp;
- this.validatePress = validatePress;
+ this.validateDown = validateDown;
this.clear = clear;
this.clearAll = clearAll;
this.evaluate = evaluate;
this.append = append;
- function validatePress(displayTextId, calcTextId, integral, separatorKey, e)
- {
- var key;
-
- if(window.event)
- key = e.keyCode; //IE
- else
- key = e.which; //Firefox
- // console.log("validatePress: " + displayTextId + " / " + calcTextId + " / " + integral + " / " + separatorKey + " / " + key);
- if (key == 61) // =
- {
- evaluate(displayTextId, calcTextId, String.fromCharCode(separatorKey));
- }
- }
-
- function validateUp(displayTextId, calcTextId, integral, separatorKey, e, processDotKeypad)
+ function validateDown(displayTextId, calcTextId, integral, separatorKey, e, processDotKeypad)
{
var key;
if(window.event)
key = e.keyCode; //IE
else
key = e.which; //Firefox
- // console.log("validateUp: " + displayTextId + " / " + calcTextId + " / " + integral + " / " + separatorKey + " / " + key + " / " + processDotKeypad);
- if (key == 13) // Enter
+ // console.log("validateDown: " + displayTextId + " / " + calcTextId + " / " + integral + " / " + separatorKey + " / " + key + " / " + processDotKeypad);
+ if (key == 13 || key == 61) // Enter
{
evaluate(displayTextId, calcTextId, String.fromCharCode(separatorKey));
}
- else if (processDotKeypad && separatorKey != 46 && (key == 110 || key == 190) && !window.opera) // numeric dot on keypad (not working for opera)
+ else if (processDotKeypad && (key == 108 || key == 110 || key == 188 || key == 190 || key == 194))
{
append(calcTextId, String.fromCharCode(separatorKey));
e.stop;
diff --git a/org.adempiere.ui.zk/pom.xml b/org.adempiere.ui.zk/pom.xml
index 14bdd8f936..7f8d43b194 100644
--- a/org.adempiere.ui.zk/pom.xml
+++ b/org.adempiere.ui.zk/pom.xml
@@ -51,7 +51,7 @@
wget
- ${url.file.srv}/jarfile/6.1/labelapplet.jar
+ ${url.file.srv}/extra.jar/labelapplet.jar
false
./
5
diff --git a/org.compiere.db.oracle.provider/pom.xml b/org.compiere.db.oracle.provider/pom.xml
index f8a67adca3..9b881e3a9a 100644
--- a/org.compiere.db.oracle.provider/pom.xml
+++ b/org.compiere.db.oracle.provider/pom.xml
@@ -58,7 +58,7 @@
- ${url.file.srv}/jarfile/6.1/ojdbc7.jar
+ ${url.file.srv}/extra.jar/ojdbc7.jar
false
lib
5
diff --git a/org.idempiere.fitnesse.server/pom.xml b/org.idempiere.fitnesse.server/pom.xml
index 4eb108a452..3dbc4a9114 100644
--- a/org.idempiere.fitnesse.server/pom.xml
+++ b/org.idempiere.fitnesse.server/pom.xml
@@ -63,7 +63,7 @@
wget
- ${url.file.srv}/jarfile/6.1/fitlibrary-2.0.jar
+ ${url.file.srv}/extra.jar/fitlibrary-2.0.jar
false
lib
5
@@ -77,7 +77,7 @@
wget
- ${url.file.srv}/jarfile/6.1/fitlibraryweb-2.0.jar
+ ${url.file.srv}/extra.jar/fitlibraryweb-2.0.jar
false
lib
5
diff --git a/org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target b/org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target
index b7e6cd38bd..25e55c4ce3 100644
--- a/org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target
+++ b/org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target
@@ -764,6 +764,14 @@
+
+
+
+
+
+
+
+
@@ -792,82 +800,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -924,6 +862,8 @@
+
+
@@ -940,6 +880,10 @@
+
+
+
+
@@ -950,10 +894,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1012,8 +978,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1027,6 +1015,7 @@
+
@@ -1045,36 +1034,47 @@
+
+
+
+
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/org.idempiere.parent/pom.xml b/org.idempiere.parent/pom.xml
index d59b3a8290..95cb60652c 100644
--- a/org.idempiere.parent/pom.xml
+++ b/org.idempiere.parent/pom.xml
@@ -30,7 +30,7 @@
eclipse-photon-201809
http://download.eclipse.org/tools/orbit/downloads/drops/R20180905201904/repository
orbit-photon-R20180905201904
- http://downloads.sourceforge.net/project/idempiere/binary.file
+ https://raw.githubusercontent.com/idempiere/binary.file/master
org.eclipse.equinox.p2.director, org.idempiere.equinox.p2.director.feature.feature.group, org.idempiere.fitnesse.feature.feature.group
org.adempiere.server.product
2.8.5
diff --git a/org.idempiere.webservices/pom.xml b/org.idempiere.webservices/pom.xml
index 7a032db849..c84b1cc962 100644
--- a/org.idempiere.webservices/pom.xml
+++ b/org.idempiere.webservices/pom.xml
@@ -32,7 +32,7 @@
wget
- ${url.file.srv}/jarfile/6.1/idempiere-xmlbeans-1.0.jar
+ ${url.file.srv}/extra.jar/idempiere-xmlbeans-1.0.jar
false
WEB-INF/lib
5