uawdijnntqw1x1x1
IP : 13.59.234.246
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
nn.axolotls.ru
/
bitrix
/
modules
/
crm
/
lib
/
widget
/
numericwidget.php
/
/
<?php namespace Bitrix\Crm\Widget; use Bitrix\Crm\Widget\Data\DataSource; use Bitrix\Crm\Widget\Data\DataSourceFactory; use Bitrix\Crm\Widget\Data\ExpressionDataSource; class NumericWidget extends Widget { /** @var array[WidgetConfig] */ private $configs = null; public function __construct(array $settings, Filter $filter, $userID = 0, $enablePermissionCheck = true) { parent::__construct($settings, $filter, $userID, $enablePermissionCheck); $this->configs = array(); $configs = $this->getSettingArray('configs', array()); foreach($configs as $config) { $this->configs[] = new WidgetConfig($config); } } /** * @return array */ public function prepareData() { $items = array(); $expressions = array(); $qty = count($this->configs); for($i = 0; $i < $qty; $i++) { /** @var WidgetConfig $config */ $config = $this->configs[$i]; $name = $config->getName(); if($name === '') { $name = strval($i + 1); } $title = $config->getTitle(); $items[$name] = array('name' => $name, 'title' => $title, 'value' => 0); $source = null; $sourceSettings = $config->getDataSourceSettings(); if(DataSourceFactory::checkSettings($sourceSettings)) { $source = DataSourceFactory::create($sourceSettings, $this->userID, $this->enablePermissionCheck); $source->setFilterContextData($this->getFilterContextData()); } $params = array('name' => $name, 'config' => $config, 'source' => $source); //Skip expressions. They will be processed at the end of this function. if($source instanceof ExpressionDataSource) { $expressions[] = $params; continue; } $this->prepareItem($params, $items); } foreach($expressions as $params) { $this->prepareItem($params, $items); } return array('items' => array_values($items)); } /** * @return void */ protected function prepareItem(array $params, array &$result) { /** @var string $name */ $name = $params['name']; /** @var WidgetConfig $config */ $config = $params['config']; /** @var DataSource $source */ $source = $params['source']; if($source === null) { $result[$name] = array(); return; } $selectField = $config->getSelectField(); if($selectField === '') { $selectField = $name; } $this->filter->setExtras($config->getFilterParams()); $value = (double)$source->getFirstValue( array( 'filter' => $this->filter, 'select' => array(array('name' => $selectField, 'aggregate' => $config->getAggregate())), 'result' => $result ), $selectField, 0.0 ); if(!isset($result[$name])) { $result[$name] = array(); } $format = $config->getFomatParams(); if(empty($format)) { $result[$name]['value'] = $value; } else { $result[$name]['format'] = $format; if(isset($format['enableDecimals']) && $format['enableDecimals'] == 'N') { $value = round($value, 2); } $result[$name]['value'] = $value; if(isset($format['isCurrency']) && $format['isCurrency'] === 'Y') { //hack fom Currency module issue. //$result[$name]['html'] = \CCrmCurrency::MoneyToString(strval($value), \CCrmCurrency::GetAccountCurrencyID()); $html = \CCrmCurrency::MoneyToString(strval($value), \CCrmCurrency::GetAccountCurrencyID()); $html = preg_replace('/(₽)/', '<span style="font-family:Helvetica Neue;">${1}</span>', $html); $result[$name]['html'] = $html; } elseif(isset($format['isPercent']) && $format['isPercent'] === 'Y') { $result[$name]['html'] = "{$value}%"; } } $detailsPageUrl = $source->getDetailsPageUrl(array('filter' => $this->filter, 'field' => $selectField)); if($detailsPageUrl !== '') { $result[$name]['url'] = $detailsPageUrl; } $display = $config->getDisplayParams(); if(!empty($display)) { $result[$name]['display'] = $display; } } /** * @return WidgetConfig|null */ protected function findConfigByName($name) { if($name === '') { return null; } $qty = count($this->configs); for($i = 0; $i < $qty; $i++) { /** @var WidgetConfig $config */ $config = $this->configs[$i]; if($config->getName() === $name) { return $config; } } return null; } /** * @return array */ public function initializeDemoData(array $data) { if(!(isset($data['items']) && is_array($data['items']))) { return $data; } foreach($data['items'] as &$item) { $config = $this->findConfigByName(isset($item['name']) ? $item['name'] : ''); if(!$config) { continue; } $item['title'] = $config->getTitle(); $value = isset($item['value']) ? (double)$item['value'] : 0.0; $format = $config->getFomatParams(); if(isset($format['enableDecimals']) && $format['enableDecimals'] == 'N') { $value = round($value, 0); } $item['value'] = $value; if(isset($format['isCurrency']) && $format['isCurrency'] === 'Y') { //hack fom Currency module issue. //$item['html'] = \CCrmCurrency::MoneyToString($value, \CCrmCurrency::GetAccountCurrencyID()); $html = \CCrmCurrency::MoneyToString(strval($value), \CCrmCurrency::GetAccountCurrencyID()); $html = preg_replace('/(₽)/', '<span style="font-family:Helvetica Neue;">${1}</span>', $html); $item['html'] = $html; } elseif(isset($format['isPercent']) && $format['isPercent'] === 'Y') { $item['html'] = "{$value}%"; } $display = $config->getDisplayParams(); if(!empty($display)) { $item['display'] = $display; } } unset($item); return $data; } }
/var/www/axolotl/data/www/nn.axolotls.ru/bitrix/modules/crm/lib/widget/numericwidget.php