# HG changeset patch
# User Ranjith S R <ranjith@qualiantech.com>
# Date 1465285359 -19800
#      Tue Jun 07 13:12:39 2016 +0530
# Node ID c8cdf22f9a2952ab77a37ad52034b7b204c6306b
# Parent  1f98f653194c879dfa7117515597ad823ca8d3fa
Related to issue 33080 : Adding Check constraint for Product

- Adding Check Constraint in Product table for Not to allow to enable the field "show stock screen" if the product type is "Service"
- backout changset 83044ae86f27

diff -r 1f98f653194c -r c8cdf22f9a29 src-db/database/model/modifiedTables/M_PRODUCT.xml
--- a/src-db/database/model/modifiedTables/M_PRODUCT.xml	Mon Jun 06 11:21:25 2016 +0530
+++ b/src-db/database/model/modifiedTables/M_PRODUCT.xml	Tue Jun 07 13:12:39 2016 +0530
@@ -37,6 +37,7 @@
       <check name="EM_OBPOS_LINKPROD_PROPTYPE_CHK"><![CDATA[ISLINKEDTOPRODUCT = 'Y' AND EM_OBPOS_PROPOSAL_TYPE IS NOT NULL OR ISLINKEDTOPRODUCT = 'N']]></check>
       <check name="EM_OBPOS_M_PRODUCT_ANONYM_CHK"><![CDATA[EM_OBPOS_ALLOWANONYMOUSSALE IN ('Y', 'N')]]></check>
       <check name="EM_OBPOS_PROD_PRINTSERVICE_CHK"><![CDATA[EM_OBPOS_PRINTSERVICES IN ('Y', 'N')]]></check>
+      <check name="EM_OBPOS_PROD_SHOWSTOCK_CHK"><![CDATA[PRODUCTTYPE <> 'S' AND EM_OBPOS_SHOWSTOCK IS NOT NULL OR PRODUCTTYPE = 'S' AND EM_OBPOS_SHOWSTOCK = 'N']]></check>
       <check name="EM_OBPOS_SCALE_CHK"><![CDATA[EM_OBPOS_SCALE IN ('Y', 'N')]]></check>
       <check name="EM_OBPOS_SHOW_CH_DESC_CHK"><![CDATA[EM_OBPOS_SHOW_CH_DESC IN ('Y', 'N')]]></check>
     </table>
diff -r 1f98f653194c -r c8cdf22f9a29 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml	Mon Jun 06 11:21:25 2016 +0530
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml	Tue Jun 07 13:12:39 2016 +0530
@@ -2606,18 +2606,6 @@
 <!--596204F1BDA34161A1126A2D67AA8BEA-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--596204F1BDA34161A1126A2D67AA8BEA--></AD_MESSAGE>
 
-<!--5ADAEB1605B54092B2A0277A014FAA4D--><AD_MESSAGE>
-<!--5ADAEB1605B54092B2A0277A014FAA4D-->  <AD_MESSAGE_ID><![CDATA[5ADAEB1605B54092B2A0277A014FAA4D]]></AD_MESSAGE_ID>
-<!--5ADAEB1605B54092B2A0277A014FAA4D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
-<!--5ADAEB1605B54092B2A0277A014FAA4D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
-<!--5ADAEB1605B54092B2A0277A014FAA4D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--5ADAEB1605B54092B2A0277A014FAA4D-->  <VALUE><![CDATA[OBPOS_errorStockScreenOnServiceProduct]]></VALUE>
-<!--5ADAEB1605B54092B2A0277A014FAA4D-->  <MSGTEXT><![CDATA[It is not possible to enable the Show stock screen flag if the product type is Service]]></MSGTEXT>
-<!--5ADAEB1605B54092B2A0277A014FAA4D-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
-<!--5ADAEB1605B54092B2A0277A014FAA4D-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
-<!--5ADAEB1605B54092B2A0277A014FAA4D-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
-<!--5ADAEB1605B54092B2A0277A014FAA4D--></AD_MESSAGE>
-
 <!--5C1AB8A975BC4F38AC02A0EBBBE1E738--><AD_MESSAGE>
 <!--5C1AB8A975BC4F38AC02A0EBBBE1E738-->  <AD_MESSAGE_ID><![CDATA[5C1AB8A975BC4F38AC02A0EBBBE1E738]]></AD_MESSAGE_ID>
 <!--5C1AB8A975BC4F38AC02A0EBBBE1E738-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 1f98f653194c -r c8cdf22f9a29 src/org/openbravo/retail/posterminal/event/ProductEventHandler.java
--- a/src/org/openbravo/retail/posterminal/event/ProductEventHandler.java	Mon Jun 06 11:21:25 2016 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- ************************************************************************************
- * 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.event;
-
-import javax.enterprise.event.Observes;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-import org.openbravo.base.exception.OBException;
-import org.openbravo.base.model.Entity;
-import org.openbravo.base.model.ModelProvider;
-import org.openbravo.client.kernel.event.EntityNewEvent;
-import org.openbravo.client.kernel.event.EntityPersistenceEventObserver;
-import org.openbravo.client.kernel.event.EntityUpdateEvent;
-import org.openbravo.dal.core.OBContext;
-import org.openbravo.erpCommon.utility.Utility;
-import org.openbravo.model.common.plm.Product;
-import org.openbravo.service.db.DalConnectionProvider;
-
-public class ProductEventHandler extends EntityPersistenceEventObserver {
-  private static Entity[] entities = { ModelProvider.getInstance().getEntity(Product.ENTITY_NAME) };
-  protected Logger logger = Logger.getLogger(this.getClass());
-
-  @Override
-  protected Entity[] getObservedEntities() {
-    return entities;
-  }
-
-  public void onUpdate(@Observes EntityUpdateEvent event) {
-    if (!isValidEvent(event)) {
-      return;
-    }
-    Product product = (Product) event.getTargetInstance();
-    validateServiceProduct(product);
-  }
-
-  public void onSave(@Observes EntityNewEvent event) {
-    if (!isValidEvent(event)) {
-      return;
-    }
-    Product product = (Product) event.getTargetInstance();
-    validateServiceProduct(product);
-  }
-
-  private void validateServiceProduct(Product product) {
-    if (StringUtils.equals(product.getProductType(), "S") && product.isObposShowstock()) {
-      throw new OBException(Utility.messageBD(new DalConnectionProvider(false),
-          "OBPOS_errorStockScreenOnServiceProduct", OBContext.getOBContext().getLanguage()
-              .getLanguage()));
-    }
-  }
-}
\ No newline at end of file
