Attached Files | finishCharacteristics.diff [^] (8,967 bytes) 2017-03-16 20:09 [Show Content] [Hide Content]diff -r f1868a0b1d70 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Thu Mar 16 11:47:55 2017 +0100
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Thu Mar 16 20:09:27 2017 +0100
@@ -8802,6 +8802,18 @@
<!--F5161C5EB5384CDDB7D9B98DCAC594E7--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--F5161C5EB5384CDDB7D9B98DCAC594E7--></AD_MESSAGE>
+<!--F590873520944CED881A6791EE76B231--><AD_MESSAGE>
+<!--F590873520944CED881A6791EE76B231--> <AD_MESSAGE_ID><![CDATA[F590873520944CED881A6791EE76B231]]></AD_MESSAGE_ID>
+<!--F590873520944CED881A6791EE76B231--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--F590873520944CED881A6791EE76B231--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--F590873520944CED881A6791EE76B231--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--F590873520944CED881A6791EE76B231--> <VALUE><![CDATA[OBPOS_nrOfChToUseAsFilterInWebPOSExceedTheLimit_body]]></VALUE>
+<!--F590873520944CED881A6791EE76B231--> <MSGTEXT><![CDATA[The number of Product Characteristics marked to be used as filter in Web POS exceeds the limit recommended (%0). Please check it with the system administrator.]]></MSGTEXT>
+<!--F590873520944CED881A6791EE76B231--> <MSGTYPE><![CDATA[W]]></MSGTYPE>
+<!--F590873520944CED881A6791EE76B231--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--F590873520944CED881A6791EE76B231--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--F590873520944CED881A6791EE76B231--></AD_MESSAGE>
+
<!--F591FBE4497948BE86EA9C7596C818EF--><AD_MESSAGE>
<!--F591FBE4497948BE86EA9C7596C818EF--> <AD_MESSAGE_ID><![CDATA[F591FBE4497948BE86EA9C7596C818EF]]></AD_MESSAGE_ID>
<!--F591FBE4497948BE86EA9C7596C818EF--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r f1868a0b1d70 src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java
--- a/src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java Thu Mar 16 11:47:55 2017 +0100
+++ b/src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java Thu Mar 16 20:09:27 2017 +0100
@@ -269,6 +269,8 @@
// Unlink onLoad in the ERP
globalResources.add(createComponentResource(ComponentResourceType.Static, prefix
+ "utils/unlinkDeviceOnLoad.js", ComponentResource.APP_OB3));
+ globalResources.add(createComponentResource(ComponentResourceType.Static, prefix
+ + "/utils/checkChToFilterInWebPos.js", ComponentResource.APP_OB3));
final String[] cssDependency = { "pos-login", "obpos-main" };
diff -r f1868a0b1d70 src/org/openbravo/retail/posterminal/POSConstants.java
--- a/src/org/openbravo/retail/posterminal/POSConstants.java Thu Mar 16 11:47:55 2017 +0100
+++ b/src/org/openbravo/retail/posterminal/POSConstants.java Thu Mar 16 20:09:27 2017 +0100
@@ -13,4 +13,5 @@
public static final String MODULE_ID = "FF808181326CC34901326D53DBCF0018";
public static final String APP_NAME = "WebPOS";
public static final String CROSS_CHANNEL = "cross_channel";
+ public static final long MAX_CHARACTERISTICS_TO_BE_FILTERED_IN_WEB_POS = 50;
}
diff -r f1868a0b1d70 src/org/openbravo/retail/posterminal/POSUtils.java
--- a/src/org/openbravo/retail/posterminal/POSUtils.java Thu Mar 16 11:47:55 2017 +0100
+++ b/src/org/openbravo/retail/posterminal/POSUtils.java Thu Mar 16 20:09:27 2017 +0100
@@ -792,4 +792,28 @@
}
}
+ /**
+ * Method to calculate the number of characteristics marked as "Filter on Web POS"
+ */
+ public static long getNumberOfCharacteristicsToFilterInWebPos() {
+ long result = -1;
+ try {
+ Query queryNumberOfChToFilterInWebPos = OBDal.getInstance().getSession()
+ .createQuery("select count(ch.id) " //
+ + "from Characteristic as ch " //
+ + "where ch.obposFilteronwebpos ='Y' and ch.client.id = :client ");
+
+ queryNumberOfChToFilterInWebPos.setParameter("client", OBContext.getOBContext()
+ .getCurrentClient().getId());
+
+ result = (long) queryNumberOfChToFilterInWebPos.uniqueResult();
+ } catch (Exception e) {
+ String errorMsg = "Error getting the number of characteristic which are used to filter in Web POS: "
+ + e.getMessage();
+ log.error(errorMsg, e);
+ throw new OBException(errorMsg);
+ }
+ return result;
+ }
+
}
diff -r f1868a0b1d70 src/org/openbravo/retail/posterminal/actionHandler/ProductCharacteristicActionHandler.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/openbravo/retail/posterminal/actionHandler/ProductCharacteristicActionHandler.java Thu Mar 16 20:09:27 2017 +0100
@@ -0,0 +1,57 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2016 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.posterminal.actionHandler;
+
+import java.util.Map;
+
+import org.codehaus.jettison.json.JSONObject;
+import org.openbravo.client.kernel.BaseActionHandler;
+import org.openbravo.erpCommon.utility.OBMessageUtils;
+import org.openbravo.retail.posterminal.POSConstants;
+import org.openbravo.retail.posterminal.POSUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ProductCharacteristicActionHandler extends BaseActionHandler {
+ private static final Logger log = LoggerFactory
+ .getLogger(ProductCharacteristicActionHandler.class);
+
+ @Override
+ protected JSONObject execute(Map<String, Object> parameters, String data) {
+ JSONObject result = new JSONObject();
+ boolean filterOnWebPos;
+ try {
+ final JSONObject jsonData = new JSONObject(data);
+ filterOnWebPos = jsonData.getBoolean("filterOnWebPos");
+ if (filterOnWebPos == true) {
+ long limit = this.readPreference();
+ final String[] arrEmpty = {};
+ String[] arrLimit = new String[1];
+ arrLimit[0] = Long.toString(limit);
+ long numberOfChToUseAsFilterInPOS = POSUtils.getNumberOfCharacteristicsToFilterInWebPos();
+ if ((numberOfChToUseAsFilterInPOS + 1) > limit) {
+ result.put("warn", true);
+ result.put("warnMessageBody", OBMessageUtils.getI18NMessage(
+ "OBPOS_nrOfChToUseAsFilterInWebPOSExceedTheLimit_body", arrLimit));
+ result.put("warnMessageTitle", OBMessageUtils.getI18NMessage(
+ "OBPOS_nrOfChToUseAsFilterInWebPOSExceedTheLimit_title", arrEmpty));
+ }
+ }
+ } catch (Exception e) {
+ log.error(
+ "Error calculating the number of characteristics which are marked for filtering in Web POS",
+ e);
+ }
+ return result;
+ }
+
+ private long readPreference() {
+ return POSConstants.MAX_CHARACTERISTICS_TO_BE_FILTERED_IN_WEB_POS;
+ }
+}
\ No newline at end of file
diff -r f1868a0b1d70 web/org.openbravo.retail.posterminal/js/utils/checkChToFilterInWebPos.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/org.openbravo.retail.posterminal/js/utils/checkChToFilterInWebPos.js Thu Mar 16 20:09:27 2017 +0100
@@ -0,0 +1,32 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2017 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.
+ ************************************************************************************
+ */
+
+OB = OB || {};
+OB.OBPOS = OB.OBPOS || {};
+OB.OBPOS.ClientSideEventHandlers = OB.OBPOS.ClientSideEventHandlers || {};
+OB.OBPOS.CHARACTERISTICS_HEADER_TAB = 'A661A0A05DCD4650BCB14B010C87F0AA';
+OB.OBPOS.ClientSideEventHandlers.refreshCharacteristicsGrid = function (view, form, grid, extraParameters, actions) {
+ var data = extraParameters.data,
+ callback, filterOnWebPos;
+ if (data.obposFilteronwebpos) {
+ filterOnWebPos = data.obposFilteronwebpos;
+ callback = function (response, cdata, request) {
+ if (cdata && cdata.warn) {
+ view.messageBar.setMessage(isc.OBMessageBar.TYPE_WARNING, cdata.warnMessageTitle, cdata.warnMessageBody);
+ }
+ OB.EventHandlerRegistry.callbackExecutor(view, form, grid, extraParameters, actions);
+ };
+ OB.RemoteCallManager.call('org.openbravo.retail.posterminal.actionHandler.ProductCharacteristicActionHandler', {
+ filterOnWebPos: filterOnWebPos
+ }, {}, callback);
+ } else {
+ OB.EventHandlerRegistry.callbackExecutor(view, form, grid, extraParameters, actions);
+ }
+};
+OB.EventHandlerRegistry.register(OB.OBPOS.CHARACTERISTICS_HEADER_TAB, OB.EventHandlerRegistry.POSTSAVE, OB.OBPOS.ClientSideEventHandlers.refreshCharacteristicsGrid, 'OBPOS_refreshCharacteristicsGrid');
\ No newline at end of file
|