• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/report/dashboard/sales/salesfunnelboard.php
  • Класс: Bitrix\Crm\Integration\Report\Dashboard\Sales\SalesFunnelBoard
  • Вызов: SalesFunnelBoard::buildManagerEfficiencyGrid
static function buildManagerEfficiencyGrid()
{
	$widget = new Widget();
	$widget->setGId(Util::generateUserUniqueId());
	$widget->setWidgetClass(BaseWidget::getClassName());
	$widget->setViewKey(FunnelGrid::VIEW_KEY);
	$widget->setCategoryKey('crm');
	$widget->setBoardId(static::BOARD_KEY);

	$widget->getWidgetHandler(true)->updateFormElementValue(
		'label',
		Loc::getMessage(
			'CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_TITLE'
		)
	);

	$widget->getWidgetHandler(true)->updateFormElementValue(
		'calculateMode',
		ColumnFunnel::CONVERSION_CALCULATE_MODE
	);

	$widget->getWidgetHandler(true)->updateFormElementValue(
		'amountFieldTitle',
		Loc::getMessage('CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_AMOUNT_TITLE')
	);

	$widget->getWidgetHandler(true)->updateFormElementValue(
		'groupingColumnTitle',
		Loc::getMessage('CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_GROUPING_COLUMN_TITLE')
	);

	$widget->addConfigurations($widget->getWidgetHandler(true)->getConfigurations());

	$leadCount = new Report();
	$leadCount->setGId(Util::generateUserUniqueId());
	$leadCount->setReportClassName(Lead::getClassName());
	$leadCount->setWidget($widget);
	$leadCount->getReportHandler(true)->updateFormElementValue(
		'label',
		Loc::getMessage(
			'CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_LEAD_COUNT_TITLE'
		)
	);
	$leadCount->getReportHandler(true)->updateFormElementValue('groupingBy', Lead::GROUPING_BY_RESPONSIBLE);
	$leadCount->getReportHandler(true)->updateFormElementValue('calculate', Lead::WHAT_WILL_CALCULATE_LEAD_COUNT);
	$leadCount->addConfigurations($leadCount->getReportHandler(true)->getConfigurations());
	$widget->addReports($leadCount);

	$dealCount = new Report();
	$dealCount->setGId(Util::generateUserUniqueId());
	$dealCount->setReportClassName(Deal::getClassName());
	$dealCount->setWidget($widget);
	$dealCount->getReportHandler(true)->updateFormElementValue(
		'label',
		Loc::getMessage(
			'CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_DEAL_COUNT_TITLE'
		)
	);
	$dealCount->getReportHandler(true)->updateFormElementValue('groupingBy', Deal::GROUPING_BY_RESPONSIBLE);
	$dealCount->getReportHandler(true)->updateFormElementValue('calculate', Deal::WHAT_WILL_CALCULATE_DEAL_COUNT);
	$dealCount->addConfigurations($dealCount->getReportHandler(true)->getConfigurations());
	$widget->addReports($dealCount);

	$dealLoseCount = new Report();
	$dealLoseCount->setGId(Util::generateUserUniqueId());
	$dealLoseCount->setReportClassName(Deal::getClassName());
	$dealLoseCount->setWidget($widget);
	$dealLoseCount->getReportHandler(true)->updateFormElementValue(
		'label',
		Loc::getMessage(
			'CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_DEAL_LOSES_COUNT_TITLE'
		)
	);
	$dealLoseCount->getReportHandler(true)->updateFormElementValue('groupingBy', Deal::GROUPING_BY_RESPONSIBLE);
	$dealLoseCount->getReportHandler(true)->updateFormElementValue('calculate', Deal::WHAT_WILL_CALCULATE_DEAL_LOSES_COUNT);
	$dealLoseCount->addConfigurations($dealLoseCount->getReportHandler(true)->getConfigurations());
	$widget->addReports($dealLoseCount);


	$dealSum = new Report();
	$dealSum->setGId(Util::generateUserUniqueId());
	$dealSum->setReportClassName(Deal::getClassName());
	$dealSum->setWidget($widget);
	$dealSum->getReportHandler(true)->updateFormElementValue(
		'label',
		Loc::getMessage(
			'CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_DEAL_SUM_TITLE'
		)
	);
	$dealSum->getReportHandler(true)->updateFormElementValue('groupingBy', Deal::GROUPING_BY_RESPONSIBLE);
	$dealSum->getReportHandler(true)->updateFormElementValue('calculate', Deal::WHAT_WILL_CALCULATE_DEAL_SUM);
	$dealSum->addConfigurations($dealSum->getReportHandler(true)->getConfigurations());
	$widget->addReports($dealSum);

	$dealSum = new Report();
	$dealSum->setGId(Util::generateUserUniqueId());
	$dealSum->setReportClassName(Deal::getClassName());
	$dealSum->setWidget($widget);
	$dealSum->getReportHandler(true)->updateFormElementValue(
		'label',
		Loc::getMessage(
			'CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_WON_DEAL_COUNT_TITLE'
		)
	);
	$dealSum->getReportHandler(true)->updateFormElementValue('groupingBy', Deal::GROUPING_BY_RESPONSIBLE);
	$dealSum->getReportHandler(true)->updateFormElementValue('calculate', Deal::WHAT_WILL_CALCULATE_DEAL_WON_COUNT);
	$dealSum->addConfigurations($dealSum->getReportHandler(true)->getConfigurations());
	$widget->addReports($dealSum);

	$dealSum = new Report();
	$dealSum->setGId(Util::generateUserUniqueId());
	$dealSum->setReportClassName(Deal::getClassName());
	$dealSum->setWidget($widget);
	$dealSum->getReportHandler(true)->updateFormElementValue(
		'label',
		Loc::getMessage(
			'CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_WON_DEAL_SUM_TITLE'
		)
	);
	$dealSum->getReportHandler(true)->updateFormElementValue('groupingBy', Deal::GROUPING_BY_RESPONSIBLE);
	$dealSum->getReportHandler(true)->updateFormElementValue('calculate', Deal::WHAT_WILL_CALCULATE_DEAL_WON_SUM);
	$dealSum->addConfigurations($dealSum->getReportHandler(true)->getConfigurations());
	$widget->addReports($dealSum);

	$conversion = new Report();
	$conversion->setGId(Util::generateUserUniqueId());
	$conversion->setReportClassName(Deal::getClassName());
	$conversion->setWidget($widget);
	$conversion->getReportHandler(true)->updateFormElementValue(
		'label',
		Loc::getMessage(
			'CRM_REPORT_SALES_FUNNEL_BOARD_MANAGER_EFFICIENCY_GRID_CONVERSION_TITLE'
		)
	);
	$conversion->getReportHandler(true)->updateFormElementValue('color', '#4fc3f7');
	$conversion->getReportHandler(true)->updateFormElementValue('groupingBy', Deal::GROUPING_BY_RESPONSIBLE);
	$conversion->getReportHandler(true)->updateFormElementValue('calculate', Deal::WHAT_WILL_CALCULATE_DEAL_CONVERSION);
	$conversion->addConfigurations($conversion->getReportHandler(true)->getConfigurations());
	$widget->addReports($conversion);

	return $widget;
}