%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/report/lib/visualconstructor/runtimeprovider/ |
| Current File : /home/bitrix/www/bitrix/modules/report/lib/visualconstructor/runtimeprovider/reportprovider.php |
<?php
namespace Bitrix\Report\VisualConstructor\RuntimeProvider;
use Bitrix\Report\VisualConstructor\BaseReportHandler;
use Bitrix\Report\VisualConstructor\Handler\BaseReport;
use Bitrix\Report\VisualConstructor\Internal\Manager\ReportManager;
/**
* @method BaseReport|null getFirstResult()
* Class ReportProvider
* @package Bitrix\Report\VisualConstructor\RuntimeProvider
*/
class ReportProvider extends Base
{
/**
* @return array
*/
protected function availableFilterKeys()
{
return array('reportClassName', 'categories', 'unit', 'dataType', 'primary');
}
/**
* @return array
*/
protected function availableRelations()
{
return array('category', 'unit');
}
/**
* @return \Bitrix\Report\VisualConstructor\Internal\Manager\ReportManager
*/
protected function getManagerInstance()
{
return ReportManager::getInstance();
}
/**
* @return BaseReportHandler[]
*/
protected function getEntitiesList()
{
return $this->getManagerInstance()->getReportList();
}
/**
* @return array
*/
protected function getIndices()
{
return $this->getManagerInstance()->getIndices();
}
/**
* @param BaseReport $report
*/
protected function processWithCategory(BaseReport $report)
{
$categoryProvider = new CategoryProvider();
$categoryProvider->addFilter('primary', $report->getCategoryKey());
$categoryProvider->execute();
$results = $categoryProvider->getResults();
$report->category = reset($results);
}
/**
* @param string $className Report handler class name.
* @return BaseReport|null
*/
public static function getReportHandlerByClassName($className)
{
$reportProvider = new ReportProvider();
$reportProvider->addFilter('reportClassName', $className);
return $reportProvider->execute()->getFirstResult();
}
}