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

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

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

	$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_SALES_FUNNEL_GOOD_LEAD_COUNT_TITLE'
		)
	);
	$leadCount->getReportHandler(true)->updateFormElementValue('groupingBy', Lead::GROUPING_BY_STATE);
	$leadCount->getReportHandler(true)->updateFormElementValue('calculate', Lead::WHAT_WILL_CALCULATE_LEAD_DATA_FOR_FUNNEL);
	$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_SALES_FUNNEL_GOOD_DEAL_METRIC_TITLE'
		)
	);
	$dealCount->getReportHandler(true)->updateFormElementValue('groupingBy', Deal::GROUPING_BY_STAGE);
	$dealCount->getReportHandler(true)->updateFormElementValue('disableSuccessStages', true);
	$dealCount->getReportHandler(true)->updateFormElementValue(
		'calculate',
		Deal::WHAT_WILL_CALCULATE_DEAL_DATA_FOR_FUNNEL
	);
	$dealCount->addConfigurations($dealCount->getReportHandler(true)->getConfigurations());
	$widget->addReports($dealCount);

	$successDealCount = new Report();
	$successDealCount->setGId(Util::generateUserUniqueId());
	$successDealCount->setReportClassName(Deal::getClassName());
	$successDealCount->setWidget($widget);
	$successDealCount->getReportHandler(true)->updateFormElementValue(
		'label',
		Loc::getMessage(
			'CRM_REPORT_SALES_FUNNEL_BOARD_SALES_FUNNEL_SUCCESS_DEAL_TITLE'
		)
	);
	$successDealCount->getReportHandler(true)->updateFormElementValue('color', '#4fc3f7');
	$successDealCount->getReportHandler(true)->updateFormElementValue('shortMode', true);
	$successDealCount->getReportHandler(true)->updateFormElementValue('groupingBy', Deal::GROUPING_BY_STAGE);
	$successDealCount->getReportHandler(true)->updateFormElementValue('calculate', Deal::WHAT_WILL_CALCULATE_SUCCESS_DEAL_DATA_FOR_FUNNEL);
	$successDealCount->addConfigurations($successDealCount->getReportHandler(true)->getConfigurations());
	$widget->addReports($successDealCount);

	return $widget;
}