diff --git a/src/org/openbravo/discounts/ws/DiscountsWebService.java b/src/org/openbravo/discounts/ws/DiscountsWebService.java
index d4d9ae4..3a46f54 100644
--- a/src/org/openbravo/discounts/ws/DiscountsWebService.java
+++ b/src/org/openbravo/discounts/ws/DiscountsWebService.java
@@ -14,6 +14,7 @@ import org.openbravo.api.ticket.TicketResult;
 import org.openbravo.api.ticket.service.TicketWebService;
 import org.openbravo.api.ticket.validator.TicketValidator;
 import org.openbravo.base.weld.WeldUtils;
+import org.openbravo.dal.core.OBContext;
 import org.openbravo.discounts.api.DiscountsTicket;
 import org.openbravo.discounts.api.validator.DiscountsTicketValidator;
 import org.openbravo.discounts.engine.graal.GraalDiscountsExecutor;
@@ -28,9 +29,14 @@ public class DiscountsWebService extends TicketWebService<DiscountsTicket> {
 
   @Override
   protected TicketResult apply(DiscountsTicket ticket) {
-    GraalDiscountsExecutor executor = WeldUtils
-        .getInstanceFromStaticBeanManager(GraalDiscountsExecutor.class);
-    return executor.calculateDiscounts(ticket);
+    OBContext.setAdminMode();
+    try {
+      GraalDiscountsExecutor executor = WeldUtils
+          .getInstanceFromStaticBeanManager(GraalDiscountsExecutor.class);
+      return executor.calculateDiscounts(ticket);
+    } finally {
+      OBContext.restorePreviousMode();
+    }
   }
 
   @Override
