Attached Files | retail-selfcheckout.diff [^] (3,094 bytes) 2018-04-09 13:51 [Show Content] [Hide Content]diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -1058,6 +1058,18 @@
<!--DE51266AE18A413F9B0CD393B82DBDA1--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--DE51266AE18A413F9B0CD393B82DBDA1--></AD_MESSAGE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--><AD_MESSAGE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <AD_MESSAGE_ID><![CDATA[DFC31255F2B24C3F9E46D13AE4F8D255]]></AD_MESSAGE_ID>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <VALUE><![CDATA[OBSCO_LoadingRefreshPOS]]></VALUE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <MSGTEXT><![CDATA[Please wait while refreshing the POS]]></MSGTEXT>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <AD_MODULE_ID><![CDATA[BE4899E811AC4F21BD965A6AA7D0BA79]]></AD_MODULE_ID>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--></AD_MESSAGE>
+
<!--DFF00AF8496E4D98A2888A2C6DDD4AFE--><AD_MESSAGE>
<!--DFF00AF8496E4D98A2888A2C6DDD4AFE--> <AD_MESSAGE_ID><![CDATA[DFF00AF8496E4D98A2888A2C6DDD4AFE]]></AD_MESSAGE_ID>
<!--DFF00AF8496E4D98A2888A2C6DDD4AFE--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/web/org.openbravo.retail.selfcheckout/source/steps/startWelcome.js b/web/org.openbravo.retail.selfcheckout/source/steps/startWelcome.js
--- a/web/org.openbravo.retail.selfcheckout/source/steps/startWelcome.js
+++ b/web/org.openbravo.retail.selfcheckout/source/steps/startWelcome.js
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2017 Openbravo S.L.U.
+ * Copyright (C) 2017-2018 Openbravo S.L.U.
* Licensed under the Openbravo Commercial License version 1.0
* You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
* or in the legal folder of this module distribution.
@@ -20,5 +20,22 @@
showLanguagesToolbar: true,
allowDeleteLines: false,
rfidEnabled: false,
- barcodeEnabled: false
-});
\ No newline at end of file
+ barcodeEnabled: false,
+ show: function (data) {
+ this.inherited(arguments);
+ if (OB.MobileApp.model.get('refreshMasterdata')) {
+ OB.SCO.Utils.showLoading({
+ label: OB.I18N.getLabel('OBSCO_LoadingRefreshPOS')
+ });
+ OB.MobileApp.model.on('incrementalModelsLoaded', function () {
+ OB.MobileApp.model.off('incrementalModelsLoaded');
+ OB.SCO.Utils.hideLoading();
+ if (OB.UTIL.RfidController.isRfidConfigured()) {
+ OB.UTIL.RfidController.connectRFIDDevice();
+ }
+ });
+ OB.UTIL.clearFlagAndTimersRefreshMasterData();
+ OB.MobileApp.model.loadModels(null, true);
+ }
+ }
+});
mobile-core.diff [^] (920 bytes) 2018-04-17 09:32 [Show Content] [Hide Content]diff --git a/web/org.openbravo.mobile.core/source/data/ob-windowmodel.js b/web/org.openbravo.mobile.core/source/data/ob-windowmodel.js
--- a/web/org.openbravo.mobile.core/source/data/ob-windowmodel.js
+++ b/web/org.openbravo.mobile.core/source/data/ob-windowmodel.js
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2012-2013 Openbravo S.L.U.
+ * Copyright (C) 2012-2018 Openbravo S.L.U.
* Licensed under the Openbravo Commercial License version 1.0
* You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
* or in the legal folder of this module distribution.
@@ -59,6 +59,7 @@
this.models.on('ready', function () {
loadTheWindow();
+ OB.UTIL.HookManager.executeHooks('OBMOBC_PostWindowNavigate', {}, function (args) {});
}, this);
if (!OB.MobileApp.model.get('loggedOffline')) {
retail-posterminal.diff [^] (28,676 bytes) 2018-04-19 08:30 [Show Content] [Hide Content]diff --git a/src-db/database/model/tables/OBPOS_TERMINALTYPE.xml b/src-db/database/model/tables/OBPOS_TERMINALTYPE.xml
--- a/src-db/database/model/tables/OBPOS_TERMINALTYPE.xml
+++ b/src-db/database/model/tables/OBPOS_TERMINALTYPE.xml
@@ -125,6 +125,10 @@
<default><![CDATA[N]]></default>
<onCreateDefault/>
</column>
+ <column name="MINUTESTORESHOWFRESHDATAINC" primaryKey="false" required="false" type="DECIMAL" autoIncrement="false">
+ <default/>
+ <onCreateDefault><![CDATA[5]]></onCreateDefault>
+ </column>
<foreign-key foreignTable="C_DOCTYPE" name="OBPOS_DOCTYPE_QUOT_ID">
<reference local="C_DOCTYPEQUOT_ID" foreign="C_DOCTYPE_ID"/>
</foreign-key>
@@ -150,6 +154,7 @@
<index-column name="C_DOCTYPEQUOT_ID"/>
<whereClause><![CDATA[C_DOCTYPEQUOT_ID IS NOT NULL]]></whereClause>
</index>
+ <check name="OBPOS_MINSHOWFRESHDATAINC_CHK"><![CDATA[MINUTESTORESHOWFRESHDATAINC < MINUTESTOREFRESHDATAINC]]></check>
<check name="OBPOS_OPENRELATEDRECEIPTS_CHK"><![CDATA[OPENRELATEDRECEIPTS IN ('Y', 'N')]]></check>
<check name="OBPOS_SHOWTAXBREAKDOWN_CHK"><![CDATA[SHOWTAXBREAKDOWN IN ('Y', 'N')]]></check>
<check name="OBPOS_TERTYPE_GENINVOICE_CHK"><![CDATA[GENERATEINVOICE IN ('Y', 'N')]]></check>
diff --git a/src-db/database/sourcedata/AD_COLUMN.xml b/src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml
+++ b/src-db/database/sourcedata/AD_COLUMN.xml
@@ -13624,7 +13624,7 @@
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
-<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <POSITION><![CDATA[29]]></POSITION>
+<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <POSITION><![CDATA[31]]></POSITION>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
@@ -14210,6 +14210,46 @@
<!--D00CF8288FC946F0A2663D2138C8EACE--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
<!--D00CF8288FC946F0A2663D2138C8EACE--></AD_COLUMN>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--><AD_COLUMN>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_COLUMN_ID><![CDATA[D07B4A890AF44E4BBF1744D9F2AA9714]]></AD_COLUMN_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <NAME><![CDATA[MinutesToShowRefreshDataInc]]></NAME>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <DESCRIPTION><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></DESCRIPTION>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <HELP><![CDATA[This field allows the user to specify the interval of time to wait before forcing the incremental refresh if no action is performed on WebPOS and there is a pending incremental will be configured in a POS Terminal Window]]></HELP>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <COLUMNNAME><![CDATA[Minutestoreshowfreshdatainc]]></COLUMNNAME>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_TABLE_ID><![CDATA[1ECA0B99F44F4FD1854B7DDA9292A75F]]></AD_TABLE_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_REFERENCE_ID><![CDATA[11]]></AD_REFERENCE_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <FIELDLENGTH><![CDATA[2]]></FIELDLENGTH>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <DEFAULTVALUE><![CDATA[5]]></DEFAULTVALUE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISKEY><![CDATA[N]]></ISKEY>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <SEQNO><![CDATA[300]]></SEQNO>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <VALUEMIN><![CDATA[0]]></VALUEMIN>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_ELEMENT_ID><![CDATA[990753B61A3B4BE791A1F3D4C9A238E2]]></AD_ELEMENT_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <POSITION><![CDATA[32]]></POSITION>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--></AD_COLUMN>
+
<!--D2C53C7357E9468CA7D49184F02C780C--><AD_COLUMN>
<!--D2C53C7357E9468CA7D49184F02C780C--> <AD_COLUMN_ID><![CDATA[D2C53C7357E9468CA7D49184F02C780C]]></AD_COLUMN_ID>
<!--D2C53C7357E9468CA7D49184F02C780C--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_ELEMENT.xml b/src-db/database/sourcedata/AD_ELEMENT.xml
--- a/src-db/database/sourcedata/AD_ELEMENT.xml
+++ b/src-db/database/sourcedata/AD_ELEMENT.xml
@@ -1656,6 +1656,20 @@
<!--98B35C33740A480A9975F28DFBA83AC8--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
<!--98B35C33740A480A9975F28DFBA83AC8--></AD_ELEMENT>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--><AD_ELEMENT>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <AD_ELEMENT_ID><![CDATA[990753B61A3B4BE791A1F3D4C9A238E2]]></AD_ELEMENT_ID>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <COLUMNNAME><![CDATA[MinutesToShowRefreshDataInc]]></COLUMNNAME>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <NAME><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></NAME>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <PRINTNAME><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></PRINTNAME>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <DESCRIPTION><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></DESCRIPTION>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <HELP><![CDATA[This field allows the user to specify the interval of time to wait before forcing the incremental refresh if no action is performed on WebPOS and there is a pending incremental will be configured in a POS Terminal Window]]></HELP>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--></AD_ELEMENT>
+
<!--9938C711711948A6B33BE015E02753E0--><AD_ELEMENT>
<!--9938C711711948A6B33BE015E02753E0--> <AD_ELEMENT_ID><![CDATA[9938C711711948A6B33BE015E02753E0]]></AD_ELEMENT_ID>
<!--9938C711711948A6B33BE015E02753E0--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_FIELD.xml b/src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml
+++ b/src-db/database/sourcedata/AD_FIELD.xml
@@ -9984,6 +9984,34 @@
<!--F3212AB3B83C450C95964F084EEF5E52--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
<!--F3212AB3B83C450C95964F084EEF5E52--></AD_FIELD>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--><AD_FIELD>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_FIELD_ID><![CDATA[F3EA88B2BFA445EEAB992346821E7C8E]]></AD_FIELD_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <NAME><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></NAME>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <DESCRIPTION><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></DESCRIPTION>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <HELP><![CDATA[This field allows the user to specify the interval of time to wait before forcing the incremental refresh if no action is performed on WebPOS and there is a pending incremental will be configured in a POS Terminal Window]]></HELP>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_TAB_ID><![CDATA[D01039797B054BE69CA5770B8CFB933C]]></AD_TAB_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_COLUMN_ID><![CDATA[D07B4A890AF44E4BBF1744D9F2AA9714]]></AD_COLUMN_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <DISPLAYLENGTH><![CDATA[2]]></DISPLAYLENGTH>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <SEQNO><![CDATA[95]]></SEQNO>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--></AD_FIELD>
+
<!--F3FAB59DF4D54B86AB7A435E4EF1C64E--><AD_FIELD>
<!--F3FAB59DF4D54B86AB7A435E4EF1C64E--> <AD_FIELD_ID><![CDATA[F3FAB59DF4D54B86AB7A435E4EF1C64E]]></AD_FIELD_ID>
<!--F3FAB59DF4D54B86AB7A435E4EF1C64E--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -997,6 +997,18 @@
<!--1A49DEC52F304B47B6DF39D32072634C--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--1A49DEC52F304B47B6DF39D32072634C--></AD_MESSAGE>
+<!--1A753A306E434B3EB588CC02C9253FC1--><AD_MESSAGE>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <AD_MESSAGE_ID><![CDATA[1A753A306E434B3EB588CC02C9253FC1]]></AD_MESSAGE_ID>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <VALUE><![CDATA[OBPOS_MasterdataWillHappenOnReturnToWebPOS]]></VALUE>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <MSGTEXT><![CDATA[Master Data Refresh will happen once returned to WebPOS]]></MSGTEXT>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--1A753A306E434B3EB588CC02C9253FC1--></AD_MESSAGE>
+
<!--1A9AABD246474DCF8A54BE84FB3F825C--><AD_MESSAGE>
<!--1A9AABD246474DCF8A54BE84FB3F825C--> <AD_MESSAGE_ID><![CDATA[1A9AABD246474DCF8A54BE84FB3F825C]]></AD_MESSAGE_ID>
<!--1A9AABD246474DCF8A54BE84FB3F825C--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -4299,6 +4311,18 @@
<!--6E0FDD7BD9F24FBCBF0B453E8F2F70AF--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--6E0FDD7BD9F24FBCBF0B453E8F2F70AF--></AD_MESSAGE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--><AD_MESSAGE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <AD_MESSAGE_ID><![CDATA[6E64BDFAD4484A279D405FA7C5D8C140]]></AD_MESSAGE_ID>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <VALUE><![CDATA[OBPOS_MasterdataWillHappenOnCloseTicket]]></VALUE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <MSGTEXT><![CDATA[Master data refresh will happen after this ticket is closed]]></MSGTEXT>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--></AD_MESSAGE>
+
<!--6E7851DD77824C198A76CD0A4A56A6DF--><AD_MESSAGE>
<!--6E7851DD77824C198A76CD0A4A56A6DF--> <AD_MESSAGE_ID><![CDATA[6E7851DD77824C198A76CD0A4A56A6DF]]></AD_MESSAGE_ID>
<!--6E7851DD77824C198A76CD0A4A56A6DF--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/web/org.openbravo.retail.posterminal/js/cashmgmt/view/cashmgmt.js b/web/org.openbravo.retail.posterminal/js/cashmgmt/view/cashmgmt.js
--- a/web/org.openbravo.retail.posterminal/js/cashmgmt/view/cashmgmt.js
+++ b/web/org.openbravo.retail.posterminal/js/cashmgmt/view/cashmgmt.js
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2012-2017 Openbravo S.L.U.
+ * Copyright (C) 2012-2018 Openbravo S.L.U.
* Licensed under the Openbravo Commercial License version 1.0
* You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
* or in the legal folder of this module distribution.
@@ -71,6 +71,8 @@
kind: 'OB.UI.WindowView',
windowmodel: OB.OBPOSCashMgmt.Model.CashManagement,
tag: 'section',
+ allowedIncrementalRefresh: false,
+ incrementalRefreshOnNavigate: false,
events: {
onShowPopup: ''
},
diff --git a/web/org.openbravo.retail.posterminal/js/closecash/view/closecash.js b/web/org.openbravo.retail.posterminal/js/closecash/view/closecash.js
--- a/web/org.openbravo.retail.posterminal/js/closecash/view/closecash.js
+++ b/web/org.openbravo.retail.posterminal/js/closecash/view/closecash.js
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2012-2017 Openbravo S.L.U.
+ * Copyright (C) 2012-2018 Openbravo S.L.U.
* Licensed under the Openbravo Commercial License version 1.0
* You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
* or in the legal folder of this module distribution.
@@ -125,6 +125,8 @@
enyo.kind({
name: 'OB.OBPOSCashUp.UI.CashUp',
kind: 'OB.UI.WindowView',
+ allowedIncrementalRefresh: false,
+ incrementalRefreshOnNavigate: false,
synchId: null,
statics: {
TitleExtensions: [],
diff --git a/web/org.openbravo.retail.posterminal/js/components/menuhook.js b/web/org.openbravo.retail.posterminal/js/components/menuhook.js
--- a/web/org.openbravo.retail.posterminal/js/components/menuhook.js
+++ b/web/org.openbravo.retail.posterminal/js/components/menuhook.js
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2014-2017 Openbravo S.L.U.
+ * Copyright (C) 2014-2018 Openbravo S.L.U.
* Licensed under the Openbravo Commercial License version 1.0
* You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
* or in the legal folder of this module distribution.
@@ -24,4 +24,9 @@
} else {
OB.UTIL.HookManager.callbackExecutor(args, callbacks);
}
+});
+
+OB.UTIL.HookManager.registerHook('OBMOBC_PostWindowNavigate', function (args, callbacks) {
+ // Refresh Master Data
+ OB.UTIL.checkRefreshMasterDataOnNavigate();
});
\ No newline at end of file
diff --git a/web/org.openbravo.retail.posterminal/js/login/model/login-model.js b/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
--- a/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
+++ b/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
@@ -769,7 +769,6 @@
postLoginActions: function () {
OB.debug("next process: renderTerminalMain");
- var loadModelsIncFunc;
//MASTER DATA REFRESH
var minIncRefresh = this.get('terminal').terminalType.minutestorefreshdatainc,
minTotalRefresh = this.get('terminal').terminalType.minutestorefreshdatatotal * 60 * 1000,
@@ -800,66 +799,16 @@
OB.POS.hwserver.showSelected(); // Show the selected printers
if (minIncRefresh) {
- loadModelsIncFunc = function () {
- OB.MobileApp.model.set('secondsToRefreshMasterdata', 3);
- var counterIntervalId = null;
- counterIntervalId = setInterval(function () {
- OB.MobileApp.model.set('secondsToRefreshMasterdata', OB.MobileApp.model.get('secondsToRefreshMasterdata') - 1);
- if (OB.MobileApp.model.get('secondsToRefreshMasterdata') === 0) {
- clearInterval(counterIntervalId);
-
- OB.UTIL.startLoadingSteps();
- OB.MobileApp.model.set('isLoggingIn', true);
- OB.UTIL.showLoading(true);
- OB.MobileApp.model.on('incrementalModelsLoaded', function () {
- OB.MobileApp.model.off('incrementalModelsLoaded');
- OB.UTIL.showLoading(false);
- OB.MobileApp.model.set('isLoggingIn', false);
- });
-
- OB.MobileApp.model.loadModels(null, true);
- }
- }, 1000);
-
- OB.MobileApp.view.$.dialogsContainer.createComponent({
- kind: 'OB.UI.ModalAction',
- header: OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshed'),
- bodyContent: {
- content: OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshedMessage', [OB.MobileApp.model.get('secondsToRefreshMasterdata')])
- },
- bodyButtons: {
- kind: 'OB.UI.ModalDialogButton',
- content: OB.I18N.getLabel('OBMOBC_LblCancel'),
- tap: function () {
- OB.MobileApp.model.off('change:secondsToRefreshMasterdata');
- clearInterval(counterIntervalId);
- this.doHideThisPopup();
- }
- },
- autoDismiss: false,
- hideCloseButton: true,
- executeOnShow: function () {
- var reloadPopup = this;
- OB.MobileApp.model.on('change:secondsToRefreshMasterdata', function () {
- reloadPopup.$.bodyContent.$.control.setContent(OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshedMessage', [OB.MobileApp.model.get('secondsToRefreshMasterdata')]));
- if (OB.MobileApp.model.get('secondsToRefreshMasterdata') === 0) {
- reloadPopup.hide();
- OB.MobileApp.model.off('change:secondsToRefreshMasterdata');
- }
- });
- }
- }).show();
-
- };
// in case there was no incremental load at login then schedule an incremental
// load at the next expected time, which can be earlier than the standard interval
+ OB.MobileApp.model.set('refreshMasterdataInterval', minIncRefresh);
if (intervalInc < 0 && OB.MobileApp.model.hasPermission('OBMOBC_NotAutoLoadIncrementalAtLogin', true)) {
setTimeout(function () {
- loadModelsIncFunc();
- setInterval(loadModelsIncFunc, minIncRefresh);
+ OB.UTIL.loadModelsIncFunc();
+ OB.MobileApp.model.set('refreshMasterdataIntervalHandler', setInterval(OB.UTIL.loadModelsIncFunc, minIncRefresh));
}, intervalInc * -1);
} else {
- setInterval(loadModelsIncFunc, minIncRefresh);
+ OB.MobileApp.model.set('refreshMasterdataIntervalHandler', setInterval(OB.UTIL.loadModelsIncFunc, minIncRefresh));
}
}
diff --git a/web/org.openbravo.retail.posterminal/js/model/order.js b/web/org.openbravo.retail.posterminal/js/model/order.js
--- a/web/org.openbravo.retail.posterminal/js/model/order.js
+++ b/web/org.openbravo.retail.posterminal/js/model/order.js
@@ -6165,6 +6165,9 @@
}
me.current = me.at(0);
me.loadCurrent(createNew);
+
+ // Refresh Master Data
+ OB.UTIL.checkRefreshMasterData();
}
if (OB.MobileApp.model.hasPermission('OBPOS_remove_ticket', true) && !this.current.get('isQuotation') && OB.MobileApp.model.receipt.id === this.current.id && this.current.get('lines').length === 0 && !this.current.has('deletedLines') && (this.current.get('documentnoSuffix') <= OB.MobileApp.model.documentnoThreshold || OB.MobileApp.model.documentnoThreshold === 0)) {
diff --git a/web/org.openbravo.retail.posterminal/js/pointofsale/view/pointofsale.js b/web/org.openbravo.retail.posterminal/js/pointofsale/view/pointofsale.js
--- a/web/org.openbravo.retail.posterminal/js/pointofsale/view/pointofsale.js
+++ b/web/org.openbravo.retail.posterminal/js/pointofsale/view/pointofsale.js
@@ -15,6 +15,8 @@
kind: 'OB.UI.WindowView',
windowmodel: OB.OBPOSPointOfSale.Model.PointOfSale,
tag: 'section',
+ allowedIncrementalRefresh: true,
+ incrementalRefreshOnNavigate: true,
handlers: {
onAddProduct: 'addProductToOrder',
onViewProductDetails: 'viewProductDetails',
diff --git a/web/org.openbravo.retail.posterminal/js/utils/ob-utilitiesuipos.js b/web/org.openbravo.retail.posterminal/js/utils/ob-utilitiesuipos.js
--- a/web/org.openbravo.retail.posterminal/js/utils/ob-utilitiesuipos.js
+++ b/web/org.openbravo.retail.posterminal/js/utils/ob-utilitiesuipos.js
@@ -470,4 +470,119 @@
OB.UTIL.setScanningFocus = function (focus) {
OB.MobileApp.view.scanningFocus(focus);
+};
+
+OB.UTIL.clearFlagAndTimersRefreshMasterData = function () {
+ OB.MobileApp.model.set('refreshMasterdataShowPopup', true);
+ OB.MobileApp.model.set('refreshMasterdata', false);
+};
+
+OB.UTIL.checkRefreshMasterData = function () {
+ if (OB.MobileApp.model.get('refreshMasterdata') === true && OB.UTIL.refreshMasterDataGetProperty('allowedIncrementalRefresh')) {
+ OB.UTIL.clearFlagAndTimersRefreshMasterData();
+ OB.UTIL.refreshMasterData();
+ }
+};
+
+OB.UTIL.checkRefreshMasterDataOnNavigate = function () {
+ if (OB.MobileApp.model.get('refreshMasterdata') === true && OB.UTIL.refreshMasterDataGetProperty('incrementalRefreshOnNavigate')) {
+ OB.UTIL.checkRefreshMasterData();
+ }
+};
+
+OB.UTIL.refreshMasterData = function () {
+ OB.MobileApp.model.set('secondsToRefreshMasterdata', 3);
+ var counterIntervalId = null;
+ counterIntervalId = setInterval(function () {
+ OB.MobileApp.model.set('secondsToRefreshMasterdata', OB.MobileApp.model.get('secondsToRefreshMasterdata') - 1);
+ if (OB.MobileApp.model.get('secondsToRefreshMasterdata') === 0) {
+ OB.MobileApp.model.set('refreshMasterdataShowPopup', false);
+ clearInterval(counterIntervalId);
+ if (OB.UTIL.RfidController.isRfidConfigured()) {
+ OB.UTIL.RfidController.disconnectRFIDDevice();
+ }
+ OB.UTIL.startLoadingSteps();
+ OB.MobileApp.model.set('isLoggingIn', true);
+ OB.UTIL.showLoading(true);
+ OB.MobileApp.model.on('incrementalModelsLoaded', function () {
+ OB.MobileApp.model.off('incrementalModelsLoaded');
+ OB.UTIL.showLoading(false);
+ if (OB.UTIL.RfidController.isRfidConfigured()) {
+ OB.UTIL.RfidController.connectRFIDDevice();
+ }
+ OB.MobileApp.model.set('isLoggingIn', false);
+ });
+
+ OB.MobileApp.model.loadModels(null, true);
+ }
+ }, 1000);
+
+ OB.MobileApp.view.$.dialogsContainer.createComponent({
+ kind: 'OB.UI.ModalAction',
+ header: OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshed'),
+ bodyContent: {
+ content: OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshedMessage', [OB.MobileApp.model.get('secondsToRefreshMasterdata')])
+ },
+ bodyButtons: {
+ kind: 'OB.UI.ModalDialogButton',
+ content: OB.I18N.getLabel('OBMOBC_LblCancel'),
+ tap: function () {
+ OB.MobileApp.model.set('refreshMasterdataShowPopup', false);
+ OB.MobileApp.model.off('change:secondsToRefreshMasterdata');
+ clearInterval(counterIntervalId);
+ this.doHideThisPopup();
+ }
+ },
+ autoDismiss: false,
+ hideCloseButton: true,
+ executeOnShow: function () {
+ var reloadPopup = this;
+ OB.MobileApp.model.on('change:secondsToRefreshMasterdata', function () {
+ reloadPopup.$.bodyContent.$.control.setContent(OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshedMessage', [OB.MobileApp.model.get('secondsToRefreshMasterdata')]));
+ if (OB.MobileApp.model.get('secondsToRefreshMasterdata') === 0) {
+ reloadPopup.hide();
+ OB.MobileApp.model.off('change:secondsToRefreshMasterdata');
+ }
+ });
+ }
+ }).show();
+
+ OB.info(OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshed'));
+ clearInterval(OB.MobileApp.model.get('refreshMasterdataIntervalHandler'));
+ OB.MobileApp.model.set('refreshMasterdataIntervalHandler', setInterval(OB.UTIL.loadModelsIncFunc, OB.MobileApp.model.get('refreshMasterdataInterval')));
+};
+
+OB.UTIL.refreshMasterDataGetProperty = function (prop) {
+ var currentWindow = _.find(OB.MobileApp.model.windows.models, function (win) {
+ return win.get('route') === OB.MobileApp.view.currentWindow;
+ });
+ if (currentWindow) {
+ var windowClass = currentWindow.get('windowClass');
+ if (windowClass && typeof windowClass === 'function') {
+ return windowClass.prototype[prop];
+ }
+ }
+ return false;
+};
+
+OB.UTIL.loadModelsIncFunc = function () {
+ var msg = OB.I18N.getLabel(OB.MobileApp.view.currentWindow === 'retail.pointofsale' ? 'OBPOS_MasterdataWillHappenOnCloseTicket' : 'OBPOS_MasterdataWillHappenOnReturnToWebPOS'),
+ minutesToShowRefreshDataInc = OB.MobileApp.model.get('terminal').terminalType.minutesToShowRefreshDataInc,
+ minShowIncRefresh = OB.UTIL.isNullOrUndefined(minutesToShowRefreshDataInc) ? undefined : minutesToShowRefreshDataInc * 60 * 1000;
+ if (OB.UTIL.isNullOrUndefined(minShowIncRefresh) || minShowIncRefresh > 0) {
+ OB.info(msg);
+ OB.UTIL.showWarning(msg);
+ }
+ OB.MobileApp.model.set('refreshMasterdata', true);
+ if (!OB.UTIL.isNullOrUndefined(minShowIncRefresh) && minShowIncRefresh >= 0) {
+ var noActivityTimeout = OB.MobileApp.model.get('refreshMasterdataNoActivityTimeout');
+ if (OB.UTIL.isNullOrUndefined(noActivityTimeout)) {
+ OB.MobileApp.model.set('refreshMasterdataNoActivityTimeout', true);
+ setTimeout(function () {
+ // Refresh Master Data
+ OB.MobileApp.model.unset('refreshMasterdataNoActivityTimeout');
+ OB.UTIL.checkRefreshMasterData();
+ }, minShowIncRefresh);
+ }
+ }
};
\ No newline at end of file
test_modules.diff [^] (14,201 bytes) 2018-04-20 12:33 [Show Content] [Hide Content]diff --git a/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/cashup/I38194_ResfreshMasterData.java b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/cashup/I38194_ResfreshMasterData.java
new file mode 100644
--- /dev/null
+++ b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/cashup/I38194_ResfreshMasterData.java
@@ -0,0 +1,208 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo Public License
+ * Version 1.0 (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 S.L.U.
+ * All portions are Copyright (C) 2018 Openbravo S.L.U.
+ * All Rights Reserved.
+ * Contributor(s):
+ ************************************************************************
+ *
+ * @author EBE
+ *
+ */
+
+package org.openbravo.test.mobile.retail.extmodules.selenium.tests.cashup;
+
+import org.junit.Test;
+import org.openbravo.test.mobile.core.selenium.SeleniumHelper;
+import org.openbravo.test.mobile.retail.extmodules.selenium.TestIdExtModules;
+import org.openbravo.test.mobile.retail.mobilecore.annotations.TestClassAnnotations;
+import org.openbravo.test.mobile.retail.mobilecore.database.DatabaseHelperInsertUpdateOrDelete;
+import org.openbravo.test.mobile.retail.mobilecore.utils.ApplicationWindow;
+import org.openbravo.test.mobile.retail.pack.selenium.TestIdPack;
+import org.openbravo.test.mobile.retail.pack.selenium.terminals.WebPOSTerminalHelper;
+
+@TestClassAnnotations(isHighVolumeCompatible = true)
+public class I38194_ResfreshMasterData extends WebPOSTerminalHelper {
+
+ @Test
+ public void testOpenCashUpWaitAndProcess() {
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHUP);
+ verify(TestIdPack.LABEL_CASHUP_TITLE, "Cash Up");
+
+ /*
+ * try { TimeUnit.MINUTES.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); }
+ */
+
+ final String titleExtensions = (String) SeleniumHelper
+ .executeScriptWithReturn("OB.OBPOSCashUp.UI.CashUp.getTitleExtensions()");
+
+ // step 1 of 4
+ verify(TestIdPack.LABEL_CASHUP_STEP2_TITLE, "Step 1 of 4: Count Cash" + titleExtensions);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 2 of 4
+ verify(TestIdPack.LABEL_CASHUP_STEP3_TITLE, "Step 2 of 4: Count Cash" + titleExtensions);
+ tap(TestIdPack.BUTTON_CASHUP_CARD_OK);
+ tap(TestIdPack.BUTTON_CASHUP_CASHUSA_OK);
+ tap(TestIdPack.BUTTON_CASHUP_VOUCHER_OK);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 3 of 4
+ // cash
+ verify(TestIdPack.LABEL_CASHUP_STEP4_TITLE, "Step 3 of 4: Select Cash to keep"
+ + titleExtensions);
+ verify(TestIdPack.LABEL_CASHUP_KEEPNOTHING, "Nothing");
+ tap(TestIdPack.BUTTON_CASHUP_KEEPNOTHING);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+ // usa cash
+ verify(TestIdPack.LABEL_CASHUP_STEP4_TITLE, "Step 3 of 4: Select USA Cash to keep"
+ + titleExtensions);
+ verify(TestIdPack.LABEL_CASHUP_KEEPNOTHING, "Nothing");
+ tap(TestIdPack.BUTTON_CASHUP_KEEPNOTHING);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+ // voucher
+ verify(TestIdPack.LABEL_CASHUP_STEP4_TITLE, "Step 3 of 4: Select Voucher to keep"
+ + titleExtensions);
+ verify(TestIdPack.LABEL_CASHUP_KEEPNOTHING, "Nothing");
+ tap(TestIdPack.BUTTON_CASHUP_KEEPNOTHING);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 4 of 4
+ verify(TestIdPack.LABEL_CASHUP_STEP5_TITLE, "Step 4 of 4: Post, print and close"
+ + titleExtensions);
+ verify(TestIdPack.LABEL_CASHUP_POSTPRINTANDCLOSE, "Post, Print & Close");
+ tap(TestIdPack.BUTTON_CASHUP_POSTPRINTANDCLOSE);
+
+ // done
+ verify(TestIdPack.LABEL_POPUP_TITLE, "Good job!");
+ tap(TestIdPack.BUTTON_POPUP_OK);
+
+ opentTill();
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Test
+ public void testOpenCashUpWaitAndRemoveOpenTicketAndComplete() {
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ // Create receipt
+ tap(TestIdPack.BUTTON_SEARCH);
+ write(TestIdExtModules.FIELD_SEARCH_TEXT, "Avalanche transceiver");
+ tap(TestIdExtModules.BUTTON_SEARCH_EXECUTE);
+ tap(TestIdExtModules.BUTTON_SEARCHPRODUCT_FIRSTROW);
+ verify(TestIdPack.LABEL_TOTALTOPAY, "150.50");
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHUP);
+ verify(TestIdPack.LABEL_CASHUP_TITLE, "Cash Up");
+ /*
+ * try { TimeUnit.MINUTES.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); }
+ */
+ final String titleExtensions = (String) SeleniumHelper
+ .executeScriptWithReturn("OB.OBPOSCashUp.UI.CashUp.getTitleExtensions()");
+ // Delete All
+ verify(TestIdPack.LABEL_CASHUP_STEP1_TITLE, "Step 1 of 5: Review pending receipts"
+ + titleExtensions);
+ tap(TestIdPack.BUTTON_CASHUP_DELETE_ALL_ORDER);
+ tap(TestIdPack.BUTTON_CASHUP_DELETE_ORDER_YES);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 2 of 5
+ verify(TestIdPack.LABEL_CASHUP_STEP2_TITLE, "Step 2 of 5: Count Cash" + titleExtensions);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 3 of 5
+ verify(TestIdPack.LABEL_CASHUP_STEP3_TITLE, "Step 3 of 5: Count Cash" + titleExtensions);
+ tap(TestIdPack.BUTTON_CASHUP_CARD_OK);
+ tap(TestIdPack.BUTTON_CASHUP_CASHUSA_OK);
+ tap(TestIdPack.BUTTON_CASHUP_VOUCHER_OK);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 4 of 5
+ // cash
+ verify(TestIdPack.LABEL_CASHUP_STEP4_TITLE, "Step 4 of 5: Select Cash to keep"
+ + titleExtensions);
+ verify(TestIdPack.LABEL_CASHUP_KEEPNOTHING, "Nothing");
+ tap(TestIdPack.BUTTON_CASHUP_KEEPNOTHING);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+ // usa cash
+ verify(TestIdPack.LABEL_CASHUP_STEP4_TITLE, "Step 4 of 5: Select USA Cash to keep"
+ + titleExtensions);
+ verify(TestIdPack.LABEL_CASHUP_KEEPNOTHING, "Nothing");
+ tap(TestIdPack.BUTTON_CASHUP_KEEPNOTHING);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+ // voucher
+ verify(TestIdPack.LABEL_CASHUP_STEP4_TITLE, "Step 4 of 5: Select Voucher to keep"
+ + titleExtensions);
+ verify(TestIdPack.LABEL_CASHUP_KEEPNOTHING, "Nothing");
+ tap(TestIdPack.BUTTON_CASHUP_KEEPNOTHING);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 5 of 5
+ verify(TestIdPack.LABEL_CASHUP_STEP5_TITLE, "Step 5 of 5: Post, print and close"
+ + titleExtensions);
+ verify(TestIdPack.LABEL_CASHUP_POSTPRINTANDCLOSE, "Post, Print & Close");
+ tap(TestIdPack.BUTTON_CASHUP_POSTPRINTANDCLOSE);
+
+ // done
+ verify(TestIdPack.LABEL_POPUP_TITLE, "Good job!");
+ tap(TestIdPack.BUTTON_POPUP_OK);
+
+ opentTill();
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ private void opentTill() {
+ // Do login
+ waitUntilCertainWindowIsReached(ApplicationWindow.LOGIN);
+ write(TestIdExtModules.FIELD_LOGIN_USERNAME, "vallblanca");
+ write(TestIdExtModules.FIELD_LOGIN_PASSWORD, "openbravo");
+ tap(TestIdExtModules.BUTTON_LOGIN);
+
+ // Open Till
+ waitUntilCertainWindowIsReached(ApplicationWindow.OPENTILLCOUNTCASH);
+ verify(TestIdExtModules.BUTTON_SESSIONS_OPENTILL_DONE, "Done");
+ tap(TestIdExtModules.BUTTON_SESSIONS_OPENTILL_DONE);
+
+ verify(TestIdExtModules.LABEL_POPUP_TITLE, "Good job!");
+ tap(TestIdExtModules.BUTTON_POPUP_OK);
+
+ waitUntilCertainWindowIsReached(ApplicationWindow.POINTOFSALE);
+ verify(TestIdExtModules.LABEL_TOTALTOPAY, "0.00");
+ }
+
+ private void checkRefreshMasterData() {
+ verify(TestIdPack.LABEL_POPUP_MODALACTION_TITLE, "Masterdata needs to be reloaded");
+ }
+
+ private void changeTimeIncremental(boolean isChanged) {
+ String sql = String
+ .format(
+ "UPDATE obpos_terminaltype SET minutestorefreshdatainc=%s, minutestoreshowfreshdatainc = %s WHERE obpos_terminaltype_id='BD39916225594B32A88983899CF05F72'",
+ isChanged ? 2 : 60, isChanged ? 1 : null);
+ new DatabaseHelperInsertUpdateOrDelete().execute(sql, 1);
+ }
+
+}
diff --git a/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckout/I38194_SCORefreshMasterData.java b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckout/I38194_SCORefreshMasterData.java
new file mode 100644
--- /dev/null
+++ b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckout/I38194_SCORefreshMasterData.java
@@ -0,0 +1,153 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo Public License
+ * Version 1.0 (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 S.L.U.
+ * All portions are Copyright (C) 2018 Openbravo S.L.U.
+ * All Rights Reserved.
+ * Contributor(s):
+ ************************************************************************
+ */
+package org.openbravo.test.mobile.retail.extmodules.selenium.tests.selfcheckout;
+
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openbravo.test.mobile.retail.extmodules.selenium.tests.selfcheckoututils.TestIDSCO;
+import org.openbravo.test.mobile.retail.extmodules.selenium.tests.selfcheckoututils.TestSteps;
+import org.openbravo.test.mobile.retail.mobilecore.annotations.TestClassAnnotations;
+import org.openbravo.test.mobile.retail.mobilecore.database.DatabaseHelperInsertUpdateOrDelete;
+import org.openbravo.test.mobile.retail.pack.selenium.TestIdPack;
+
+@TestClassAnnotations(isHighVolumeCompatible = true)
+public class I38194_SCORefreshMasterData extends SCOTerminalHelper {
+
+ @Test
+ public void doSCOEnterWaitAndExit() {
+
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+
+ goSCO();
+ assertStepName(TestSteps.STARTWELCOME);
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ goPOS();
+ verify(TestIdPack.LABEL_POPUP_MODALACTION_TITLE, "Masterdata needs to be reloaded");
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ goSCO();
+ }
+ }
+
+ @Test
+ public void doSCOWaitBeforeEnter() {
+
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ goSCO();
+ assertStepName(TestSteps.STARTWELCOME);
+
+ verify(TestIDSCO.SHOW_LOADING_TEXT, "Please wait while refreshing the POS");
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Test
+ public void doSCOWaitAndPayReceipt() {
+
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+
+ goSCO();
+ assertStepName(TestSteps.STARTWELCOME);
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ tap(TestIDSCO.WELCOME_START);
+ assertStepName(TestSteps.BUYBAGS);
+
+ tap(TestIDSCO.BUYBAGS_YES);
+ assertStepName(TestSteps.BUYBAGSSELECTION);
+ tap(TestIDSCO.BUYBAGSSELECTION_BIG_BAG);
+ verify(TestIDSCO.RECEIPT_TOTAL, "2.00€");
+ tap(TestIDSCO.BUYBAGSSELECTION_CONTINUE);
+
+ assertStepName(TestSteps.SCANPRODUCT);
+ tap(TestIDSCO.SCAN_FINISHANDPAY);
+ assertStepName(TestSteps.CONFIRMBASKET);
+ verify(TestIDSCO.CONFIRM_TOPMSG, "You have *1 product(s)* in the receipt \nTOTAL: *2.00€*");
+
+ tap(TestIDSCO.CONFIRM_CONTINUE);
+ assertStepName(TestSteps.SELECTPAYMENT);
+ tap(TestIDSCO.SELECTPAYMENT_PAYMENT_0); // Credit card ask
+ assertStepName(TestSteps.MOCKPAYMENT);
+ tap(TestIDSCO.MOCKPAYMENT_PAY);
+
+ assertStepName(TestSteps.RECEIPTPRINT);
+ tap(TestIDSCO.PRINTRECEIPT_BUTTONNO);
+ assertStepName(TestSteps.THANKYOU);
+ tap(TestIDSCO.THANKYOU_NEWTRANSACTION);
+
+ assertStepName(TestSteps.STARTWELCOME);
+ verify(TestIDSCO.SHOW_LOADING_TEXT, "Please wait while refreshing the POS");
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Before
+ @Override
+ public void before() {
+ parentBefore();
+ }
+
+ private void changeTimeIncremental(boolean isChanged) {
+ String sql = String
+ .format(
+ "UPDATE obpos_terminaltype SET minutestorefreshdatainc=%s, minutestoreshowfreshdatainc = %s WHERE obpos_terminaltype_id = '0B57B9B6AA69451D8257F521E3257B7A'",
+ isChanged ? 2 : 60, isChanged ? 1 : null);
+ new DatabaseHelperInsertUpdateOrDelete().execute(sql, 1);
+ }
+
+}
test_core.diff [^] (26,799 bytes) 2018-04-24 13:51 [Show Content] [Hide Content]diff --git a/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckout/SCOTerminalHelper.java b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckout/SCOTerminalHelper.java
--- a/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckout/SCOTerminalHelper.java
+++ b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckout/SCOTerminalHelper.java
@@ -11,7 +11,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo S.L.U.
- * All portions are Copyright (C) 2017 Openbravo S.L.U.
+ * All portions are Copyright (C) 2017-2018 Openbravo S.L.U.
* All Rights Reserved.
* Contributor(s):
************************************************************************
@@ -61,6 +61,10 @@
super.after();
}
+ protected void parentBefore() {
+ super.before();
+ }
+
public void goSCO() {
tap(TestIdPack.BUTTON_MENU);
tap(TestIDSCO.BUTTON_MENU_SELFCHECKOUT);
diff --git a/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckoututils/TestIDSCO.java b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckoututils/TestIDSCO.java
--- a/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckoututils/TestIDSCO.java
+++ b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/selfcheckoututils/TestIDSCO.java
@@ -11,7 +11,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo S.L.U.
- * All portions are Copyright (C) 2017 Openbravo S.L.U.
+ * All portions are Copyright (C) 2017-2018 Openbravo S.L.U.
* All Rights Reserved.
* Contributor(s):
************************************************************************
@@ -203,4 +203,9 @@
// Thank you
public final static TestIdConstructor THANKYOU_NEWTRANSACTION = new TestIdConstructor( //
"ThankYouPanel_newTransaction", EnyoKind.BUTTON); //
+
+ // Loading label
+ public final static TestIdConstructor SHOW_LOADING_TEXT = new TestIdConstructor( //
+ "LoadingAnimation_loadingLabel"); //
+
}
diff --git a/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I34868_ResetCacheModelAfterIncrementalRefresh.java b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I34868_ResetCacheModelAfterIncrementalRefresh.java
--- a/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I34868_ResetCacheModelAfterIncrementalRefresh.java
+++ b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I34868_ResetCacheModelAfterIncrementalRefresh.java
@@ -56,13 +56,19 @@
verify(TestIdPack.LABEL_RECEIPT_ROW2_TITLE, "Adhesive body warmers");
verify(TestIdPack.LABEL_TOTALTOPAY, "154.10");
+ newUPCEANCodes(false);
+ try {
+ TimeUnit.MINUTES.sleep(1);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
tap(TestIdPack.BUTTON_DELETERECEIPT);
tap(TestIdPack.BUTTON_DELETERECEIPT_CONFIRM);
verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
- newUPCEANCodes(false);
try {
- TimeUnit.MINUTES.sleep(1);
+ TimeUnit.SECONDS.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
diff --git a/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I38194_ResfreshMasterDataCashManagement.java b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I38194_ResfreshMasterDataCashManagement.java
new file mode 100644
--- /dev/null
+++ b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I38194_ResfreshMasterDataCashManagement.java
@@ -0,0 +1,157 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo Public License
+ * Version 1.0 (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 S.L.U.
+ * All portions are Copyright (C) 2018 Openbravo S.L.U.
+ * All Rights Reserved.
+ * Contributor(s):
+ ************************************************************************
+ *
+ * @author EBE
+ *
+ */
+
+package org.openbravo.test.mobile.retail.pack.selenium.tests.system;
+
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Test;
+import org.openbravo.test.mobile.core.selenium.SeleniumHelper;
+import org.openbravo.test.mobile.core.utils.OBUtils;
+import org.openbravo.test.mobile.retail.mobilecore.annotations.TestClassAnnotations;
+import org.openbravo.test.mobile.retail.mobilecore.database.DatabaseHelperInsertUpdateOrDelete;
+import org.openbravo.test.mobile.retail.pack.API.WebPOSAPI;
+import org.openbravo.test.mobile.retail.pack.selenium.TestIdPack;
+import org.openbravo.test.mobile.retail.pack.selenium.terminals.WebPOSTerminalHelper;
+
+@TestClassAnnotations(isHighVolumeCompatible = true)
+public class I38194_ResfreshMasterDataCashManagement extends WebPOSTerminalHelper {
+
+ @Test
+ public void testOpenCashManagementWaitAndManualNavigate() {
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ // Open CashManagent Window
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHMANAGEMENT);
+ verify(TestIdPack.LABEL_CASHMANAGEMENT_TITLE, "Cash Management");
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ // Manual return to PointOfSale
+ navigateToPointOfSale();
+
+ checkRefreshMasterData();
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Test
+ public void testOpenCashManagementWaitAndCancel() {
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ // Open CashManagent Window
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHMANAGEMENT);
+ verify(TestIdPack.LABEL_CASHMANAGEMENT_TITLE, "Cash Management");
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ // Cancel CahsManagement
+ tap(TestIdPack.BUTTON_CASHMANAGEMENT_CANCEL);
+
+ checkRefreshMasterData();
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Test
+ public void testOpenCashManagementWaitAndMakeDeposit() {
+ WebPOSAPI.cleanCashup(this);
+
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ // Open CashManagent Window
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHMANAGEMENT);
+ verify(TestIdPack.LABEL_CASHMANAGEMENT_TITLE, "Cash Management");
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ // Make a deposit
+ WebPOSAPI.tapKeypad(this, 100);
+ tap(TestIdPack.BUTTON_CASHMANAGEMENT_CASHDEPOSIT);
+ verify(TestIdPack.LABEL_SELECTDEPOSIT_BACOFFICEVBS, "Backoffice transfer to VBS");
+ tap(TestIdPack.BUTTON_SELECTDEPOSIT_BACOFFICEVBS);
+ verify(TestIdPack.LABEL_CASHMANAGEMENT_ROW1_DESCRIPTION,
+ "Deposit: Cash - Backoffice transfer to VBS");
+ verify(TestIdPack.LABEL_CASHMANAGEMENT_ROW1_AMOUNT, "100.00");
+
+ // Complete the CashManagement
+ tap(TestIdPack.BUTTON_CASHMANAGEMENT_DONE);
+ verify(TestIdPack.LABEL_POPUP_TITLE, "Done");
+ tap(TestIdPack.BUTTON_POPUP_OK);
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+
+ checkRefreshMasterData();
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ private void navigateToPointOfSale() {
+ String href = OBUtils.getCurrentHref();
+ href = href.substring(0, href.indexOf("#")) + "#retail.pointofsale";
+ SeleniumHelper.executeScript("window.location.href = '" + href + "'");
+ }
+
+ private void checkRefreshMasterData() {
+ verify(TestIdPack.LABEL_POPUP_MODALACTION_TITLE, "Masterdata needs to be reloaded");
+ }
+
+ private void changeTimeIncremental(boolean isChanged) {
+ String sql = String
+ .format(
+ "UPDATE obpos_terminaltype SET minutestorefreshdatainc=%s, minutestoreshowfreshdatainc = %s WHERE obpos_terminaltype_id='BD39916225594B32A88983899CF05F72'",
+ isChanged ? 2 : null, isChanged ? 1 : null);
+ new DatabaseHelperInsertUpdateOrDelete().execute(sql, 1);
+ }
+
+}
diff --git a/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I38194_ResfreshMasterDataCashUp.java b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I38194_ResfreshMasterDataCashUp.java
new file mode 100644
--- /dev/null
+++ b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I38194_ResfreshMasterDataCashUp.java
@@ -0,0 +1,293 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo Public License
+ * Version 1.0 (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 S.L.U.
+ * All portions are Copyright (C) 2018 Openbravo S.L.U.
+ * All Rights Reserved.
+ * Contributor(s):
+ ************************************************************************
+ *
+ * @author EBE
+ *
+ */
+
+package org.openbravo.test.mobile.retail.pack.selenium.tests.system;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Test;
+import org.openbravo.test.mobile.core.selenium.SeleniumHelper;
+import org.openbravo.test.mobile.core.utils.OBUtils;
+import org.openbravo.test.mobile.retail.extmodules.selenium.TestIdExtModules;
+import org.openbravo.test.mobile.retail.mobilecore.annotations.TestClassAnnotations;
+import org.openbravo.test.mobile.retail.mobilecore.database.DatabaseHelperInsertUpdateOrDelete;
+import org.openbravo.test.mobile.retail.mobilecore.javascript.EnyoNode;
+import org.openbravo.test.mobile.retail.mobilecore.selenium.TestIdConstructor;
+import org.openbravo.test.mobile.retail.mobilecore.utils.ApplicationWindow;
+import org.openbravo.test.mobile.retail.pack.selenium.TestIdPack;
+import org.openbravo.test.mobile.retail.pack.selenium.terminals.WebPOSTerminalHelper;
+
+@TestClassAnnotations(isHighVolumeCompatible = true)
+public class I38194_ResfreshMasterDataCashUp extends WebPOSTerminalHelper {
+
+ @Test
+ public void testOpenCashUpAndCancelAndNotRefresh() {
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHUP);
+ verify(TestIdPack.LABEL_CASHUP_TITLE, "Cash Up");
+
+ try {
+ TimeUnit.SECONDS.sleep(20);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ tap(TestIdPack.BUTTON_CASHUP_CANCEL);
+
+ waitUntilCertainWindowIsReached(ApplicationWindow.POINTOFSALE);
+
+ final TestIdConstructor dom = TestIdPack.LABEL_POPUP_MODALACTION_TITLE;
+ EnyoNode node = dom.enyoNode();
+ boolean dataRefresh = node.exists();
+ assertThat("ERROR: Resfresh Master Data will be execute.", dataRefresh, equalTo(false));
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Test
+ public void testOpenCashUpWaitAndManualNavigate() {
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHUP);
+ verify(TestIdPack.LABEL_CASHUP_TITLE, "Cash Up");
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ // Manual return to PointOfSale
+ navigateToPointOfSale();
+
+ checkRefreshMasterData();
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Test
+ public void testOpenCashUpWaitAndCancel() {
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHUP);
+ verify(TestIdPack.LABEL_CASHUP_TITLE, "Cash Up");
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ tap(TestIdPack.BUTTON_CASHUP_CANCEL);
+
+ checkRefreshMasterData();
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Test
+ public void testOpenCashUpWaitAndProcess() {
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHUP);
+ verify(TestIdPack.LABEL_CASHUP_TITLE, "Cash Up");
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ // step 1 of 4
+ verify(TestIdPack.LABEL_CASHUP_STEP2_TITLE, "Step 1 of 4: Count Cash");
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 2 of 4
+ verify(TestIdPack.LABEL_CASHUP_STEP3_TITLE, "Step 2 of 4: Count Cash");
+ tap(TestIdPack.BUTTON_CASHUP_CARD_OK);
+ tap(TestIdPack.BUTTON_CASHUP_CASHUSA_OK);
+ tap(TestIdPack.BUTTON_CASHUP_VOUCHER_OK);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 3 of 4
+ // cash
+ verify(TestIdPack.LABEL_CASHUP_STEP4_TITLE, "Step 3 of 4: Select Cash to keep");
+ verify(TestIdPack.LABEL_CASHUP_KEEPNOTHING, "Nothing");
+ tap(TestIdPack.BUTTON_CASHUP_KEEPNOTHING);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+ // usa cash
+ verify(TestIdPack.LABEL_CASHUP_STEP4_TITLE, "Step 3 of 4: Select USA Cash to keep");
+ verify(TestIdPack.LABEL_CASHUP_KEEPNOTHING, "Nothing");
+ tap(TestIdPack.BUTTON_CASHUP_KEEPNOTHING);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+ // voucher
+ verify(TestIdPack.LABEL_CASHUP_STEP4_TITLE, "Step 3 of 4: Select Voucher to keep");
+ verify(TestIdPack.LABEL_CASHUP_KEEPNOTHING, "Nothing");
+ tap(TestIdPack.BUTTON_CASHUP_KEEPNOTHING);
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+
+ // step 4 of 4
+ verify(TestIdPack.LABEL_CASHUP_STEP5_TITLE, "Step 4 of 4: Post, print and close");
+ verify(TestIdPack.LABEL_CASHUP_POSTPRINTANDCLOSE, "Post, Print & Close");
+ tap(TestIdPack.BUTTON_CASHUP_POSTPRINTANDCLOSE);
+
+ // done
+ verify(TestIdPack.LABEL_POPUP_TITLE, "Good job!");
+ tap(TestIdPack.BUTTON_POPUP_OK);
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+
+ checkRefreshMasterData();
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Test
+ public void testOpenCashUpWaitAndRemoveOpenTicket() {
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ // Create receipt
+ tap(TestIdPack.BUTTON_SEARCH);
+ write(TestIdPack.FIELD_SEARCH_TEXT, "Avalanche transceiver");
+ tap(TestIdPack.BUTTON_SEARCH_EXECUTE);
+ tap(TestIdPack.BUTTON_SEARCHPRODUCT_AVALANCHETRANSCEIVER);
+ verify(TestIdPack.LABEL_TOTALTOPAY, "150.50");
+
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHUP);
+ verify(TestIdPack.LABEL_CASHUP_TITLE, "Cash Up");
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ // Delete All
+ verify(TestIdPack.LABEL_CASHUP_STEP1_TITLE, "Step 1 of 5: Review pending receipts");
+ tap(TestIdPack.BUTTON_CASHUP_DELETE_ALL_ORDER);
+ tap(TestIdPack.BUTTON_CASHUP_DELETE_ORDER_YES);
+
+ // step 1 of 4
+ tap(TestIdPack.BUTTON_CASHUP_NEXT);
+ verify(TestIdPack.LABEL_CASHUP_STEP2_TITLE, "Step 2 of 5: Count Cash");
+
+ // Cancel Cash Up
+ tap(TestIdPack.BUTTON_CASHUP_CANCEL);
+
+ checkRefreshMasterData();
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ @Test
+ public void testOpenCashUpWaitAndCompleteOpenTicket() {
+ changeTimeIncremental(true);
+ reload();
+
+ try {
+ // Create receipt
+ tap(TestIdPack.BUTTON_SEARCH);
+ write(TestIdPack.FIELD_SEARCH_TEXT, "Avalanche transceiver");
+ tap(TestIdPack.BUTTON_SEARCH_EXECUTE);
+ tap(TestIdPack.BUTTON_SEARCHPRODUCT_AVALANCHETRANSCEIVER);
+ verify(TestIdPack.LABEL_TOTALTOPAY, "150.50");
+
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_CASHUP);
+ verify(TestIdPack.LABEL_CASHUP_TITLE, "Cash Up");
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ // Cancel Cash Up
+ tap(TestIdPack.BUTTON_CASHUP_CANCEL);
+
+ checkRefreshMasterData();
+
+ verify(TestIdPack.LABEL_TOTALTOPAY, "150.50");
+ tap(TestIdExtModules.BUTTON_PAY);
+ tap(TestIdExtModules.BUTTON_PAY_EXACT);
+ tap(TestIdExtModules.BUTTON_PAY_DONE);
+ verify(TestIdExtModules.LABEL_TOTALTOPAY, "0.00");
+
+ } finally {
+ changeTimeIncremental(false);
+ reload();
+ }
+ }
+
+ private void navigateToPointOfSale() {
+ String href = OBUtils.getCurrentHref();
+ href = href.substring(0, href.indexOf("#")) + "#retail.pointofsale";
+ SeleniumHelper.executeScript("window.location.href = '" + href + "'");
+ }
+
+ private void checkRefreshMasterData() {
+ verify(TestIdPack.LABEL_POPUP_MODALACTION_TITLE, "Masterdata needs to be reloaded");
+ }
+
+ private void changeTimeIncremental(boolean isChanged) {
+ String sql = String
+ .format(
+ "UPDATE obpos_terminaltype SET minutestorefreshdatainc=%s, minutestoreshowfreshdatainc = %s WHERE obpos_terminaltype_id='BD39916225594B32A88983899CF05F72'",
+ isChanged ? 2 : null, isChanged ? 1 : null);
+ new DatabaseHelperInsertUpdateOrDelete().execute(sql, 1);
+ }
+
+}
diff --git a/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I38194_ResfreshMasterDataPointOfSale.java b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I38194_ResfreshMasterDataPointOfSale.java
new file mode 100644
--- /dev/null
+++ b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/system/I38194_ResfreshMasterDataPointOfSale.java
@@ -0,0 +1,219 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo Public License
+ * Version 1.0 (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 S.L.U.
+ * All portions are Copyright (C) 2018 Openbravo S.L.U.
+ * All Rights Reserved.
+ * Contributor(s):
+ ************************************************************************
+ *
+ * @author EBE
+ *
+ */
+
+package org.openbravo.test.mobile.retail.pack.selenium.tests.system;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Test;
+import org.openbravo.test.mobile.core.selenium.SeleniumHelper;
+import org.openbravo.test.mobile.core.utils.OBWait;
+import org.openbravo.test.mobile.retail.extmodules.selenium.TestIdExtModules;
+import org.openbravo.test.mobile.retail.mobilecore.annotations.TestClassAnnotations;
+import org.openbravo.test.mobile.retail.mobilecore.database.DatabaseHelperInsertUpdateOrDelete;
+import org.openbravo.test.mobile.retail.mobilecore.javascript.BackboneHelper;
+import org.openbravo.test.mobile.retail.pack.selenium.TestIdPack;
+import org.openbravo.test.mobile.retail.pack.selenium.terminals.WebPOSTerminalHelper;
+
+@TestClassAnnotations(isHighVolumeCompatible = true)
+public class I38194_ResfreshMasterDataPointOfSale extends WebPOSTerminalHelper {
+
+ @Test
+ public void testWaitAndDeleteReceipt1And0Minutes() {
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true, 1L, 0L);
+ reload();
+
+ try {
+ SeleniumHelper.executeScript("OB.MobileApp.model.temp = null");
+ changeFunction();
+
+ long time = System.currentTimeMillis();
+ addAvalancheTransceiver();
+ try {
+ time = (System.currentTimeMillis() - time) / 1000;
+ TimeUnit.SECONDS.sleep(50 - time);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ verifyRefreshMasterData();
+ final String result = (String) SeleniumHelper
+ .executeScriptWithReturn("OB.MobileApp.model.temp");
+ assertThat("Warning message is shown", result, equalTo(null));
+
+ deleteReceipt();
+ } finally {
+ changeTimeIncremental(false, null, null);
+ reload();
+ }
+ }
+
+ @Test
+ public void testWaitAndPayReceipt2And1Minutes() {
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true, 2L, 1L);
+ reload();
+
+ try {
+ addAvalancheTransceiver();
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ payReceipt();
+
+ checkRefreshMasterData();
+
+ } finally {
+ changeTimeIncremental(false, null, null);
+ reload();
+ }
+ }
+
+ @Test
+ public void testWaitAndDeleteReceipt2And1Minutes() {
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true, 2L, 1L);
+ reload();
+
+ try {
+ addAvalancheTransceiver();
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ deleteReceipt();
+
+ checkRefreshMasterData();
+
+ } finally {
+ changeTimeIncremental(false, null, null);
+ reload();
+ }
+ }
+
+ @Test
+ public void testLoadPaidReceiptWaitAndDelete2And1Minutes() {
+ final String receiptNo = BackboneHelper.getDocumentNo();
+ addAvalancheTransceiver();
+ payReceipt();
+
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ changeTimeIncremental(true, 2L, 1L);
+ reload();
+
+ try {
+ tap(TestIdPack.BUTTON_MENU);
+ tap(TestIdPack.BUTTON_MENU_OPENRECEIPT);
+ write(TestIdPack.FIELD_OPEN_RECEIPT_FILTER_TXT, receiptNo);
+ tap(TestIdPack.BUTTON_OPEN_RECEIPT_SEARCH);
+ tap(TestIdPack.TABLE_OPEN_RECEIPT, receiptNo);
+ verify(TestIdPack.LABEL_TOTALTOPAY, "150.50");
+
+ try {
+ TimeUnit.MINUTES.sleep(2);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ tap(TestIdPack.BUTTON_DELETERECEIPT);
+
+ checkRefreshMasterData();
+ } finally {
+ changeTimeIncremental(false, null, null);
+ reload();
+ }
+ }
+
+ private void changeFunction() {
+ SeleniumHelper
+ .executeScript("OB.UTIL.showWarning = function(s) { "
+ + " OB.MobileApp.model.temp = s;"
+ + " return OB.UTIL.showAlert.display(s, OB.I18N.getLabel('OBMOBC_LblWarning'), 'alert-warning');"
+ + "};");
+ }
+
+ private void addAvalancheTransceiver() {
+ tap(TestIdPack.BUTTON_SEARCH);
+ write(TestIdPack.FIELD_SEARCH_TEXT, "Avalanche transceiver");
+ tap(TestIdPack.BUTTON_SEARCH_EXECUTE);
+ tap(TestIdPack.BUTTON_SEARCHPRODUCT_AVALANCHETRANSCEIVER);
+ verify(TestIdPack.LABEL_TOTALTOPAY, "150.50");
+ }
+
+ private void deleteReceipt() {
+ tap(TestIdPack.BUTTON_DELETERECEIPT);
+ tap(TestIdPack.BUTTON_DELETERECEIPT_CONFIRM);
+ verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+ }
+
+ private void payReceipt() {
+ tap(TestIdExtModules.BUTTON_PAY);
+ tap(TestIdExtModules.BUTTON_PAY_EXACT);
+ tap(TestIdExtModules.BUTTON_PAY_DONE);
+ verify(TestIdExtModules.LABEL_TOTALTOPAY, "0.00");
+ }
+
+ private void checkRefreshMasterData() {
+ verify(TestIdPack.LABEL_POPUP_MODALACTION_TITLE, "Masterdata needs to be reloaded");
+ }
+
+ private void verifyRefreshMasterData() {
+ new OBWait() {
+ final String expectedContent = "Masterdata needs to be reloaded";
+ String existingContent = null;
+
+ @Override
+ protected boolean until(int currentIteration) {
+ existingContent = TestIdPack.LABEL_POPUP_MODALACTION_TITLE.enyoNode().getContent();
+ return expectedContent.equals(existingContent);
+ }
+
+ @Override
+ protected void timeout() {
+ assertThat(String.format("The expected value for '%s' does not match the existing value.",
+ TestIdPack.LABEL_POPUP_MODALACTION_TITLE.toString()), existingContent,
+ equalTo(expectedContent));
+ }
+ };
+ }
+
+ private void changeTimeIncremental(boolean isChanged, Long minuteRefreshData,
+ Long minuteShowRefreshData) {
+ String sql = String
+ .format(
+ "UPDATE obpos_terminaltype SET minutestorefreshdatainc=%s, minutestoreshowfreshdatainc = %s WHERE obpos_terminaltype_id='BD39916225594B32A88983899CF05F72'",
+ isChanged ? minuteRefreshData : null, isChanged ? minuteShowRefreshData : null);
+ new DatabaseHelperInsertUpdateOrDelete().execute(sql, 1);
+ }
+
+}
backport-17Q2-mobile-core.diff [^] (920 bytes) 2018-05-04 11:47 [Show Content] [Hide Content]diff --git a/web/org.openbravo.mobile.core/source/data/ob-windowmodel.js b/web/org.openbravo.mobile.core/source/data/ob-windowmodel.js
--- a/web/org.openbravo.mobile.core/source/data/ob-windowmodel.js
+++ b/web/org.openbravo.mobile.core/source/data/ob-windowmodel.js
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2012-2013 Openbravo S.L.U.
+ * Copyright (C) 2012-2018 Openbravo S.L.U.
* Licensed under the Openbravo Commercial License version 1.0
* You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
* or in the legal folder of this module distribution.
@@ -59,6 +59,7 @@
this.models.on('ready', function () {
loadTheWindow();
+ OB.UTIL.HookManager.executeHooks('OBMOBC_PostWindowNavigate', {}, function (args) {});
}, this);
if (!OB.MobileApp.model.get('loggedOffline')) {
backport-17Q2-posterminal.diff [^] (28,970 bytes) 2018-05-04 11:48 [Show Content] [Hide Content]diff --git a/src-db/database/model/tables/OBPOS_TERMINALTYPE.xml b/src-db/database/model/tables/OBPOS_TERMINALTYPE.xml
--- a/src-db/database/model/tables/OBPOS_TERMINALTYPE.xml
+++ b/src-db/database/model/tables/OBPOS_TERMINALTYPE.xml
@@ -113,6 +113,10 @@
<default><![CDATA[Y]]></default>
<onCreateDefault/>
</column>
+ <column name="MINUTESTORESHOWFRESHDATAINC" primaryKey="false" required="false" type="DECIMAL" autoIncrement="false">
+ <default/>
+ <onCreateDefault><![CDATA[5]]></onCreateDefault>
+ </column>
<foreign-key foreignTable="C_DOCTYPE" name="OBPOS_DOCTYPE_QUOT_ID">
<reference local="C_DOCTYPEQUOT_ID" foreign="C_DOCTYPE_ID"/>
</foreign-key>
@@ -138,6 +142,7 @@
<index-column name="C_DOCTYPEQUOT_ID"/>
<whereClause><![CDATA[C_DOCTYPEQUOT_ID IS NOT NULL]]></whereClause>
</index>
+ <check name="OBPOS_MINSHOWFRESHDATAINC_CHK"><![CDATA[MINUTESTORESHOWFRESHDATAINC < MINUTESTOREFRESHDATAINC]]></check>
<check name="OBPOS_SHOWTAXBREAKDOWN_CHK"><![CDATA[SHOWTAXBREAKDOWN IN ('Y', 'N')]]></check>
<check name="OBPOS_TERTYPE_GENINVOICE_CHK"><![CDATA[GENERATEINVOICE IN ('Y', 'N')]]></check>
<check name="OBPOS_TERTYPE_GROUPORD_CHK"><![CDATA[GROUPINGORDERS IN ('Y', 'N')]]></check>
diff --git a/src-db/database/sourcedata/AD_COLUMN.xml b/src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml
+++ b/src-db/database/sourcedata/AD_COLUMN.xml
@@ -12484,7 +12484,7 @@
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
-<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <POSITION><![CDATA[29]]></POSITION>
+<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <POSITION><![CDATA[31]]></POSITION>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
<!--C72B7653A2E24B068BC36D29C5FCCEAF--> <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
@@ -13070,6 +13070,46 @@
<!--D00CF8288FC946F0A2663D2138C8EACE--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
<!--D00CF8288FC946F0A2663D2138C8EACE--></AD_COLUMN>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--><AD_COLUMN>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_COLUMN_ID><![CDATA[D07B4A890AF44E4BBF1744D9F2AA9714]]></AD_COLUMN_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <NAME><![CDATA[MinutesToShowRefreshDataInc]]></NAME>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <DESCRIPTION><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></DESCRIPTION>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <HELP><![CDATA[This field allows the user to specify the interval of time to wait before forcing the incremental refresh if no action is performed on WebPOS and there is a pending incremental will be configured in a POS Terminal Window]]></HELP>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <COLUMNNAME><![CDATA[Minutestoreshowfreshdatainc]]></COLUMNNAME>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_TABLE_ID><![CDATA[1ECA0B99F44F4FD1854B7DDA9292A75F]]></AD_TABLE_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_REFERENCE_ID><![CDATA[11]]></AD_REFERENCE_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <FIELDLENGTH><![CDATA[2]]></FIELDLENGTH>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <DEFAULTVALUE><![CDATA[5]]></DEFAULTVALUE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISKEY><![CDATA[N]]></ISKEY>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <SEQNO><![CDATA[300]]></SEQNO>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <VALUEMIN><![CDATA[0]]></VALUEMIN>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_ELEMENT_ID><![CDATA[990753B61A3B4BE791A1F3D4C9A238E2]]></AD_ELEMENT_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <POSITION><![CDATA[32]]></POSITION>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
+<!--D07B4A890AF44E4BBF1744D9F2AA9714--></AD_COLUMN>
+
<!--D2C53C7357E9468CA7D49184F02C780C--><AD_COLUMN>
<!--D2C53C7357E9468CA7D49184F02C780C--> <AD_COLUMN_ID><![CDATA[D2C53C7357E9468CA7D49184F02C780C]]></AD_COLUMN_ID>
<!--D2C53C7357E9468CA7D49184F02C780C--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_ELEMENT.xml b/src-db/database/sourcedata/AD_ELEMENT.xml
--- a/src-db/database/sourcedata/AD_ELEMENT.xml
+++ b/src-db/database/sourcedata/AD_ELEMENT.xml
@@ -1580,6 +1580,20 @@
<!--98B35C33740A480A9975F28DFBA83AC8--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
<!--98B35C33740A480A9975F28DFBA83AC8--></AD_ELEMENT>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--><AD_ELEMENT>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <AD_ELEMENT_ID><![CDATA[990753B61A3B4BE791A1F3D4C9A238E2]]></AD_ELEMENT_ID>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <COLUMNNAME><![CDATA[MinutesToShowRefreshDataInc]]></COLUMNNAME>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <NAME><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></NAME>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <PRINTNAME><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></PRINTNAME>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <DESCRIPTION><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></DESCRIPTION>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <HELP><![CDATA[This field allows the user to specify the interval of time to wait before forcing the incremental refresh if no action is performed on WebPOS and there is a pending incremental will be configured in a POS Terminal Window]]></HELP>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--990753B61A3B4BE791A1F3D4C9A238E2--></AD_ELEMENT>
+
<!--9938C711711948A6B33BE015E02753E0--><AD_ELEMENT>
<!--9938C711711948A6B33BE015E02753E0--> <AD_ELEMENT_ID><![CDATA[9938C711711948A6B33BE015E02753E0]]></AD_ELEMENT_ID>
<!--9938C711711948A6B33BE015E02753E0--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_FIELD.xml b/src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml
+++ b/src-db/database/sourcedata/AD_FIELD.xml
@@ -9029,6 +9029,34 @@
<!--F0B7FCD1E9ADD6ACE040007F01004192--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
<!--F0B7FCD1E9ADD6ACE040007F01004192--></AD_FIELD>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--><AD_FIELD>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_FIELD_ID><![CDATA[F3EA88B2BFA445EEAB992346821E7C8E]]></AD_FIELD_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <NAME><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></NAME>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <DESCRIPTION><![CDATA[Time to Show Incremental Refresh Popup (in minutes)]]></DESCRIPTION>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <HELP><![CDATA[This field allows the user to specify the interval of time to wait before forcing the incremental refresh if no action is performed on WebPOS and there is a pending incremental will be configured in a POS Terminal Window]]></HELP>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_TAB_ID><![CDATA[D01039797B054BE69CA5770B8CFB933C]]></AD_TAB_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_COLUMN_ID><![CDATA[D07B4A890AF44E4BBF1744D9F2AA9714]]></AD_COLUMN_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <DISPLAYLENGTH><![CDATA[2]]></DISPLAYLENGTH>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <SEQNO><![CDATA[95]]></SEQNO>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--F3EA88B2BFA445EEAB992346821E7C8E--></AD_FIELD>
+
<!--F3FAB59DF4D54B86AB7A435E4EF1C64E--><AD_FIELD>
<!--F3FAB59DF4D54B86AB7A435E4EF1C64E--> <AD_FIELD_ID><![CDATA[F3FAB59DF4D54B86AB7A435E4EF1C64E]]></AD_FIELD_ID>
<!--F3FAB59DF4D54B86AB7A435E4EF1C64E--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -925,6 +925,18 @@
<!--1A49DEC52F304B47B6DF39D32072634C--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--1A49DEC52F304B47B6DF39D32072634C--></AD_MESSAGE>
+<!--1A753A306E434B3EB588CC02C9253FC1--><AD_MESSAGE>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <AD_MESSAGE_ID><![CDATA[1A753A306E434B3EB588CC02C9253FC1]]></AD_MESSAGE_ID>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <VALUE><![CDATA[OBPOS_MasterdataWillHappenOnReturnToWebPOS]]></VALUE>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <MSGTEXT><![CDATA[Master Data Refresh will happen once returned to WebPOS]]></MSGTEXT>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--1A753A306E434B3EB588CC02C9253FC1--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--1A753A306E434B3EB588CC02C9253FC1--></AD_MESSAGE>
+
<!--1A9AABD246474DCF8A54BE84FB3F825C--><AD_MESSAGE>
<!--1A9AABD246474DCF8A54BE84FB3F825C--> <AD_MESSAGE_ID><![CDATA[1A9AABD246474DCF8A54BE84FB3F825C]]></AD_MESSAGE_ID>
<!--1A9AABD246474DCF8A54BE84FB3F825C--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -3987,6 +3999,18 @@
<!--6E0FDD7BD9F24FBCBF0B453E8F2F70AF--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--6E0FDD7BD9F24FBCBF0B453E8F2F70AF--></AD_MESSAGE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--><AD_MESSAGE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <AD_MESSAGE_ID><![CDATA[6E64BDFAD4484A279D405FA7C5D8C140]]></AD_MESSAGE_ID>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <VALUE><![CDATA[OBPOS_MasterdataWillHappenOnCloseTicket]]></VALUE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <MSGTEXT><![CDATA[Master data refresh will happen after this ticket is closed]]></MSGTEXT>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--6E64BDFAD4484A279D405FA7C5D8C140--></AD_MESSAGE>
+
<!--6E7851DD77824C198A76CD0A4A56A6DF--><AD_MESSAGE>
<!--6E7851DD77824C198A76CD0A4A56A6DF--> <AD_MESSAGE_ID><![CDATA[6E7851DD77824C198A76CD0A4A56A6DF]]></AD_MESSAGE_ID>
<!--6E7851DD77824C198A76CD0A4A56A6DF--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/web/org.openbravo.retail.posterminal/js/cashmgmt/view/cashmgmt.js b/web/org.openbravo.retail.posterminal/js/cashmgmt/view/cashmgmt.js
--- a/web/org.openbravo.retail.posterminal/js/cashmgmt/view/cashmgmt.js
+++ b/web/org.openbravo.retail.posterminal/js/cashmgmt/view/cashmgmt.js
@@ -71,6 +71,8 @@
kind: 'OB.UI.WindowView',
windowmodel: OB.OBPOSCashMgmt.Model.CashManagement,
tag: 'section',
+ allowedIncrementalRefresh: false,
+ incrementalRefreshOnNavigate: false,
events: {
onShowPopup: ''
},
diff --git a/web/org.openbravo.retail.posterminal/js/closecash/view/closecash.js b/web/org.openbravo.retail.posterminal/js/closecash/view/closecash.js
--- a/web/org.openbravo.retail.posterminal/js/closecash/view/closecash.js
+++ b/web/org.openbravo.retail.posterminal/js/closecash/view/closecash.js
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2012-2017 Openbravo S.L.U.
+ * Copyright (C) 2012-2018 Openbravo S.L.U.
* Licensed under the Openbravo Commercial License version 1.0
* You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
* or in the legal folder of this module distribution.
@@ -125,6 +125,8 @@
enyo.kind({
name: 'OB.OBPOSCashUp.UI.CashUp',
kind: 'OB.UI.WindowView',
+ allowedIncrementalRefresh: false,
+ incrementalRefreshOnNavigate: false,
synchId: null,
statics: {
TitleExtensions: [],
diff --git a/web/org.openbravo.retail.posterminal/js/components/menuhook.js b/web/org.openbravo.retail.posterminal/js/components/menuhook.js
--- a/web/org.openbravo.retail.posterminal/js/components/menuhook.js
+++ b/web/org.openbravo.retail.posterminal/js/components/menuhook.js
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2014-2017 Openbravo S.L.U.
+ * Copyright (C) 2014-2018 Openbravo S.L.U.
* Licensed under the Openbravo Commercial License version 1.0
* You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
* or in the legal folder of this module distribution.
@@ -25,3 +25,8 @@
OB.UTIL.HookManager.callbackExecutor(args, callbacks);
}
});
+
+OB.UTIL.HookManager.registerHook('OBMOBC_PostWindowNavigate', function (args, callbacks) {
+ // Refresh Master Data
+ OB.UTIL.checkRefreshMasterDataOnNavigate();
+});
diff --git a/web/org.openbravo.retail.posterminal/js/login/model/login-model.js b/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
--- a/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
+++ b/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
@@ -753,7 +753,6 @@
postLoginActions: function () {
OB.debug("next process: renderTerminalMain");
- var loadModelsIncFunc;
//MASTER DATA REFRESH
var minIncRefresh = this.get('terminal').terminalType.minutestorefreshdatainc,
minTotalRefresh = this.get('terminal').terminalType.minutestorefreshdatatotal * 60 * 1000,
@@ -773,63 +772,17 @@
OB.POS.hwserver.showSelected(); // Show the selected printers
if (minIncRefresh) {
- loadModelsIncFunc = function () {
- OB.MobileApp.model.set('secondsToRefreshMasterdata', 3);
- var counterIntervalId = null;
- counterIntervalId = setInterval(function () {
- OB.MobileApp.model.set('secondsToRefreshMasterdata', OB.MobileApp.model.get('secondsToRefreshMasterdata') - 1);
- if (OB.MobileApp.model.get('secondsToRefreshMasterdata') === 0) {
- clearInterval(counterIntervalId);
- if (OB.UTIL.RfidController.isRfidConfigured()) {
- OB.UTIL.RfidController.disconnectRFIDDevice();
- }
- OB.UTIL.startLoadingSteps();
- OB.MobileApp.model.set('isLoggingIn', true);
- OB.UTIL.showLoading(true);
- OB.MobileApp.model.on('incrementalModelsLoaded', function () {
- OB.MobileApp.model.off('incrementalModelsLoaded');
- OB.UTIL.showLoading(false);
- if (OB.UTIL.RfidController.isRfidConfigured()) {
- OB.UTIL.RfidController.connectRFIDDevice();
- }
- OB.MobileApp.model.set('isLoggingIn', false);
- });
-
- OB.MobileApp.model.loadModels(null, true);
- }
- }, 1000);
-
- OB.MobileApp.view.$.dialogsContainer.createComponent({
- kind: 'OB.UI.ModalAction',
- header: OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshed'),
- bodyContent: {
- content: OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshedMessage', [OB.MobileApp.model.get('secondsToRefreshMasterdata')])
- },
- bodyButtons: {
- kind: 'OB.UI.ModalDialogButton',
- content: OB.I18N.getLabel('OBMOBC_LblCancel'),
- tap: function () {
- OB.MobileApp.model.off('change:secondsToRefreshMasterdata');
- clearInterval(counterIntervalId);
- this.doHideThisPopup();
- }
- },
- autoDismiss: false,
- hideCloseButton: true,
- executeOnShow: function () {
- var reloadPopup = this;
- OB.MobileApp.model.on('change:secondsToRefreshMasterdata', function () {
- reloadPopup.$.bodyContent.$.control.setContent(OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshedMessage', [OB.MobileApp.model.get('secondsToRefreshMasterdata')]));
- if (OB.MobileApp.model.get('secondsToRefreshMasterdata') === 0) {
- reloadPopup.hide();
- OB.MobileApp.model.off('change:secondsToRefreshMasterdata');
- }
- });
- }
- }).show();
-
- };
- setInterval(loadModelsIncFunc, minIncRefresh);
+ // in case there was no incremental load at login then schedule an incremental
+ // load at the next expected time, which can be earlier than the standard interval
+ OB.MobileApp.model.set('refreshMasterdataInterval', minIncRefresh);
+ if (minIncRefresh < 0 && OB.MobileApp.model.hasPermission('OBMOBC_NotAutoLoadIncrementalAtLogin', true)) {
+ setTimeout(function () {
+ OB.UTIL.loadModelsIncFunc();
+ OB.MobileApp.model.set('refreshMasterdataIntervalHandler', setInterval(OB.UTIL.loadModelsIncFunc, minIncRefresh));
+ }, intervalInc * -1);
+ } else {
+ OB.MobileApp.model.set('refreshMasterdataIntervalHandler', setInterval(OB.UTIL.loadModelsIncFunc, minIncRefresh));
+ }
}
var sessionTimeoutMinutes = this.get('terminal').sessionTimeout;
@@ -1347,4 +1300,4 @@
} else {
OB.UTIL.HookManager.callbackExecutor(args, callbacks);
}
-});
+});
\ No newline at end of file
diff --git a/web/org.openbravo.retail.posterminal/js/model/order.js b/web/org.openbravo.retail.posterminal/js/model/order.js
--- a/web/org.openbravo.retail.posterminal/js/model/order.js
+++ b/web/org.openbravo.retail.posterminal/js/model/order.js
@@ -5093,6 +5093,9 @@
}
me.current = me.at(0);
me.loadCurrent(createNew);
+
+ // Refresh Master Data
+ OB.UTIL.checkRefreshMasterData();
}
if (OB.MobileApp.model.hasPermission('OBPOS_remove_ticket', true) && !this.current.get('isQuotation') && OB.MobileApp.model.receipt.id === this.current.id && this.current.get('lines').length === 0 && !this.current.has('deletedLines') && (this.current.get('documentnoSuffix') <= OB.MobileApp.model.documentnoThreshold || OB.MobileApp.model.documentnoThreshold === 0)) {
diff --git a/web/org.openbravo.retail.posterminal/js/pointofsale/view/pointofsale.js b/web/org.openbravo.retail.posterminal/js/pointofsale/view/pointofsale.js
--- a/web/org.openbravo.retail.posterminal/js/pointofsale/view/pointofsale.js
+++ b/web/org.openbravo.retail.posterminal/js/pointofsale/view/pointofsale.js
@@ -15,6 +15,8 @@
kind: 'OB.UI.WindowView',
windowmodel: OB.OBPOSPointOfSale.Model.PointOfSale,
tag: 'section',
+ allowedIncrementalRefresh: true,
+ incrementalRefreshOnNavigate: true,
handlers: {
onAddProduct: 'addProductToOrder',
onViewProductDetails: 'viewProductDetails',
diff --git a/web/org.openbravo.retail.posterminal/js/utils/ob-utilitiesuipos.js b/web/org.openbravo.retail.posterminal/js/utils/ob-utilitiesuipos.js
--- a/web/org.openbravo.retail.posterminal/js/utils/ob-utilitiesuipos.js
+++ b/web/org.openbravo.retail.posterminal/js/utils/ob-utilitiesuipos.js
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2012-2017 Openbravo S.L.U.
+ * Copyright (C) 2012-2018 Openbravo S.L.U.
* Licensed under the Openbravo Commercial License version 1.0
* You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
* or in the legal folder of this module distribution.
@@ -457,4 +457,119 @@
}
}
return null;
+};
+
+OB.UTIL.clearFlagAndTimersRefreshMasterData = function () {
+ OB.MobileApp.model.set('refreshMasterdataShowPopup', true);
+ OB.MobileApp.model.set('refreshMasterdata', false);
+};
+
+OB.UTIL.checkRefreshMasterData = function () {
+ if (OB.MobileApp.model.get('refreshMasterdata') === true && OB.UTIL.refreshMasterDataGetProperty('allowedIncrementalRefresh')) {
+ OB.UTIL.clearFlagAndTimersRefreshMasterData();
+ OB.UTIL.refreshMasterData();
+ }
+};
+
+OB.UTIL.checkRefreshMasterDataOnNavigate = function () {
+ if (OB.MobileApp.model.get('refreshMasterdata') === true && OB.UTIL.refreshMasterDataGetProperty('incrementalRefreshOnNavigate')) {
+ OB.UTIL.checkRefreshMasterData();
+ }
+};
+
+OB.UTIL.refreshMasterData = function () {
+ OB.MobileApp.model.set('secondsToRefreshMasterdata', 3);
+ var counterIntervalId = null;
+ counterIntervalId = setInterval(function () {
+ OB.MobileApp.model.set('secondsToRefreshMasterdata', OB.MobileApp.model.get('secondsToRefreshMasterdata') - 1);
+ if (OB.MobileApp.model.get('secondsToRefreshMasterdata') === 0) {
+ OB.MobileApp.model.set('refreshMasterdataShowPopup', false);
+ clearInterval(counterIntervalId);
+ if (OB.UTIL.RfidController.isRfidConfigured()) {
+ OB.UTIL.RfidController.disconnectRFIDDevice();
+ }
+ OB.UTIL.startLoadingSteps();
+ OB.MobileApp.model.set('isLoggingIn', true);
+ OB.UTIL.showLoading(true);
+ OB.MobileApp.model.on('incrementalModelsLoaded', function () {
+ OB.MobileApp.model.off('incrementalModelsLoaded');
+ OB.UTIL.showLoading(false);
+ if (OB.UTIL.RfidController.isRfidConfigured()) {
+ OB.UTIL.RfidController.connectRFIDDevice();
+ }
+ OB.MobileApp.model.set('isLoggingIn', false);
+ });
+
+ OB.MobileApp.model.loadModels(null, true);
+ }
+ }, 1000);
+
+ OB.MobileApp.view.$.dialogsContainer.createComponent({
+ kind: 'OB.UI.ModalAction',
+ header: OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshed'),
+ bodyContent: {
+ content: OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshedMessage', [OB.MobileApp.model.get('secondsToRefreshMasterdata')])
+ },
+ bodyButtons: {
+ kind: 'OB.UI.ModalDialogButton',
+ content: OB.I18N.getLabel('OBMOBC_LblCancel'),
+ tap: function () {
+ OB.MobileApp.model.set('refreshMasterdataShowPopup', false);
+ OB.MobileApp.model.off('change:secondsToRefreshMasterdata');
+ clearInterval(counterIntervalId);
+ this.doHideThisPopup();
+ }
+ },
+ autoDismiss: false,
+ hideCloseButton: true,
+ executeOnShow: function () {
+ var reloadPopup = this;
+ OB.MobileApp.model.on('change:secondsToRefreshMasterdata', function () {
+ reloadPopup.$.bodyContent.$.control.setContent(OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshedMessage', [OB.MobileApp.model.get('secondsToRefreshMasterdata')]));
+ if (OB.MobileApp.model.get('secondsToRefreshMasterdata') === 0) {
+ reloadPopup.hide();
+ OB.MobileApp.model.off('change:secondsToRefreshMasterdata');
+ }
+ });
+ }
+ }).show();
+
+ OB.info(OB.I18N.getLabel('OBMOBC_MasterdataNeedsToBeRefreshed'));
+ clearInterval(OB.MobileApp.model.get('refreshMasterdataIntervalHandler'));
+ OB.MobileApp.model.set('refreshMasterdataIntervalHandler', setInterval(OB.UTIL.loadModelsIncFunc, OB.MobileApp.model.get('refreshMasterdataInterval')));
+};
+
+OB.UTIL.refreshMasterDataGetProperty = function (prop) {
+ var currentWindow = _.find(OB.MobileApp.model.windows.models, function (win) {
+ return win.get('route') === OB.MobileApp.view.currentWindow;
+ });
+ if (currentWindow) {
+ var windowClass = currentWindow.get('windowClass');
+ if (windowClass && typeof windowClass === 'function') {
+ return windowClass.prototype[prop];
+ }
+ }
+ return false;
+};
+
+OB.UTIL.loadModelsIncFunc = function () {
+ var msg = OB.I18N.getLabel(OB.MobileApp.view.currentWindow === 'retail.pointofsale' ? 'OBPOS_MasterdataWillHappenOnCloseTicket' : 'OBPOS_MasterdataWillHappenOnReturnToWebPOS'),
+ minutesToShowRefreshDataInc = OB.MobileApp.model.get('terminal').terminalType.minutesToShowRefreshDataInc,
+ minShowIncRefresh = OB.UTIL.isNullOrUndefined(minutesToShowRefreshDataInc) ? undefined : minutesToShowRefreshDataInc * 60 * 1000;
+ if (OB.UTIL.isNullOrUndefined(minShowIncRefresh) || minShowIncRefresh > 0) {
+ OB.info(msg);
+ OB.UTIL.showWarning(msg);
+ }
+ OB.MobileApp.model.set('refreshMasterdata', true);
+ if (!OB.UTIL.isNullOrUndefined(minShowIncRefresh) && minShowIncRefresh >= 0) {
+ var noActivityTimeout = OB.MobileApp.model.get('refreshMasterdataNoActivityTimeout');
+ if (OB.UTIL.isNullOrUndefined(noActivityTimeout)) {
+ OB.MobileApp.model.set('refreshMasterdataNoActivityTimeout', true);
+ setTimeout(function () {
+ // Refresh Master Data
+ OB.MobileApp.model.unset('refreshMasterdataNoActivityTimeout');
+ OB.UTIL.checkRefreshMasterData();
+ }, minShowIncRefresh);
+ }
+ }
};
\ No newline at end of file
backport-17Q2-retail-selfcheckout.diff [^] (2,695 bytes) 2018-05-04 11:48 [Show Content] [Hide Content]diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -1205,6 +1205,18 @@
<!--DE51266AE18A413F9B0CD393B82DBDA1--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--DE51266AE18A413F9B0CD393B82DBDA1--></AD_MESSAGE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--><AD_MESSAGE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <AD_MESSAGE_ID><![CDATA[DFC31255F2B24C3F9E46D13AE4F8D255]]></AD_MESSAGE_ID>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <VALUE><![CDATA[OBSCO_LoadingRefreshPOS]]></VALUE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <MSGTEXT><![CDATA[Please wait while refreshing the POS]]></MSGTEXT>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <AD_MODULE_ID><![CDATA[BE4899E811AC4F21BD965A6AA7D0BA79]]></AD_MODULE_ID>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--DFC31255F2B24C3F9E46D13AE4F8D255--></AD_MESSAGE>
+
<!--DFF00AF8496E4D98A2888A2C6DDD4AFE--><AD_MESSAGE>
<!--DFF00AF8496E4D98A2888A2C6DDD4AFE--> <AD_MESSAGE_ID><![CDATA[DFF00AF8496E4D98A2888A2C6DDD4AFE]]></AD_MESSAGE_ID>
<!--DFF00AF8496E4D98A2888A2C6DDD4AFE--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/web/org.openbravo.retail.selfcheckout/source/steps/startWelcome.js b/web/org.openbravo.retail.selfcheckout/source/steps/startWelcome.js
--- a/web/org.openbravo.retail.selfcheckout/source/steps/startWelcome.js
+++ b/web/org.openbravo.retail.selfcheckout/source/steps/startWelcome.js
@@ -23,5 +23,22 @@
allowDeleteLines: false,
rfidEnabled: false,
barcodeEnabled: false,
- recalculateBackStep: true
+ recalculateBackStep: true,
+ show: function (data) {
+ this.inherited(arguments);
+ if (OB.MobileApp.model.get('refreshMasterdata')) {
+ OB.SCO.Utils.showLoading({
+ label: OB.I18N.getLabel('OBSCO_LoadingRefreshPOS')
+ });
+ OB.MobileApp.model.on('incrementalModelsLoaded', function () {
+ OB.MobileApp.model.off('incrementalModelsLoaded');
+ OB.SCO.Utils.hideLoading();
+ if (OB.UTIL.RfidController.isRfidConfigured()) {
+ OB.UTIL.RfidController.connectRFIDDevice();
+ }
+ });
+ OB.UTIL.clearFlagAndTimersRefreshMasterData();
+ OB.MobileApp.model.loadModels(null, true);
+ }
+ }
});
\ No newline at end of file
posterminal-buildvalidation.diff [^] (11,969 bytes) 2018-05-10 10:48 [Show Content] [Hide Content]diff --git a/build/classes/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterData.class b/build/classes/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterData.class
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e8f4cfd665dc44bf4902dc90ad588adf91843c3a
GIT binary patch
literal 2668
zc$~FX+j0{}5Iti{T6qySgD{s|7J{)PBP3rS#&(=w*$ztNODsiTNJvJ~Ag#UHRn4vp
zROOK`$x9vsRVh1(tN4I?QXWEjR<f}rCqNar%Cj@w)7|IvO!w%ofBt*{U<{Uy^O(`_
zxsD#p=s1Tjblk$MhK!C7X2O_L-}ycgE`;%A7`N3l8^%}a`?XT$j$jc>8kUv$iiU5(
zSk;i%aRvn)r}3?ZqJ}#Rp=r}Ly%~nySiHy($T$_ja6D()VyRg#30dGJizNLyr_8M)
zm!?{`g#oW-x(us1M^;l#L)azBH=UFe9yhI2!*M+!>!!`ERH<oNl}&D$74Dgioyv|)
zjNBYAwgh5TJe0z%EplZr$2~s9pozz#-1JoFSUk7RH+ib*k=LB*dZg~HyH$nCS6JMx
zrt+RN?JB95N&i`*CZu#E;XBc7-cxQc40qrrD7?g7k;*u>Ey@b$igY&3ijZUyP-=!d
z_uo0&He*Iyqx%TWKQ4=gvM1e{gXw?L*gb;F9o(k7GcrT=NAn&pZ!GeLZ{{EVT@7m*
zl5|HH`toMg=3Y~h$17dw{tusLtHPUAOpAL=b7tN2+?J1nS@QEb?;q*jKJuaGou({{
z1=Hv9nmk=oFe12s4;W6pf_O_x{zT!7;2!R4_%4F)@ql5V6SWUkNQTq;%5vT)w2#ZM
zd0k8z5&VE3Bj6Zh*f5gDP{FJV!*h(RU6!IQY>!*k6QhmFXu(o<V#ugBUC$^9qbddA
zmWEg3_AC2*&3Uxn$)1Z9r_pQ-F-+^3rj(>J=*~2SOTphXwt`(!h!a<hH;bn%${38G
z0=frxBY24FZaNQMy9jEaQo8i|gJduk7ADdYBNHQIqc<{{vGJQ}HJiIWHaDADNT)|8
zsM-$tsXLXXCET(!8(wO8S6md*^+R94x*9eZR^D~FF(f-Eb=Y@YYKCJ6>wzKu#*KqY
zn#$xbd9tfU{=fee-bdSE2)7NW{+`C(0#N+D^}!Htkkg9FP<P{rcZu3ntva+SWU6}#
zP7jCcIkFW&(J<{Y!-ahsm#XBTHtabqkJKPy-Eq{T!z%<Ux*yhZX`K=?6~D)DgsQ$`
ziFx(vFbwVARj5hlk?OothdgDWST>tgkFRqG-`rbN&D(8`7jcn(9Gr*x>jhJNmBtTg
zm7*`BZ!ob9_M9d?_=v`kFT9A4X^gZsz@Rl~ehHt@E;44b<Saxoxr3gyZS>|6TL>&(
z{T;!j-W!2vAo=2Ftn45}I;}svg}!7oF!~#Gn)M%1Lu5~OR4tF~EsxV|3nwOn!{>s3
z;A9W(JPoj4Uj91#ESDJG!l`FIrgdzf9|0e60y>RX5XKOWB1ZB!kxbA#k)|dXhlx?z
zO+UFX?z6fLjdXpuj6vcSMS*OG$XA$l$7nx2q<BE~!^E{8Yq*Lev9*ZrH9u*@x}A}9
zJ4Y?c5t@zqNP1tA+n|Oq4dWWFYq&vHe<S}=rJTfS_!JX<&TmrWNldj5<rd*m5e9Z}
ldaXaoc5r4b5Ih<EX&VFEIQy*Qm?rlf)4<*_P5Zk(`xgt#@^k<I
diff --git a/build/classes/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterDataData.class b/build/classes/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterDataData.class
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..27a5327f2090005157b82610b94c3e99ce1949a1
GIT binary patch
literal 5085
zc$~FYX>b$g8Gb%X)=KNO0bxvp4Jag~vW*c0$|1}ZV}etg%iwT?z)D)n0$D3oD`V0l
zNgL8OZQ8V@hnu8HkCYy13P~_m14)`TZQ9bLcPBqGndzU*bo#TMluq5}TgkR;%Z&2_
z&Fp^1`+o2Hyyv%i{eKrP16YQ?s#uAf7kxg|;+Pj}RrKSyT-@u$IyrvCi}iB+sC<1)
z!N*l-^2B{|ykEW^Q1J<TQYHC8FHU&zkQbj)@M#q__)G;J#%C+=IXqH<&*KXU9+iAK
z6<@@cRD2mHCD&IZ?W>aYYYM*Z#efv}4F!+M@o_Jn@Zy_N(UWrhl!9-0@og0!z<0d(
zt{k6M(TMMPamtJDt5_h{HTZ#i{ZO9xk%DIw{8*qoWhRy%76`PPRwArt^jMD(cJ{*U
zW+Gu&YXqjZrIYqfBW7Cht-0Q)VF~!#59@t;IHji(;ZEC1rW53Ir}bV#V0LdZowJRs
zZCXaRWn_Eex~(VEF@f45O18&5HkRsXPEyZ00avKLi_%)mIHgT%Po|B$+Fg1yWk}s-
zOiy*`R#L7Dn{K-&nHA`A%rG-XI%?^CX4o<)JQdEES=+FvT~CFhxnwHdr>BxsoHWzn
zwq>i9u3p}i-!OLOA$REVz$QYI4{e*7FzktLs1DVaa)g)6o0CQ=F0e2(k)h-nU$;E4
z)$w3ur>)11bm*Caaoz%4P9F@7vrxJ(s%MRGi<wRvF=^6v%j`?W8M^xYH_9FU*aU3?
zjqd}RfZEz0Gct0MaeL_fnAO&H;|!}eqlc+(3d{l(F*BDgWQ2gYlgV1N(|IJB5vZc0
zY-T-WWOFH-Z2R~ykh6-CV8jyy;IRsf)p>^O(Ns8pw$rdlpFO(Wxud=KWSP;=)ag!I
zSt3XzC043xBdWBMuEU#jw<l{`okvrg^wC&zw4ie~z1ZdKNr_qFs2f$d-7+$|WyG1D
zw$W>(C7!!(SSV`7*7@<waIGJnfVKI?U|6?C!Ltf}qTn=}w}LZl#caU}o?}fm$5MrU
zrFNP*D`sp?N^qem2wp7lYuJE|4A2q{YtT$B8lJ}s8rGs&!#ep|FJG$>VbI4njN7F(
zGQKrVp9#iIBO6SccF^c&j3Yq}XECVZ9JVMpui*kNYUsdD0SFkuqF>fX(St$RxfcZ|
zY20H7<NJ27+cJBDW|Y1@IP7eju@bnWSkJK@!!jmQ5Ny7l23|np<1Kx6iLue}Q@qHy
zXt<0kjFN_z@Up<J8<7nPUeWL~ysF^m(y_nL@S61MFR@X>ukbprh!O?OhSF+TrWK6m
zWY~fh-OaAnFj7H5vpaY+XIRH&%zlmEurZXZZw<edmQ`~vXgCs+>EVMc)L=wL{Hhdj
zQDB}F(I3tlR$t1n!=3rD2$W|-%eGCeYc>21Z!iTnXm}G_q*H%S6(f9OR4Dl)Wc>r)
z(C|n6NyDG<m*L<zW^Z$Pr$BIGFAqC;I(k>sPr2QX(U8x6wyTM~QDDyGjcQDEcJ)~1
zv3x6;ZXC_&scc&!&BSXV0Q$ewjm@U*(KCe0M&C50E4@&m@@v30hhfj2<RgpUVR0jx
zON`T=_vaetYbewvhiZOVlrV0|<d7!o+nUjD#8`4WWPsU6LiMHZ8+Y31x1Db?`e06p
z!0u*QI(Lcu>R|=t=)*{;l&~p&3C$SYYfIaP<DOYGzZ9>k$K$Q3f)~nTDN{!9rb3mK
zaMb+J^}HfIT<%ntKtqW@w3o;s=TKELyGh2cH7&Qs=g4pvuahGhedjca{6{an&3jwr
zW`~i@>WRtHQYJ<=d9VCLjG39^beAbZxxaJ{`6zEV-xd{%Yf0(ZEb&eD7XU&2L0QSG
zV-?Ebl~)q~D3!@;3-Ur)TNu|B#`VtV;lmq_>)Sb7O@7`!sAxC`(cmvT3)dM(NDJR8
zM_?M<n1M~4X?a$(VzVRg4s0oi33HUR@`e}SIz1x5<800@I$S<-xD9s}4nGB#qo}pf
z?;b??0KAmqIo;@2Mpj;~d?PFM^mC}V1a0p*RQjt1F|Co$Af^vuhLFl#j`9U`3Fsgn
z>QIHbgfWk^`TP?WL<6ZUxWxfhlUH5<CTAa}qXgO=xUQ<oN{Z;fR<cR7ODSGjqBOW%
z=iwi3Y^cas1>3Nl;|@M<?ld}rcIE}SuW)Y~4+s4-w-$_Pq8<Kf`I?oth=iKGu5*|j
zDHjn>L(>J^RECHr;JJVR%h~N)si-S`?iCd^zS<KfAIF?o6$6+Ra9_Y20lBN{D}ASi
z{w}wph3x_CsZqGETtY3C)<v{{7I6FB=P~yzJkDHk=3Zy+bLMJ5t38i-Opic$KpVvT
z8l~>U$;Y794Z!1CQE_VMNhzKeQiB9{a~V#F6%nN<PPfparo2@F2KLrdqQ;>QV&MR8
zE@J%Pct$KNLG_3DlJt5f@C}#HxObRmQGwJ%#FBM!VI9s(J%=S%N~>OaUDZpcp!&7~
zX<3n~$`O|!7^#}XB~0U61C>_-<%3xMB5ETF{Y*I@3Mi+USyy?d|BX3Y&)Iv-V2;Ah
zuf^M}rgy}<;vZbU$JyIXw#kfq1xxr|#Dr~P=HG^eSjH18I9tUgv6_t`!bY%$8QaVp
zU5kC(iLp6Y-0f$MK0qmtkUGGcc$(GmEGzyjYyM>x@2jkm*H|N0ae&wk5#2p_3kUHp
z=tS6oYuGB>*d`WWhiFA7(e4s`*e&iumv{nu#7o#mq<4#Va6r6^Lqva%_$LmQ`EaOA
zL$s_0v9h^{JJs|I`;WxZNeuEE{88+}ZdTVuqU++!N3Mr)7xu6>y~T>(OG^~mbs76{
zH+^vp$GLX^3K1lUlT_-;^Hs?TEYzu-9i%P7ndzLB!9^5N`o~37)dhJA#ee9hIJ-l=
z_%{r6!$Z6(@g=CYr%?ZSt|Yl+CwUXoh6qzta99WhM--$K^eRZZ-BdU48qFS}naTt@
zxH5;>w?;@9C1n1K5Z?=iu(%}Mbm%7O^Gec>4iReAc!KjI(UDL$L@$(pRovFRPRiuF
f`2wf)@$#4nc8nFzqvDLy??+qYbiT7r+qC}=skBIs
diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -2882,6 +2882,18 @@
<!--493F9C235CBE4247A8F375CE4E350DBF--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--493F9C235CBE4247A8F375CE4E350DBF--></AD_MESSAGE>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--><AD_MESSAGE>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--> <AD_MESSAGE_ID><![CDATA[495466D4AF774B8A8060B4F1BF6F60FC]]></AD_MESSAGE_ID>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--> <VALUE><![CDATA[obpos_minshowfreshdatainc_chk]]></VALUE>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--> <MSGTEXT><![CDATA['Time to Incrementally Refresh Masterdata' must be greater than 'Time to Show Incremental Refresh Popup']]></MSGTEXT>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--495466D4AF774B8A8060B4F1BF6F60FC--></AD_MESSAGE>
+
<!--49DFE34B815147249F8716E4F0EA7768--><AD_MESSAGE>
<!--49DFE34B815147249F8716E4F0EA7768--> <AD_MESSAGE_ID><![CDATA[49DFE34B815147249F8716E4F0EA7768]]></AD_MESSAGE_ID>
<!--49DFE34B815147249F8716E4F0EA7768--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-util/buildvalidation/src/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterData.java b/src-util/buildvalidation/src/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterData.java
new file mode 100644
--- /dev/null
+++ b/src-util/buildvalidation/src/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterData.java
@@ -0,0 +1,60 @@
+/*
+ *************************************************************************
+ * 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) 2018 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s): ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.retail.posterminal.buildvalidation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.openbravo.buildvalidation.BuildValidation;
+import org.openbravo.base.ExecutionLimits;
+import org.openbravo.database.ConnectionProvider;
+import org.openbravo.modulescript.OpenbravoVersion;
+
+/**
+ * This validation is related to this issue 25464. A unique constraint has been added to
+ * ad_module.javapackage column, this validation checks there are no multiple modules with the same
+ * javapackage.
+ */
+public class I38194ValidateRefreshMasterData extends BuildValidation {
+
+ @Override
+ public List<String> execute() {
+ try {
+ List<String> errors = new ArrayList<String>();
+ ConnectionProvider cp = getConnectionProvider();
+ I38194ValidateRefreshMasterDataData[] data = I38194ValidateRefreshMasterDataData.validate(cp);
+ for (int i = 0; i < data.length; i++) {
+ String msg = "\nPOS Terminal name: "
+ + data[i].name
+ + " - 'Time to Incrementally Refresh Masterdata' must be greater than 'Time to Show Incremental Refresh Popup'"
+ + "\nCurrent values - Time to Incrementally Refresh Masterdata: "
+ + data[i].minutestorefreshdatainc + ", Time to Show Incremental Refresh Popup: "
+ + data[i].minutestoreshowfreshdatainc;
+ errors.add(msg);
+ }
+ return errors;
+ } catch (Exception e) {
+ return handleError(e);
+ }
+ }
+
+ @Override
+ protected ExecutionLimits getBuildValidationLimits() {
+ return new ExecutionLimits("FF808181326CC34901326D53DBCF0018", null, new OpenbravoVersion(1, 2, 5500));
+ }
+}
\ No newline at end of file
diff --git a/src-util/buildvalidation/src/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterData_data.xsql b/src-util/buildvalidation/src/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterData_data.xsql
new file mode 100644
--- /dev/null
+++ b/src-util/buildvalidation/src/org/openbravo/retail/posterminal/buildvalidation/I38194ValidateRefreshMasterData_data.xsql
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ *************************************************************************
+ * 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) 2018 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s): ______________________________________.
+ ************************************************************************
+-->
+
+<SqlClass name="I38194ValidateRefreshMasterDataData" package="org.openbravo.retail.posterminal.buildvalidation">
+ <SqlMethod name="validate" type="preparedStatement" return="multiple">
+ <Sql><![CDATA[
+ select name, minutestorefreshdatainc, minutestoreshowfreshdatainc from obpos_terminaltype
+ where minutestorefreshdatainc < minutestoreshowfreshdatainc
+ ]]>
+ </Sql>
+ </SqlMethod>
+</SqlClass>
|