CommunicationWidgetPanel::getRowData

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CommunicationWidgetPanel
  4. getRowData
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/activity/communicationwidgetpanel.php
  • Класс: Bitrix\Crm\Activity\CommunicationWidgetPanel
  • Вызов: CommunicationWidgetPanel::getRowData
static function getRowData($entityTypeId, $isSupervisor = false)
{
	$entityPrefix = \CCrmOwnerType::ResolveName($entityTypeId);

	$rowData = array(
		array(
			'height' => 380,
			'cells' => array(
				array(
					'controls' => array(
						array(
							'title' => Loc::getMessage('CRM_COMM_WGT_GROWTH'),
							'typeName' => 'graph',
							'group' => 'DATE',
							'configs' => array(
								array(
									'name' => 'total_qty',
									'title' => Loc::getMessage('CRM_COMM_WGT_'.$entityPrefix.'_GROWTH_COUNT'),
									'dataPreset' => $entityPrefix.'_GROWTH_STATS::TOTAL_COUNT',
									'dataSource' => $entityPrefix.'_GROWTH_STATS',
									'select' => array('name' => 'TOTAL_COUNT')
								)
							),
							'filter' => array(
								'periodType' => FilterPeriodType::YEAR,
								'year' => date('Y')
							)
						)
					)
				),
				array(
					'controls' => array(
						array(
							'title' => Loc::getMessage('CRM_COMM_WGT_COMMUNICATIONS'),
							'typeName' => 'pie',
							'group' => 'PROVIDER_ID',
							'configs' => array(
								array(
									'name' => 'source_qty',
									'dataPreset' => $entityPrefix.'_ACTIVITY_STATS::TOTAL_QTY',
									'dataSource' => $entityPrefix.'_ACTIVITY_STATS',
									'select' => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM')
								)
							)
						)
					)
				)
			)
		)
	);

	if (Provider\OpenLine::isActive())
	{
		$openLines = self::getProviderTypes(Provider\OpenLine::className());

		foreach ($openLines as $line)
		{
			$rowData[] = array(
				'height' => 180,
				'cells'  => array(
					array(
						'controls' => array(
							array(
								'typeName' => 'number',
								'configs'  => array(
									array(
										'name'       => 'total_qty',
										'title'      => Loc::getMessage('CRM_COMM_WGT_PROVIDER_TOTAL_QTY', array(
											'#PROVIDER_NAME#' => $line['NAME']
										)),
										'dataPreset' => $entityPrefix.'_ACTIVITY_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':TOTAL_QTY',
										'dataSource' => $entityPrefix.'_ACTIVITY_STATS',
										'select'     => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM')
									)
								)
							)
						)
					)
				)
			);
			$rowData[] = array(
				'height' => 380,
				'cells'  => array(
					array(
						'controls' => array(
							array(
								'title'    => Loc::getMessage('CRM_COMM_WGT_STATUSES'),
								'typeName' => 'pie',
								'group'      => 'STATUS',
								'configs'  => array(
									array(
										'name'       => 'status_qty',
										'dataPreset' => $entityPrefix.'_ACTIVITY_STATUS_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':TOTAL',
										'dataSource' => $entityPrefix.'_ACTIVITY_STATUS_STATS',
										'select'     => array('name' => 'TOTAL')
									)
								)
							)
						)
					)/*,
					array(
						'controls' => array(
							array(
								'title'    => Loc::getMessage('CRM_COMM_WGT_MARKS'),
								'typeName' => 'pie',
								'group'      => 'MARK',
								'configs'  => array(
									array(
										'name'       => 'marks_qty',
										'dataPreset' => $entityPrefix.'_ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':TOTAL',
										'dataSource' => $entityPrefix.'_ACTIVITY_MARK_STATS',
										'select'     => array('name' => 'TOTAL')
									)
								)
							)
						)
					)*/
				)
			);
			$rowData[] = array(
				'height' => 380,
				'cells'  => array(
					array(
						'controls' => array(
							array(
								'title'        => Loc::getMessage('CRM_COMM_WGT_SOURCES'),
								'typeName'     => 'bar',
								'group'        => 'SOURCE',
								'context'      => 'E',
								'combineData'  => 'Y',
								'enableStack'  => 'N',
								'integersOnly' => 'Y',
								'configs'      => array(
									array(
										'name'       => 'qty_total',
										'title'      => Loc::getMessage('CRM_COMM_WGT_MARK_ALL'),
										'dataPreset' => $entityPrefix.'_ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':TOTAL',
										'dataSource' => $entityPrefix.'_ACTIVITY_MARK_STATS',
										'select'     => array('name' => 'TOTAL', 'aggregate' => 'SUM')
									)/*,
									array(
										'name'       => 'qty_positive',
										'title'      => Loc::getMessage('CRM_COMM_WGT_MARK_POSITIVE'),
										'dataPreset' => $entityPrefix.'_ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':POSITIVE_QTY',
										'dataSource' => $entityPrefix.'_ACTIVITY_MARK_STATS',
										'select'     => array('name' => 'POSITIVE_QTY', 'aggregate' => 'SUM')
									),
									array(
										'name'       => 'qty_negative',
										'title'      => Loc::getMessage('CRM_COMM_WGT_MARK_NEGATIVE'),
										'dataPreset' => $entityPrefix.'_ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':NEGATIVE_QTY',
										'dataSource' => $entityPrefix.'_ACTIVITY_MARK_STATS',
										'select'     => array('name' => 'NEGATIVE_QTY', 'aggregate' => 'SUM')
									),
									array(
										'name'       => 'qty_nomark',
										'title'      => Loc::getMessage('CRM_COMM_WGT_MARK_NONE'),
										'dataPreset' => $entityPrefix.'_ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':NONE_QTY',
										'dataSource' => $entityPrefix.'_ACTIVITY_MARK_STATS',
										'select'     => array('name' => 'NONE_QTY', 'aggregate' => 'SUM')
									)*/
								)
							)
						)
					)
				)
			);
		}
	}
	else
	{
		$rowData[] = array(
			'height' => 180,
			'cells' => array(
				array(
					'controls' => array(
						array(
							'typeName' => 'custom',
							'configs' => array(
								array(
									'name' => 'provider_status',
									'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_STATUS', array(
										'#PROVIDER_NAME#' => Provider\OpenLine::getName()
									)),
									'dataPreset' => 'ACTIVITY_PROVIDER_STATUS::'.Provider\OpenLine::getId(),
									'dataSource' => 'ACTIVITY_PROVIDER_STATUS',
									'select' => array('name' => Provider\OpenLine::getId()),
									'display' => array('colorScheme' => 'yellow')
								)
							)
						)
					)
				)
			)
		);
	}

	$rowData[] = array(
		'height' => 180,
		'cells' => array(
			array(
				'controls' => array(
					array(
						'typeName' => 'number',
						'configs' => array(
							array(
								'name' => 'call_qty',
								'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_TOTAL_QTY', array(
									'#PROVIDER_NAME#' => Provider\Call::getName()
								)),
								'dataPreset' => $entityPrefix.'_ACTIVITY_STATS::'.Provider\Call::getId().':CALL:TOTAL_QTY',
								'dataSource' => $entityPrefix.'_ACTIVITY_STATS',
								'select' => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM')
							)
						)
					)
				)
			)
		)
	);

	if (Provider\Call::isActive())
	{
		$rowData[] = array(
			'height' => 380,
			'cells'  => array(
				array(
					'controls' => array(
						array(
							'title'    => Loc::getMessage('CRM_COMM_WGT_STREAMS'),
							'typeName' => 'pie',
							'group'      => 'STREAM',
							'configs'  => array(
								array(
									'name'       => 'source_qty',
									'dataPreset' => $entityPrefix.'_ACTIVITY_STREAM_STATS::'.Provider\Call::getId().':CALL:TOTAL',
									'dataSource' => $entityPrefix.'_ACTIVITY_STREAM_STATS',
									'select'     => array('name' => 'TOTAL')
								)
							)
						)
					)
				),
				array(
					'controls' => array(
						array(
							'title'    => Loc::getMessage('CRM_COMM_WGT_MARKS'),
							'typeName' => 'pie',
							'group'      => 'MARK',
							'configs'  => array(
								array(
									'name'       => 'source_qty',
									'dataPreset' => $entityPrefix.'_ACTIVITY_MARK_STATS::'.Provider\Call::getId().':CALL:TOTAL',
									'dataSource' => $entityPrefix.'_ACTIVITY_MARK_STATS',
									'select'     => array('name' => 'TOTAL')
								)
							)
						)
					)
				)
			)
		);
	}
	else
	{
		$rowData[] = array(
			'height' => 180,
			'cells' => array(
				array(
					'controls' => array(
						array(
							'typeName' => 'custom',
							'configs' => array(
								array(
									'name' => 'provider_status',
									'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_STATUS', array(
										'#PROVIDER_NAME#' => Provider\Call::getName()
									)),
									'dataPreset' => 'ACTIVITY_PROVIDER_STATUS::'.Provider\Call::getId(),
									'dataSource' => 'ACTIVITY_PROVIDER_STATUS',
									'select' => array('name' => Provider\Call::getId()),
									'display' => array('colorScheme' => 'yellow')
								)
							)
						)
					)
				)
			)
		);
	}

	$rowData[] = array(
		'height' => 180,
		'cells' => array(
			array(
				'controls' => array(
					array(
						'typeName' => 'number',
						'configs' => array(
							array(
								'name' => 'meeting_qty',
								'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_TOTAL_QTY', array(
									'#PROVIDER_NAME#' => Provider\Meeting::getName()
								)),
								'dataPreset' => $entityPrefix.'_ACTIVITY_STATS::'.Provider\Meeting::getId().':*:TOTAL_QTY',
								'dataSource' => $entityPrefix.'_ACTIVITY_STATS',
								'select' => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM')
							)
						)
					)
				)
			)
		)
	);

	$rowData[] = array(
		'height' => 180,
		'cells' => array(
			array(
				'controls' => array(
					array(
						'typeName' => 'number',
						'configs' => array(
							array(
								'name' => 'email_qty',
								'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_TOTAL_QTY', array(
									'#PROVIDER_NAME#' => Provider\Email::getName()
								)),
								'dataPreset' => $entityPrefix.'_ACTIVITY_STATS::'.Provider\Email::getId().':*:TOTAL_QTY',
								'dataSource' => $entityPrefix.'_ACTIVITY_STATS',
								'select' => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM'),
								'display' => array('colorScheme' => 'green')
							)
						)
					)
				)
			),
			array(
				'controls' => array(
					array(
						'typeName' => 'number',
						'configs' => array(
							array(
								'name' => 'lf_qty',
								'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_TOTAL_QTY', array(
									'#PROVIDER_NAME#' => Provider\Livefeed::getName()
								)),
								'dataPreset' => $entityPrefix.'_ACTIVITY_STATS::'.Provider\Livefeed::getId().':*:TOTAL_QTY',
								'dataSource' => $entityPrefix.'_ACTIVITY_STATS',
								'select' => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM'),
								'display' => array('colorScheme' => 'yellow')
							)
						)
					)
				)
			)
		)
	);

	if (Provider\ExternalChannel::isActive())
	{
		$cells = array(array(
			'controls' => array(
				array(
					'typeName' => 'number',
					'configs'  => array(
						array(
							'name'       => 'total_qty',
							'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_TOTAL_QTY', array(
								'#PROVIDER_NAME#' => Provider\ExternalChannel::getName()
							)),
							'dataPreset' => $entityPrefix.'_ACTIVITY_STATS::'.Provider\ExternalChannel::getId().':*:TOTAL_QTY',
							'dataSource' => $entityPrefix.'_ACTIVITY_STATS',
							'select'     => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM'),
							'display' => array('colorScheme' => 'blue')
						)
					)
				)
			)
		));

		if ($entityTypeId === \CCrmOwnerType::Company)
		{
			$cells[] = array(
				'controls' => array(
					array(
						'typeName' => 'number',
						'configs'  => array(
							array(
								'name'       => 'total_sum',
								'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_SUM', array(
									'#PROVIDER_NAME#' => Provider\ExternalChannel::getName()
								)),
								'dataPreset' => $entityPrefix.'_ACTIVITY_SUM_STATS::'.Provider\ExternalChannel::getId().':*:SUM_TOTAL',
								'dataSource' => $entityPrefix.'_ACTIVITY_SUM_STATS',
								'select'     => array('name' => 'SUM_TOTAL', 'aggregate' => 'SUM'),
								'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
								'display' => array('colorScheme' => 'red')
							)
						)
					)
				)
			);
		}

		$rowData[] = array(
			'height' => 180,
			'cells'  => $cells
		);
	}
	else
	{
		$rowData[] = array(
			'height' => 180,
			'cells' => array(
				array(
					'controls' => array(
						array(
							'typeName' => 'custom',
							'configs' => array(
								array(
									'name' => 'provider_status',
									'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_STATUS', array(
										'#PROVIDER_NAME#' => Provider\ExternalChannel::getName()
									)),
									'dataPreset' => 'ACTIVITY_PROVIDER_STATUS::'.Provider\ExternalChannel::getId(),
									'dataSource' => 'ACTIVITY_PROVIDER_STATUS',
									'select' => array('name' => Provider\ExternalChannel::getId()),
									'display' => array('colorScheme' => 'yellow')
								)
							)
						)
					)
				)
			)
		);
	}

	if (Provider\WebForm::isActive())
	{
		$rowData[] = array(
			'height' => 180,
			'cells'  => array(
				array(
					'controls' => array(
						array(
							'typeName' => 'number',
							'configs'  => array(
								array(
									'name'       => 'total_qty',
									'title'      => Loc::getMessage('CRM_COMM_WGT_PROVIDER_TOTAL_QTY', array(
										'#PROVIDER_NAME#' => Provider\WebForm::getName()
									)),
									'dataPreset' => $entityPrefix.'_ACTIVITY_STATS::'.Provider\WebForm::getId().':*:TOTAL_QTY',
									'dataSource' => $entityPrefix.'_ACTIVITY_STATS',
									'select'     => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM')
								)
							)
						)
					)
				),
				array(
					'controls' => array(
						array(
							'typeName' => 'number',
							'configs'  => array(
								array(
									'name'       => 'total_sum',
									'title'      => Loc::getMessage('CRM_COMM_WGT_PROVIDER_SUM', array(
										'#PROVIDER_NAME#' => Provider\WebForm::getName()
									)),
									'dataPreset' => $entityPrefix.'_ACTIVITY_SUM_STATS::'.Provider\WebForm::getId().':*:SUM_TOTAL',
									'dataSource' => $entityPrefix.'_ACTIVITY_SUM_STATS',
									'select'     => array('name' => 'SUM_TOTAL', 'aggregate' => 'SUM'),
									'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N')
								)
							)
						)
					)
				)
			)
		);
	}
	else
	{
		$rowData[] = array(
			'height' => 180,
			'cells' => array(
				array(
					'controls' => array(
						array(
							'typeName' => 'custom',
							'configs' => array(
								array(
									'name' => 'provider_status',
									'title' => Loc::getMessage('CRM_COMM_WGT_PROVIDER_STATUS', array(
										'#PROVIDER_NAME#' => Provider\WebForm::getName()
									)),
									'dataPreset' => 'ACTIVITY_PROVIDER_STATUS::'.Provider\WebForm::getId(),
									'dataSource' => 'ACTIVITY_PROVIDER_STATUS',
									'select' => array('name' => Provider\WebForm::getId()),
									'display' => array('colorScheme' => 'yellow')
								)
							)
						)
					)
				)
			)
		);
	}

	return $rowData;
}

Добавить комментарий