Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/sale/checkout/lib/src/ |
Upload File : |
class Basket { static toFixed(quantity, measureRatio, availableQuantity = 0) { let precisionFactor = Math.pow(10, 6); let reminder = (quantity / measureRatio - ((quantity / measureRatio).toFixed(0))).toFixed(5), remain; if (parseFloat(reminder) === 0) { return quantity; } if (measureRatio !== 0 && measureRatio !== 1) { remain = (quantity * precisionFactor) % (measureRatio * precisionFactor) / precisionFactor; if (measureRatio > 0 && remain > 0) { if ( remain >= measureRatio / 2 && ( availableQuantity === 0 || (quantity + measureRatio - remain) <= availableQuantity ) ) { quantity += (measureRatio * precisionFactor - remain * precisionFactor) / precisionFactor; } else { quantity = (quantity * precisionFactor - remain * precisionFactor) / precisionFactor; } } } return quantity; } // isRatioFloat(value) // { // return parseInt(value) !== parseFloat(value) // } static isValueFloat(value) { return parseInt(value) !== parseFloat(value) } static roundValue(value) { if(Basket.isValueFloat(value)) { return Basket.roundFloatValue(value) } else { return parseInt(value, 10) } } static roundFloatValue(value) { let precision = 6; let precisionFactor = Math.pow(10, precision); return Math.round(parseFloat(value) * precisionFactor) / precisionFactor; } } export { Basket }