--- S:\asfalt2\openbravo\modules\org.openbravo.retail.posterminal\web\org.openbravo.retail.posterminal\js\pointofsale\view\keyboardorder-ob.js
+++ S:\asfalt2\openbravo\modules\org.openbravo.retail.posterminal\web\org.openbravo.retail.posterminal\js\pointofsale\view\keyboardorder.js
@@ -338,13 +338,23 @@
           OB.UTIL.showWarning(OB.I18N.getLabel('OBMOBC_LineCanNotBeSelected'));
           return true;
         }
-        keyboard.receipt.set('undo', null);
-        keyboard.receipt.set('multipleUndo', true);
-        var discount = OB.I18N.parseNumber(txt);
-        _.each(me.selectedModels, function (model) {
-          keyboard.receipt.trigger('discount', model, discount);
-        });
-        keyboard.receipt.set('multipleUndo', null);
+
+        OB.UTIL.HookManager.executeHooks('OBPOS_DiscountButtonAction', 
+        {
+        	order: me.receipt,
+        	selectedLines: me.selectedModels,
+        	txt:txt
+        }, 
+	        function() {
+	            keyboard.receipt.set('undo', null);
+	            keyboard.receipt.set('multipleUndo', true);
+	            var discount = OB.I18N.parseNumber(txt);
+	            _.each(me.selectedModels, function (model) {
+	              keyboard.receipt.trigger('discount', model, discount);
+	            });
+	            keyboard.receipt.set('multipleUndo', null);
+	        }
+        );
       }
     });
 

