diff --git a/web/org.openbravo.retail.discounts/js/discountsengine/common/rules/manual-promotions-discount.js b/web/org.openbravo.retail.discounts/js/discountsengine/common/rules/manual-promotions-discount.js
index 17a889c..1d819fa 100644
--- a/web/org.openbravo.retail.discounts/js/discountsengine/common/rules/manual-promotions-discount.js
+++ b/web/org.openbravo.retail.discounts/js/discountsengine/common/rules/manual-promotions-discount.js
@@ -285,7 +285,11 @@
           }
           return false;
         });
-        if (foundLine) {
+        if (
+          foundLine &&
+          this.getTotalLinePrice(foundLine) >=
+            this.discountImpl.obdiscLineFinalgross
+        ) {
           participantLines.push(foundLine);
         }
       });
diff --git a/web/org.openbravo.retail.discounts/js/promotion-manual.js b/web/org.openbravo.retail.discounts/js/promotion-manual.js
index 5aebcd1..e417102 100644
--- a/web/org.openbravo.retail.discounts/js/promotion-manual.js
+++ b/web/org.openbravo.retail.discounts/js/promotion-manual.js
@@ -132,14 +132,7 @@
             ? amount
             : promotion.definition.userAmt;
         }
-        if (!OB.UTIL.isNullOrUndefined(amount)) {
-          var finalAmount = OB.DEC.sub(line.getTotalLine(), amount);
-          if (finalAmount > 0) {
-            promotion.definition.userAmt = finalAmount;
-          } else {
-            promotion.definition.userAmt = line.getTotalLine();
-          }
-        }
+        promotion.definition.userAmt = amount;
       }
       add(receipt, line, promotion);
     },
