Attached Files | 1. added validation.patch [^] (11,043 bytes) 2021-04-28 04:55 [Show Content] [Hide Content]
---
src-db/database/sourcedata/AD_MESSAGE.xml | 12 ++++
src-db/database/sourcedata/AD_REF_LIST.xml | 14 +++++
.../database/sourcedata/OBMOBC_SERVICES.xml | 12 ++++
.../ChequeCadeauComponentProvider.java | 3 +-
.../hooks/ValidateChequeCadeauBarcode.java | 57 +++++++++++++++++++
.../js/hooks/hookObidcoPreAddCouponHook.js | 56 ++++++++++++++++++
6 files changed, 153 insertions(+), 1 deletion(-)
create mode 100644 src-db/database/sourcedata/AD_REF_LIST.xml
create mode 100644 src/org/openbravo/retail/chequecadeau/hooks/ValidateChequeCadeauBarcode.java
create mode 100644 web/org.openbravo.retail.chequecadeau/js/hooks/hookObidcoPreAddCouponHook.js
diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
index 0d64b78..15c7d24 100644
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -36,6 +36,18 @@
<!--62770D76114843B39B50FC5718D5C784--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--62770D76114843B39B50FC5718D5C784--></AD_MESSAGE>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--><AD_MESSAGE>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <AD_MESSAGE_ID><![CDATA[66C2A9A65ABC40E28C9F407E5A55A981]]></AD_MESSAGE_ID>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <VALUE><![CDATA[CCGS_DuplicatedCodeBar]]></VALUE>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <MSGTEXT><![CDATA[Barcode %0 is duplicated. The barcode can only be once in a Digital Coupon and only in one Digital Coupon.]]></MSGTEXT>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <AD_MODULE_ID><![CDATA[9E626202DAE041FEBD88DFB476D1E17A]]></AD_MODULE_ID>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--></AD_MESSAGE>
+
<!--8781FB64FEDD47A4AEEFE71A641CCAF4--><AD_MESSAGE>
<!--8781FB64FEDD47A4AEEFE71A641CCAF4--> <AD_MESSAGE_ID><![CDATA[8781FB64FEDD47A4AEEFE71A641CCAF4]]></AD_MESSAGE_ID>
<!--8781FB64FEDD47A4AEEFE71A641CCAF4--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_REF_LIST.xml b/src-db/database/sourcedata/AD_REF_LIST.xml
new file mode 100644
index 0000000..8b4c308
--- /dev/null
+++ b/src-db/database/sourcedata/AD_REF_LIST.xml
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--11391077D1534ADC8EF62E4DC6A1E778--><AD_REF_LIST>
+<!--11391077D1534ADC8EF62E4DC6A1E778--> <AD_REF_LIST_ID><![CDATA[11391077D1534ADC8EF62E4DC6A1E778]]></AD_REF_LIST_ID>
+<!--11391077D1534ADC8EF62E4DC6A1E778--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--11391077D1534ADC8EF62E4DC6A1E778--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--11391077D1534ADC8EF62E4DC6A1E778--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--11391077D1534ADC8EF62E4DC6A1E778--> <VALUE><![CDATA[CCGS_CheckBarcodeDuplicity]]></VALUE>
+<!--11391077D1534ADC8EF62E4DC6A1E778--> <NAME><![CDATA[Check Barcode duplicity in Digital Coupons]]></NAME>
+<!--11391077D1534ADC8EF62E4DC6A1E778--> <AD_REFERENCE_ID><![CDATA[A26BA480E2014707B47257024C3CBFF7]]></AD_REFERENCE_ID>
+<!--11391077D1534ADC8EF62E4DC6A1E778--> <AD_MODULE_ID><![CDATA[9E626202DAE041FEBD88DFB476D1E17A]]></AD_MODULE_ID>
+<!--11391077D1534ADC8EF62E4DC6A1E778--></AD_REF_LIST>
+
+</data>
diff --git a/src-db/database/sourcedata/OBMOBC_SERVICES.xml b/src-db/database/sourcedata/OBMOBC_SERVICES.xml
index 7e72629..ec19197 100644
--- a/src-db/database/sourcedata/OBMOBC_SERVICES.xml
+++ b/src-db/database/sourcedata/OBMOBC_SERVICES.xml
@@ -11,4 +11,16 @@
<!--4BFA2BE5FBA84CB69493D1FF100090AF--> <SERVER_RUNTIME><![CDATA[OBSTSYN_ON_CENTRAL]]></SERVER_RUNTIME>
<!--4BFA2BE5FBA84CB69493D1FF100090AF--></OBMOBC_SERVICES>
+<!--83619F547EFB4759B28329C7BBFCE16E--><OBMOBC_SERVICES>
+<!--83619F547EFB4759B28329C7BBFCE16E--> <OBMOBC_SERVICES_ID><![CDATA[83619F547EFB4759B28329C7BBFCE16E]]></OBMOBC_SERVICES_ID>
+<!--83619F547EFB4759B28329C7BBFCE16E--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--83619F547EFB4759B28329C7BBFCE16E--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--83619F547EFB4759B28329C7BBFCE16E--> <AD_MODULE_ID><![CDATA[9E626202DAE041FEBD88DFB476D1E17A]]></AD_MODULE_ID>
+<!--83619F547EFB4759B28329C7BBFCE16E--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--83619F547EFB4759B28329C7BBFCE16E--> <SERVICE><![CDATA[org.openbravo.retail.chequecadeau.hooks.ValidateChequeCadeauBarcode]]></SERVICE>
+<!--83619F547EFB4759B28329C7BBFCE16E--> <DESCRIPTION><![CDATA[Check the duplicities in digital coupon codebar attribute]]></DESCRIPTION>
+<!--83619F547EFB4759B28329C7BBFCE16E--> <ROUTINGTYPE><![CDATA[Failover]]></ROUTINGTYPE>
+<!--83619F547EFB4759B28329C7BBFCE16E--> <SERVER_RUNTIME><![CDATA[OBSTSYN_RUN_ON_STORE_NO_SYNC_ERRORS]]></SERVER_RUNTIME>
+<!--83619F547EFB4759B28329C7BBFCE16E--></OBMOBC_SERVICES>
+
</data>
diff --git a/src/org/openbravo/retail/chequecadeau/ChequeCadeauComponentProvider.java b/src/org/openbravo/retail/chequecadeau/ChequeCadeauComponentProvider.java
index e5a3353..4e786b4 100644
--- a/src/org/openbravo/retail/chequecadeau/ChequeCadeauComponentProvider.java
+++ b/src/org/openbravo/retail/chequecadeau/ChequeCadeauComponentProvider.java
@@ -1,6 +1,6 @@
/*
************************************************************************************
- * Copyright (C) 2015-2019 Openbravo S.L.U.
+ * Copyright (C) 2015-2021 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.
@@ -45,6 +45,7 @@ public class ChequeCadeauComponentProvider extends BaseComponentProvider {
grhelper.add("chequecadeauutils.js");
grhelper.add("modalDigitalCouponsBtnCloseExtension.js");
grhelper.add("hooks/PreOrderSaveHook.js");
+ grhelper.add("hooks/hookObidcoPreAddCouponHook.js");
grhelper.addCSS("inputscan.css");
diff --git a/src/org/openbravo/retail/chequecadeau/hooks/ValidateChequeCadeauBarcode.java b/src/org/openbravo/retail/chequecadeau/hooks/ValidateChequeCadeauBarcode.java
new file mode 100644
index 0000000..06480d9
--- /dev/null
+++ b/src/org/openbravo/retail/chequecadeau/hooks/ValidateChequeCadeauBarcode.java
@@ -0,0 +1,57 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2021 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.
+ ************************************************************************************
+ */
+package org.openbravo.retail.chequecadeau.hooks;
+
+import javax.servlet.ServletException;
+
+import org.codehaus.jettison.json.JSONException;
+import org.codehaus.jettison.json.JSONObject;
+import org.hibernate.criterion.Restrictions;
+import org.openbravo.base.exception.OBException;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBCriteria;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.retail.digitalcoupons.data.OBDICO_DigitalCoupons;
+import org.openbravo.retail.posterminal.JSONProcessSimple;
+import org.openbravo.service.json.JsonConstants;
+
+public class ValidateChequeCadeauBarcode extends JSONProcessSimple {
+
+ @Override
+ public JSONObject exec(JSONObject jsonsent) throws JSONException, ServletException {
+ JSONObject result = new JSONObject();
+ JSONObject data = new JSONObject();
+ JSONObject coupon = jsonsent.getJSONObject("coupon");
+
+ OBContext.setAdminMode();
+ try {
+ String chBarcode = coupon.optString("ccgsBarcode");
+ if (!"".equals(chBarcode) && !chBarcode.isEmpty()) {
+ OBCriteria<OBDICO_DigitalCoupons> obc = OBDal.getInstance()
+ .createCriteria(OBDICO_DigitalCoupons.class);
+ obc.add(Restrictions.eq(OBDICO_DigitalCoupons.PROPERTY_CCGSBARCODE, chBarcode));
+ obc.setFilterOnReadableClients(false);
+ obc.setFilterOnReadableOrganization(false);
+ obc.setMaxResults(1);
+ OBDICO_DigitalCoupons digitalCoupon = (OBDICO_DigitalCoupons) obc.uniqueResult();
+ if (digitalCoupon != null) {
+ data.put("duplicated", "true");
+ }
+ }
+ } catch (JSONException e) {
+ throw new OBException(e);
+ } finally {
+ OBContext.restorePreviousMode();
+ }
+
+ result.put("data", data);
+ result.put("status", JsonConstants.RPCREQUEST_STATUS_SUCCESS);
+ return result;
+ }
+}
diff --git a/web/org.openbravo.retail.chequecadeau/js/hooks/hookObidcoPreAddCouponHook.js b/web/org.openbravo.retail.chequecadeau/js/hooks/hookObidcoPreAddCouponHook.js
new file mode 100644
index 0000000..98fd085
--- /dev/null
+++ b/web/org.openbravo.retail.chequecadeau/js/hooks/hookObidcoPreAddCouponHook.js
@@ -0,0 +1,56 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2021 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.
+ ************************************************************************************
+ */
+
+/*global OB */
+
+(function() {
+ OB.UTIL.HookManager.registerHook('obidcoPreAddCouponHook', function(
+ args,
+ callback
+ ) {
+ if (OB.MobileApp.model.hasPermission('CCGS_CheckBarcodeDuplicity', true)) {
+ var procesValidateDate = new OB.DS.Process(
+ 'org.openbravo.retail.chequecadeau.hooks.ValidateChequeCadeauBarcode'
+ );
+ procesValidateDate.exec(
+ {
+ coupon: args.coupon.attributes
+ },
+ function(data) {
+ if (data && data.duplicated) {
+ args.cancellation = true;
+ var me = args.digitalCouponWindow;
+ me.hide();
+ OB.UTIL.showConfirmation.display(
+ OB.I18N.getLabel('OBMOBC_Error'),
+ OB.I18N.getLabel('CCGS_DuplicatedCodeBar', [
+ args.coupon.get('ccgsBarcode')
+ ]),
+ null,
+ {
+ onShowFunction: function(popup) {
+ popup.$.headerCloseButton.hide();
+ },
+ onHideFunction: function() {
+ me.show({
+ receipt: me.receipt,
+ payment: me.payment,
+ doNotChangeMode: true
+ });
+ },
+ autoDismiss: false
+ }
+ );
+ }
+ OB.UTIL.HookManager.callbackExecutor(args, callback);
+ }
+ );
+ }
+ });
+})();
--
2.28.0
2. improve message.patch [^] (2,061 bytes) 2021-04-28 04:55 [Show Content] [Hide Content]
---
src-db/database/sourcedata/AD_MESSAGE.xml | 2 +-
.../js/hooks/hookObidcoPreAddCouponHook.js | 4 +---
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
index 15c7d24..074139d 100644
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -42,7 +42,7 @@
<!--66C2A9A65ABC40E28C9F407E5A55A981--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
<!--66C2A9A65ABC40E28C9F407E5A55A981--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
<!--66C2A9A65ABC40E28C9F407E5A55A981--> <VALUE><![CDATA[CCGS_DuplicatedCodeBar]]></VALUE>
-<!--66C2A9A65ABC40E28C9F407E5A55A981--> <MSGTEXT><![CDATA[Barcode %0 is duplicated. The barcode can only be once in a Digital Coupon and only in one Digital Coupon.]]></MSGTEXT>
+<!--66C2A9A65ABC40E28C9F407E5A55A981--> <MSGTEXT><![CDATA[Codebar has already been used. Must be unique]]></MSGTEXT>
<!--66C2A9A65ABC40E28C9F407E5A55A981--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
<!--66C2A9A65ABC40E28C9F407E5A55A981--> <AD_MODULE_ID><![CDATA[9E626202DAE041FEBD88DFB476D1E17A]]></AD_MODULE_ID>
<!--66C2A9A65ABC40E28C9F407E5A55A981--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
diff --git a/web/org.openbravo.retail.chequecadeau/js/hooks/hookObidcoPreAddCouponHook.js b/web/org.openbravo.retail.chequecadeau/js/hooks/hookObidcoPreAddCouponHook.js
index 98fd085..ff6867c 100644
--- a/web/org.openbravo.retail.chequecadeau/js/hooks/hookObidcoPreAddCouponHook.js
+++ b/web/org.openbravo.retail.chequecadeau/js/hooks/hookObidcoPreAddCouponHook.js
@@ -29,9 +29,7 @@
me.hide();
OB.UTIL.showConfirmation.display(
OB.I18N.getLabel('OBMOBC_Error'),
- OB.I18N.getLabel('CCGS_DuplicatedCodeBar', [
- args.coupon.get('ccgsBarcode')
- ]),
+ OB.I18N.getLabel('CCGS_DuplicatedCodeBar'),
null,
{
onShowFunction: function(popup) {
--
2.28.0
|