From 6c057062f4e210fd87349ab5cf133ff1807da2d5 Mon Sep 17 00:00:00 2001 From: Dominik Pfaffenbauer Date: Mon, 11 May 2020 15:49:56 +0200 Subject: [PATCH] [QuantityPriceRules] fix decimal precision display --- .../js/productquantitypricerules/ranges.js | 5 +++-- .../Resources/public/pimcore/js/helpers.js | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/CoreShop/Bundle/CoreBundle/Resources/public/pimcore/js/productquantitypricerules/ranges.js b/src/CoreShop/Bundle/CoreBundle/Resources/public/pimcore/js/productquantitypricerules/ranges.js index 5ef145f993..6a59711157 100644 --- a/src/CoreShop/Bundle/CoreBundle/Resources/public/pimcore/js/productquantitypricerules/ranges.js +++ b/src/CoreShop/Bundle/CoreBundle/Resources/public/pimcore/js/productquantitypricerules/ranges.js @@ -182,6 +182,7 @@ coreshop.product_quantity_price_rules.ranges = Class.create(coreshop.product_qua name: 'quantity_amount', getEditor: function () { return new Ext.form.NumberField({ + decimalPrecision: pimcore.globalmanager.get('coreshop.currency.decimal_precision'), minValue: 0 }); }, @@ -198,9 +199,9 @@ coreshop.product_quantity_price_rules.ranges = Class.create(coreshop.product_qua } if (value === undefined) { - return coreshop.util.format.currency('', 0); + return '0'; } else { - return prefix + coreshop.util.format.currency('', parseFloat(value) * pimcore.globalmanager.get('coreshop.currency.decimal_factor')); + return prefix + coreshop.util.format.number(parseFloat(value * pimcore.globalmanager.get('coreshop.currency.decimal_factor'))); } } }], diff --git a/src/CoreShop/Bundle/PimcoreBundle/Resources/public/pimcore/js/helpers.js b/src/CoreShop/Bundle/PimcoreBundle/Resources/public/pimcore/js/helpers.js index 38ad6c4734..396b6207dd 100644 --- a/src/CoreShop/Bundle/PimcoreBundle/Resources/public/pimcore/js/helpers.js +++ b/src/CoreShop/Bundle/PimcoreBundle/Resources/public/pimcore/js/helpers.js @@ -60,3 +60,22 @@ coreshop.util.format.currency_precision = function (currency, v, decimalPrecisio return numberFormatter.format(value); }; + +coreshop.util.format.number = function (v) { + return coreshop.util.format.number_precision( + v, + pimcore.globalmanager.get('coreshop.currency.decimal_precision'), + pimcore.globalmanager.get('coreshop.currency.decimal_factor'), + ); +}; + +coreshop.util.format.number_precision = function (v, decimalPrecision, decimalFactor) { + var value = (Math.round((v / decimalFactor) * decimalFactor)) / decimalFactor; + var options = { + style: 'decimal', + minimumFractionDigits: decimalPrecision + }; + var numberFormatter = new Intl.NumberFormat(pimcore.globalmanager.get('user').language, options); + + return numberFormatter.format(value); +};