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/ilovecveti.ru/bitrix/modules/bizproc/lib/Calc/Libs/ |
Upload File : |
<?php namespace Bitrix\Bizproc\Calc\Libs; use Bitrix\Bizproc\Calc\Arguments; use Bitrix\Main\Localization\Loc; class MathLib extends BaseLib { public function getFunctions(): array { return [ 'abs' => [ 'args' => true, 'func' => 'callAbs', 'description' => Loc::getMessage('BIZPROC_CALC_FUNCTION_ABS_DESCRIPTION'), ], 'intval' => [ 'args' => true, 'func' => 'callIntval', 'description' => Loc::getMessage('BIZPROC_CALC_FUNCTION_INTVAL_DESCRIPTION'), ], 'floatval' => [ 'args' => true, 'func' => 'callFloatval', 'description' => Loc::getMessage('BIZPROC_CALC_FUNCTION_FLOATVAL_DESCRIPTION'), ], 'min' => [ 'args' => true, 'func' => 'callMin', 'description' => Loc::getMessage('BIZPROC_CALC_FUNCTION_MIN_DESCRIPTION'), ], 'max' => [ 'args' => true, 'func' => 'callMax', 'description' => Loc::getMessage('BIZPROC_CALC_FUNCTION_MAX_DESCRIPTION'), ], 'rand' => [ 'args' => true, 'func' => 'callRand', 'description' => Loc::getMessage('BIZPROC_CALC_FUNCTION_RAND_DESCRIPTION'), ], 'round' => [ 'args' => true, 'func' => 'callRound', 'description' => Loc::getMessage('BIZPROC_CALC_FUNCTION_ROUND_DESCRIPTION'), ], 'ceil' => [ 'args' => true, 'func' => 'callCeil', 'description' => Loc::getMessage('BIZPROC_CALC_FUNCTION_CEIL_DESCRIPTION'), ], 'floor' => [ 'args' => true, 'func' => 'callFloor', 'description' => Loc::getMessage('BIZPROC_CALC_FUNCTION_FLOOR_DESCRIPTION'), ], ]; } public function callAbs(Arguments $args) { return abs((float)$args->getFirstSingle()); } public function callRound(Arguments $args) { $val = (float)$args->getFirstSingle(); $precision = (int)$args->getSecond(); return round($val, $precision); } public function callCeil(Arguments $args) { return ceil((double)$args->getFirstSingle()); } public function callFloor(Arguments $args) { return floor((double)$args->getFirstSingle()); } public function callMin(Arguments $args) { $array = array_filter($args->getFlatArray(), static fn($item) => is_scalar($item)); return $array ? min($array) : false; } public function callMax(Arguments $args) { $array = array_filter($args->getFlatArray(), static fn($item) => is_scalar($item)); return $array ? max($array) : false; } public function callRand(Arguments $args) { $min = (int)$args->getFirstSingle(); $max = (int)$args->getSecondSingle(); if (!$max || !is_finite($max)) { $max = mt_getrandmax(); } if ($min > $max) { //$args->getParser()->setError('rand(): Argument #2 ($max) must be greater than or equal to argument #1 ($min)'); return null; } return mt_rand($min, $max); } public function callIntval(Arguments $args) { return (int)$args->getFirstSingle(); } public function callFloatval(Arguments $args) { return (float)$args->getFirstSingle(); } }