CommunicationWidgetPanel::getActivityRowData

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

	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' => 'ACTIVITY_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':TOTAL_QTY',
										'dataSource' => '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' => 'ACTIVITY_STATUS_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':TOTAL',
										'dataSource' => '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' => 'ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':TOTAL',
										'dataSource' => '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' => 'ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':TOTAL',
										'dataSource' => 'ACTIVITY_MARK_STATS',
										'select'     => array('name' => 'TOTAL', 'aggregate' => 'SUM')
									)/*,
									array(
										'name'       => 'qty_positive',
										'title'      => Loc::getMessage('CRM_COMM_WGT_MARK_POSITIVE'),
										'dataPreset' => 'ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':POSITIVE_QTY',
										'dataSource' => 'ACTIVITY_MARK_STATS',
										'select'     => array('name' => 'POSITIVE_QTY', 'aggregate' => 'SUM')
									),
									array(
										'name'       => 'qty_negative',
										'title'      => Loc::getMessage('CRM_COMM_WGT_MARK_NEGATIVE'),
										'dataPreset' => 'ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':NEGATIVE_QTY',
										'dataSource' => 'ACTIVITY_MARK_STATS',
										'select'     => array('name' => 'NEGATIVE_QTY', 'aggregate' => 'SUM')
									),
									array(
										'name'       => 'qty_nomark',
										'title'      => Loc::getMessage('CRM_COMM_WGT_MARK_NONE'),
										'dataPreset' => 'ACTIVITY_MARK_STATS::'.Provider\OpenLine::getId().':'.$line['PROVIDER_TYPE_ID'].':NONE_QTY',
										'dataSource' => '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' => 'ACTIVITY_STATS::'.Provider\Call::getId().':CALL:TOTAL_QTY',
								'dataSource' => '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' => 'ACTIVITY_STREAM_STATS::'.Provider\Call::getId().':CALL:TOTAL',
									'dataSource' => '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' => 'ACTIVITY_MARK_STATS::'.Provider\Call::getId().':CALL:TOTAL',
									'dataSource' => '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' => 'ACTIVITY_STATS::'.Provider\Meeting::getId().':*:TOTAL_QTY',
								'dataSource' => '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' => 'ACTIVITY_STATS::'.Provider\Email::getId().':*:TOTAL_QTY',
								'dataSource' => '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' => 'ACTIVITY_STATS::'.Provider\Livefeed::getId().':*:TOTAL_QTY',
								'dataSource' => 'ACTIVITY_STATS',
								'select' => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM'),
								'display' => array('colorScheme' => 'yellow')
							)
						)
					)
				)
			)
		)
	);

	if (Provider\ExternalChannel::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\ExternalChannel::getName()
									)),
									'dataPreset' => 'ACTIVITY_STATS::'.Provider\ExternalChannel::getId().':*:TOTAL_QTY',
									'dataSource' => 'ACTIVITY_STATS',
									'select'     => array('name' => 'TOTAL_QTY', 'aggregate' => 'SUM'),
									'display' => array('colorScheme' => 'blue')
								)
							)
						)
					)
				),
				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' => 'ACTIVITY_SUM_STATS::'.Provider\ExternalChannel::getId().':*:SUM_TOTAL',
									'dataSource' => 'ACTIVITY_SUM_STATS',
									'select'     => array('name' => 'SUM_TOTAL', 'aggregate' => 'SUM'),
									'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
									'display' => array('colorScheme' => 'red')
								)
							)
						)
					)
				)
			)
		);
	}
	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' => 'ACTIVITY_STATS::'.Provider\WebForm::getId().':*:TOTAL_QTY',
									'dataSource' => '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' => 'ACTIVITY_SUM_STATS::'.Provider\WebForm::getId().':*:SUM_TOTAL',
									'dataSource' => '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;
}

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