diff --git a/web/org.openbravo.retail.posterminal/js/model/order.js b/web/org.openbravo.retail.posterminal/js/model/order.js
index 4ee063863..e62295b72 100644
--- a/web/org.openbravo.retail.posterminal/js/model/order.js
+++ b/web/org.openbravo.retail.posterminal/js/model/order.js
@@ -10097,22 +10097,23 @@
                       OB.Model.Discount,
                       promotion.ruleId,
                       function(discount) {
-                        if (
-                          discount &&
+                        const discountRule =
                           OB.Model.Discounts.discountRules[
                             discount.get('discountType')
-                          ].addManual
+                          ];
+                        if (
+                          discountRule &&
+                          discountRule.addManual &&
+                          discountRule.isManual
                         ) {
-                          var percentage;
-                          if (discount.get('obdiscPercentage')) {
-                            percentage = OB.DEC.mul(
+                          if (!discountRule.isAmount) {
+                            promotion.userAmt = OB.DEC.mul(
                               OB.DEC.div(promotion.amt, iter.lineGrossAmount),
                               new BigDecimal('100')
                             );
+                          } else {
+                            promotion.userAmt = promotion.amt;
                           }
-                          promotion.userAmt = percentage
-                            ? percentage
-                            : promotion.amt;
                           promotion.discountType = discount.get('discountType');
                           promotion.manual = true;
                         }
