diff --git a/migration/i5.1/oracle/201803221017_IDEMPIERE-3664.sql b/migration/i5.1/oracle/201803221017_IDEMPIERE-3664.sql new file mode 100644 index 0000000000..74d8baf049 --- /dev/null +++ b/migration/i5.1/oracle/201803221017_IDEMPIERE-3664.sql @@ -0,0 +1,15 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- IDEMPIERE-3664 +-- Mar 22, 2018 10:16:54 AM BRT +INSERT INTO AD_SysConfig (AD_SysConfig_ID,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive,Name,Value,Description,EntityType,ConfigurationLevel,AD_SysConfig_UU) VALUES (200116,0,0,TO_DATE('2018-03-22 10:16:53','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2018-03-22 10:16:53','YYYY-MM-DD HH24:MI:SS'),100,100,'Y','AUTO_ASSIGN_ROLE_TO_CREATOR_USER','N','Defines if a role is assigned to the creator user when creating a new role ','D','S','dc4be8d1-a164-4e6d-8e02-be6c498d1669') +; + +-- Mar 22, 2018 10:17:03 AM BRT +UPDATE AD_SysConfig SET ConfigurationLevel='C',Updated=TO_DATE('2018-03-22 10:17:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_SysConfig_ID=200116 +; + +SELECT register_migration_script('201803221017_IDEMPIERE-3664.sql') FROM dual +; + diff --git a/migration/i5.1/postgresql/201803221017_IDEMPIERE-3664.sql b/migration/i5.1/postgresql/201803221017_IDEMPIERE-3664.sql new file mode 100644 index 0000000000..064cb34c56 --- /dev/null +++ b/migration/i5.1/postgresql/201803221017_IDEMPIERE-3664.sql @@ -0,0 +1,12 @@ +-- IDEMPIERE-3664 +-- Mar 22, 2018 10:16:54 AM BRT +INSERT INTO AD_SysConfig (AD_SysConfig_ID,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive,Name,Value,Description,EntityType,ConfigurationLevel,AD_SysConfig_UU) VALUES (200116,0,0,TO_TIMESTAMP('2018-03-22 10:16:53','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2018-03-22 10:16:53','YYYY-MM-DD HH24:MI:SS'),100,100,'Y','AUTO_ASSIGN_ROLE_TO_CREATOR_USER','N','Defines if a role is assigned to the creator user when creating a new role ','D','S','dc4be8d1-a164-4e6d-8e02-be6c498d1669') +; + +-- Mar 22, 2018 10:17:03 AM BRT +UPDATE AD_SysConfig SET ConfigurationLevel='C',Updated=TO_TIMESTAMP('2018-03-22 10:17:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_SysConfig_ID=200116 +; + +SELECT register_migration_script('201803221017_IDEMPIERE-3664.sql') FROM dual +; + diff --git a/org.adempiere.base/src/org/compiere/acct/Doc_MatchPO.java b/org.adempiere.base/src/org/compiere/acct/Doc_MatchPO.java index 87a48da28b..0d5475dc11 100644 --- a/org.adempiere.base/src/org/compiere/acct/Doc_MatchPO.java +++ b/org.adempiere.base/src/org/compiere/acct/Doc_MatchPO.java @@ -444,9 +444,12 @@ public class Doc_MatchPO extends Doc if (mPO[i].getM_AttributeSetInstance_ID() == mMatchPO.getM_AttributeSetInstance_ID() && mPO[i].getM_MatchPO_ID() != mMatchPO.getM_MatchPO_ID()) { - BigDecimal qty = (isReturnTrx ? mPO[i].getQty().negate() : mPO[i].getQty()); - tQty = tQty.add(qty); - tAmt = tAmt.add(poCost.multiply(qty)); + BigDecimal qty = (isReturnTrx ? mPO[i].getQty().negate() : mPO[i].getQty()); + if (mPO[i].getM_InOutLine_ID() > 0) + { + tQty = tQty.add(qty); + tAmt = tAmt.add(poCost.multiply(qty)); + } } } diff --git a/org.adempiere.base/src/org/compiere/acct/Doc_Order.java b/org.adempiere.base/src/org/compiere/acct/Doc_Order.java index 63ad382edb..e62ecb3521 100644 --- a/org.adempiere.base/src/org/compiere/acct/Doc_Order.java +++ b/org.adempiere.base/src/org/compiere/acct/Doc_Order.java @@ -734,7 +734,7 @@ public class Doc_Order extends Doc * @param multiplier 1 for accrual * @return Fact */ - protected static Fact getCommitmentSalesRelease(MAcctSchema as, Doc doc, + public static Fact getCommitmentSalesRelease(MAcctSchema as, Doc doc, BigDecimal Qty, int M_InOutLine_ID, BigDecimal multiplier) { Fact fact = new Fact(doc, as, Fact.POST_Commitment); diff --git a/org.adempiere.base/src/org/compiere/model/MMatchPO.java b/org.adempiere.base/src/org/compiere/model/MMatchPO.java index 44a4e8977c..167c843f76 100644 --- a/org.adempiere.base/src/org/compiere/model/MMatchPO.java +++ b/org.adempiere.base/src/org/compiere/model/MMatchPO.java @@ -515,8 +515,87 @@ public class MMatchPO extends X_M_MatchPO { retValue = new MMatchPO (sLine, dateTrx, qty); retValue.setC_OrderLine_ID(C_OrderLine_ID); - if (iLine != null) - retValue.setC_InvoiceLine_ID(iLine); + MMatchPO otherMatchPO = null; + if (iLine == null) { + MMatchPO[] matchPOs = MMatchPO.getOrderLine(retValue.getCtx(), sLine.getC_OrderLine_ID(), retValue.get_TrxName()); + for (MMatchPO matchPO : matchPOs) + { + if (matchPO.getC_InvoiceLine_ID() > 0 && matchPO.getM_InOutLine_ID() == 0) + { + //m_matchinv not created yet + int cnt = DB.getSQLValueEx(sLine.get_TrxName(), "SELECT Count(*) FROM M_MatchInv WHERE M_InOutLine_ID="+sLine.getM_InOutLine_ID() + +" AND C_InvoiceLine_ID="+ matchPO.getC_InvoiceLine_ID()); + if (cnt <= 0) { + if (!matchPO.isPosted() && matchPO.getQty().compareTo(retValue.getQty()) >=0 ) // greater than or equal quantity + { + otherMatchPO = matchPO; + iLine = new MInvoiceLine(retValue.getCtx(), matchPO.getC_InvoiceLine_ID(), retValue.get_TrxName()); + matchPO.setQty(matchPO.getQty().subtract(retValue.getQty())); + if (matchPO.getQty().signum() == 0 ) + matchPO.deleteEx(true); + else + matchPO.saveEx(); + break; + } + + } + } + } + } + if (iLine != null) { + if (otherMatchPO == null) + retValue.setC_InvoiceLine_ID(iLine); + //auto create matchinv + if (otherMatchPO != null) + { + Savepoint savepoint = null; + Trx trx = null; + try + { + trx = trxName != null ? Trx.get(trxName, false) : null; + savepoint = trx != null ? trx.getConnection().setSavepoint() : null; + MMatchInv matchInv = new MMatchInv(retValue.getCtx(), 0, retValue.get_TrxName()); + matchInv.setC_InvoiceLine_ID(otherMatchPO.getC_InvoiceLine_ID()); + matchInv.setM_Product_ID(retValue.getM_Product_ID()); + matchInv.setM_InOutLine_ID(retValue.getM_InOutLine_ID()); + matchInv.setAD_Client_ID(retValue.getAD_Client_ID()); + matchInv.setAD_Org_ID(retValue.getAD_Org_ID()); + matchInv.setM_AttributeSetInstance_ID(retValue.getM_AttributeSetInstance_ID()); + matchInv.setQty(retValue.getQty()); + matchInv.setDateTrx(dateTrx); + matchInv.setProcessed(true); + if (!matchInv.save()) + { + if (savepoint != null) + { + trx.getConnection().rollback(savepoint); + savepoint = null; + } + else + { + matchInv.delete(true); + } + String msg = "Failed to auto match invoice."; + ValueNamePair error = CLogger.retrieveError(); + if (error != null) + { + msg = msg + " " + error.getName(); + } + s_log.severe(msg); + } + retValue.setMatchInvCreated(matchInv); + } catch (Exception e) { + s_log.log(Level.SEVERE, "Failed to auto match Invoice.", e); + } finally { + if (savepoint != null) + { + try { + trx.getConnection().releaseSavepoint(savepoint); + } catch (Exception e) {} + } + } + } + } if (!retValue.save()) { String msg = "Failed to update match po."; @@ -972,6 +1051,11 @@ public class MMatchPO extends X_M_MatchPO orderLine.setQtyInvoiced(orderLine.getQtyInvoiced().subtract(getQty())); orderLine.setDateInvoiced(getDateTrx()); // overwrite=last } + else if (!newRecord && getC_InvoiceLine_ID() > 0 && is_ValueChanged(COLUMNNAME_Qty)) + { + BigDecimal oldQty = (BigDecimal)(get_ValueOld(COLUMNNAME_Qty)); + orderLine.setQtyInvoiced(orderLine.getQtyInvoiced().subtract(oldQty.subtract(getQty()))); + } // Update Order ASI if full match if (orderLine.getM_AttributeSetInstance_ID() == 0 @@ -1183,6 +1267,36 @@ public class MMatchPO extends X_M_MatchPO this.setDescription("(" + reversal.getDocumentNo() + "<-)"); this.setReversal_ID(reversal.getM_MatchPO_ID()); this.saveEx(); + + // reversal of mr if have both shipment and invoice line + if ( reversal.getM_InOutLine_ID() > 0 && reversal.getC_InvoiceLine_ID() > 0) + { + MMatchPO[] matchPOs = MMatchPO.getOrderLine(reversal.getCtx(), reversal.getC_OrderLine_ID(), reversal.get_TrxName()); + BigDecimal matchQty = getQty(); + for (MMatchPO matchPO : matchPOs) + { + if (matchPO.getReversal_ID() == 0 && !matchPO.isPosted() + && matchPO.getC_InvoiceLine_ID() == reversal.getC_InvoiceLine_ID() + && matchPO.getM_InOutLine_ID() == 0 ) + { + matchPO.setQty(matchPO.getQty().add(matchQty)); + matchPO.saveEx(); + matchQty = BigDecimal.ZERO; + break; + } + } + + if (matchQty.signum() != 0) + { + MMatchPO matchPO = new MMatchPO (getCtx(), 0, get_TrxName()); + PO.copyValues(this, matchPO); + matchPO.setC_InvoiceLine_ID(getC_InvoiceLine_ID()); + matchPO.setM_InOutLine_ID(0); + matchPO.setDescription(null); + matchPO.setPosted (false); + matchPO.saveEx(); + } + } return true; } return false; diff --git a/org.adempiere.base/src/org/compiere/model/MRole.java b/org.adempiere.base/src/org/compiere/model/MRole.java index 2e5fc3d285..7b07d0ba6b 100644 --- a/org.adempiere.base/src/org/compiere/model/MRole.java +++ b/org.adempiere.base/src/org/compiere/model/MRole.java @@ -371,7 +371,7 @@ public final class MRole extends X_AD_Role MUserRoles su = new MUserRoles(getCtx(), SUPERUSER_USER_ID, getAD_Role_ID(), get_TrxName()); su.saveEx(); // Add Role to User - if (getCreatedBy() != SUPERUSER_USER_ID) + if (getCreatedBy() != SUPERUSER_USER_ID && MSysConfig.getBooleanValue(MSysConfig.AUTO_ASSIGN_ROLE_TO_CREATOR_USER, false, getAD_Client_ID())) { MUserRoles ur = new MUserRoles(getCtx(), getCreatedBy(), getAD_Role_ID(), get_TrxName()); ur.saveEx(); diff --git a/org.adempiere.base/src/org/compiere/model/MSysConfig.java b/org.adempiere.base/src/org/compiere/model/MSysConfig.java index eca485fb6f..0a6d0b84fb 100644 --- a/org.adempiere.base/src/org/compiere/model/MSysConfig.java +++ b/org.adempiere.base/src/org/compiere/model/MSysConfig.java @@ -42,7 +42,7 @@ public class MSysConfig extends X_AD_SysConfig /** * */ - private static final long serialVersionUID = 2617379167881737860L; + private static final long serialVersionUID = -2698648078997788547L; public static final String ADDRESS_VALIDATION = "ADDRESS_VALIDATION"; public static final String ALERT_SEND_ATTACHMENT_AS_XLS = "ALERT_SEND_ATTACHMENT_AS_XLS"; @@ -61,6 +61,7 @@ public class MSysConfig extends X_AD_SysConfig public static final String APPLICATION_OS_INFO_SHOWN = "APPLICATION_OS_INFO_SHOWN"; public static final String APPLICATION_URL = "APPLICATION_URL"; public static final String ATTACH_EMBEDDED_2PACK = "ATTACH_EMBEDDED_2PACK"; + public static final String AUTO_ASSIGN_ROLE_TO_CREATOR_USER = "AUTO_ASSIGN_ROLE_TO_CREATOR_USER"; public static final String AUTOMATIC_PACKIN_FOLDERS = "AUTOMATIC_PACKIN_FOLDERS"; public static final String AUTOMATIC_PACKIN_INITIAL_DELAY = "AUTOMATIC_PACKIN_INITIAL_DELAY"; public static final String AUTOMATIC_PACKIN_PROCESSING = "AUTOMATIC_PACKIN_PROCESSING"; diff --git a/org.adempiere.base/src/org/compiere/model/PO.java b/org.adempiere.base/src/org/compiere/model/PO.java index 3dffa469ab..cee29fd67e 100644 --- a/org.adempiere.base/src/org/compiere/model/PO.java +++ b/org.adempiere.base/src/org/compiere/model/PO.java @@ -2846,7 +2846,8 @@ public abstract class PO if (DisplayType.isLOB(dt)) { lobAdd (value, i, dt); - continue; + if (!p_info.isColumnMandatory(i)) + continue; } // ** add column ** @@ -2885,7 +2886,16 @@ public abstract class PO else if (c == String.class) sqlValues.append (encrypt(i,DB.TO_STRING ((String)value))); else if (DisplayType.isLOB(dt)) - sqlValues.append("null"); // no db dependent stuff here + { + if (p_info.isColumnMandatory(i)) + { + sqlValues.append("''"); // no db dependent stuff here -- at this point value is known to be not null + } + else + { + sqlValues.append("null"); + } + } else sqlValues.append (saveNewSpecial (value, i)); } @@ -2910,7 +2920,17 @@ public abstract class PO if (DisplayType.isLOB(dt)) { - params.add(null); + if (p_info.isColumnMandatory(i)) + { + if (dt == DisplayType.Binary) + params.add(new byte[] {0}); // -- at this point value is known to be not null + else + params.add(""); // -- at this point value is known to be not null + } + else + { + params.add(null); + } } else if (value == null || value.equals (Null.NULL)) { diff --git a/org.adempiere.pipo/src/org/adempiere/pipo/srv/PipoDictionaryService.java b/org.adempiere.pipo/src/org/adempiere/pipo/srv/PipoDictionaryService.java index 31ad2fcf85..18f79c12d3 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo/srv/PipoDictionaryService.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo/srv/PipoDictionaryService.java @@ -42,6 +42,10 @@ public class PipoDictionaryService implements IDictionaryService { logger.info("No PackIn Model found"); return; } + if (! packageFile.canRead()) { + logger.severe("Cannot read file " + packageFile.getName()); + return; + } String symbolicName = "org.adempiere.pipo"; if (context != null) symbolicName = context.getBundle().getSymbolicName(); diff --git a/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/PackInApplicationActivator.java b/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/PackInApplicationActivator.java index 5158cd9814..1619cf7b6d 100644 --- a/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/PackInApplicationActivator.java +++ b/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/PackInApplicationActivator.java @@ -299,7 +299,7 @@ public class PackInApplicationActivator extends AbstractActivator { for (String filePath : filePaths) { File toProcess = new File(filePath.trim()); if (!toProcess.exists()) { - logger.log(Level.SEVERE, filePath + " does not exist"); + addLog(Level.SEVERE, filePath + " does not exist"); continue; } @@ -322,14 +322,14 @@ public class PackInApplicationActivator extends AbstractActivator { } private void processFilePath(File toProcess) { - if (toProcess.isFile()) { + if (toProcess.isFile() && toProcess.canRead()) { if (toProcess.getName().toLowerCase().endsWith(".zip")) filesToProcess.add(toProcess); else { logger.log(Level.SEVERE, toProcess.getName() + " is not a valid .zip file"); return; } - } else if (toProcess.isDirectory()) { + } else if (toProcess.isDirectory() && toProcess.canRead()) { FileFilter filter = new FileFilter() { public boolean accept(File file) { if (file.getName().toUpperCase().endsWith(".ZIP") || file.isDirectory()) @@ -344,17 +344,22 @@ public class PackInApplicationActivator extends AbstractActivator { logger.info("*** Creating list from folder " + toProcess.toString()); found = true; } - if (fileToProcess.isDirectory()) + if (fileToProcess.isDirectory()) { processFilePath(fileToProcess); - else - filesToProcess.add(fileToProcess); + } else { + if (fileToProcess.canRead()) { + filesToProcess.add(fileToProcess); + } else { + addLog(Level.SEVERE, fileToProcess.getName() + " not readable"); + } + } } if (!found) { logger.log(Level.FINE, toProcess.getName() + " does not have .zip files or subfolders"); return; } } else { - logger.log(Level.SEVERE, toProcess.getName() + " not a file or folder"); + addLog(Level.SEVERE, toProcess.getName() + " not a file or folder or not readable"); } } diff --git a/org.adempiere.sdk-feature/materialize.properties b/org.adempiere.sdk-feature/materialize.properties index 1743384f0d..17900a011c 100644 --- a/org.adempiere.sdk-feature/materialize.properties +++ b/org.adempiere.sdk-feature/materialize.properties @@ -38,7 +38,7 @@ url.file.jp.lib=http://downloads.sourceforge.net/project/idempiere/binary.file/j url.jp.p2=http://downloads.sourceforge.net/project/idempiere/binary.file/jarfile/jp-p2/jp-6.3.1 -url.alpn.boot=http://central.maven.org/maven2/org/mortbay/jetty/alpn/alpn-boot/8.1.11.v20170118/alpn-boot-8.1.11.v20170118.jar +url.alpn.boot=http://central.maven.org/maven2/org/mortbay/jetty/alpn/alpn-boot/8.1.12.v20180117/alpn-boot-8.1.12.v20180117.jar extend.bundle.folder.1 extend.bundle.folder.2 diff --git a/org.adempiere.server-feature/setup/configuration/config.ini b/org.adempiere.server-feature/setup/configuration/config.ini index 6ed81c32b0..64fe21cce6 100644 --- a/org.adempiere.server-feature/setup/configuration/config.ini +++ b/org.adempiere.server-feature/setup/configuration/config.ini @@ -1,4 +1,4 @@ -osgi.framework=file\:../plugins/org.eclipse.osgi_3.12.50.v20170928-1321.jar +osgi.framework=file\:../plugins/org.eclipse.osgi_3.12.100.v20180210-1608.jar osgi.install.area=setup osgi.bundles=org.eclipse.equinox.ds@1:start,\ org.eclipse.equinox.util,\ diff --git a/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServer.java b/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServer.java index 48d442b880..9a94a79bfd 100644 --- a/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServer.java +++ b/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServer.java @@ -117,13 +117,21 @@ public abstract class AdempiereServer implements Runnable } m_sleepMS = 0; m_nextWork = 0; - - Timestamp lastRun = new Timestamp(System.currentTimeMillis()); - m_nextWork = MSchedule.getNextRunMS(lastRun.getTime(), - p_model.getScheduleType(), p_model.getFrequencyType(), - p_model.getFrequency(), p_model.getCronPattern()); + Timestamp dateNextRun = getDateNextRun(true); + Timestamp now = new Timestamp(System.currentTimeMillis()); + if (dateNextRun != null) + { + m_nextWork = dateNextRun.getTime(); + } + else + { + m_nextWork = MSchedule.getNextRunMS(now.getTime(), + p_model.getScheduleType(), p_model.getFrequencyType(), + p_model.getFrequency(), p_model.getCronPattern()); + } - m_sleepMS = m_nextWork - lastRun.getTime(); + if (m_nextWork > now.getTime()) + m_sleepMS = m_nextWork - now.getTime(); if (log.isLoggable(Level.INFO)) log.info(" Next run: " + new Timestamp(m_nextWork) + " sleep " + m_sleepMS); // p_model.setDateNextRun(new Timestamp(m_nextWork)); diff --git a/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServerMgr.java b/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServerMgr.java index f4c27ff1c2..2065ae7f6e 100644 --- a/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServerMgr.java +++ b/org.adempiere.server/src/main/server/org/compiere/server/AdempiereServerMgr.java @@ -176,6 +176,7 @@ public class AdempiereServerMgr implements ServiceTrackerCustomizer, ValueCh } Env.setContext(Env.getCtx(), m_WindowNo, QUICK_ENTRY_MODE, "Y"); + Env.setContext(Env.getCtx(), m_WindowNo, QUICK_ENTRY_CALLER_WINDOW, parent_WindowNo); initPOs(); } // WQuickEntry @@ -530,12 +532,16 @@ public class WQuickEntry extends Window implements EventListener, ValueCh WEditor editor = quickEditors.get(idx); GridTab gridTab = field.getGridTab(); String columnName = field.getColumnName(); + GridTable mTable = gridTab.getTableModel(); + int row = gridTab.getCurrentRow(); + int col = mTable.findColumn(columnName); // process dependencies and callouts for the changed field if (evt.getSource() instanceof WLocationEditor && evt.getNewValue() == null && editor.getValue() != null) { // ignore first call of WLocationEditor valuechange set to null // it will be called later with correct value // see WLocationEditor firing twice ValueChangeEvent (first with null and then with value) } else { + mTable.setValueAt(evt.getNewValue(), row, col); field.setValue(evt.getNewValue(), field.getGridTab().getTableModel().isInserting()); gridTab.processFieldChange(field); } @@ -553,12 +559,8 @@ public class WQuickEntry extends Window implements EventListener, ValueCh mLookup.refresh(); } } - } // for all dependent fields - if ( dependants.size() > 0 - || field.getCallout().length() > 0 - || Core.findCallout(gridTab.getTableName(), columnName).size() > 0) { - dynamicDisplay(); - } + } + dynamicDisplay(); } } } @@ -570,8 +572,13 @@ public class WQuickEntry extends Window implements EventListener, ValueCh { for (int idxf = 0; idxf < quickFields.size(); idxf++) { GridField field = quickFields.get(idxf); + GridTab gridTab = field.getGridTab(); + String columnName = field.getColumnName(); + GridTable mTable = gridTab.getTableModel(); + int row = gridTab.getCurrentRow(); + int col = mTable.findColumn(columnName); WEditor editor = quickEditors.get(idxf); - editor.setValue(field.getValue()); + editor.setValue(mTable.getValueAt(row, col)); //In case a callout changed the value and it is not reflected in field yet editor.setReadWrite(field.isEditable(true)); editor.setVisible(field.isDisplayed(true)); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java index 32013cfeaa..f32f4f1399 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java @@ -1566,7 +1566,8 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL @Override protected void executeQuery() { - prepareTable(); + if (!isRequeryByRunSuccessProcess) + prepareTable(); super.executeQuery(); if (ClientInfo.maxHeight(ClientInfo.SMALL_HEIGHT-1) || ClientInfo.maxWidth(ClientInfo.SMALL_WIDTH-1)) { diff --git a/org.idempiere.equinox.p2.director-feature/director/configuration/config.ini b/org.idempiere.equinox.p2.director-feature/director/configuration/config.ini index 7af8d700b0..74ef193739 100644 --- a/org.idempiere.equinox.p2.director-feature/director/configuration/config.ini +++ b/org.idempiere.equinox.p2.director-feature/director/configuration/config.ini @@ -1,4 +1,4 @@ -osgi.framework=file\:../plugins/org.eclipse.osgi_3.12.50.v20170928-1321.jar +osgi.framework=file\:../plugins/org.eclipse.osgi_3.12.100.v20180210-1608.jar osgi.install.area=director equinox.use.ds=true osgi.bundles=org.eclipse.core.net@start,\