# HG changeset patch
# User Ranjith S R <ranjith@qualiantech.com>
# Date 1577449072 -19800
#      Fri Dec 27 17:47:52 2019 +0530
# Node ID 56331255d018a0e620e2a4861b7b921ff8240185
# Parent  64718a8f7ebcedb04a7b5b7927a7d0092139fb0a
Fixed issue 42649 : Updated MOffer EventHandler for Discount Amount and Percentage

diff -r 64718a8f7ebc -r 56331255d018 src/org/openbravo/retail/discounts/event/MOfferEventHandler.java
--- a/src/org/openbravo/retail/discounts/event/MOfferEventHandler.java	Tue Dec 24 00:00:04 2019 -0300
+++ b/src/org/openbravo/retail/discounts/event/MOfferEventHandler.java	Fri Dec 27 17:47:52 2019 +0530
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2014-2017 Openbravo SLU 
+ * All portions are Copyright (C) 2014-2019 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -28,6 +28,7 @@
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.client.kernel.event.EntityDeleteEvent;
 import org.openbravo.client.kernel.event.EntityNewEvent;
+import org.openbravo.client.kernel.event.EntityPersistenceEvent;
 import org.openbravo.client.kernel.event.EntityPersistenceEventObserver;
 import org.openbravo.client.kernel.event.EntityUpdateEvent;
 import org.openbravo.dal.core.OBContext;
@@ -43,6 +44,11 @@
   private static Entity[] entities = {
       ModelProvider.getInstance().getEntity(PriceAdjustment.ENTITY_NAME) };
 
+  private final String discretionaryFixedAmount = "7B49D8CC4E084A75B7CB4D85A6A3A578";
+  private final String discretionaryFixedPercentage = "8338556C0FBF45249512DB343FEFD280";
+  private final String userDefinedAmount = "D1D193305A6443B09B299259493B272A";
+  private final String userDefinedPercentage = "20E4EC27397344309A2185097392D964";
+
   @Override
   protected Entity[] getObservedEntities() {
     return entities;
@@ -66,6 +72,7 @@
           Utility.messageBD(new DalConnectionProvider(false), "OBDISC_DiscPriceAdjCheckMultiple",
               OBContext.getOBContext().getLanguage().getLanguage()));
     }
+    checkMOfferDefinition(event, disc);
   }
 
   public void onNew(@Observes EntityNewEvent event) {
@@ -86,6 +93,7 @@
           Utility.messageBD(new DalConnectionProvider(false), "OBDISC_DiscPriceAdjCheckMultiple",
               OBContext.getOBContext().getLanguage().getLanguage()));
     }
+    checkMOfferDefinition(event, disc);
   }
 
   public void onDelete(@Observes EntityDeleteEvent event) {
@@ -120,4 +128,17 @@
     return true;
   }
 
+  private void checkMOfferDefinition(EntityPersistenceEvent event, PriceAdjustment disc) {
+    if ((userDefinedAmount.equals(disc.getDiscountType().getId()))
+        || discretionaryFixedAmount.equals(disc.getDiscountType().getId())) {
+      event.setCurrentState(ModelProvider.getInstance()
+          .getEntity(PriceAdjustment.ENTITY_NAME)
+          .getProperty(PriceAdjustment.PROPERTY_OBDISCPERCENTAGE), null);
+    } else if ((userDefinedPercentage.equals(disc.getDiscountType().getId()))
+        || discretionaryFixedPercentage.equals(disc.getDiscountType().getId())) {
+      event.setCurrentState(ModelProvider.getInstance()
+          .getEntity(PriceAdjustment.ENTITY_NAME)
+          .getProperty(PriceAdjustment.PROPERTY_OBDISCAMT), null);
+    }
+  }
 }
