[Product Services] Merged Services branch
authorAaron Calero <aaron.calero@openbravo.com>
Tue, 24 Nov 2015 13:50:04 +0100
changeset 28528 7d8b06f475a6
parent 28527 34256f6c8e07 (current diff)
parent 28036 9bd74e8a00d3 (diff)
child 28529 a62bdb1a82a3
[Product Services] Merged Services branch
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
src-db/database/model/triggers/C_ORDERLINE_TRG.xml
src-db/database/sourcedata/AD_FIELD.xml
src-db/database/sourcedata/AD_MESSAGE.xml
src-db/database/sourcedata/AD_MODULE.xml
src/org/openbravo/base/secureApp/LoginHandler.java
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -649,6 +649,18 @@
 <!--712C841E501642B881A998CCAC13E420-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--712C841E501642B881A998CCAC13E420--></AD_MESSAGE>
 
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4--><AD_MESSAGE>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4-->  <AD_MESSAGE_ID><![CDATA[76D4A0740BAD4274B8718A0AF2A1C9B4]]></AD_MESSAGE_ID>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4-->  <VALUE><![CDATA[APRM_ErrorOnUnmatchingRecords]]></VALUE>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4-->  <MSGTEXT><![CDATA[%0 record(s) failed. Reference No.: ]]></MSGTEXT>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4-->  <MSGTYPE><![CDATA[W]]></MSGTYPE>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--76D4A0740BAD4274B8718A0AF2A1C9B4--></AD_MESSAGE>
+
 <!--7918E1E75DF84F499AD21A51F53F9A9B--><AD_MESSAGE>
 <!--7918E1E75DF84F499AD21A51F53F9A9B-->  <AD_MESSAGE_ID><![CDATA[7918E1E75DF84F499AD21A51F53F9A9B]]></AD_MESSAGE_ID>
 <!--7918E1E75DF84F499AD21A51F53F9A9B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1381,6 +1393,18 @@
 <!--DF6BD33E986149C0ADE4D0CC45D7394C-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--DF6BD33E986149C0ADE4D0CC45D7394C--></AD_MESSAGE>
 
+<!--E103F874F07D44269B98F457EFCAF367--><AD_MESSAGE>
+<!--E103F874F07D44269B98F457EFCAF367-->  <AD_MESSAGE_ID><![CDATA[E103F874F07D44269B98F457EFCAF367]]></AD_MESSAGE_ID>
+<!--E103F874F07D44269B98F457EFCAF367-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--E103F874F07D44269B98F457EFCAF367-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--E103F874F07D44269B98F457EFCAF367-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--E103F874F07D44269B98F457EFCAF367-->  <VALUE><![CDATA[APRM_UnmatchedRecords]]></VALUE>
+<!--E103F874F07D44269B98F457EFCAF367-->  <MSGTEXT><![CDATA[%0 record(s) were properly unmatched.]]></MSGTEXT>
+<!--E103F874F07D44269B98F457EFCAF367-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--E103F874F07D44269B98F457EFCAF367-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--E103F874F07D44269B98F457EFCAF367-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--E103F874F07D44269B98F457EFCAF367--></AD_MESSAGE>
+
 <!--E217A4F4BDE84DC6A95ACB3F54549FDD--><AD_MESSAGE>
 <!--E217A4F4BDE84DC6A95ACB3F54549FDD-->  <AD_MESSAGE_ID><![CDATA[E217A4F4BDE84DC6A95ACB3F54549FDD]]></AD_MESSAGE_ID>
 <!--E217A4F4BDE84DC6A95ACB3F54549FDD-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></NAME>
-<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION><![CDATA[3.0.27639]]></VERSION>
+<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION><![CDATA[3.0.28030]]></VERSION>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <DESCRIPTION><![CDATA[Managing your finances with an ERP does not have to be difficult. Enjoy a radically improved user experience that combines the power of an enterprise grade financial application with the simplicity and ease of a web 2.0 personal accounting service.]]></DESCRIPTION>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <HELP><![CDATA[Advanced Payables and Receivables Management simplifies and automates the business processes around the management of financial accounts, from the receipt and issue of payment, to the reconciliation of those events with bank statements.
 If you would like to help shape this module you are welcome to take part in the forum discussions or register feature requests or issues in the corresponding (Forum and Bug Tracking) sections in the Advanced Payables and Receivable project in the OB Forge.]]></HELP>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <AD_DEPENDENT_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_DEPENDENT_MODULE_ID>
-<!--89326AE95DAD449D85DFAB2C5B1C6683-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--89326AE95DAD449D85DFAB2C5B1C6683-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Selector]]></DEPENDANT_MODULE_NAME>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--B97FC854C6DD41E692161585645A900F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--B97FC854C6DD41E692161585645A900F-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--B97FC854C6DD41E692161585645A900F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--B97FC854C6DD41E692161585645A900F-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--B97FC854C6DD41E692161585645A900F-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--B97FC854C6DD41E692161585645A900F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--B97FC854C6DD41E692161585645A900F-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--B97FC854C6DD41E692161585645A900F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_REF_LIST.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_REF_LIST.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -343,6 +343,18 @@
 <!--7AC4F4FF644247B7BD320BBF67C4F066-->  <SEQNO><![CDATA[10]]></SEQNO>
 <!--7AC4F4FF644247B7BD320BBF67C4F066--></AD_REF_LIST>
 
+<!--94334E10107D4F3C868191FF2C9AEAD0--><AD_REF_LIST>
+<!--94334E10107D4F3C868191FF2C9AEAD0-->  <AD_REF_LIST_ID><![CDATA[94334E10107D4F3C868191FF2C9AEAD0]]></AD_REF_LIST_ID>
+<!--94334E10107D4F3C868191FF2C9AEAD0-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--94334E10107D4F3C868191FF2C9AEAD0-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--94334E10107D4F3C868191FF2C9AEAD0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--94334E10107D4F3C868191FF2C9AEAD0-->  <VALUE><![CDATA[UN]]></VALUE>
+<!--94334E10107D4F3C868191FF2C9AEAD0-->  <NAME><![CDATA[Unmatch Selected]]></NAME>
+<!--94334E10107D4F3C868191FF2C9AEAD0-->  <AD_REFERENCE_ID><![CDATA[C20E5E22588E40E5B8CC6D80ED3015C5]]></AD_REFERENCE_ID>
+<!--94334E10107D4F3C868191FF2C9AEAD0-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--94334E10107D4F3C868191FF2C9AEAD0-->  <SEQNO><![CDATA[30]]></SEQNO>
+<!--94334E10107D4F3C868191FF2C9AEAD0--></AD_REF_LIST>
+
 <!--9AE9EBD541F34CC7AC8830B9601C52CB--><AD_REF_LIST>
 <!--9AE9EBD541F34CC7AC8830B9601C52CB-->  <AD_REF_LIST_ID><![CDATA[9AE9EBD541F34CC7AC8830B9601C52CB]]></AD_REF_LIST_ID>
 <!--9AE9EBD541F34CC7AC8830B9601C52CB-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -466,7 +478,7 @@
 <!--C69982184F634AC79728338D1F327B76-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--C69982184F634AC79728338D1F327B76-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--C69982184F634AC79728338D1F327B76-->  <VALUE><![CDATA[RE]]></VALUE>
-<!--C69982184F634AC79728338D1F327B76-->  <NAME><![CDATA[Reconcile]]></NAME>
+<!--C69982184F634AC79728338D1F327B76-->  <NAME><![CDATA[Reconcile All]]></NAME>
 <!--C69982184F634AC79728338D1F327B76-->  <AD_REFERENCE_ID><![CDATA[C20E5E22588E40E5B8CC6D80ED3015C5]]></AD_REFERENCE_ID>
 <!--C69982184F634AC79728338D1F327B76-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--C69982184F634AC79728338D1F327B76-->  <SEQNO><![CDATA[20]]></SEQNO>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_TAB.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_TAB.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -916,10 +916,11 @@
 <!--ED54A4E24196476596955286D403461E-->  <DISABLE_PARENT_KEY_PROPERTY><![CDATA[N]]></DISABLE_PARENT_KEY_PROPERTY>
 <!--ED54A4E24196476596955286D403461E-->  <ISREADONLYTREE><![CDATA[N]]></ISREADONLYTREE>
 <!--ED54A4E24196476596955286D403461E-->  <ISSHOWTREENODEICONS><![CDATA[Y]]></ISSHOWTREENODEICONS>
+<!--ED54A4E24196476596955286D403461E-->  <EM_OBUIAPP_SELECTION><![CDATA[OB.APRM.MatchStatement.selectionChanged]]></EM_OBUIAPP_SELECTION>
 <!--ED54A4E24196476596955286D403461E-->  <EM_OBUIAPP_CAN_ADD><![CDATA[N]]></EM_OBUIAPP_CAN_ADD>
 <!--ED54A4E24196476596955286D403461E-->  <EM_OBUIAPP_CAN_DELETE><![CDATA[N]]></EM_OBUIAPP_CAN_DELETE>
-<!--ED54A4E24196476596955286D403461E-->  <EM_OBUIAPP_SHOW_SELECT><![CDATA[N]]></EM_OBUIAPP_SHOW_SELECT>
-<!--ED54A4E24196476596955286D403461E-->  <EM_OBUIAPP_SELECTION_TYPE><![CDATA[S]]></EM_OBUIAPP_SELECTION_TYPE>
+<!--ED54A4E24196476596955286D403461E-->  <EM_OBUIAPP_SHOW_SELECT><![CDATA[Y]]></EM_OBUIAPP_SHOW_SELECT>
+<!--ED54A4E24196476596955286D403461E-->  <EM_OBUIAPP_SELECTION_TYPE><![CDATA[M]]></EM_OBUIAPP_SELECTION_TYPE>
 <!--ED54A4E24196476596955286D403461E--></AD_TAB>
 
 <!--F6C2283A21314407BBBB23FF14B85ED4--><AD_TAB>
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddPaymentActionHandler.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddPaymentActionHandler.java	Tue Nov 24 13:50:04 2015 +0100
@@ -281,7 +281,8 @@
             strDocBaseType, org.getId(), OBDateUtils.formatDate(paymentDate))
         && orgLegalWithAccounting) {
       String messag = OBMessageUtils.messageBD("PeriodNotAvailable");
-      throw new OBException(messag);
+      log.debug(messag);
+      throw new OBException(messag, false);
     }
 
     String strPaymentAmount = "0";
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/PaymentMethodMulticurrencyActionHandler.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/PaymentMethodMulticurrencyActionHandler.java	Tue Nov 24 13:50:04 2015 +0100
@@ -26,6 +26,7 @@
 import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.client.kernel.BaseActionHandler;
+import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.financial.FinancialUtils;
@@ -119,14 +120,19 @@
 
   private FinAccPaymentMethod getFinancialAccountPaymentMethod(String paymentMethodId,
       String financialAccountId) {
-    OBCriteria<FinAccPaymentMethod> obc = OBDal.getInstance().createCriteria(
-        FinAccPaymentMethod.class);
-    obc.setFilterOnReadableOrganization(false);
-    obc.setMaxResults(1);
-    obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT,
-        OBDal.getInstance().get(FIN_FinancialAccount.class, financialAccountId)));
-    obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD,
-        OBDal.getInstance().get(FIN_PaymentMethod.class, paymentMethodId)));
-    return (FinAccPaymentMethod) obc.uniqueResult();
+    OBContext.setAdminMode(true);
+    try {
+      OBCriteria<FinAccPaymentMethod> obc = OBDal.getInstance().createCriteria(
+          FinAccPaymentMethod.class);
+      obc.setFilterOnReadableOrganization(false);
+      obc.setMaxResults(1);
+      obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT,
+          OBDal.getInstance().get(FIN_FinancialAccount.class, financialAccountId)));
+      obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD,
+          OBDal.getInstance().get(FIN_PaymentMethod.class, paymentMethodId)));
+      return (FinAccPaymentMethod) obc.uniqueResult();
+    } finally {
+      OBContext.restorePreviousMode();
+    }
   }
 }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/UnMatchSelectedTransactionsActionHandler.java	Tue Nov 24 13:50:04 2015 +0100
@@ -0,0 +1,151 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2015 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  Cleardrop_____________________________.
+ ************************************************************************
+ */
+
+package org.openbravo.advpaymentmngt.actionHandler;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.codehaus.jettison.json.JSONArray;
+import org.codehaus.jettison.json.JSONObject;
+import org.openbravo.advpaymentmngt.utility.APRM_MatchingUtility;
+import org.openbravo.client.kernel.BaseActionHandler;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.erpCommon.utility.OBDateUtils;
+import org.openbravo.erpCommon.utility.OBMessageUtils;
+import org.openbravo.model.financialmgmt.payment.FIN_BankStatementLine;
+import org.openbravo.model.financialmgmt.payment.FIN_FinaccTransaction;
+import org.openbravo.service.db.DbUtility;
+import org.openbravo.service.json.JsonUtils;
+import org.openbravo.service.json.OBStaleObjectException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class UnMatchSelectedTransactionsActionHandler extends BaseActionHandler {
+  private static final Logger log = LoggerFactory
+      .getLogger(UnMatchSelectedTransactionsActionHandler.class);
+
+  @Override
+  protected JSONObject execute(Map<String, Object> parameters, String data) {
+    JSONObject result = new JSONObject();
+    JSONObject errorMessage = new JSONObject();
+    try {
+      OBContext.setAdminMode(true);
+      final JSONObject jsonData = new JSONObject(data);
+      SimpleDateFormat xmlDateTimeFormat = JsonUtils.createJSTimeFormat();
+
+      List<String> errorLines = new ArrayList<String>();
+
+      final JSONArray bankStatementLineIds = jsonData.getJSONArray("bankStatementLineIds");
+      int bankStatementLineIdsLength = bankStatementLineIds != null ? bankStatementLineIds.length()
+          : 0;
+      int alreadyCleared = 0;
+      for (int i = 0; i < bankStatementLineIdsLength; i++) {
+        JSONObject bankStatementLine = bankStatementLineIds.getJSONObject(i);
+        if (!bankStatementLine.getBoolean("cleared")) {
+          log.info("Skipping " + bankStatementLine.getString("referenceNo")
+              + " line as it's not matched");
+          alreadyCleared++;
+        } else {
+          try {
+            Date date = xmlDateTimeFormat.parse(bankStatementLine.getString("bslUpdated"));
+            final FIN_BankStatementLine bsline = OBDal.getInstance().get(
+                FIN_BankStatementLine.class, bankStatementLine.getString("id"));
+            Date bbddBSLUpdated = bsline.getUpdated();
+            // Remove milis
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(OBDateUtils.convertDateToUTC(bbddBSLUpdated));
+            calendar.setLenient(true);
+            calendar.set(Calendar.MILLISECOND, 0);
+            if (date.getTime() != calendar.getTimeInMillis()) {
+              log.error("The record " + bankStatementLine.getString("referenceNo")
+                  + " is newer in the database. Avoid unmatching it");
+              throw new OBStaleObjectException("@APRM_StaleDate@");
+            }
+            final FIN_FinaccTransaction transaction = bsline.getFinancialAccountTransaction();
+            if (transaction != null) {
+              APRM_MatchingUtility.unmatch(bsline);
+            }
+          } catch (Exception e) {
+            errorLines.add(bankStatementLine.getString("referenceNo"));
+          }
+        }
+      }
+
+      /* Build Message */
+      int totalSuccess = bankStatementLineIdsLength - errorLines.size() - alreadyCleared;
+      String severity = "error";
+      String title = "";
+      String msg = "";
+      if (totalSuccess > 0) {
+        severity = "success";
+        title = OBMessageUtils.messageBD("Success");
+        msg = OBMessageUtils.getI18NMessage("APRM_UnmatchedRecords",
+            new String[] { String.valueOf(totalSuccess) });
+      }
+      if (!errorLines.isEmpty()) {
+        if (totalSuccess > 0) {
+          severity = "warning";
+          title = OBMessageUtils.messageBD("Warning");
+        } else {
+          severity = "error";
+          title = OBMessageUtils.messageBD("Error");
+        }
+
+        if (StringUtils.isNotBlank(msg)) {
+          msg += "<br/>";
+        }
+        msg += OBMessageUtils.getI18NMessage("APRM_ErrorOnUnmatchingRecords",
+            new String[] { String.valueOf(errorLines.size()) });
+        for (String string : errorLines) {
+          msg += string + ", ";
+        }
+        msg = msg.substring(0, msg.length() - 2);
+      }
+      errorMessage.put("severity", severity);
+      errorMessage.put("title", title);
+      errorMessage.put("text", msg);
+      result.put("message", errorMessage);
+
+    } catch (Exception e) {
+      OBDal.getInstance().rollbackAndClose();
+      log.error("Error Unmatching Transaction", e);
+      try {
+        Throwable ex = DbUtility.getUnderlyingSQLException(e);
+        String message = OBMessageUtils.translateError(ex.getMessage()).getMessage();
+        errorMessage = new JSONObject();
+        errorMessage.put("severity", "error");
+        errorMessage.put("title", OBMessageUtils.messageBD("Error"));
+        errorMessage.put("text", message);
+        result.put("message", errorMessage);
+      } catch (Exception e2) {
+        log.error("Message could not be built", e2);
+      }
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+    return result;
+  }
+}
\ No newline at end of file
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java	Tue Nov 24 13:50:04 2015 +0100
@@ -109,11 +109,13 @@
       newTransaction.setStDimension(payment.getStDimension());
       newTransaction.setNdDimension(payment.getNdDimension());
       newTransaction.setCurrency(payment.getAccount().getCurrency());
-      newTransaction.setDescription(payment
-          .getDescription()
-          .replace("\n", ". ")
-          .substring(0,
-              payment.getDescription().length() > 254 ? 254 : payment.getDescription().length()));
+      String desc = "";
+      if(payment.getDescription()!=null && !payment.getDescription().isEmpty()){
+    	  desc = payment.getDescription()
+    	          .replace("\n", ". ")
+    	          .substring(0, payment.getDescription().length() > 254 ? 254 : payment.getDescription().length());
+      }
+      newTransaction.setDescription(desc);
       newTransaction.setClient(payment.getClient());
       newTransaction.setLineNo(getTransactionMaxLineNo(payment.getAccount()) + 10);
 
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/event/FIN_FinaccTransactionEventListener.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/event/FIN_FinaccTransactionEventListener.java	Tue Nov 24 13:50:04 2015 +0100
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2014 Openbravo SLU
+ * All portions are Copyright (C) 2014-2015 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  *************************************************************************
@@ -22,6 +22,7 @@
 import javax.enterprise.event.Observes;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
 import org.openbravo.advpaymentmngt.utility.APRMConstants;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.model.Entity;
@@ -38,6 +39,7 @@
 
   private static Entity[] entities = { ModelProvider.getInstance().getEntity(
       FIN_FinaccTransaction.ENTITY_NAME) };
+  protected Logger logger = Logger.getLogger(this.getClass());
 
   @Override
   protected Entity[] getObservedEntities() {
@@ -79,7 +81,8 @@
         .equals(transactionType, APRMConstants.TRXTYPE_BPWithdrawal))
         && glItem == null
         && payment == null) {
-      throw new OBException("@APRM_INVALID_TRANSACTION@");
+      logger.debug("@APRM_INVALID_TRANSACTION@");
+      throw new OBException("@APRM_INVALID_TRANSACTION@", false);
     }
   }
 }
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java	Tue Nov 24 13:50:04 2015 +0100
@@ -217,7 +217,8 @@
           // Show error message when payment has no lines
           if (paymentDetails.size() == 0) {
             msg = OBMessageUtils.messageBD("APRM_PaymentNoLines");
-            throw new OBException(msg);
+            log4j.debug(msg);
+            throw new OBException(msg, false);
           }
           for (FIN_PaymentDetail paymentDetail : paymentDetails) {
             for (FIN_PaymentScheduleDetail paymentScheduleDetail : paymentDetail
--- a/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-findTransaction.js	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-findTransaction.js	Tue Nov 24 13:50:04 2015 +0100
@@ -36,7 +36,7 @@
     if (trxSelection && trxSelection[0]) {
       var trxDepositAmt = trxSelection[0].depositAmount,
           trxPaymentAmt = trxSelection[0].paymentAmount,
-          blineAmt = view.callerField.view.getContextInfo().match_statement._selection[0].amount,
+          blineAmt = view.callerField.record.amount,
           trxAmt = trxDepositAmt - trxPaymentAmt,
           hideSplitConfirmation = OB.PropertyStore.get('APRM_MATCHSTATEMENT_HIDE_PARTIALMATCH_POPUP', view.windowId);
 
--- a/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-matchStatement.js	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-matchStatement.js	Tue Nov 24 13:50:04 2015 +0100
@@ -26,10 +26,37 @@
 };
 
 OB.APRM.MatchStatement.onLoad = function (view) {
-  var execute, grid = view.theForm.getItem('match_statement').canvas.viewGrid;
+  var execute, grid = view.theForm.getItem('match_statement').canvas.viewGrid,
+      buttons = view.popupButtons.members[0].members,
+      i, button, propertyButtonValue = '_buttonValue';
   view.cancelButton.hide();
   view.parentElement.parentElement.closeButton.hide();
 
+  for (i = 0; i < buttons.length; i++) {
+    button = buttons[i];
+    if (button[propertyButtonValue] === 'UN') {
+      view.unmatchButton = button;
+      button.hide();
+      break;
+    }
+  }
+
+  button.action = function () {
+    var callback = function (response, data, request) {
+        view.onRefreshFunction(view);
+        if (data && data.message && data.message.severity === 'error') {
+          view.messageBar.setMessage(isc.OBMessageBar.TYPE_ERROR, data.message.title, data.message.text);
+        } else if (data && data.message && data.message.severity === 'success') {
+          view.messageBar.setMessage(isc.OBMessageBar.TYPE_SUCCESS, data.message.title, data.message.text);
+        } else if (data && data.message && data.message.severity === 'warning') {
+          view.messageBar.setMessage(isc.OBMessageBar.TYPE_WARNING, data.message.title, data.message.text);
+        }
+        };
+    OB.RemoteCallManager.call('org.openbravo.advpaymentmngt.actionHandler.UnMatchSelectedTransactionsActionHandler', {
+      bankStatementLineIds: grid.getSelectedRecords()
+    }, {}, callback);
+  };
+
   grid.dataSourceOrig = grid.dataSource;
   grid.dataSource = null;
   execute = function (ok) {
@@ -73,6 +100,24 @@
   actionHandlerCall();
 };
 
+OB.APRM.MatchStatement.selectionChanged = function (grid, changedRecord, recordList) {
+  if (changedRecord.obSelected && changedRecord.cleared) {
+    grid.view.unmatchButton.show();
+    return;
+  } else {
+    var i, record, selection = grid.getSelectedRecords() || [],
+        len = selection.length;
+    for (i = 0; i < len; i++) {
+      record = grid.getEditedRecord(grid.getRecordIndex(selection[i]));
+      if (record && record.obSelected && record.cleared) {
+        grid.view.unmatchButton.show();
+        return;
+      }
+    }
+  }
+
+  grid.view.unmatchButton.hide();
+};
 
 isc.ClassFactory.defineClass('APRMMatchStatGridButtonsComponent', isc.HLayout);
 
@@ -128,7 +173,9 @@
       }
     });
     // Disable searchButton button if record is linked to a transaction
+    // and update Unmatch All button
     searchButton.setDisabled(me.record.cleared);
+    OB.APRM.MatchStatement.selectionChanged(me.grid, me.record);
 
     addButton = isc.OBGridToolStripIcon.create({
       buttonType: 'add',
@@ -168,7 +215,9 @@
       }
     });
     // Disable addButton button if record is linked to a transaction
+    // and update Unmatch All button
     addButton.setDisabled(me.record.cleared);
+    OB.APRM.MatchStatement.selectionChanged(me.grid, me.record);
 
     clearButton = isc.OBGridToolStripIcon.create({
       buttonType: 'clearRight',
@@ -197,7 +246,9 @@
     buttonSeparator2 = isc.OBGridToolStripSeparator.create({});
 
     // Disable clear button if record is not linked to a transaction
+    // and update Unmatch All button
     clearButton.setDisabled(!me.record.cleared);
+    OB.APRM.MatchStatement.selectionChanged(me.grid, me.record);
 
     this.addMembers([searchButton, buttonSeparator1, addButton, buttonSeparator2, clearButton]);
     this.Super('initWidget', arguments);
--- a/modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--8A098711BB324335A19833286BDB093D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--8A098711BB324335A19833286BDB093D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8A098711BB324335A19833286BDB093D-->  <NAME><![CDATA[Apache External Connection Pool]]></NAME>
-<!--8A098711BB324335A19833286BDB093D-->  <VERSION><![CDATA[1.0.27639]]></VERSION>
+<!--8A098711BB324335A19833286BDB093D-->  <VERSION><![CDATA[1.0.28030]]></VERSION>
 <!--8A098711BB324335A19833286BDB093D-->  <DESCRIPTION><![CDATA[Apache External Connection Pool]]></DESCRIPTION>
 <!--8A098711BB324335A19833286BDB093D-->  <HELP><![CDATA[This module implements the Apache JDBC Connection Pool (http://wiki.openbravo.com/wiki/Modules:Apache_JDBC_Connection_Pool).]]></HELP>
 <!--8A098711BB324335A19833286BDB093D-->  <TYPE><![CDATA[M]]></TYPE>
--- a/modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  <AD_MODULE_ID><![CDATA[8A098711BB324335A19833286BDB093D]]></AD_MODULE_ID>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  <AD_DEPENDENT_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_DEPENDENT_MODULE_ID>
-<!--1467C397BC5F4999A5606F39CD6FF8A4-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--1467C397BC5F4999A5606F39CD6FF8A4-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  <DEPENDANT_MODULE_NAME><![CDATA[Openbravo 3.0 Framework]]></DEPENDANT_MODULE_NAME>
 <!--1467C397BC5F4999A5606F39CD6FF8A4-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <NAME><![CDATA[JBoss Weld]]></NAME>
-<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION><![CDATA[1.1.27639]]></VERSION>
+<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION><![CDATA[1.1.28030]]></VERSION>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <DESCRIPTION><![CDATA[JBoss Weld]]></DESCRIPTION>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <HELP><![CDATA[Provides the JBoss Weld framework: Java Contexts and Dependency Injection for the Java EE platform (CDI). For more information see http://seamframework.org/Weld]]></HELP>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <URL><![CDATA[http://forge.openbravo.com/projects/weld]]></URL>
--- a/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <AD_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_MODULE_ID>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <NAME><![CDATA[User Interface Application]]></NAME>
-<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION><![CDATA[2.1.27639]]></VERSION>
+<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION><![CDATA[2.1.28030]]></VERSION>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <DESCRIPTION><![CDATA[Provides the main application components for the openbravo user interface]]></DESCRIPTION>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <HELP><![CDATA[Provides the main application components for the openbravo user interface. The main layout incorporates a navigation bar and a main view area.]]></HELP>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <URL><![CDATA[http://forge.openbravo.com/projects/clientapplication]]></URL>
--- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_DEPENDENT_MODULE_ID>
-<!--15D7CE8D95D043189162DBABA54A1F61-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--15D7CE8D95D043189162DBABA54A1F61-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON Datasource]]></DEPENDANT_MODULE_NAME>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--60A170212F36499D83B8AD38D01F46B3-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--60A170212F36499D83B8AD38D01F46B3-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--60A170212F36499D83B8AD38D01F46B3-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--824D60CB352E4099B1D8C903CA139DAE-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--824D60CB352E4099B1D8C903CA139DAE-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--E8FD820AFE3D4FE08C02FC47769026AD-->  <STARTVERSION><![CDATA[8.1.27639]]></STARTVERSION>
+<!--E8FD820AFE3D4FE08C02FC47769026AD-->  <STARTVERSION><![CDATA[8.1.28030]]></STARTVERSION>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java	Tue Nov 24 13:50:04 2015 +0100
@@ -295,7 +295,8 @@
           || limitation == LicenseRestriction.MODULE_EXPIRED
           || limitation == LicenseRestriction.NOT_MATCHED_INSTANCE
           || limitation == LicenseRestriction.HB_NOT_ACTIVE
-          || limitation == LicenseRestriction.ON_DEMAND_OFF_PLATFORM) {
+          || limitation == LicenseRestriction.ON_DEMAND_OFF_PLATFORM
+          || limitation == LicenseRestriction.POS_TERMINALS_EXCEEDED) {
         return Collections.singletonList(OBDal.getInstance().get(Role.class, "0"));
       }
     }
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-pick-and-execute-view-tab.js.ftl	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-pick-and-execute-view-tab.js.ftl	Tue Nov 24 13:50:04 2015 +0100
@@ -12,7 +12,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2011-2014 Openbravo SLU
+ * All portions are Copyright (C) 2011-2015 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -95,12 +95,20 @@
     gridProperties: ${tabComponent.viewGrid},
 
     handleReadOnlyLogic: function(currentValues, context, form){
-     <#list tabComponent.fieldHandler.fields as field>
-      <#if field.readOnlyIf != "">
-      if (form.getField('${field.name}') && form.getField('${field.name}').setDisabled) {
-        form.getField('${field.name}').setDisabled(${field.readOnlyIf});
-      }
-      </#if>
+    <#list tabComponent.fieldHandler.fields as field>
+    <#if field.readOnlyIf != "" && field.showIf == "">
+    if (form.getField('${field.name}') && form.getField('${field.name}').setDisabled) {
+       form.getField('${field.name}').setDisabled(${field.readOnlyIf});
+    }
+    <#elseif field.readOnlyIf == "" && field.showIf != "">
+    if (form.getField('${field.name}') && form.getField('${field.name}').setDisabled) {
+       form.getField('${field.name}').setDisabled((${field.showIf}) === false);
+    }
+    <#elseif field.readOnlyIf != "" && field.showIf != "">
+    if (form.getField('${field.name}') && form.getField('${field.name}').setDisabled) {
+       form.getField('${field.name}').setDisabled((${field.readOnlyIf}) || (${field.showIf}) === false);
+    }
+    </#if>
     </#list>
     },
     
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-form.js.ftl	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-form.js.ftl	Tue Nov 24 13:50:04 2015 +0100
@@ -12,7 +12,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010-2011 Openbravo SLU
+ * All portions are Copyright (C) 2010-2015 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -23,14 +23,14 @@
     <#--
     // this this is the view    
     -->
-    statusBarFields: this.statusBarFields<#if data.fieldHandler.hasFieldsWithReadOnlyIf>,</#if>
+    statusBarFields: this.statusBarFields<#if data.fieldHandler.hasFieldsWithReadOnlyIf || data.fieldHandler.hasFieldsWithShowIf>,</#if>
     </#if>
     
 <#--
     // except for the fields all other form properties should be added to the formProperties
     // the formProperties are re-used for inline grid editing
 -->
-   <#if data.fieldHandler.hasFieldsWithReadOnlyIf>
+   <#if data.fieldHandler.hasFieldsWithReadOnlyIf || data.fieldHandler.hasFieldsWithShowIf>
     obFormProperties: {
       onFieldChanged: function(form, item, value) {
         var f = form || this,
@@ -39,11 +39,23 @@
             disabledFields, i;
             OB.Utilities.fixNull250(currentValues);
         <#list data.fieldHandler.fields as field>
-        <#if field.readOnlyIf != "">
-            f.disableItem('${field.name}', ${field.readOnlyIf});
+        <#if field.readOnlyIf != "" && field.showIf == "">
+        // Applying readonly.
+           f.disableItem('${field.name}', ${field.readOnlyIf});
+        <#elseif field.readOnlyIf == "" && field.showIf != "">
+        // Applying display logic in grid.
+        if (!this.view.isShowingForm) {
+           f.disableItem('${field.name}', (${field.showIf}) === false);
+        }
+        <#elseif field.readOnlyIf != "" && field.showIf != "">
+        // Applying display logic and readonly in grid/form.
+        if (!this.view.isShowingForm) {
+           f.disableItem('${field.name}', (${field.readOnlyIf}) || (${field.showIf}) === false);
+        } else {
+           f.disableItem('${field.name}', ${field.readOnlyIf});
+        }
         </#if>
         </#list>
-
         // disable forced in case the fields are set as read only per role
         disabledFields = form.view.disabledFields;
         if (disabledFields) {
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java	Tue Nov 24 13:50:04 2015 +0100
@@ -26,6 +26,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
@@ -91,7 +92,16 @@
 
   public boolean getHasFieldsWithReadOnlyIf() {
     for (OBViewFieldDefinition viewField : getFields()) {
-      if (viewField.getReadOnlyIf() != null && viewField.getReadOnlyIf().trim().length() > 0) {
+      if (StringUtils.isNotBlank(viewField.getReadOnlyIf())) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  public boolean getHasFieldsWithShowIf() {
+    for (OBViewFieldDefinition viewField : getFields()) {
+      if (StringUtils.isNotBlank(viewField.getShowIf())) {
         return true;
       }
     }
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewUtil.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewUtil.java	Tue Nov 24 13:50:04 2015 +0100
@@ -18,7 +18,6 @@
  */
 package org.openbravo.client.application.window;
 
-import java.util.ArrayList;
 import java.util.List;
 
 import org.codehaus.jettison.json.JSONException;
@@ -188,237 +187,182 @@
    * @return the grid configuration
    */
   private static JSONObject getGridConfigurationSettings(Field field, Tab tab) {
-    Boolean canSort = null;
-    Boolean canFilter = null;
-    Boolean filterOnChange = null;
-    Boolean lazyFiltering = null;
-    Boolean allowFkFilterByIdentifier = null;
-    Boolean showFkDropdownUnfiltered = null;
-    Boolean disableFkDropdown = null;
-    String operator = null;
-    Long thresholdToFilter = null;
-    JSONObject result = new JSONObject();
+    GridConfigSettings settings = new GridConfigSettings();
 
-    if (field != null && field.getId() != null) {
-      if (canSort == null || canFilter == null || operator == null || filterOnChange == null
-          || thresholdToFilter == null || allowFkFilterByIdentifier == null
-          || showFkDropdownUnfiltered == null || disableFkDropdown == null) {
-        List<Object> fieldParams = new ArrayList<Object>();
-        String fieldConfsHql = " as p where p.field.id = ? ";
-        fieldParams.add(field.getId());
-        // Trying to get parameters from "Grid Configuration (Tab/Field)" -> "Field" window
-        List<GCField> fieldConfs = OBDal.getInstance()
-            .createQuery(GCField.class, fieldConfsHql, fieldParams).list();
-        if (!fieldConfs.isEmpty()) {
-          if (canSort == null) {
-            if ("Y".equals(fieldConfs.get(0).getSortable())) {
-              canSort = true;
-            } else if ("N".equals(fieldConfs.get(0).getSortable())) {
-              canSort = false;
-            }
-          }
-          if (canFilter == null) {
-            if ("Y".equals(fieldConfs.get(0).getFilterable())) {
-              canFilter = true;
-            } else if ("N".equals(fieldConfs.get(0).getFilterable())) {
-              canFilter = false;
-            }
-          }
-          if (operator == null) {
-            if (fieldConfs.get(0).getTextFilterBehavior() != null
-                && !"D".equals(fieldConfs.get(0).getTextFilterBehavior())) {
-              operator = fieldConfs.get(0).getTextFilterBehavior();
-            }
-          }
-          if (filterOnChange == null) {
-            if ("Y".equals(fieldConfs.get(0).getFilterOnChange())) {
-              filterOnChange = true;
-            } else if ("N".equals(fieldConfs.get(0).getFilterOnChange())) {
-              filterOnChange = false;
-            }
-          }
-          if (allowFkFilterByIdentifier == null) {
-            if ("Y".equals(fieldConfs.get(0).getAllowFilterByIdentifier())) {
-              allowFkFilterByIdentifier = true;
-            } else if ("N".equals(fieldConfs.get(0).getAllowFilterByIdentifier())) {
-              allowFkFilterByIdentifier = false;
-            }
-          }
-          if (showFkDropdownUnfiltered == null) {
-            if ("Y".equals(fieldConfs.get(0).getIsFkDropdownUnfiltered())) {
-              showFkDropdownUnfiltered = true;
-            } else if ("N".equals(fieldConfs.get(0).getIsFkDropdownUnfiltered())) {
-              showFkDropdownUnfiltered = false;
-            }
-          }
-          if (disableFkDropdown == null) {
-            if ("Y".equals(fieldConfs.get(0).getDisableFkCombo())) {
-              disableFkDropdown = true;
-            } else if ("N".equals(fieldConfs.get(0).getDisableFkCombo())) {
-              disableFkDropdown = false;
-            }
-          }
-          if (thresholdToFilter == null) {
-            thresholdToFilter = fieldConfs.get(0).getThresholdToFilter();
-          }
+    GCTab tabConf = null;
+    for (GCTab t : tab.getOBUIAPPGCTabList()) {
+      tabConf = t;
+      break;
+    }
+
+    if (tabConf != null && field != null && field.getId() != null) {
+      GCField fieldConf = null;
+      for (GCField fc : tabConf.getOBUIAPPGCFieldList()) {
+        // field list is cached in memory, so can be reused for all fields without the need of reach
+        // DB again
+        if (DalUtil.getId(fc.getField()).equals(DalUtil.getId(field))) {
+          fieldConf = fc;
+          break;
         }
       }
+
+      // Trying to get parameters from "Grid Configuration (Tab/Field)" -> "Field" window
+      if (fieldConf != null) {
+        settings.processConfig(fieldConf);
+      }
     }
 
-    if (canSort == null || canFilter == null || operator == null || filterOnChange == null
-        || thresholdToFilter == null || allowFkFilterByIdentifier == null
-        || showFkDropdownUnfiltered == null) {
-      List<Object> tabParams = new ArrayList<Object>();
-      String tabConfsHql = " as p where p.tab.id = ? ";
-      tabParams.add(tab.getId());
+    if (tabConf != null && settings.shouldContinueProcessing()) {
       // Trying to get parameters from "Grid Configuration (Tab/Field)" -> "Tab" window
-      List<GCTab> tabConfs = OBDal.getInstance().createQuery(GCTab.class, tabConfsHql, tabParams)
-          .list();
-      if (!tabConfs.isEmpty()) {
-        if (canSort == null) {
-          if ("Y".equals(tabConfs.get(0).getSortable())) {
-            canSort = true;
-          } else if ("N".equals(tabConfs.get(0).getSortable())) {
-            canSort = false;
+      settings.processConfig(tabConf);
+    }
+
+    if (settings.shouldContinueProcessing()) {
+      // Trying to get parameters from "Grid Configuration (System)" window
+      List<GCSystem> sysConfs = OBDal.getInstance().createQuery(GCSystem.class, "").list();
+      if (!sysConfs.isEmpty()) {
+        settings.processConfig(sysConfs.get(0));
+      }
+    }
+
+    return settings.processJSONResult();
+  }
+
+  private static class GridConfigSettings {
+    private Boolean canSort = null;
+    private Boolean canFilter = null;
+    private Boolean filterOnChange = null;
+    private Boolean lazyFiltering = null;
+    private Boolean allowFkFilterByIdentifier = null;
+    private Boolean showFkDropdownUnfiltered = null;
+    private Boolean disableFkDropdown = null;
+    private String operator = null;
+    private Long thresholdToFilter = null;
+
+    private boolean shouldContinueProcessing() {
+      return canSort == null || canFilter == null || operator == null || filterOnChange == null
+          || thresholdToFilter == null || allowFkFilterByIdentifier == null
+          || showFkDropdownUnfiltered == null || disableFkDropdown == null || lazyFiltering == null;
+    }
+
+    private Boolean convertBoolean(BaseOBObject gcItem, String property) {
+      Boolean isPropertyEnabled = true;
+      Class<? extends BaseOBObject> itemClass = gcItem.getClass();
+      try {
+        if (gcItem instanceof GCSystem) {
+          if (gcItem.get(itemClass.getField(property).get(gcItem).toString()).equals(true)) {
+            isPropertyEnabled = true;
+          } else if (gcItem.get(itemClass.getField(property).get(gcItem).toString()).equals(false)) {
+            isPropertyEnabled = false;
+          }
+        } else {
+          if ("Y".equals(gcItem.get(itemClass.getField(property).get(gcItem).toString()))) {
+            isPropertyEnabled = true;
+          } else if ("N".equals(gcItem.get(itemClass.getField(property).get(gcItem).toString()))) {
+            isPropertyEnabled = false;
+          } else if ("D".equals(gcItem.get(itemClass.getField(property).get(gcItem).toString()))) {
+            isPropertyEnabled = null;
           }
         }
+      } catch (Exception e) {
+        log.error("Error while converting a value to boolean", e);
+      }
+      return isPropertyEnabled;
+    }
+
+    private void processConfig(BaseOBObject gcItem) {
+      Class<? extends BaseOBObject> itemClass = gcItem.getClass();
+      try {
+        if (canSort == null) {
+          canSort = convertBoolean(gcItem, "PROPERTY_SORTABLE");
+        }
         if (canFilter == null) {
-          if ("Y".equals(tabConfs.get(0).getFilterable())) {
-            canFilter = true;
-          } else if ("N".equals(tabConfs.get(0).getFilterable())) {
-            canFilter = false;
-          }
+          canFilter = convertBoolean(gcItem, "PROPERTY_FILTERABLE");
         }
         if (operator == null) {
-          if (tabConfs.get(0).getTextFilterBehavior() != null
-              && !"D".equals(tabConfs.get(0).getTextFilterBehavior())) {
-            operator = tabConfs.get(0).getTextFilterBehavior();
+          if (gcItem.get(itemClass.getField("PROPERTY_TEXTFILTERBEHAVIOR").get(gcItem).toString()) != null
+              && !"D".equals(gcItem.get(itemClass.getField("PROPERTY_TEXTFILTERBEHAVIOR")
+                  .get(gcItem).toString()))) {
+            operator = (String) gcItem.get(itemClass.getField("PROPERTY_TEXTFILTERBEHAVIOR")
+                .get(gcItem).toString());
           }
         }
         if (filterOnChange == null) {
-          if ("Y".equals(tabConfs.get(0).getFilterOnChange())) {
-            filterOnChange = true;
-          } else if ("N".equals(tabConfs.get(0).getFilterOnChange())) {
-            filterOnChange = false;
-          }
-        }
-        if (lazyFiltering == null) {
-          if ("Y".equals(tabConfs.get(0).getIsLazyFiltering())) {
-            lazyFiltering = true;
-          } else if ("N".equals(tabConfs.get(0).getIsLazyFiltering())) {
-            lazyFiltering = false;
-          }
+          filterOnChange = convertBoolean(gcItem, "PROPERTY_FILTERONCHANGE");
         }
         if (allowFkFilterByIdentifier == null) {
-          if ("Y".equals(tabConfs.get(0).getAllowFilterByIdentifier())) {
-            allowFkFilterByIdentifier = true;
-          } else if ("N".equals(tabConfs.get(0).getAllowFilterByIdentifier())) {
-            allowFkFilterByIdentifier = false;
-          }
+          allowFkFilterByIdentifier = convertBoolean(gcItem, "PROPERTY_ALLOWFILTERBYIDENTIFIER");
         }
         if (showFkDropdownUnfiltered == null) {
-          if ("Y".equals(tabConfs.get(0).getIsFkDropDownUnfiltered())) {
-            showFkDropdownUnfiltered = true;
-          } else if ("N".equals(tabConfs.get(0).getIsFkDropDownUnfiltered())) {
-            showFkDropdownUnfiltered = false;
-          }
+          showFkDropdownUnfiltered = convertBoolean(gcItem, "PROPERTY_ISFKDROPDOWNUNFILTERED");
         }
         if (disableFkDropdown == null) {
-          if ("Y".equals(tabConfs.get(0).getDisableFkCombo())) {
-            disableFkDropdown = true;
-          } else if ("N".equals(tabConfs.get(0).getDisableFkCombo())) {
-            disableFkDropdown = false;
-          }
+          disableFkDropdown = convertBoolean(gcItem, "PROPERTY_DISABLEFKCOMBO");
         }
         if (thresholdToFilter == null) {
-          thresholdToFilter = tabConfs.get(0).getThresholdToFilter();
+          thresholdToFilter = (Long) gcItem.get(itemClass.getField("PROPERTY_THRESHOLDTOFILTER")
+              .get(gcItem).toString());
         }
+        if (lazyFiltering == null && !(gcItem instanceof GCField)) {
+          lazyFiltering = convertBoolean(gcItem, "PROPERTY_ISLAZYFILTERING");
+        }
+      } catch (Exception e) {
+        log.error("Error while getting the properties of " + gcItem, e);
       }
     }
 
-    if (canSort == null || canFilter == null || operator == null || filterOnChange == null
-        || thresholdToFilter == null || showFkDropdownUnfiltered == null) {
-      // Trying to get parameters from "Grid Configuration (System)" window
-      List<GCSystem> sysConfs = OBDal.getInstance().createQuery(GCSystem.class, "").list();
-      if (!sysConfs.isEmpty()) {
-        if (canSort == null) {
-          canSort = sysConfs.get(0).isSortable();
-        }
-        if (canFilter == null) {
-          canFilter = sysConfs.get(0).isFilterable();
-        }
-        if (operator == null) {
-          operator = sysConfs.get(0).getTextFilterBehavior();
-        }
-        if (filterOnChange == null) {
-          filterOnChange = sysConfs.get(0).isFilterOnChange();
-        }
-        if (lazyFiltering == null) {
-          lazyFiltering = sysConfs.get(0).isLazyFiltering();
-        }
-        if (thresholdToFilter == null) {
-          thresholdToFilter = sysConfs.get(0).getThresholdToFilter();
-        }
-        if (allowFkFilterByIdentifier == null) {
-          allowFkFilterByIdentifier = sysConfs.get(0).isAllowFilterByIdentifier();
-        }
-        if (showFkDropdownUnfiltered == null) {
-          showFkDropdownUnfiltered = sysConfs.get(0).isFkDropDownUnfiltered();
-        }
-        if (disableFkDropdown == null) {
-          disableFkDropdown = sysConfs.get(0).isDisableFkCombo();
+    public JSONObject processJSONResult() {
+      if (operator != null) {
+        if ("IC".equals(operator)) {
+          operator = "iContains";
+        } else if ("IS".equals(operator)) {
+          operator = "iStartsWith";
+        } else if ("IE".equals(operator)) {
+          operator = "iEquals";
+        } else if ("C".equals(operator)) {
+          operator = "contains";
+        } else if ("S".equals(operator)) {
+          operator = "startsWith";
+        } else if ("E".equals(operator)) {
+          operator = "equals";
         }
       }
+
+      JSONObject result = new JSONObject();
+      try {
+        if (canSort != null) {
+          result.put("canSort", canSort);
+        }
+        if (canFilter != null) {
+          result.put("canFilter", canFilter);
+        }
+        if (operator != null) {
+          result.put("operator", operator);
+        }
+        // If the tab uses lazy filtering, the fields should not filter on change
+        if (Boolean.TRUE.equals(lazyFiltering)) {
+          filterOnChange = false;
+        }
+        if (filterOnChange != null) {
+          result.put("filterOnChange", filterOnChange);
+        }
+        if (thresholdToFilter != null) {
+          result.put("thresholdToFilter", thresholdToFilter);
+        }
+        if (allowFkFilterByIdentifier != null) {
+          result.put("allowFkFilterByIdentifier", allowFkFilterByIdentifier);
+        }
+        if (showFkDropdownUnfiltered != null) {
+          result.put("showFkDropdownUnfiltered", showFkDropdownUnfiltered);
+        }
+        if (disableFkDropdown != null) {
+          result.put("disableFkDropdown", disableFkDropdown);
+        }
+      } catch (JSONException e) {
+        log.error("Couldn't get field property value", e);
+      }
+
+      return result;
     }
-
-    if (operator != null) {
-      if ("IC".equals(operator)) {
-        operator = "iContains";
-      } else if ("IS".equals(operator)) {
-        operator = "iStartsWith";
-      } else if ("IE".equals(operator)) {
-        operator = "iEquals";
-      } else if ("C".equals(operator)) {
-        operator = "contains";
-      } else if ("S".equals(operator)) {
-        operator = "startsWith";
-      } else if ("E".equals(operator)) {
-        operator = "equals";
-      }
-    }
-
-    try {
-      if (canSort != null) {
-        result.put("canSort", canSort);
-      }
-      if (canFilter != null) {
-        result.put("canFilter", canFilter);
-      }
-      if (operator != null) {
-        result.put("operator", operator);
-      }
-      // If the tab uses lazy filtering, the fields should not filter on change
-      if (Boolean.TRUE.equals(lazyFiltering)) {
-        filterOnChange = false;
-      }
-      if (filterOnChange != null) {
-        result.put("filterOnChange", filterOnChange);
-      }
-      if (thresholdToFilter != null) {
-        result.put("thresholdToFilter", thresholdToFilter);
-      }
-      if (allowFkFilterByIdentifier != null) {
-        result.put("allowFkFilterByIdentifier", allowFkFilterByIdentifier);
-      }
-      if (showFkDropdownUnfiltered != null) {
-        result.put("showFkDropdownUnfiltered", showFkDropdownUnfiltered);
-      }
-      if (disableFkDropdown != null) {
-        result.put("disableFkDropdown", disableFkDropdown);
-      }
-    } catch (JSONException e) {
-      log.error("Couldn't get field property value");
-    }
-    return result;
   }
 }
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/classic/ob-classic-compatibility.js	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/classic/ob-classic-compatibility.js	Tue Nov 24 13:50:04 2015 +0100
@@ -446,8 +446,8 @@
         if (!cPopup.areParamsSet) {
           if (!postParams) {
             cPopup.getIframeHtmlObj().contentWindow.frames[0].location.href = cPopup.popupURL;
-            if (OB.Utilities.isIE9Strict || OB.Utilities.isIE11 || OB.Utilities.isEdge) {
-              // In IE9 Strict, IE11 and Edge, when the location.href or .src is defined, the previous defined opener is lost, and it should be defined again
+            if (OB.Utilities.isIE9Strict || OB.Utilities.isEdge) {
+              // In IE9 Strict and Edge, when the location.href or .src is defined, the previous defined opener is lost, and it should be defined again
               cPopup.getIframeHtmlObj().contentWindow.frames[0].opener = cPopup.theOpener;
               var setOpenerInterval;
               setOpenerInterval = setInterval(
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js	Tue Nov 24 13:50:04 2015 +0100
@@ -1592,6 +1592,7 @@
     }
 
     this.view.standardWindow.setDirtyEditForm(null);
+    this.view.clearTargetRecordInWindow();
   },
 
   autoSave: function (parameters) {
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js	Tue Nov 24 13:50:04 2015 +0100
@@ -1113,6 +1113,12 @@
     }
   },
 
+  clearTargetRecordInWindow: function () {
+    if (this.isActiveView()) {
+      this.standardWindow.clearTargetInformation();
+    }
+  },
+
   setRecentDocument: function (record) {
     var params = this.standardWindow.getBookMarkParams();
     params.targetTabId = this.tabId;
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js	Tue Nov 24 13:50:04 2015 +0100
@@ -1237,6 +1237,12 @@
     OB.Layout.HistoryManager.updateHistory();
   },
 
+  clearTargetInformation: function () {
+    this.targetTabId = null;
+    this.targetRecordId = null;
+    OB.Layout.HistoryManager.updateHistory();
+  },
+
   getView: function (tabId) {
     // find is a SC extension on arrays
     return this.views.find('tabId', tabId);
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities.js	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities.js	Tue Nov 24 13:50:04 2015 +0100
@@ -23,15 +23,10 @@
 OB.Utilities = {};
 
 OB.Utilities.isIE9Strict = false;
-if (navigator.userAgent.toUpperCase().indexOf("MSIE") !== -1 && (document.documentMode && document.documentMode >= 9)) {
+if ((navigator.userAgent.toUpperCase().indexOf("MSIE") !== -1 || navigator.userAgent.toUpperCase().indexOf("TRIDENT") !== -1) && (document.documentMode && document.documentMode >= 9)) {
   OB.Utilities.isIE9Strict = true;
 }
 
-OB.Utilities.isIE11 = false;
-if (navigator.userAgent.toUpperCase().indexOf("TRIDENT") !== -1 && navigator.userAgent.toUpperCase().indexOf("RV:11") !== -1) {
-  OB.Utilities.isIE11 = true;
-}
-
 OB.Utilities.isEdge = false;
 if (navigator.userAgent.toUpperCase().indexOf("EDGE") !== -1) {
   OB.Utilities.isEdge = true;
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-view-manager.js	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-view-manager.js	Tue Nov 24 13:50:04 2015 +0100
@@ -351,8 +351,8 @@
 
           if (direct) {
             // set directly opened tab and all its ancestors as directNavigation
-            if (params && params.id) {
-              var tabId = params.id;
+            if (params && (params.id || params.targetTabId)) {
+              var tabId = params.id || params.targetTabId;
 
               if (viewInstance.view && viewInstance.view.tabId === tabId) {
                 viewInstance.view.directNavigation = true;
@@ -455,6 +455,7 @@
               message: 'The view ' + viewName + ' not defined'
             };
           }
+          direct = direct || (params.targetRecordId !== undefined && params.targetRecordId !== null);
           showTab(viewName, params, null, direct);
         }
         if (isc[viewName]) {
--- a/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <NAME><![CDATA[HTML Widget]]></NAME>
-<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION><![CDATA[1.0.27639]]></VERSION>
+<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION><![CDATA[1.0.28030]]></VERSION>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <DESCRIPTION><![CDATA[Provides the HTML Widget superclass that allows to create widget classes that embed the html code.]]></DESCRIPTION>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <HELP><![CDATA[With this module you can define your own widget classes just setting up your own html code or the html code provided by third parties.]]></HELP>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <URL><![CDATA[http://forge.openbravo.com/projects/htmlwidget]]></URL>
--- a/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <AD_MODULE_ID><![CDATA[D393BE6F22BB44B7B728259B34FC795A]]></AD_MODULE_ID>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--DCE798FBC5B648F7A3C81A6941720A57-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--DCE798FBC5B648F7A3C81A6941720A57-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <DEPENDANT_MODULE_NAME><![CDATA[My Openbravo Tab]]></DEPENDANT_MODULE_NAME>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--4B828F4D03264080AA1D2057B13F613C-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <NAME><![CDATA[User Interface Client Kernel]]></NAME>
-<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION><![CDATA[2.1.27639]]></VERSION>
+<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION><![CDATA[2.1.28030]]></VERSION>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <DESCRIPTION><![CDATA[Provides framework functionality for the Openbravo User Interface]]></DESCRIPTION>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <HELP><![CDATA[The user interface client kernel is a generation framework for generating client (browser) components used in Openbravo. Its components are mainly used by other modules to provide customizable and extendable user interfaces.]]></HELP>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <URL><![CDATA[http://forge.openbravo.com/projects/openbravoclientkernel]]></URL>
--- a/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--26B041893E844A53AFA58BC326C4F0D7-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--26B041893E844A53AFA58BC326C4F0D7-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <STARTVERSION><![CDATA[1.1.27639]]></STARTVERSION>
+<!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <STARTVERSION><![CDATA[1.1.28030]]></STARTVERSION>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <AD_DEPENDENT_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_DEPENDENT_MODULE_ID>
-<!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <STARTVERSION><![CDATA[2.0.27639]]></STARTVERSION>
+<!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <STARTVERSION><![CDATA[2.0.28030]]></STARTVERSION>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON REST Webservice]]></DEPENDANT_MODULE_NAME>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <NAME><![CDATA[Workspace & Widgets]]></NAME>
-<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION><![CDATA[2.1.27639]]></VERSION>
+<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION><![CDATA[2.1.28030]]></VERSION>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <DESCRIPTION><![CDATA[Workspace & Widgets]]></DESCRIPTION>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <HELP><![CDATA[Provides the infrastructure of workspace tab (formerly My Openbravo)]]></HELP>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <URL><![CDATA[http://forge.openbravo.com/projects/myopenbravo]]></URL>
--- a/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--15F51F03882F444CAB6593B4566DC929-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--15F51F03882F444CAB6593B4566DC929-->  <AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--15F51F03882F444CAB6593B4566DC929-->  <AD_DEPENDENT_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_DEPENDENT_MODULE_ID>
-<!--15F51F03882F444CAB6593B4566DC929-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--15F51F03882F444CAB6593B4566DC929-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--15F51F03882F444CAB6593B4566DC929-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--15F51F03882F444CAB6593B4566DC929-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Application]]></DEPENDANT_MODULE_NAME>
 <!--15F51F03882F444CAB6593B4566DC929-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--E71B28FC949D481D9F59C17D01E46EF9-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--E71B28FC949D481D9F59C17D01E46EF9-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <NAME><![CDATA[Query/List Widget]]></NAME>
-<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION><![CDATA[1.0.27639]]></VERSION>
+<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION><![CDATA[1.0.28030]]></VERSION>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <DESCRIPTION><![CDATA[Provides the Query/List superclass widget that allows to create widget classes that prints a grid of data based on a query.]]></DESCRIPTION>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <HELP><![CDATA[With this module you can define your own widget classes that just with simple Application Dictionary shows a grid of data based on a HQL Query.]]></HELP>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <URL><![CDATA[http://forge.openbravo.com/projects/querylistwidget]]></URL>
--- a/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--26558497C31140BFAB067BA4BC47D799-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--26558497C31140BFAB067BA4BC47D799-->  <AD_MODULE_ID><![CDATA[0A060B2AF1974E8EAA8DB61388E9AECC]]></AD_MODULE_ID>
 <!--26558497C31140BFAB067BA4BC47D799-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--26558497C31140BFAB067BA4BC47D799-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--26558497C31140BFAB067BA4BC47D799-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--26558497C31140BFAB067BA4BC47D799-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--26558497C31140BFAB067BA4BC47D799-->  <DEPENDANT_MODULE_NAME><![CDATA[My Openbravo Tab]]></DEPENDANT_MODULE_NAME>
 <!--26558497C31140BFAB067BA4BC47D799-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--FF8080812D842086012D844F3CC0003E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8080812D842086012D844F3CC0003E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080812D842086012D844F3CC0003E-->  <NAME><![CDATA[Widgets Collection]]></NAME>
-<!--FF8080812D842086012D844F3CC0003E-->  <VERSION><![CDATA[0.0.27639]]></VERSION>
+<!--FF8080812D842086012D844F3CC0003E-->  <VERSION><![CDATA[0.0.28030]]></VERSION>
 <!--FF8080812D842086012D844F3CC0003E-->  <DESCRIPTION><![CDATA[Collection of Workspace Widgets]]></DESCRIPTION>
 <!--FF8080812D842086012D844F3CC0003E-->  <HELP><![CDATA[Collection of Workspace Widgets]]></HELP>
 <!--FF8080812D842086012D844F3CC0003E-->  <URL><![CDATA[http://forge.openbravo.com/projects/widgetscollection]]></URL>
--- a/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--FF8080812D842086012D845002070046-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080812D842086012D845002070046-->  <AD_MODULE_ID><![CDATA[FF8080812D842086012D844F3CC0003E]]></AD_MODULE_ID>
 <!--FF8080812D842086012D845002070046-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080812D842086012D845002070046-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--FF8080812D842086012D845002070046-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--FF8080812D842086012D845002070046-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--FF8080812D842086012D845002070046-->  <DEPENDANT_MODULE_NAME><![CDATA[Workspace & Widgets]]></DEPENDANT_MODULE_NAME>
 <!--FF8080812D842086012D845002070046-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <NAME><![CDATA[Payment Report]]></NAME>
-<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION><![CDATA[3.0.27639]]></VERSION>
+<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION><![CDATA[3.0.28030]]></VERSION>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <DESCRIPTION><![CDATA[Payment Report]]></DESCRIPTION>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <URL><![CDATA[http://forge.openbravo.com/projects/paymentreport]]></URL>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <TYPE><![CDATA[M]]></TYPE>
--- a/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <AD_MODULE_ID><![CDATA[2A5EE903D7974AC298C0504FBC4501A7]]></AD_MODULE_ID>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_DEPENDENT_MODULE_ID>
-<!--A3B449C4D5FE4D688CC58236FE33B802-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--A3B449C4D5FE4D688CC58236FE33B802-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <DEPENDANT_MODULE_NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></DEPENDANT_MODULE_NAME>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--3A3A943684D64DEF9EC39F588A656848-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <NAME><![CDATA[Orders Awaiting Delivery]]></NAME>
-<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION><![CDATA[1.1.27639]]></VERSION>
+<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION><![CDATA[1.1.28030]]></VERSION>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <DESCRIPTION><![CDATA[Report displaying sales orders not shipped.]]></DESCRIPTION>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <URL><![CDATA[http://forge.openbravo.com/projects/ordersawaitingdlivery]]></URL>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <TYPE><![CDATA[M]]></TYPE>
--- a/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <AD_MODULE_ID><![CDATA[3A3A943684D64DEF9EC39F588A656848]]></AD_MODULE_ID>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <NAME><![CDATA[JSON Datasource]]></NAME>
-<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION><![CDATA[2.1.27639]]></VERSION>
+<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION><![CDATA[2.1.28030]]></VERSION>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <DESCRIPTION><![CDATA[Provides data source CRUD functionality using JSON as the data format]]></DESCRIPTION>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <HELP><![CDATA[This module implements the datasource concept. Datasources play a central role in Smartclient applications. The datasource module automatically creates a datasource for each Openbravo entity. In addition custom data source implementations can be defined.]]></HELP>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <URL><![CDATA[http://forge.openbravo.com/projects/datasourceservice]]></URL>
--- a/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <STARTVERSION><![CDATA[1.1.27639]]></STARTVERSION>
+<!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <STARTVERSION><![CDATA[1.1.28030]]></STARTVERSION>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <AD_DEPENDENT_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_DEPENDENT_MODULE_ID>
-<!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <STARTVERSION><![CDATA[2.0.27639]]></STARTVERSION>
+<!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <STARTVERSION><![CDATA[2.0.28030]]></STARTVERSION>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON REST Webservice]]></DEPENDANT_MODULE_NAME>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--4FCE95802A854F7E8623AFF7C33D13EE-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--4FCE95802A854F7E8623AFF7C33D13EE-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--54AF8B39C55E4E7496902893ECD82786-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--54AF8B39C55E4E7496902893ECD82786-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--54AF8B39C55E4E7496902893ECD82786-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--D03C56D8A4E14F45A5466350E05C631F-->  <STARTVERSION><![CDATA[8.1.27639]]></STARTVERSION>
+<!--D03C56D8A4E14F45A5466350E05C631F-->  <STARTVERSION><![CDATA[8.1.28030]]></STARTVERSION>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--FF8080813129ADA401312CA1222A0005-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8080813129ADA401312CA1222A0005-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813129ADA401312CA1222A0005-->  <NAME><![CDATA[Integration with Google APIs]]></NAME>
-<!--FF8080813129ADA401312CA1222A0005-->  <VERSION><![CDATA[0.1.27639]]></VERSION>
+<!--FF8080813129ADA401312CA1222A0005-->  <VERSION><![CDATA[0.1.28030]]></VERSION>
 <!--FF8080813129ADA401312CA1222A0005-->  <DESCRIPTION><![CDATA[Integration with Google APIs]]></DESCRIPTION>
 <!--FF8080813129ADA401312CA1222A0005-->  <TYPE><![CDATA[M]]></TYPE>
 <!--FF8080813129ADA401312CA1222A0005-->  <LICENSE><![CDATA[Licensed under the Openbravo Public License Version 1.1.
--- a/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--FF8080813141B198013141BA0F7D0012-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813141B198013141BA0F7D0012-->  <AD_MODULE_ID><![CDATA[FF8080813129ADA401312CA1222A0005]]></AD_MODULE_ID>
 <!--FF8080813141B198013141BA0F7D0012-->  <AD_DEPENDENT_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813141B198013141BA0F7D0012-->  <STARTVERSION><![CDATA[0.1.27639]]></STARTVERSION>
+<!--FF8080813141B198013141BA0F7D0012-->  <STARTVERSION><![CDATA[0.1.28030]]></STARTVERSION>
 <!--FF8080813141B198013141BA0F7D0012-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--FF8080813141B198013141BA0F7D0012-->  <DEPENDANT_MODULE_NAME><![CDATA[OpenID Service Integration]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813141B198013141BA0F7D0012-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--FF8080813151AEE1013151C4ACE6001B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <AD_MODULE_ID><![CDATA[FF8080813129ADA401312CA1222A0005]]></AD_MODULE_ID>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <AD_DEPENDENT_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813151AEE1013151C4ACE6001B-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--FF8080813151AEE1013151C4ACE6001B-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <DEPENDANT_MODULE_NAME><![CDATA[Openbravo 3.0 Framework]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813151AEE1013151C4ACE6001B-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--FF8080813141B198013141B86DD70003-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8080813141B198013141B86DD70003-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813141B198013141B86DD70003-->  <NAME><![CDATA[OpenID Service Integration]]></NAME>
-<!--FF8080813141B198013141B86DD70003-->  <VERSION><![CDATA[0.1.27639]]></VERSION>
+<!--FF8080813141B198013141B86DD70003-->  <VERSION><![CDATA[0.1.28030]]></VERSION>
 <!--FF8080813141B198013141B86DD70003-->  <DESCRIPTION><![CDATA[OpenID Service Integration]]></DESCRIPTION>
 <!--FF8080813141B198013141B86DD70003-->  <TYPE><![CDATA[M]]></TYPE>
 <!--FF8080813141B198013141B86DD70003-->  <LICENSE><![CDATA[Licensed under the Openbravo Public License Version 1.1.
--- a/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--FF8080813141B198013141B8B21B0006-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813141B198013141B8B21B0006-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
 <!--FF8080813141B198013141B8B21B0006-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813141B198013141B8B21B0006-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--FF8080813141B198013141B8B21B0006-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--FF8080813141B198013141B8B21B0006-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--FF8080813141B198013141B8B21B0006-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813141B198013141B8B21B0006-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <NAME><![CDATA[JSON REST Webservice]]></NAME>
-<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION><![CDATA[2.0.27639]]></VERSION>
+<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION><![CDATA[2.0.28030]]></VERSION>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <DESCRIPTION><![CDATA[Provides a JSON REST webservice for CRUD service requests]]></DESCRIPTION>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <HELP><![CDATA[Provides a JSON REST webservice for CRUD service requests. Both the servlet implementation (receiving HTTP REST requests in JSON) as the backend processing are provided.]]></HELP>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <URL><![CDATA[http://forge.openbravo.com/projects/openbravojsonrest]]></URL>
--- a/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--9E3E7B42DB16405FB794496D309D7044-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <AD_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_MODULE_ID>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--9E3E7B42DB16405FB794496D309D7044-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--9E3E7B42DB16405FB794496D309D7044-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <NAME><![CDATA[User Interface Selector]]></NAME>
-<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION><![CDATA[2.1.27639]]></VERSION>
+<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION><![CDATA[2.1.28030]]></VERSION>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <DESCRIPTION><![CDATA[Provides a selector with a suggestion box and popup grid window]]></DESCRIPTION>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <HELP><![CDATA[The Openbravo selector provides new selector functionality which is used inside of existing Openbravo forms. The selector is mainly used for supporting foreign key references in the user interface. The selector combines both suggestion box behavior with a popup grid.]]></HELP>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <URL><![CDATA[http://forge.openbravo.com/projects/selector]]></URL>
--- a/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--38825CAED43941D38CA0C78DB04FCFA0-->  <STARTVERSION><![CDATA[8.1.27639]]></STARTVERSION>
+<!--38825CAED43941D38CA0C78DB04FCFA0-->  <STARTVERSION><![CDATA[8.1.28030]]></STARTVERSION>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <AD_DEPENDENT_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_DEPENDENT_MODULE_ID>
-<!--6DDE7B1A70174242AF82B5022FB89279-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--6DDE7B1A70174242AF82B5022FB89279-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Application]]></DEPENDANT_MODULE_NAME>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--94F9CD2CB5EF4467A67475C786C984A7-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--94F9CD2CB5EF4467A67475C786C984A7-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <STARTVERSION><![CDATA[1.1.27639]]></STARTVERSION>
+<!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <STARTVERSION><![CDATA[1.1.28030]]></STARTVERSION>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--C8DAC574B88649D08C9468521B343F12-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--C8DAC574B88649D08C9468521B343F12-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--C8DAC574B88649D08C9468521B343F12-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--C8DAC574B88649D08C9468521B343F12-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--C8DAC574B88649D08C9468521B343F12-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--C8DAC574B88649D08C9468521B343F12-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--C8DAC574B88649D08C9468521B343F12-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--C8DAC574B88649D08C9468521B343F12-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -77,7 +77,7 @@
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_DEPENDENT_MODULE_ID>
-<!--F14EB17946BE4724A46F80CB1A47EC70-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--F14EB17946BE4724A46F80CB1A47EC70-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON Datasource]]></DEPENDANT_MODULE_NAME>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <NAME><![CDATA[2.50 to 3.00 Compatibility Skin]]></NAME>
-<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION><![CDATA[2.0.27639]]></VERSION>
+<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION><![CDATA[2.0.28030]]></VERSION>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <DESCRIPTION><![CDATA[Skin module to proper visualization of classic windows inside the MDI interface]]></DESCRIPTION>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <HELP><![CDATA[With this skin module the classic windows styles will display in a way more coherent with the new 3.00 styles]]></HELP>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <URL><![CDATA[www.openbravo.com]]></URL>
--- a/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <AD_MODULE_ID><![CDATA[96998CBC42744B3DBEE28AC8095C9335]]></AD_MODULE_ID>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--39BF75AD9AB3453698BF5DE29E727AA9-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--39BF75AD9AB3453698BF5DE29E727AA9-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <NAME><![CDATA[Smartclient]]></NAME>
-<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION><![CDATA[8.1.27639]]></VERSION>
+<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION><![CDATA[8.1.28030]]></VERSION>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <DESCRIPTION><![CDATA[SmartClient libraries for use within Openbravo]]></DESCRIPTION>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <HELP><![CDATA[This module contains the SmartClient libraries for usage by other modules. It also contains some simple test pages to validate that SmartClient is working correctly. Also contains generic Openbravo SmartClient components]]></HELP>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <URL><![CDATA[http://forge.openbravo.com/projects/obsmartclient]]></URL>
--- a/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--086331E18477496B8AC74D2CFEBD1307-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <AD_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_MODULE_ID>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--086331E18477496B8AC74D2CFEBD1307-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--086331E18477496B8AC74D2CFEBD1307-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--DC5D4EF450244482BD2B458DAA496333-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <AD_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_MODULE_ID>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--DC5D4EF450244482BD2B458DAA496333-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--DC5D4EF450244482BD2B458DAA496333-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <AD_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_MODULE_ID>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--F2AF15C0AF5540E393D96BE506E20648-->  <STARTVERSION><![CDATA[1.1.27639]]></STARTVERSION>
+<!--F2AF15C0AF5540E393D96BE506E20648-->  <STARTVERSION><![CDATA[1.1.28030]]></STARTVERSION>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--8A34B301DC524EA3A07513DF9F42CC90-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--8A34B301DC524EA3A07513DF9F42CC90-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8A34B301DC524EA3A07513DF9F42CC90-->  <NAME><![CDATA[Log Clean Up Utility]]></NAME>
-<!--8A34B301DC524EA3A07513DF9F42CC90-->  <VERSION><![CDATA[1.0.27639]]></VERSION>
+<!--8A34B301DC524EA3A07513DF9F42CC90-->  <VERSION><![CDATA[1.0.28030]]></VERSION>
 <!--8A34B301DC524EA3A07513DF9F42CC90-->  <DESCRIPTION><![CDATA[Log Clean Up Utility]]></DESCRIPTION>
 <!--8A34B301DC524EA3A07513DF9F42CC90-->  <HELP><![CDATA[Utility to periodically cleanup log tables]]></HELP>
 <!--8A34B301DC524EA3A07513DF9F42CC90-->  <URL><![CDATA[http://centralrepository.openbravo.com/heartbeat-server/org.openbravo.forge.ui/ForgeProjectDetail?projectId=7DC25E3B7ADE426CAD71E7804B95C1BF]]></URL>
--- a/modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--86EBD30DEB8045508185B457896C9F6D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--86EBD30DEB8045508185B457896C9F6D-->  <AD_MODULE_ID><![CDATA[8A34B301DC524EA3A07513DF9F42CC90]]></AD_MODULE_ID>
 <!--86EBD30DEB8045508185B457896C9F6D-->  <AD_DEPENDENT_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_DEPENDENT_MODULE_ID>
-<!--86EBD30DEB8045508185B457896C9F6D-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--86EBD30DEB8045508185B457896C9F6D-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--86EBD30DEB8045508185B457896C9F6D-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--86EBD30DEB8045508185B457896C9F6D-->  <DEPENDANT_MODULE_NAME><![CDATA[Openbravo 3.0 Framework]]></DEPENDANT_MODULE_NAME>
 <!--86EBD30DEB8045508185B457896C9F6D-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <NAME><![CDATA[Standard Roles]]></NAME>
-<!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <VERSION><![CDATA[3.0.27639]]></VERSION>
+<!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <VERSION><![CDATA[3.0.28030]]></VERSION>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <DESCRIPTION><![CDATA[Pre-configured collection of standard ERP roles]]></DESCRIPTION>
 <!--883B5872CA0548F9AF2BBBE7D2DDFA61-->  <HELP><![CDATA[This dataset contains the following roles with their access to corresponding Openbravo entities - windows, reports, actions.
 * Employee - Any person of the enterprise
--- a/modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <AD_MODULE_ID><![CDATA[883B5872CA0548F9AF2BBBE7D2DDFA61]]></AD_MODULE_ID>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--148A000EE9A04A3CA653B1296A00B8E6-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--148A000EE9A04A3CA653B1296A00B8E6-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--148A000EE9A04A3CA653B1296A00B8E6-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--30F966407A6F4E15965821BAEE34D25B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <AD_MODULE_ID><![CDATA[883B5872CA0548F9AF2BBBE7D2DDFA61]]></AD_MODULE_ID>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_DEPENDENT_MODULE_ID>
-<!--30F966407A6F4E15965821BAEE34D25B-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--30F966407A6F4E15965821BAEE34D25B-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <DEPENDANT_MODULE_NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></DEPENDANT_MODULE_NAME>
 <!--30F966407A6F4E15965821BAEE34D25B-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--F93CE30003B24F8F8886510B0065EECC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <AD_MODULE_ID><![CDATA[883B5872CA0548F9AF2BBBE7D2DDFA61]]></AD_MODULE_ID>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <AD_DEPENDENT_MODULE_ID><![CDATA[3A3A943684D64DEF9EC39F588A656848]]></AD_DEPENDENT_MODULE_ID>
-<!--F93CE30003B24F8F8886510B0065EECC-->  <STARTVERSION><![CDATA[1.1.27639]]></STARTVERSION>
+<!--F93CE30003B24F8F8886510B0065EECC-->  <STARTVERSION><![CDATA[1.1.28030]]></STARTVERSION>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <DEPENDANT_MODULE_NAME><![CDATA[Orders Awaiting Delivery]]></DEPENDANT_MODULE_NAME>
 <!--F93CE30003B24F8F8886510B0065EECC-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <NAME><![CDATA[Openbravo 3.0 Framework]]></NAME>
-<!--7E48CDD73B7E493A8BED4F7253E7C989-->  <VERSION><![CDATA[2.1.27639]]></VERSION>
+<!--7E48CDD73B7E493A8BED4F7253E7C989-->  <VERSION><![CDATA[2.1.28030]]></VERSION>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <DESCRIPTION><![CDATA[Openbravo 3.0 Framework]]></DESCRIPTION>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <HELP><![CDATA[Contains all the components required to run the Openbravo 3.0 framework]]></HELP>
 <!--7E48CDD73B7E493A8BED4F7253E7C989-->  <URL><![CDATA[http://forge.openbravo.com/projects/openbravov30framework]]></URL>
--- a/modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--01E1BCCEC9114DE0960538DF34E30E6F-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--01E1BCCEC9114DE0960538DF34E30E6F-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <DEPENDANT_MODULE_NAME><![CDATA[My Openbravo Tab]]></DEPENDANT_MODULE_NAME>
 <!--01E1BCCEC9114DE0960538DF34E30E6F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--025B181F63CA47B48A920F6983242390-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--025B181F63CA47B48A920F6983242390-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--025B181F63CA47B48A920F6983242390-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--025B181F63CA47B48A920F6983242390-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--025B181F63CA47B48A920F6983242390-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--025B181F63CA47B48A920F6983242390-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--025B181F63CA47B48A920F6983242390-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--025B181F63CA47B48A920F6983242390-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <AD_DEPENDENT_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_DEPENDENT_MODULE_ID>
-<!--054B4FEAF919478AA3FF27098A46D1D6-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--054B4FEAF919478AA3FF27098A46D1D6-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Application]]></DEPENDANT_MODULE_NAME>
 <!--054B4FEAF919478AA3FF27098A46D1D6-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0A060B2AF1974E8EAA8DB61388E9AECC]]></AD_DEPENDENT_MODULE_ID>
-<!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <STARTVERSION><![CDATA[1.0.27639]]></STARTVERSION>
+<!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <STARTVERSION><![CDATA[1.0.28030]]></STARTVERSION>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <DEPENDANT_MODULE_NAME><![CDATA[Query/List Widget]]></DEPENDANT_MODULE_NAME>
 <!--1FA6BAA6DC3A4434A6E62A0D1319A9D7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--224754C3EF674C93B0D468F47BAAB824-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <AD_DEPENDENT_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_DEPENDENT_MODULE_ID>
-<!--224754C3EF674C93B0D468F47BAAB824-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--224754C3EF674C93B0D468F47BAAB824-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Selector]]></DEPENDANT_MODULE_NAME>
 <!--224754C3EF674C93B0D468F47BAAB824-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -77,7 +77,7 @@
 <!--5B72D24032DD4879A950194139D961B6-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--5B72D24032DD4879A950194139D961B6-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--5B72D24032DD4879A950194139D961B6-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_DEPENDENT_MODULE_ID>
-<!--5B72D24032DD4879A950194139D961B6-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--5B72D24032DD4879A950194139D961B6-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--5B72D24032DD4879A950194139D961B6-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--5B72D24032DD4879A950194139D961B6-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON Datasource]]></DEPENDANT_MODULE_NAME>
 <!--5B72D24032DD4879A950194139D961B6-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -91,7 +91,7 @@
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <AD_DEPENDENT_MODULE_ID><![CDATA[D393BE6F22BB44B7B728259B34FC795A]]></AD_DEPENDENT_MODULE_ID>
-<!--8730CA6A4224439D82E0DD31B3806E36-->  <STARTVERSION><![CDATA[1.0.27639]]></STARTVERSION>
+<!--8730CA6A4224439D82E0DD31B3806E36-->  <STARTVERSION><![CDATA[1.0.28030]]></STARTVERSION>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <DEPENDANT_MODULE_NAME><![CDATA[HTML Widget]]></DEPENDANT_MODULE_NAME>
 <!--8730CA6A4224439D82E0DD31B3806E36-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -105,7 +105,7 @@
 <!--98C47FF058F8413B8A2B26036061446E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--98C47FF058F8413B8A2B26036061446E-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--98C47FF058F8413B8A2B26036061446E-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--98C47FF058F8413B8A2B26036061446E-->  <STARTVERSION><![CDATA[8.1.27639]]></STARTVERSION>
+<!--98C47FF058F8413B8A2B26036061446E-->  <STARTVERSION><![CDATA[8.1.28030]]></STARTVERSION>
 <!--98C47FF058F8413B8A2B26036061446E-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--98C47FF058F8413B8A2B26036061446E-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--98C47FF058F8413B8A2B26036061446E-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -119,7 +119,7 @@
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <AD_DEPENDENT_MODULE_ID><![CDATA[96998CBC42744B3DBEE28AC8095C9335]]></AD_DEPENDENT_MODULE_ID>
-<!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <STARTVERSION><![CDATA[2.0.27639]]></STARTVERSION>
+<!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <STARTVERSION><![CDATA[2.0.28030]]></STARTVERSION>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <DEPENDANT_MODULE_NAME><![CDATA[2.50 to 3.00 Compatibility Skin]]></DEPENDANT_MODULE_NAME>
 <!--A6D7BA917B3B4DEABD7CA1BA00B01E8A-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -133,7 +133,7 @@
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--A9CB99330AF34944877F889DD8A0AB3C-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--A9CB99330AF34944877F889DD8A0AB3C-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--A9CB99330AF34944877F889DD8A0AB3C-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -147,7 +147,7 @@
 <!--E72A053A403C4A98A189C105B850ADB0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--E72A053A403C4A98A189C105B850ADB0-->  <STARTVERSION><![CDATA[1.1.27639]]></STARTVERSION>
+<!--E72A053A403C4A98A189C105B850ADB0-->  <STARTVERSION><![CDATA[1.1.28030]]></STARTVERSION>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--E72A053A403C4A98A189C105B850ADB0-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -161,7 +161,7 @@
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <AD_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_MODULE_ID>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <AD_DEPENDENT_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_DEPENDENT_MODULE_ID>
-<!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <STARTVERSION><![CDATA[2.0.27639]]></STARTVERSION>
+<!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <STARTVERSION><![CDATA[2.0.28030]]></STARTVERSION>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON REST Webservice]]></DEPENDANT_MODULE_NAME>
 <!--F62443FC17DA4C0E84FBCA9F2E5B68C0-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <NAME><![CDATA[Openbravo 3.0]]></NAME>
-<!--0138E7A89B5E4DC3932462252801FFBC-->  <VERSION><![CDATA[3.0.27639]]></VERSION>
+<!--0138E7A89B5E4DC3932462252801FFBC-->  <VERSION><![CDATA[3.0.28030]]></VERSION>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <DESCRIPTION><![CDATA[Openbravo 3.0 distribution template]]></DESCRIPTION>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <HELP><![CDATA[Openbravo 3.0 is a collection (distribution) of modules. This template is a container of all the modules and configuration changes that compose Openbravo 3.0.]]></HELP>
 <!--0138E7A89B5E4DC3932462252801FFBC-->  <URL><![CDATA[http://forge.openbravo.com/projects/vthree]]></URL>
--- a/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -7,7 +7,7 @@
 <!--48D556894CE54CF998DC97882E904CBD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--48D556894CE54CF998DC97882E904CBD-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--48D556894CE54CF998DC97882E904CBD-->  <AD_DEPENDENT_MODULE_ID><![CDATA[8A098711BB324335A19833286BDB093D]]></AD_DEPENDENT_MODULE_ID>
-<!--48D556894CE54CF998DC97882E904CBD-->  <STARTVERSION><![CDATA[1.0.27639]]></STARTVERSION>
+<!--48D556894CE54CF998DC97882E904CBD-->  <STARTVERSION><![CDATA[1.0.28030]]></STARTVERSION>
 <!--48D556894CE54CF998DC97882E904CBD-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--48D556894CE54CF998DC97882E904CBD-->  <DEPENDANT_MODULE_NAME><![CDATA[Apache External Connection Pool]]></DEPENDANT_MODULE_NAME>
 <!--48D556894CE54CF998DC97882E904CBD-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--4D11E3A70650475381139522373CD191-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--4D11E3A70650475381139522373CD191-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--4D11E3A70650475381139522373CD191-->  <AD_DEPENDENT_MODULE_ID><![CDATA[7E48CDD73B7E493A8BED4F7253E7C989]]></AD_DEPENDENT_MODULE_ID>
-<!--4D11E3A70650475381139522373CD191-->  <STARTVERSION><![CDATA[2.1.27639]]></STARTVERSION>
+<!--4D11E3A70650475381139522373CD191-->  <STARTVERSION><![CDATA[2.1.28030]]></STARTVERSION>
 <!--4D11E3A70650475381139522373CD191-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--4D11E3A70650475381139522373CD191-->  <DEPENDANT_MODULE_NAME><![CDATA[Openbravo 3.0 Framework]]></DEPENDANT_MODULE_NAME>
 <!--4D11E3A70650475381139522373CD191-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2A5EE903D7974AC298C0504FBC4501A7]]></AD_DEPENDENT_MODULE_ID>
-<!--52CE523C40634C47A99C6EBBD9C3125C-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--52CE523C40634C47A99C6EBBD9C3125C-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <DEPENDANT_MODULE_NAME><![CDATA[Payment Report]]></DEPENDANT_MODULE_NAME>
 <!--52CE523C40634C47A99C6EBBD9C3125C-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--60834727BB114764ACEF019F40A34562-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--60834727BB114764ACEF019F40A34562-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--60834727BB114764ACEF019F40A34562-->  <AD_DEPENDENT_MODULE_ID><![CDATA[3A3A943684D64DEF9EC39F588A656848]]></AD_DEPENDENT_MODULE_ID>
-<!--60834727BB114764ACEF019F40A34562-->  <STARTVERSION><![CDATA[1.1.27639]]></STARTVERSION>
+<!--60834727BB114764ACEF019F40A34562-->  <STARTVERSION><![CDATA[1.1.28030]]></STARTVERSION>
 <!--60834727BB114764ACEF019F40A34562-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--60834727BB114764ACEF019F40A34562-->  <DEPENDANT_MODULE_NAME><![CDATA[Orders Awaiting Delivery]]></DEPENDANT_MODULE_NAME>
 <!--60834727BB114764ACEF019F40A34562-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--8418885E97D643138B6D907671351E3D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8418885E97D643138B6D907671351E3D-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--8418885E97D643138B6D907671351E3D-->  <AD_DEPENDENT_MODULE_ID><![CDATA[883B5872CA0548F9AF2BBBE7D2DDFA61]]></AD_DEPENDENT_MODULE_ID>
-<!--8418885E97D643138B6D907671351E3D-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--8418885E97D643138B6D907671351E3D-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--8418885E97D643138B6D907671351E3D-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--8418885E97D643138B6D907671351E3D-->  <DEPENDANT_MODULE_NAME><![CDATA[Standard Roles]]></DEPENDANT_MODULE_NAME>
 <!--8418885E97D643138B6D907671351E3D-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -77,7 +77,7 @@
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--A32F3279B3374FC0A6CFEA2368BB7053-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--A32F3279B3374FC0A6CFEA2368BB7053-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MINOR]]></DEPENDENCY_ENFORCEMENT>
@@ -91,7 +91,7 @@
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_DEPENDENT_MODULE_ID>
-<!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <STARTVERSION><![CDATA[3.0.27639]]></STARTVERSION>
+<!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <STARTVERSION><![CDATA[3.0.28030]]></STARTVERSION>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <DEPENDANT_MODULE_NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></DEPENDANT_MODULE_NAME>
 <!--ED06CE9F2AFD4092871D9E9494AF42DD-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -105,7 +105,7 @@
 <!--FEF6E40F244A4061B7C62CB755663712-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FEF6E40F244A4061B7C62CB755663712-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--FEF6E40F244A4061B7C62CB755663712-->  <AD_DEPENDENT_MODULE_ID><![CDATA[8A34B301DC524EA3A07513DF9F42CC90]]></AD_DEPENDENT_MODULE_ID>
-<!--FEF6E40F244A4061B7C62CB755663712-->  <STARTVERSION><![CDATA[1.0.27639]]></STARTVERSION>
+<!--FEF6E40F244A4061B7C62CB755663712-->  <STARTVERSION><![CDATA[1.0.28030]]></STARTVERSION>
 <!--FEF6E40F244A4061B7C62CB755663712-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--FEF6E40F244A4061B7C62CB755663712-->  <DEPENDANT_MODULE_NAME><![CDATA[Log Clean Up Utility]]></DEPENDANT_MODULE_NAME>
 <!--FEF6E40F244A4061B7C62CB755663712-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -119,7 +119,7 @@
 <!--FF8080813189932B013189B45B59003A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813189932B013189B45B59003A-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--FF8080813189932B013189B45B59003A-->  <AD_DEPENDENT_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813189932B013189B45B59003A-->  <STARTVERSION><![CDATA[0.1.27639]]></STARTVERSION>
+<!--FF8080813189932B013189B45B59003A-->  <STARTVERSION><![CDATA[0.1.28030]]></STARTVERSION>
 <!--FF8080813189932B013189B45B59003A-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--FF8080813189932B013189B45B59003A-->  <DEPENDANT_MODULE_NAME><![CDATA[OpenID Service Integration]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813189932B013189B45B59003A-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -133,7 +133,7 @@
 <!--FF8080813189932B013189B4C00F003D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080813189932B013189B4C00F003D-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--FF8080813189932B013189B4C00F003D-->  <AD_DEPENDENT_MODULE_ID><![CDATA[FF8080813129ADA401312CA1222A0005]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080813189932B013189B4C00F003D-->  <STARTVERSION><![CDATA[0.1.27639]]></STARTVERSION>
+<!--FF8080813189932B013189B4C00F003D-->  <STARTVERSION><![CDATA[0.1.28030]]></STARTVERSION>
 <!--FF8080813189932B013189B4C00F003D-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--FF8080813189932B013189B4C00F003D-->  <DEPENDANT_MODULE_NAME><![CDATA[Integration with Google APIs]]></DEPENDANT_MODULE_NAME>
 <!--FF8080813189932B013189B4C00F003D-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -147,7 +147,7 @@
 <!--FF8081812E2F6F3C012E2F750109001C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <AD_MODULE_ID><![CDATA[0138E7A89B5E4DC3932462252801FFBC]]></AD_MODULE_ID>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <AD_DEPENDENT_MODULE_ID><![CDATA[FF8080812D842086012D844F3CC0003E]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8081812E2F6F3C012E2F750109001C-->  <STARTVERSION><![CDATA[0.0.27639]]></STARTVERSION>
+<!--FF8081812E2F6F3C012E2F750109001C-->  <STARTVERSION><![CDATA[0.0.28030]]></STARTVERSION>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <ISINCLUDED><![CDATA[Y]]></ISINCLUDED>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <DEPENDANT_MODULE_NAME><![CDATA[Widgets Collection]]></DEPENDANT_MODULE_NAME>
 <!--FF8081812E2F6F3C012E2F750109001C-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/src-db/database/model/triggers/C_INVOICELINE_TRG.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/src-db/database/model/triggers/C_INVOICELINE_TRG.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -14,7 +14,7 @@
 * under the License.
 * The Original Code is Openbravo ERP.
 * The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2001-2014 Openbravo SLU
+* All portions are Copyright (C) 2001-2015 Openbravo SLU
 * All Rights Reserved.
 * Contributor(s):  ______________________________________.
 ************************************************************************/
@@ -40,9 +40,7 @@
  v_AttrSetValueType M_Product.AttrSetValueType%TYPE;
  v_count NUMBER;
  v_IsCashVAT_Tax C_Tax.IsCashVAT%TYPE;
- v_IsWithholding_Tax C_Tax.IsWithholdingTax%TYPE;
  v_IsCashVAT_Invoice C_Invoice.IsCashVAT%TYPE;
- v_Rate_Tax C_Tax.Rate%TYPE;
     
 BEGIN
     
@@ -108,25 +106,29 @@
  -- Update C_Invoice.IsCashVAT flag from the line tax rate.
  -- We do it this way to force any invoicing process to properly set the C_Invoice.IsCashVAT
  -- If a user manually changes the tax rate when entering a line, the invoice's header IsCash VAT may change
- -- This will just work for not withholding tax rates
  IF (INSERTING OR UPDATING) THEN
   IF (:NEW.C_TAX_ID IS NOT NULL) THEN
-   SELECT COALESCE(iswithholdingtax, 'N'), COALESCE(IsCashVAT, 'N'), COALESCE(rate, 0)
-   INTO v_IsWithholding_Tax, v_IsCashVAT_Tax, v_Rate_Tax
-   FROM C_Tax
-   WHERE C_Tax_ID=:NEW.C_Tax_ID;
+   SELECT CASE WHEN COUNT(*) > 0 THEN 'Y' ELSE 'N' END
+   INTO v_IsCashVAT_Tax
+   FROM dual
+   WHERE EXISTS (
+        select 1
+        from c_tax t
+        where C_TAX_ISMEMBER(:NEW.C_Tax_ID, t.c_tax_id) = 1
+        and t.isCashVAT = 'Y'
+        and t.rate <> 0
+        and t.isSummary = 'N'
+                 );
 
-   IF (v_IsWithholding_Tax='N' AND v_Rate_Tax<>0) THEN
-    SELECT COALESCE(IsCashVAT, 'N')
-    INTO v_IsCashVAT_Invoice
-    FROM C_Invoice
-    WHERE C_Invoice_ID=:NEW.C_Invoice_ID;
+   SELECT COALESCE(IsCashVAT, 'N')
+   INTO v_IsCashVAT_Invoice
+   FROM C_Invoice
+   WHERE C_Invoice_ID=:NEW.C_Invoice_ID;
 
-    IF (v_IsCashVAT_Tax <> v_IsCashVAT_Invoice) THEN
-      UPDATE C_Invoice
-      SET IsCashVAT = v_IsCashVAT_Tax
-      WHERE C_Invoice_ID=:NEW.C_Invoice_ID;
-    END IF;
+   IF (v_IsCashVAT_Tax <> v_IsCashVAT_Invoice) THEN
+     UPDATE C_Invoice
+     SET IsCashVAT = v_IsCashVAT_Tax
+     WHERE C_Invoice_ID=:NEW.C_Invoice_ID;
    END IF;
   END IF;
  END IF;
--- a/src-db/database/model/triggers/C_ORDERLINE_TRG.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/src-db/database/model/triggers/C_ORDERLINE_TRG.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -32,10 +32,8 @@
   v_CountRelations NUMBER;
   v_reservation_id    VARCHAR2(32);
   v_prereservedqty    NUMBER;
-  v_IsWithholding_Tax C_Tax.IsWithholdingTax%TYPE;
   v_IsCashVAT_Tax C_Tax.IsCashVAT%TYPE;
   v_IsCashVAT_Order C_Order.IsCashVAT%TYPE;
-  v_Rate_Tax C_Tax.Rate%TYPE;
   v_istaxincluded CHAR(1);
   v_PriceActual NUMBER;
   
@@ -258,25 +256,29 @@
  -- Update C_Order.IsCashVAT flag from the line tax rate.
  -- We do it this way to force any process that creates Orders to properly set the C_Order.IsCashVAT
  -- If a user manually changes the tax rate when entering a line, the order's header IsCash VAT may change
- -- This will just work for not withholding tax rates
  IF (INSERTING OR UPDATING) THEN
-  IF (:NEW.C_TAX_ID IS NOT NULL) THEN
-   SELECT COALESCE(iswithholdingtax, 'N'), COALESCE(IsCashVAT, 'N'), COALESCE(rate, 0)
-   INTO v_IsWithholding_Tax, v_IsCashVAT_Tax, v_Rate_Tax
-   FROM C_Tax
-   WHERE C_Tax_ID=:NEW.C_Tax_ID;
+  IF (:NEW.C_TAX_ID IS NOT NULL) THEN  
+   SELECT CASE WHEN COUNT(*) > 0 THEN 'Y' ELSE 'N' END
+   INTO v_IsCashVAT_Tax
+   FROM dual
+   WHERE EXISTS (
+        select 1
+        from c_tax t
+        where C_TAX_ISMEMBER(:NEW.C_Tax_ID, t.c_tax_id) = 1
+        and t.isCashVAT = 'Y'
+        and t.rate <> 0
+        and t.isSummary = 'N'
+                 );
 
-   IF (v_IsWithholding_Tax='N' AND v_Rate_Tax<>0) THEN
-    SELECT COALESCE(IsCashVAT, 'N')
-    INTO v_IsCashVAT_Order
-    FROM C_Order
-    WHERE C_Order_ID=:NEW.C_Order_ID;
+   SELECT COALESCE(IsCashVAT, 'N')
+   INTO v_IsCashVAT_Order
+   FROM C_Order
+   WHERE C_Order_ID=:NEW.C_Order_ID;
 
-    IF (v_IsCashVAT_Tax <> v_IsCashVAT_Order) THEN
-      UPDATE C_Order
-      SET IsCashVAT = v_IsCashVAT_Tax
-      WHERE C_Order_ID=:NEW.C_Order_ID;
-    END IF;
+   IF (v_IsCashVAT_Tax <> v_IsCashVAT_Order) THEN
+     UPDATE C_Order
+     SET IsCashVAT = v_IsCashVAT_Tax
+     WHERE C_Order_ID=:NEW.C_Order_ID;
    END IF;
   END IF;
  END IF;
--- a/src-db/database/sourcedata/AD_FIELD.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/src-db/database/sourcedata/AD_FIELD.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -197807,6 +197807,34 @@
 <!--317E5533B56D4E719E04CD0A3F9D7401-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--317E5533B56D4E719E04CD0A3F9D7401--></AD_FIELD>
 
+<!--317E7BE2AEB1474F9F37D3C115B72EB6--><AD_FIELD>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <AD_FIELD_ID><![CDATA[317E7BE2AEB1474F9F37D3C115B72EB6]]></AD_FIELD_ID>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <NAME><![CDATA[Inherited From]]></NAME>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <DESCRIPTION><![CDATA[Inherited From]]></DESCRIPTION>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <HELP><![CDATA[The role from which a permission has been inherited. If a permission has this field set it means that this is an inherited permission, an therefore that the role owner of the permission is able to access it because it inherits from the role defined in this field.]]></HELP>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <AD_TAB_ID><![CDATA[800038]]></AD_TAB_ID>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <AD_COLUMN_ID><![CDATA[DD9A479969A747D1972E40FDB96D7DE7]]></AD_COLUMN_ID>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <SEQNO><![CDATA[50]]></SEQNO>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--317E7BE2AEB1474F9F37D3C115B72EB6--></AD_FIELD>
+
 <!--318588F6E35249488A0470C1905F3E0B--><AD_FIELD>
 <!--318588F6E35249488A0470C1905F3E0B-->  <AD_FIELD_ID><![CDATA[318588F6E35249488A0470C1905F3E0B]]></AD_FIELD_ID>
 <!--318588F6E35249488A0470C1905F3E0B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/src-db/database/sourcedata/AD_MESSAGE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -18669,6 +18669,18 @@
 <!--3AC018B68C664063832D84ECDF0E1B68-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--3AC018B68C664063832D84ECDF0E1B68--></AD_MESSAGE>
 
+<!--3AC7DAA7473B4AC794835FBDAB82839D--><AD_MESSAGE>
+<!--3AC7DAA7473B4AC794835FBDAB82839D-->  <AD_MESSAGE_ID><![CDATA[3AC7DAA7473B4AC794835FBDAB82839D]]></AD_MESSAGE_ID>
+<!--3AC7DAA7473B4AC794835FBDAB82839D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--3AC7DAA7473B4AC794835FBDAB82839D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--3AC7DAA7473B4AC794835FBDAB82839D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--3AC7DAA7473B4AC794835FBDAB82839D-->  <VALUE><![CDATA[OPS_POS_TERMINALS_EXCEEDED]]></VALUE>
+<!--3AC7DAA7473B4AC794835FBDAB82839D-->  <MSGTEXT><![CDATA[Maximum allowed number of terminals for this instance has been exceeded. Your system is still active but only System Administrators can log in to renew your subscription.]]></MSGTEXT>
+<!--3AC7DAA7473B4AC794835FBDAB82839D-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--3AC7DAA7473B4AC794835FBDAB82839D-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--3AC7DAA7473B4AC794835FBDAB82839D-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--3AC7DAA7473B4AC794835FBDAB82839D--></AD_MESSAGE>
+
 <!--3AF9B679229647FA90310BE11368DBEB--><AD_MESSAGE>
 <!--3AF9B679229647FA90310BE11368DBEB-->  <AD_MESSAGE_ID><![CDATA[3AF9B679229647FA90310BE11368DBEB]]></AD_MESSAGE_ID>
 <!--3AF9B679229647FA90310BE11368DBEB-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -20602,6 +20614,18 @@
 <!--65C05BD368ED471CB1E6AE97DD911EDF-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--65C05BD368ED471CB1E6AE97DD911EDF--></AD_MESSAGE>
 
+<!--666B55528E5F40399905D1033226DFE7--><AD_MESSAGE>
+<!--666B55528E5F40399905D1033226DFE7-->  <AD_MESSAGE_ID><![CDATA[666B55528E5F40399905D1033226DFE7]]></AD_MESSAGE_ID>
+<!--666B55528E5F40399905D1033226DFE7-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--666B55528E5F40399905D1033226DFE7-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--666B55528E5F40399905D1033226DFE7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--666B55528E5F40399905D1033226DFE7-->  <VALUE><![CDATA[OPSPOSLimitation]]></VALUE>
+<!--666B55528E5F40399905D1033226DFE7-->  <MSGTEXT><![CDATA[WebPOS Terminals]]></MSGTEXT>
+<!--666B55528E5F40399905D1033226DFE7-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--666B55528E5F40399905D1033226DFE7-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--666B55528E5F40399905D1033226DFE7-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--666B55528E5F40399905D1033226DFE7--></AD_MESSAGE>
+
 <!--66BEE4A0FBD44C96B2967716918A1318--><AD_MESSAGE>
 <!--66BEE4A0FBD44C96B2967716918A1318-->  <AD_MESSAGE_ID><![CDATA[66BEE4A0FBD44C96B2967716918A1318]]></AD_MESSAGE_ID>
 <!--66BEE4A0FBD44C96B2967716918A1318-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -21433,6 +21457,18 @@
 <!--79D510C3817A4174B9ECB194E47CDBEB-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--79D510C3817A4174B9ECB194E47CDBEB--></AD_MESSAGE>
 
+<!--79F5798F86FB456D8E22293792E06F20--><AD_MESSAGE>
+<!--79F5798F86FB456D8E22293792E06F20-->  <AD_MESSAGE_ID><![CDATA[79F5798F86FB456D8E22293792E06F20]]></AD_MESSAGE_ID>
+<!--79F5798F86FB456D8E22293792E06F20-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--79F5798F86FB456D8E22293792E06F20-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--79F5798F86FB456D8E22293792E06F20-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--79F5798F86FB456D8E22293792E06F20-->  <VALUE><![CDATA[OPSNone]]></VALUE>
+<!--79F5798F86FB456D8E22293792E06F20-->  <MSGTEXT><![CDATA[None]]></MSGTEXT>
+<!--79F5798F86FB456D8E22293792E06F20-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--79F5798F86FB456D8E22293792E06F20-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--79F5798F86FB456D8E22293792E06F20-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--79F5798F86FB456D8E22293792E06F20--></AD_MESSAGE>
+
 <!--79FF2FAF44DF4903AEAE011982046813--><AD_MESSAGE>
 <!--79FF2FAF44DF4903AEAE011982046813-->  <AD_MESSAGE_ID><![CDATA[79FF2FAF44DF4903AEAE011982046813]]></AD_MESSAGE_ID>
 <!--79FF2FAF44DF4903AEAE011982046813-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -22687,6 +22723,18 @@
 <!--950D6D5D72078C44E040007F0101145E-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--950D6D5D72078C44E040007F0101145E--></AD_MESSAGE>
 
+<!--953DE167595F4399B2457E3F6467BA7A--><AD_MESSAGE>
+<!--953DE167595F4399B2457E3F6467BA7A-->  <AD_MESSAGE_ID><![CDATA[953DE167595F4399B2457E3F6467BA7A]]></AD_MESSAGE_ID>
+<!--953DE167595F4399B2457E3F6467BA7A-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--953DE167595F4399B2457E3F6467BA7A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--953DE167595F4399B2457E3F6467BA7A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--953DE167595F4399B2457E3F6467BA7A-->  <VALUE><![CDATA[OPS_POS_TERMINALS_EXCEEDED_TITLE]]></VALUE>
+<!--953DE167595F4399B2457E3F6467BA7A-->  <MSGTEXT><![CDATA[Exceeded Number of WebPOS terminals]]></MSGTEXT>
+<!--953DE167595F4399B2457E3F6467BA7A-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--953DE167595F4399B2457E3F6467BA7A-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--953DE167595F4399B2457E3F6467BA7A-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--953DE167595F4399B2457E3F6467BA7A--></AD_MESSAGE>
+
 <!--9549E1F434DA40DDBE250F282E838E70--><AD_MESSAGE>
 <!--9549E1F434DA40DDBE250F282E838E70-->  <AD_MESSAGE_ID><![CDATA[9549E1F434DA40DDBE250F282E838E70]]></AD_MESSAGE_ID>
 <!--9549E1F434DA40DDBE250F282E838E70-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/src-db/database/sourcedata/AD_MODULE.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/src-db/database/sourcedata/AD_MODULE.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -6,7 +6,7 @@
 <!--0-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--0-->  <NAME><![CDATA[Core]]></NAME>
-<!--0-->  <VERSION><![CDATA[3.0.27639]]></VERSION>
+<!--0-->  <VERSION><![CDATA[3.0.28030]]></VERSION>
 <!--0-->  <DESCRIPTION><![CDATA[Core module is the base one]]></DESCRIPTION>
 <!--0-->  <HELP><![CDATA[Core module is the base one, all developments in core are included as part of the standard Openbravo ERP.]]></HELP>
 <!--0-->  <URL><![CDATA[www.openbravo.com]]></URL>
--- a/src-db/database/sourcedata/AD_TEXTINTERFACES.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/src-db/database/sourcedata/AD_TEXTINTERFACES.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -20623,6 +20623,17 @@
 <!--B043CE30628911DEABA612313C002DE1-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--B043CE30628911DEABA612313C002DE1--></AD_TEXTINTERFACES>
 
+<!--B1069A31237347A29E00074FBB4382DC--><AD_TEXTINTERFACES>
+<!--B1069A31237347A29E00074FBB4382DC-->  <AD_TEXTINTERFACES_ID><![CDATA[B1069A31237347A29E00074FBB4382DC]]></AD_TEXTINTERFACES_ID>
+<!--B1069A31237347A29E00074FBB4382DC-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--B1069A31237347A29E00074FBB4382DC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--B1069A31237347A29E00074FBB4382DC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--B1069A31237347A29E00074FBB4382DC-->  <TEXT><![CDATA[WebPOS Terminals:]]></TEXT>
+<!--B1069A31237347A29E00074FBB4382DC-->  <FILENAME><![CDATA[/org/openbravo/erpCommon/ad_forms/About.html]]></FILENAME>
+<!--B1069A31237347A29E00074FBB4382DC-->  <ISUSED><![CDATA[Y]]></ISUSED>
+<!--B1069A31237347A29E00074FBB4382DC-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--B1069A31237347A29E00074FBB4382DC--></AD_TEXTINTERFACES>
+
 <!--B128718462344DF0B232A5CF1CB220BF--><AD_TEXTINTERFACES>
 <!--B128718462344DF0B232A5CF1CB220BF-->  <AD_TEXTINTERFACES_ID><![CDATA[B128718462344DF0B232A5CF1CB220BF]]></AD_TEXTINTERFACES_ID>
 <!--B128718462344DF0B232A5CF1CB220BF-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/src-test/src/org/openbravo/test/AllTests.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/src-test/src/org/openbravo/test/AllTests.java	Tue Nov 24 13:50:04 2015 +0100
@@ -48,6 +48,7 @@
 import org.openbravo.test.security.AllowedOrganizationsTest;
 import org.openbravo.test.security.EntityAccessTest;
 import org.openbravo.test.security.WritableReadableOrganizationClientTest;
+import org.openbravo.test.views.ViewGenerationWithDifferentConfigLevelTest;
 import org.openbravo.test.xml.DefaultsDataset;
 import org.openbravo.test.xml.EntityXMLImportTestBusinessObject;
 import org.openbravo.test.xml.EntityXMLImportTestReference;
@@ -103,6 +104,9 @@
     ClassicSelectorTest.class,
 
     // cdi
-    CdiInfrastructure.class })
+    CdiInfrastructure.class,
+
+    // view generation
+    ViewGenerationWithDifferentConfigLevelTest.class })
 public class AllTests {
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src-test/src/org/openbravo/test/views/ViewGenerationWithDifferentConfigLevelTest.java	Tue Nov 24 13:50:04 2015 +0100
@@ -0,0 +1,290 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html 
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License. 
+ * The Original Code is Openbravo ERP. 
+ * The Initial Developer of the Original Code is Openbravo SLU 
+ * All portions are Copyright (C) 2015 Openbravo SLU 
+ * All Rights Reserved. 
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+
+package org.openbravo.test.views;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+import org.openbravo.base.provider.OBProvider;
+import org.openbravo.client.application.GCField;
+import org.openbravo.client.application.GCSystem;
+import org.openbravo.client.application.GCTab;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.model.ad.system.Client;
+import org.openbravo.model.ad.ui.Field;
+import org.openbravo.model.ad.ui.Tab;
+import org.openbravo.model.common.enterprise.Organization;
+import org.openbravo.test.datasource.BaseDataSourceTestDal;
+
+/**
+ * Test cases for checking the correct generation of the views, with the different configurations in
+ * tab, field and in system level.
+ * 
+ * @author NaroaIriarte
+ *
+ */
+public class ViewGenerationWithDifferentConfigLevelTest extends BaseDataSourceTestDal {
+  private static final String BUSINESS_PARTNER_WINDOW_ID = "_123";
+  private static final String CLIENT_FOR_GC_SYSTEM_FIELD_TAB = "0";
+  private static final String ZERO_ORGANIZATION = "0";
+  private static final String BUSINESS_PARTNER_TAB_ID = "220";
+  private static final String BUSINESS_PARTNER_CATEGORY_FIELD_ID = "3955";
+
+  /**
+   * Test to ensure that the the view retrieves the expected values, having only grid configuration
+   * in System level. In the configuration, the "by default allow filtering" checkbox is checked,
+   * so, the expression "canFilter: true" must be found in the view.
+   * 
+   * @throws Exception
+   */
+  @Test
+  public void gridConfigurationSystemLevel() throws Exception {
+    OBContext.setAdminMode(false);
+    try {
+      GCSystem gcsystem = OBProvider.getInstance().get(GCSystem.class);
+      gcsystem.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gcsystem.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gcsystem.setFilterable(true);
+      OBDal.getInstance().save(gcsystem);
+      OBDal.getInstance().commitAndClose();
+      String theResponse = getViewResponse();
+      OBDal.getInstance().remove(gcsystem);
+      OBDal.getInstance().commitAndClose();
+      boolean existsCanFilter;
+      existsCanFilter = theResponse.contains("canFilter: true");
+      assertThat(existsCanFilter, is(true));
+    } finally {
+      OBDal.getInstance().commitAndClose();
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  /**
+   * Test to ensure that the the view retrieves the expected values, having only grid configuration
+   * at tab level. The "allow filtering" property in the grid configuration at tab level, in the
+   * Businsess Partner tab has been set to "No". So this test checks that the "canFiler: false"
+   * expression is present in the view.
+   */
+  @Test
+  public void gridConfigurationTabLevel() throws Exception {
+    OBContext.setAdminMode(false);
+    try {
+      GCTab gctab = OBProvider.getInstance().get(GCTab.class);
+      gctab.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gctab.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gctab.setFilterable("N");
+      gctab.setTab(OBDal.getInstance().get(Tab.class, BUSINESS_PARTNER_TAB_ID));
+      OBDal.getInstance().save(gctab);
+      OBDal.getInstance().commitAndClose();
+      String theResponse = getViewResponse();
+      OBDal.getInstance().remove(gctab);
+      OBDal.getInstance().commitAndClose();
+      boolean existsCanFilter;
+      existsCanFilter = theResponse.contains("canFilter: false");
+      assertThat(existsCanFilter, is(true));
+    } finally {
+      OBDal.getInstance().commitAndClose();
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  /**
+   * Test to ensure that the the view retrieves the expected values, having grid configuration at
+   * System and tab level. The "allow filtering" property in the grid configuration at tab level, in
+   * the Business Partner tab has been set to "No". So this test checks that the "canFiler: false"
+   * expression is present in the view. Also, the "allow sorting" property has been set to default,
+   * so, the taken value is going to be the one set in the grid configuration at system level, which
+   * is true. The test checks that the "canSort: true" expression is present in the view.
+   */
+  @Test
+  public void gridConfigurationTabAndSystemLevel() throws Exception {
+    OBContext.setAdminMode(false);
+    try {
+      GCSystem gcsystem = OBProvider.getInstance().get(GCSystem.class);
+      gcsystem.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gcsystem.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gcsystem.setSortable(true);
+      OBDal.getInstance().save(gcsystem);
+      OBDal.getInstance().commitAndClose();
+      GCTab gctab = OBProvider.getInstance().get(GCTab.class);
+      gctab.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gctab.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gctab.setFilterable("N");
+      gctab.setTab(OBDal.getInstance().get(Tab.class, BUSINESS_PARTNER_TAB_ID));
+      OBDal.getInstance().save(gctab);
+      OBDal.getInstance().commitAndClose();
+      String theResponse = getViewResponse();
+      OBDal.getInstance().remove(gctab);
+      OBDal.getInstance().commitAndClose();
+      OBDal.getInstance().remove(gcsystem);
+      OBDal.getInstance().commitAndClose();
+      boolean existsCanFilter, existsCanSort;
+      existsCanFilter = theResponse.contains("canFilter: false");
+      existsCanSort = theResponse.contains("canSort: true");
+      assertThat(existsCanFilter, is(true));
+      assertThat(existsCanSort, is(true));
+    } finally {
+      OBDal.getInstance().commitAndClose();
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  /**
+   * Test to ensure that the the view retrieves the expected values, having only grid configuration
+   * at field level. The Business Partner category field of business Partner has the property allow
+   * sorting set to "Yes", so the view must have "canSort: true" expression.
+   */
+  @Test
+  public void gridConfigurationFieldLevel() throws Exception {
+    OBContext.setAdminMode(false);
+    try {
+      GCTab gctab = OBProvider.getInstance().get(GCTab.class);
+      gctab.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gctab.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gctab.setTab(OBDal.getInstance().get(Tab.class, BUSINESS_PARTNER_TAB_ID));
+      OBDal.getInstance().save(gctab);
+      OBDal.getInstance().commitAndClose();
+      GCField gcfield = OBProvider.getInstance().get(GCField.class);
+      gcfield.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gcfield.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gcfield.setField(OBDal.getInstance().get(Field.class, BUSINESS_PARTNER_CATEGORY_FIELD_ID));
+      gcfield.setSortable("Y");
+      gcfield.setObuiappGcTab(gctab);
+      OBDal.getInstance().save(gcfield);
+      OBDal.getInstance().commitAndClose();
+      String theResponse = getViewResponse();
+      OBDal.getInstance().remove(gcfield);
+      OBDal.getInstance().commitAndClose();
+      OBDal.getInstance().remove(gctab);
+      OBDal.getInstance().commitAndClose();
+      boolean existsCanSort;
+      existsCanSort = theResponse.contains("canSort: true");
+      assertThat(existsCanSort, is(true));
+    } finally {
+      OBDal.getInstance().commitAndClose();
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  /**
+   * Test to ensure that the the view retrieves the expected values, having grid configuration at
+   * field and System level. In the grid configuration at system level, the "by default allow
+   * sorting" checkbox is checked. The tests ensures that the expression "canSort: true" is in the
+   * view. The business partner category of the business partner tab has the allow filtering
+   * property set to "No". The test ensures that the "canFilter: false" expression is in the view.
+   */
+  @Test
+  public void gridConfigurationFieldAndSystemLevel() throws Exception {
+    OBContext.setAdminMode(false);
+    try {
+      GCSystem gcsystem = OBProvider.getInstance().get(GCSystem.class);
+      gcsystem.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gcsystem.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gcsystem.setSortable(true);
+      OBDal.getInstance().save(gcsystem);
+      OBDal.getInstance().commitAndClose();
+      GCTab gctab = OBProvider.getInstance().get(GCTab.class);
+      gctab.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gctab.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gctab.setTab(OBDal.getInstance().get(Tab.class, BUSINESS_PARTNER_TAB_ID));
+      OBDal.getInstance().save(gctab);
+      OBDal.getInstance().commitAndClose();
+      GCField gcfield = OBProvider.getInstance().get(GCField.class);
+      gcfield.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gcfield.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gcfield.setField(OBDal.getInstance().get(Field.class, BUSINESS_PARTNER_CATEGORY_FIELD_ID));
+      gcfield.setFilterable("N");
+      gcfield.setObuiappGcTab(gctab);
+      OBDal.getInstance().save(gcfield);
+      OBDal.getInstance().commitAndClose();
+      String theResponse = getViewResponse();
+      OBDal.getInstance().remove(gcfield);
+      OBDal.getInstance().commitAndClose();
+      OBDal.getInstance().remove(gctab);
+      OBDal.getInstance().commitAndClose();
+      OBDal.getInstance().remove(gcsystem);
+      OBDal.getInstance().commitAndClose();
+      boolean existsCanFilter, existsCanSort;
+      existsCanFilter = theResponse.contains("canFilter: false");
+      existsCanSort = theResponse.contains("canSort: true");
+      assertThat(existsCanFilter, is(true));
+      assertThat(existsCanSort, is(true));
+    } finally {
+      OBDal.getInstance().commitAndClose();
+      OBContext.restorePreviousMode();
+    }
+
+  }
+
+  /**
+   * Test to ensure that the the view retrieves the expected values, having grid configuration at
+   * field and tab level. The field Business Partner category of Business Parter has the property
+   * "allow sorting" set to "Yes". The test checks if the "canSort: true" exists in the view. In the
+   * tab configuration the allow filtering property is set to no, so the "canFilter: false" must
+   * exist in the view.
+   */
+  @Test
+  public void gridConfigurationFieldAndTabLevel() throws Exception {
+    OBContext.setAdminMode(false);
+    try {
+      GCTab gctab = OBProvider.getInstance().get(GCTab.class);
+      gctab.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gctab.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gctab.setFilterable("N");
+      gctab.setTab(OBDal.getInstance().get(Tab.class, BUSINESS_PARTNER_TAB_ID));
+      OBDal.getInstance().save(gctab);
+      OBDal.getInstance().commitAndClose();
+      GCField gcfield = OBProvider.getInstance().get(GCField.class);
+      gcfield.setClient(OBDal.getInstance().get(Client.class, CLIENT_FOR_GC_SYSTEM_FIELD_TAB));
+      gcfield.setOrganization(OBDal.getInstance().get(Organization.class, ZERO_ORGANIZATION));
+      gcfield.setField(OBDal.getInstance().get(Field.class, BUSINESS_PARTNER_CATEGORY_FIELD_ID));
+      gcfield.setSortable("Y");
+      gcfield.setObuiappGcTab(gctab);
+      OBDal.getInstance().save(gcfield);
+      OBDal.getInstance().commitAndClose();
+      String theResponse = getViewResponse();
+      OBDal.getInstance().remove(gcfield);
+      OBDal.getInstance().commitAndClose();
+      OBDal.getInstance().remove(gctab);
+      OBDal.getInstance().commitAndClose();
+      boolean existsCanFilter, existsCanSort;
+      existsCanFilter = theResponse.contains("canFilter: false");
+      existsCanSort = theResponse.contains("canSort: true");
+      assertThat(existsCanFilter, is(true));
+      assertThat(existsCanSort, is(true));
+    } finally {
+      OBDal.getInstance().commitAndClose();
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  private String getViewResponse() throws Exception {
+    Map<String, String> params = new HashMap<String, String>();
+    String businessPartnerViewResponse = doRequest(
+        "/org.openbravo.client.kernel/OBUIAPP_MainLayout/View?viewId=" + BUSINESS_PARTNER_WINDOW_ID,
+        params, 200, "GET");
+    return businessPartnerViewResponse;
+  }
+}
\ No newline at end of file
--- a/src/org/openbravo/base/secureApp/HttpSecureAppServlet.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/base/secureApp/HttpSecureAppServlet.java	Tue Nov 24 13:50:04 2015 +0100
@@ -247,7 +247,8 @@
               || limitation == LicenseRestriction.MODULE_EXPIRED
               || limitation == LicenseRestriction.NOT_MATCHED_INSTANCE
               || limitation == LicenseRestriction.HB_NOT_ACTIVE
-              || limitation == LicenseRestriction.ON_DEMAND_OFF_PLATFORM || !correctSystemStatus) {
+              || limitation == LicenseRestriction.ON_DEMAND_OFF_PLATFORM
+              || limitation == LicenseRestriction.POS_TERMINALS_EXCEEDED || !correctSystemStatus) {
             // it is only allowed to log as system administrator
             strRole = DefaultOptionsData.getDefaultSystemRole(this, strUserAuth);
             if (strRole == null || strRole.equals("")) {
--- a/src/org/openbravo/base/secureApp/LoginHandler.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/base/secureApp/LoginHandler.java	Tue Nov 24 13:50:04 2015 +0100
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2001-2014 Openbravo S.L.U.
+ * Copyright (C) 2001-2015 Openbravo S.L.U.
  * Licensed under the Apache Software License version 2.0
  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
  * Unless required by applicable law or agreed to  in writing,  software  distributed
@@ -255,6 +255,12 @@
         log4j.warn("On demand off platform");
         goToRetry(res, vars, msg, title, msgType, action, doRedirect);
         return;
+      case POS_TERMINALS_EXCEEDED:
+        msg = Utility.messageBD(myPool, "OPS_POS_TERMINALS_EXCEEDED", vars.getLanguage());
+        title = Utility.messageBD(myPool, "OPS_POS_TERMINALS_EXCEEDED_TITLE", vars.getLanguage());
+        log4j.warn("Exceeded maximum number of pos terminals");
+        goToRetry(res, vars, msg, title, msgType, action, doRedirect);
+        return;
       case NO_RESTRICTION:
         break;
       }
--- a/src/org/openbravo/base/secureApp/LoginUtils.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/base/secureApp/LoginUtils.java	Tue Nov 24 13:50:04 2015 +0100
@@ -567,4 +567,32 @@
     return null;
 
   }
+
+  /**
+   * Returns default warehouse for a given organization
+   * 
+   * @throws ServletException
+   * 
+   */
+  public static String getDefaultWarehouse(ConnectionProvider connectionProvider, String strClient,
+      String strOrg, String strRole) throws ServletException {
+
+    String strWarehouse;
+    if (!strRole.equals("0")) {
+      // Pick the warehouse using the given organization
+      strWarehouse = DefaultOptionsData.getDefaultWarehouse(connectionProvider, strClient, "'"
+          + strOrg + "'");
+      if (strWarehouse == null || strWarehouse.isEmpty()) {
+        // If no warehouse for the default organization is available, pick using using the
+        // accessible tree
+        strWarehouse = DefaultOptionsData.getDefaultWarehouse(
+            connectionProvider,
+            strClient,
+            new OrgTree(connectionProvider, strClient).getAccessibleTree(connectionProvider,
+                strRole).toString());
+      }
+    } else
+      strWarehouse = "";
+    return strWarehouse;
+  }
 }
--- a/src/org/openbravo/common/actionhandler/RMInOutPickEditLines.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/common/actionhandler/RMInOutPickEditLines.java	Tue Nov 24 13:50:04 2015 +0100
@@ -26,9 +26,11 @@
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.provider.OBProvider;
 import org.openbravo.client.application.process.BaseProcessActionHandler;
 import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.dal.service.OBDao;
 import org.openbravo.erpCommon.utility.OBMessageUtils;
@@ -98,7 +100,6 @@
       return;
     }
 
-    ShipmentInOutLine parentInOutLine = null;
     for (long i = 0; i < selectedLines.length(); i++) {
       JSONObject selectedLine = selectedLines.getJSONObject((int) i);
       log.debug(selectedLine);
@@ -141,7 +142,6 @@
       }
       if (orderLine.isExplode()) {
         newInOutLine.setExplode(true);
-        parentInOutLine = newInOutLine;
       }
       OBDal.getInstance().save(newInOutLine);
       OBDal.getInstance().save(inOut);
@@ -149,6 +149,11 @@
     }
     for (ShipmentInOutLine inOutLine : inOut.getMaterialMgmtShipmentInOutLineList()) {
       if (inOutLine.getSalesOrderLine().getBOMParent() != null) {
+        OBCriteria<ShipmentInOutLine> obc = OBDal.getInstance().createCriteria(
+            ShipmentInOutLine.class);
+        obc.add(Restrictions.eq(ShipmentInOutLine.PROPERTY_SALESORDERLINE, inOutLine
+            .getSalesOrderLine().getBOMParent()));
+        ShipmentInOutLine parentInOutLine = (ShipmentInOutLine) obc.uniqueResult();
         inOutLine.setBOMParent(parentInOutLine);
         OBDal.getInstance().save(inOutLine);
       }
--- a/src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Invoice_data.xsql	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Invoice_data.xsql	Tue Nov 24 13:50:04 2015 +0100
@@ -618,7 +618,9 @@
       <![CDATA[
         SELECT (l.MovementQty - sum(COALESCE(CASE WHEN i.docstatus = 'CO' THEN il.qtyinvoiced ELSE 0 END, 0))) AS ID,
         l.C_UOM_ID,uom.UOMSymbol, l.M_Product_ID,Ad_Column_Identifier(to_char('M_Product'), to_char(l.m_product_id), to_char(?)) AS NAME, l.M_InOutLine_ID,l.Line,
-        l.C_OrderLine_ID, max(uom.STDPRECISION) as stdprecision, l.Description,l.quantityOrder, l.M_Product_UOM_ID,
+        l.C_OrderLine_ID, max(uom.STDPRECISION) as stdprecision, l.Description,
+		(l.quantityOrder - sum(COALESCE(CASE WHEN i.docstatus = 'CO' THEN il.quantityorder ELSE 0 END, 0))) AS quantityOrder, 
+		l.M_Product_UOM_ID,
         l.M_ATTRIBUTESETINSTANCE_ID, l.ad_org_id,
         COALESCE(l.A_Asset_ID, s.A_Asset_ID) AS A_Asset_ID, COALESCE(l.C_Project_ID, s.C_Project_ID) AS C_Project_ID, 
         COALESCE(l.C_Costcenter_ID, s.C_Costcenter_ID) AS C_Costcenter_ID,
--- a/src/org/openbravo/erpCommon/ad_forms/About.html	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/About.html	Tue Nov 24 13:50:04 2015 +0100
@@ -114,6 +114,9 @@
                 <tr id="paramOPSInfo">
                   <td>Web Service Access:</td><td>&nbsp;<td><td id="paraOPSWSAccess">xx</td>
                 </tr>
+                <tr id="paramPOSInfo">
+                  <td>WebPOS Terminals:</td><td>&nbsp;<td><td id="paraOPSPOSAccess">xx</td>
+                </tr>
               </table>
             </td>
           </tr>
--- a/src/org/openbravo/erpCommon/ad_forms/About.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/About.java	Tue Nov 24 13:50:04 2015 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2001-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2001-2015 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -100,6 +100,7 @@
         xmlDocument.setParameter("paraOPSPurpose", ak.getPurpose(vars.getLanguage()));
         xmlDocument.setParameter("paraOPSType", ak.getLicenseExplanation(this, vars.getLanguage()));
         xmlDocument.setParameter("paraOPSWSAccess", ak.getWSExplanation(this, vars.getLanguage()));
+        xmlDocument.setParameter("paraOPSPOSAccess", ak.getPOSTerminalsExplanation());
         xmlDocument.setParameter("paraOBPSStatus",
             ak.getSubscriptionStatus().getStatusName(vars.getLanguage()));
       }
--- a/src/org/openbravo/erpCommon/ad_forms/About.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/About.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -12,7 +12,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2001-2011 Openbravo SLU 
+ * All portions are Copyright (C) 2001-2015 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -29,6 +29,7 @@
     <PARAMETER id="paraOPSPurpose" name="paraOPSPurpose" default=""/>
     <PARAMETER id="paraOPSType" name="paraOPSType" default=""/>
     <PARAMETER id="paraOPSWSAccess" name="paraOPSWSAccess" default=""/>
+    <PARAMETER id="paraOPSPOSAccess" name="paraOPSPOSAccess" default=""/>
     <PARAMETER id="paraOBPSStatus" name="paraOBPSStatus" default=""/>
     
     <structure name="installedModules">
--- a/src/org/openbravo/erpCommon/ad_forms/InstanceManagement.html	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/InstanceManagement.html	Tue Nov 24 13:50:04 2015 +0100
@@ -13,7 +13,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2009-2012 Openbravo SLU 
+ * All portions are Copyright (C) 2009-2015 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -416,6 +416,7 @@
                 <tr>
                   <td>&nbsp;</td>
                 </tr> 
+                <div id="moduleActions"/>
                 <div id="discardGolden">
                 <div id="OPSInstance">
                 <tr>
--- a/src/org/openbravo/erpCommon/ad_forms/InstanceManagement.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/InstanceManagement.java	Tue Nov 24 13:50:04 2015 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2009-2013 Openbravo SLU 
+ * All portions are Copyright (C) 2009-2015 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -41,6 +41,7 @@
 import org.openbravo.erpCommon.obps.ActivationKey;
 import org.openbravo.erpCommon.obps.ActivationKey.LicenseRestriction;
 import org.openbravo.erpCommon.obps.ActiveInstanceProcess;
+import org.openbravo.erpCommon.obps.ModuleLicenseRestrictions.ActivationMsg;
 import org.openbravo.erpCommon.utility.ComboTableData;
 import org.openbravo.erpCommon.utility.LeftTabsBar;
 import org.openbravo.erpCommon.utility.NavigationBar;
@@ -322,20 +323,20 @@
     // Message
     {
       OBError myMessage = null;
-      if (activationKey.isActive() || activationKey.getErrorMessage() == null
-          || activationKey.getErrorMessage().equals("")) {
+      ActivationMsg msg = activationKey.getActivationMessage();
+      if (msg == null) {
         myMessage = vars.getMessage("InstanceManagement");
       } else {
         myMessage = new OBError();
         myMessage.setType(activationKey.getMessageType());
-        String msgTxt = Utility.parseTranslation(this, vars, vars.getLanguage(),
-            activationKey.getErrorMessage());
+        String msgTxt = Utility.parseTranslation(this, vars, vars.getLanguage(), msg.getMsgText());
 
         OBError originalMessage = vars.getMessage("InstanceManagement");
         if (originalMessage != null) {
           msgTxt = originalMessage.getMessage() + "<br/>" + msgTxt;
         }
         myMessage.setMessage(msgTxt);
+        myMessage.setType(msg.getSeverity().toString());
       }
 
       if (myMessage == null
@@ -343,7 +344,6 @@
         myMessage = new OBError();
         myMessage.setType("Warning");
         myMessage.setMessage(Utility.messageBD(this, "OffDemandPlatform", vars.getLanguage()));
-
       }
 
       vars.removeMessage("InstanceManagement");
@@ -368,6 +368,9 @@
             Utility.messageBD(this, "OPSUnlimitedUsers", vars.getLanguage()).replace("\\n", "\n"));
     }
 
+    xmlDocument.setParameter("moduleActions",
+        activationKey.getInstanceActivationExtraActionsHtml(xmlEngine));
+
     String cacheMsg = Utility.messageBD(this, "OUTDATED_FILES_CACHED", vars.getLanguage()).replace(
         "\\n", "\n");
     cacheMsg = "var cacheMsg = \"" + cacheMsg + "\"";
--- a/src/org/openbravo/erpCommon/ad_forms/InstanceManagement.xml	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/InstanceManagement.xml	Tue Nov 24 13:50:04 2015 +0100
@@ -12,7 +12,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2009-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2009-2015 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -31,4 +31,5 @@
   <PARAMETER id="instanceInfo" name="instanceInfo" default=""/>
   <PARAMETER id="OPSdaysLeft" name="OPSdaysLeft" dafault=""/>
   <PARAMETER id="cacheMsg" name="cacheMsg" default=""/>
+  <PARAMETER id="moduleActions" name="moduleActions" default=""/>
 </REPORT>
--- a/src/org/openbravo/erpCommon/ad_forms/Role.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/Role.java	Tue Nov 24 13:50:04 2015 +0100
@@ -233,7 +233,8 @@
           || limitation == LicenseRestriction.MODULE_EXPIRED
           || limitation == LicenseRestriction.NOT_MATCHED_INSTANCE
           || limitation == LicenseRestriction.HB_NOT_ACTIVE
-          || limitation == LicenseRestriction.ON_DEMAND_OFF_PLATFORM || !correctSystemStatus) {
+          || limitation == LicenseRestriction.ON_DEMAND_OFF_PLATFORM
+          || limitation == LicenseRestriction.POS_TERMINALS_EXCEEDED || !correctSystemStatus) {
         // allow only system login
         datarole = RoleComboData.selectSystem(this, vars.getUser());
       } else {
--- a/src/org/openbravo/erpCommon/obps/ActivationKey.java	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/obps/ActivationKey.java	Tue Nov 24 13:50:04 2015 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2009-2013 Openbravo SLU 
+ * All portions are Copyright (C) 2009-2015 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -51,6 +51,8 @@
 import java.util.zip.CRC32;
 
 import javax.crypto.Cipher;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Appender;
@@ -64,14 +66,18 @@
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.base.session.OBPropertiesProvider;
+import org.openbravo.base.weld.WeldUtils;
 import org.openbravo.dal.core.DalContextListener;
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.database.ConnectionProvider;
 import org.openbravo.erpCommon.obps.DisabledModules.Artifacts;
+import org.openbravo.erpCommon.obps.ModuleLicenseRestrictions.ActivationMsg;
+import org.openbravo.erpCommon.obps.ModuleLicenseRestrictions.MsgSeverity;
 import org.openbravo.erpCommon.utility.HttpsUtils;
 import org.openbravo.erpCommon.utility.OBError;
+import org.openbravo.erpCommon.utility.OBMessageUtils;
 import org.openbravo.erpCommon.utility.SystemInfo;
 import org.openbravo.erpCommon.utility.Utility;
 import org.openbravo.model.ad.access.Session;
@@ -81,6 +87,7 @@
 import org.openbravo.model.ad.ui.Tab;
 import org.openbravo.scheduling.ProcessBundle;
 import org.openbravo.service.db.DalConnectionProvider;
+import org.openbravo.xmlEngine.XmlEngine;
 
 public class ActivationKey {
   private final static String OB_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCPwCM5RfisLvWhujHajnLEjEpLC7DOXLySuJmHBqcQ8AQ63yZjlcv3JMkHMsPqvoHF3s2ztxRcxBRLc9C2T3uXQg0PTH5IAxsV4tv05S+tNXMIajwTeYh1LCoQyeidiid7FwuhtQNQST9/FqffK1oVFBnWUfgZKLMO2ZSHoEAORwIDAQAB";
@@ -117,6 +124,8 @@
   private boolean limitNamedUsers = false;
   private boolean outOfPlatform = false;
   private Long maxUsers;
+  private Long posTerminals;
+  private Long posTerminalsWarn;
 
   private boolean notActiveYet = false;
   private boolean inconsistentInstance = false;
@@ -139,7 +148,7 @@
   private static final int REFRESH_MIN_TIME = 60;
 
   public enum LicenseRestriction {
-    NO_RESTRICTION, OPS_INSTANCE_NOT_ACTIVE, NUMBER_OF_SOFT_USERS_REACHED, NUMBER_OF_CONCURRENT_USERS_REACHED, MODULE_EXPIRED, NOT_MATCHED_INSTANCE, HB_NOT_ACTIVE, EXPIRED_GOLDEN, CONCURRENT_NAMED_USER, ON_DEMAND_OFF_PLATFORM
+    NO_RESTRICTION, OPS_INSTANCE_NOT_ACTIVE, NUMBER_OF_SOFT_USERS_REACHED, NUMBER_OF_CONCURRENT_USERS_REACHED, MODULE_EXPIRED, NOT_MATCHED_INSTANCE, HB_NOT_ACTIVE, EXPIRED_GOLDEN, CONCURRENT_NAMED_USER, ON_DEMAND_OFF_PLATFORM, POS_TERMINALS_EXCEEDED
   }
 
   public enum CommercialModuleStatus {
@@ -225,6 +234,7 @@
   /**
    * Session types that are considered for user concurrency
    */
+  @SuppressWarnings("serial")
   private static final List<String> ACTIVE_SESSION_TYPES = new ArrayList<String>() {
     {
       add("S");
@@ -232,6 +242,7 @@
       add("SUR");
     }
   };
+  public static final Long NO_LIMIT = -1L;
 
   private static ActivationKey instance = new ActivationKey();
 
@@ -502,6 +513,31 @@
       return;
     }
 
+    if (instanceProperties.containsKey("posTerminals")
+        && !StringUtils.isBlank(getProperty("posTerminals"))) {
+      try {
+        posTerminals = new Long(getProperty("posTerminals"));
+      } catch (Exception e) {
+        log.error("Couldn't read number of terminals " + getProperty("posTerminals"), e);
+        posTerminals = 0L;
+      }
+    } else {
+      // it can be old license without terminal info, or terminal being empty which stands for no
+      // terminal allowed
+      posTerminals = 0L;
+    }
+
+    if (instanceProperties.containsKey("posTerminalsWarn")
+        && !StringUtils.isBlank(getProperty("posTerminalsWarn"))) {
+      try {
+        posTerminalsWarn = new Long(getProperty("posTerminalsWarn"));
+      } catch (Exception e) {
+        log.error("Couldn't read number of terminals warn " + getProperty("posTerminalsWarn"), e);
+      }
+    } else {
+      posTerminalsWarn = null;
+    }
+
     checkDates();
   }
 
@@ -799,6 +835,47 @@
     return messageType;
   }
 
+  /** activation message to be displayed in Instance Activation window */
+  public ActivationMsg getActivationMessage() {
+    if (StringUtils.isNotEmpty(errorMessage)) {
+      // there is a core message (expiration, etc.), return it
+      return new ActivationMsg(MsgSeverity.valueOf(messageType), errorMessage);
+    }
+
+    // look for messages defined by modules
+    String customMsg = "";
+    MsgSeverity severity = MsgSeverity.ERROR;
+    for (ModuleLicenseRestrictions moduleRestriction : getModuleLicenseRestrictions()) {
+      ActivationMsg moduleMsg = moduleRestriction.getActivationMessage(this, OBContext
+          .getOBContext().getLanguage().getLanguage());
+
+      if (moduleMsg != null) {
+        customMsg += moduleMsg.getMsgText();
+        severity = moduleMsg.getSeverity();
+      }
+    }
+
+    if (StringUtils.isEmpty(customMsg)) {
+      return null;
+    }
+
+    return new ActivationMsg(severity, customMsg);
+  }
+
+  /** gets HTML to be injected in Instance Activation window with additional actions to be performed */
+  public String getInstanceActivationExtraActionsHtml(XmlEngine xmlEngine) {
+    String html = "";
+
+    for (ModuleLicenseRestrictions moduleRestriction : getModuleLicenseRestrictions()) {
+      String moduleHtml = moduleRestriction.getInstanceActivationExtraActionsHtml(xmlEngine);
+      if (moduleHtml != null) {
+        html += moduleHtml;
+      }
+    }
+
+    return html;
+  }
+
   /**
    * Deprecated, use instead {@link ActivationKey#checkOPSLimitations(String)}
    * 
@@ -881,6 +958,18 @@
       result = LicenseRestriction.ON_DEMAND_OFF_PLATFORM;
     }
 
+    if (result == LicenseRestriction.NO_RESTRICTION) {
+      // no restrictions so far, checking now if any of the installed modules adds a new restriction
+      for (ModuleLicenseRestrictions moduleRestriction : getModuleLicenseRestrictions()) {
+        result = moduleRestriction.checkRestrictions(this, currentSession);
+        if (result == null) {
+          result = LicenseRestriction.NO_RESTRICTION;
+        } else if (result != LicenseRestriction.NO_RESTRICTION) {
+          return result;
+        }
+      }
+    }
+
     return result;
   }
 
@@ -1100,6 +1189,11 @@
       sb.append(getWSExplanation(conn, lang));
       sb.append("</td></tr>");
 
+      sb.append("<tr><td>").append(Utility.messageBD(conn, "OPSPOSLimitation", lang))
+          .append("</td><td>");
+      sb.append(getPOSTerminalsExplanation());
+      sb.append("</td></tr>");
+
     } else {
       sb.append(Utility.messageBD(conn, "OPSNonActiveInstance", lang));
     }
@@ -1119,9 +1213,7 @@
     }
   }
 
-  /**
-   * Returns a message explaining WS call limitations
-   */
+  /** Returns a message explaining WS call limitations */
   public String getWSExplanation(ConnectionProvider conn, String lang) {
     if (!limitedWsAccess) {
       return Utility.messageBD(conn, "OPSWSUnlimited", lang);
@@ -1133,6 +1225,17 @@
     }
   }
 
+  /** Returns a message for POS Terminals limitations */
+  public String getPOSTerminalsExplanation() {
+    if (posTerminals == 0) {
+      return OBMessageUtils.messageBD("OPSNone");
+    } else if (posTerminals == NO_LIMIT) {
+      return OBMessageUtils.messageBD("OPSWSUnlimited");
+    } else {
+      return posTerminals.toString();
+    }
+  }
+
   public boolean hasExpirationDate() {
     return isOPSInstance() && (getProperty("enddate") != null);
   }
@@ -1314,7 +1417,9 @@
     if (hasActivationKey
         && !subscriptionConvertedProperty
         && !trial
-        && (hasExpired || checkNewWSCall(false) != WSRestriction.NO_RESTRICTION || checkOPSLimitations(null) == LicenseRestriction.NUMBER_OF_CONCURRENT_USERS_REACHED)) {
+        && (hasExpired || checkNewWSCall(false) != WSRestriction.NO_RESTRICTION
+            || checkOPSLimitations(null) == LicenseRestriction.NUMBER_OF_CONCURRENT_USERS_REACHED || !instanceProperties
+              .containsKey("posTerminals"))) {
       refreshLicense(24 * 60);
     } else {
       if (licenseType == LicenseType.ON_DEMAND && outOfPlatform) {
@@ -1552,7 +1657,8 @@
   }
 
   /**
-   * Returns a JSONObject with a message warning about near expiration or already expired instance.
+   * Returns a JSONObject with a message warning about near expiration or already expired instance
+   * to be displayed in Login page.
    * 
    */
   public JSONObject getExpirationMessage(String lang) {
@@ -1567,6 +1673,16 @@
 
       // Community or professional without expiration
       if (pendingTime == null || subscriptionActuallyConverted) {
+        // no restrictions so far, checking now if any of the installed modules adds a new
+        // restriction
+        for (ModuleLicenseRestrictions moduleRestriction : getModuleLicenseRestrictions()) {
+          ActivationMsg msg = moduleRestriction.getActivationMessage(this, lang);
+
+          if (msg != null) {
+            result.put("type", "Error"); // always error for login page (warn is shown as an alert)
+            result.put("text", msg.getMsgText());
+          }
+        }
         return result;
       }
 
@@ -1797,4 +1913,23 @@
   public boolean isOffPlatform() {
     return outOfPlatform;
   }
+
+  public Long getAllowedPosTerminals() {
+    // posTerminals not set if community: do not apply restriction
+    return posTerminals == null ? NO_LIMIT : posTerminals;
+  }
+
+  public Long getPosTerminalsWarn() {
+    return posTerminalsWarn;
+  }
+
+  private List<ModuleLicenseRestrictions> getModuleLicenseRestrictions() {
+    List<ModuleLicenseRestrictions> result = new ArrayList<ModuleLicenseRestrictions>();
+    BeanManager bm = WeldUtils.getStaticInstanceBeanManager();
+    for (Bean<?> restrictionBean : bm.getBeans(ModuleLicenseRestrictions.class)) {
+      result.add((ModuleLicenseRestrictions) bm.getReference(restrictionBean,
+          ModuleLicenseRestrictions.class, bm.createCreationalContext(restrictionBean)));
+    }
+    return result;
+  }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/openbravo/erpCommon/obps/ModuleLicenseRestrictions.java	Tue Nov 24 13:50:04 2015 +0100
@@ -0,0 +1,95 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html 
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License. 
+ * The Original Code is Openbravo ERP. 
+ * The Initial Developer of the Original Code is Openbravo SLU 
+ * All portions are Copyright (C) 2015 Openbravo SLU 
+ * All Rights Reserved. 
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.erpCommon.obps;
+
+import javax.enterprise.context.ApplicationScoped;
+
+import org.openbravo.erpCommon.obps.ActivationKey.LicenseRestriction;
+import org.openbravo.xmlEngine.XmlEngine;
+
+/**
+ * Modules can check for License restrictions. To do so this interface should be implemented.
+ * 
+ * @author alostale
+ *
+ */
+@ApplicationScoped
+public interface ModuleLicenseRestrictions {
+  /**
+   * Returns LicenseRestrictions applicable to this instance, or null or
+   * LicenseRestriction.NO_RESTRICTION in case of no restriction.
+   */
+  public LicenseRestriction checkRestrictions(ActivationKey activationKey, String currentSession);
+
+  /**
+   * Returns a message related to activation key or null none required. It will be shown in:
+   * <ul>
+   * <li>Login Page
+   * <li>Instance Activation window
+   * </ul>
+   */
+  public ActivationMsg getActivationMessage(ActivationKey activationKey, String lang);
+
+  /** Provides the HTML to be injected in Instance Activation window to perform additional actions */
+  public String getInstanceActivationExtraActionsHtml(XmlEngine xmlEngine);
+
+  public enum MsgSeverity {
+    WARN("Warning"), ERROR("Error");
+
+    private String type;
+
+    MsgSeverity(String type) {
+      this.type = type;
+    }
+
+    MsgSeverity forType(String typeToCheck) {
+      for (MsgSeverity severity : MsgSeverity.values()) {
+        if (typeToCheck.equals(severity.toString())) {
+          return severity;
+        }
+      }
+      // fallback, if not found return error
+      return ERROR;
+    }
+
+    @Override
+    public String toString() {
+      return type;
+    }
+  }
+
+  /** holder for activation key messages */
+  public class ActivationMsg {
+    private MsgSeverity severity;
+    private String msgText;
+
+    public ActivationMsg(MsgSeverity severity, String msgText) {
+      this.severity = severity;
+      this.msgText = msgText;
+    }
+
+    public MsgSeverity getSeverity() {
+      return severity;
+    }
+
+    public String getMsgText() {
+      return msgText;
+    }
+  }
+}
--- a/src/org/openbravo/erpCommon/security/Login.html	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/security/Login.html	Tue Nov 24 13:50:04 2015 +0100
@@ -406,7 +406,7 @@
     }
     catch (e) { }
 
-    if ((!revisionControl('27919')) || (isOpsInstance() != isOpsInstanceCached())) {
+    if ((!revisionControl('28036')) || (isOpsInstance() != isOpsInstanceCached())) {
       maskLoginWindow(cacheMsg);
       setLoginMessage('Warning', '', cacheMsg);
     }
--- a/src/org/openbravo/erpCommon/security/Login_F1.html	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/security/Login_F1.html	Tue Nov 24 13:50:04 2015 +0100
@@ -126,7 +126,7 @@
       clearForm();
     } catch (e) {}
     setWindowElementFocus('firstElement');
-    if ((!revisionControl('27919')) || (isOpsInstance() != isOpsInstanceCached())) {
+    if ((!revisionControl('28036')) || (isOpsInstance() != isOpsInstanceCached())) {
       alert(cacheMsg);
     }
 
--- a/src/org/openbravo/erpCommon/utility/PopupLoading.html	Mon Nov 23 10:08:15 2015 +0100
+++ b/src/org/openbravo/erpCommon/utility/PopupLoading.html	Tue Nov 24 13:50:04 2015 +0100
@@ -38,7 +38,7 @@
   <script language="javascript">
     function onLoadDo() {
       moreOnLoadDoFunctions();
-      if (isIE9Strict || isIE11 || isEdge) {
+      if (isIE9Strict || isEdge) {
         var i=0;
         var setOpenerInterval = setInterval(
           function() {
--- a/web/js/utils.js	Mon Nov 23 10:08:15 2015 +0100
+++ b/web/js/utils.js	Tue Nov 24 13:50:04 2015 +0100
@@ -26,12 +26,9 @@
  * Code that will be executed once the file is parsed
 */
 function utilsJSDirectExecution() {
-  if (navigator.userAgent.toUpperCase().indexOf("MSIE") !== -1 && getBrowserInfo('documentMode') >= 9 && parseInt(getBrowserInfo('majorVersion'), 10) >= 9) {
+  if ((navigator.userAgent.toUpperCase().indexOf("MSIE") !== -1 || navigator.userAgent.toUpperCase().indexOf("TRIDENT") !== -1) && getBrowserInfo('documentMode') >= 9 && parseInt(getBrowserInfo('majorVersion'), 10) >= 9) {
     isIE9Strict = true;
   }
-  if (navigator.userAgent.toUpperCase().indexOf("TRIDENT") !== -1 && parseInt(getBrowserInfo('majorVersion'), 10) == 11) {
-    isIE11 = true;
-  }
   if (navigator.userAgent.toUpperCase().indexOf("EDGE") !== -1) {
     isEdge = true;
   }
@@ -46,7 +43,6 @@
 }
 
 var isIE9Strict = false;
-var isIE11 = false;
 var isEdge = false;
 var isRTL = false;
 var isWindowInMDIPopup = false;
@@ -109,7 +105,7 @@
 * Return a number that would be checked at the Login screen to know if the file is cached with the correct version
 */
 function getCurrentRevision() {
-  var number = '27919';
+  var number = '28036';
   return number;
 }