CommunicationWidgetPanel::getPortraitRowData

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

	$rowData = array();

	$rowData[] = array(
		'height' => '380',
		'cells'  =>
			array(
				array(
					'controls' =>
						array(
							array(
								'typeName' => 'number',
								'configs'  =>
									array(
										array(
											'name'       => 'param1',
											'title'      => GetMessage('CRM_COMM_WGT_DEAL_SUCCESS_SUM'),
											'dataPreset' => $entityPrefix.'_DEAL_SUM_STATS::SUCCESS_SUM',
											'dataSource' => $entityPrefix.'_DEAL_SUM_STATS',
											'select'     => array('name' => 'SUCCESS_SUM',	'aggregate' => 'SUM'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
										array(
											'name'       => 'param2',
											'title'      => GetMessage('CRM_COMM_WGT_DEAL_PROCESS_SUM'),
											'dataPreset' => $entityPrefix.'_DEAL_SUM_STATS::PROCESS_SUM',
											'dataSource' => $entityPrefix.'_DEAL_SUM_STATS',
											'select'     => array('name' => 'PROCESS_SUM', 'aggregate' => 'SUM'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
										array(
											'name'       => 'param3',
											'title'      => GetMessage('CRM_COMM_WGT_DEAL_FAILED_SUM'),
											'dataPreset' => $entityPrefix.'_DEAL_SUM_STATS::FAILURE_SUM',
											'dataSource' => $entityPrefix.'_DEAL_SUM_STATS',
											'select'     => array('name' => 'FAILURE_SUM', 'aggregate' => 'SUM'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
									),
								'layout'   => 'tiled',
							),
						),
				),
				array(
					'controls' =>
						array(
							array(
								'typeName' => 'number',
								'configs'  =>
									array(
										array(
											'name'       => 'param1',
											'title'      => GetMessage('CRM_COMM_WGT_PAID_INTIME_COUNT'),
											'dataPreset' => $entityPrefix.'_INVOICE_SUM_STATS::PAID_INTIME_COUNT',
											'dataSource' => $entityPrefix.'_INVOICE_SUM_STATS',
											'select'     => array('name' => 'PAID_INTIME_COUNT', 'aggregate' => 'COUNT'),
										),
										array(
											'name'       => 'param2',
											'title'      => GetMessage('CRM_COMM_WGT_OVERALL_INVOICES'),
											'dataPreset' => $entityPrefix.'_INVOICE_SUM_STATS::OVERALL_COUNT',
											'dataSource' => $entityPrefix.'_INVOICE_SUM_STATS',
											'select'     => array('name' => 'OVERALL_COUNT', 'aggregate' => 'COUNT'),
										),
										array(
											'name'       => 'expr',
											'dataSource' =>
												array(
													'name'      => 'EXPRESSION',
													'operation' => 'PC',
													'arguments' =>
														array(
															0 => '%param1%',
															1 => '%param2%',
														),
												),
											'title'      => GetMessage('CRM_COMM_WGT_FINANCE_INDEX'),
											'format'     => array('isPercent' => 'Y')
										),
									),
								'layout'   => 'tiled',
							),
						),
				),
			),
	);

	$rowData[] = array(
		'height' => '380',
		'cells'  =>
			array(
				array(
					'controls' =>
						array(
							array(
								'typeName' => 'number',
								'configs'  =>
									array(
										array(
											'name'       => 'param1',
											'title'      => GetMessage('CRM_COMM_WGT_INVOICES_ACTIVE_SUM'),
											'dataPreset' => $entityPrefix.'_INVOICE_SUM_STATS::OVERALL_SUM',
											'dataSource' => $entityPrefix.'_INVOICE_SUM_STATS',
											'select'     => array('name'      => 'OVERALL_SUM', 'aggregate' => 'SUM'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
										array(
											'name'       => 'param2',
											'title'      => GetMessage('CRM_COMM_WGT_INVOICES_PAID_SUM'),
											'dataPreset' => $entityPrefix.'_INVOICE_SUM_STATS::SUCCESS_SUM',
											'dataSource' => $entityPrefix.'_INVOICE_SUM_STATS',
											'select'     => array('name' => 'SUCCESS_SUM', 'aggregate' => 'SUM'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
										array(
											'name'       => 'expr',
											'dataSource' =>
												array(
													'name'      => 'EXPRESSION',
													'operation' => 'DIFF',
													'arguments' => array('%param1%', '%param2%'),
												),
											'title'      => GetMessage('CRM_COMM_WGT_INVOICES_WAITING'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
									),
								'layout'   => 'tiled',
							),
						),
				),
				array(
					'controls' =>
						array(
							array(
								'typeName' => 'number',
								'configs'  =>
									array(
										array(
											'name'       => 'param1',
											'title'      => GetMessage('CRM_COMM_WGT_DEAL_SUM_PERIOD'),
											'dataPreset' => $entityPrefix.'_DEAL_SUM_STATS::SUM_TOTAL',
											'dataSource' => $entityPrefix.'_DEAL_SUM_STATS',
											'select'     => array('name' => 'SUM_TOTAL', 'aggregate' => 'SUM'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
									),
							),
							array(
								'typeName' => 'number',
								'configs'  =>
									array(
										array(
											'name'       => 'param1',
											'title'      => GetMessage('CRM_COMM_WGT_CONVERSION'),
											'dataPreset' => $entityPrefix.'_DEAL_CONV_RATE::ACTIVITY',
											'dataSource' => $entityPrefix.'_DEAL_CONV_RATE',
											'select'     => array('name' => 'ACTIVITY'),
											'format'     => array('isPercent' => 'Y')
										),
									),
							),
						),
				),
			)
	);

	$rowData[] = array(
		'height' => '380',
		'cells'  =>
			array(
				array(
					'controls' =>
						array(
							array(
								'typeName'    => 'graph',
								'group'       => 'DATE',
								'combineData' => 'Y',
								'configs'     =>
									array(
										array(
											'name'       => 'param1',
											'title'      => GetMessage('CRM_COMM_WGT_DEALS'),
											'dataPreset' => $entityPrefix.'_DEAL_SUM_STATS::SUM_TOTAL',
											'dataSource' => $entityPrefix.'_DEAL_SUM_STATS',
											'select'     => array('name' => 'SUM_TOTAL', 'aggregate' => 'SUM'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
										array(
											'name'       => 'param2',
											'title'      => GetMessage('CRM_COMM_WGT_SUCCESS_DEALS'),
											'dataPreset' => $entityPrefix.'_DEAL_SUM_STATS::SUCCESS_SUM',
											'dataSource' => $entityPrefix.'_DEAL_SUM_STATS',
											'select'     => array('name' => 'SUCCESS_SUM', 'aggregate' => 'SUM'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
										array(
											'name'       => 'param3',
											'title'      => GetMessage('CRM_COMM_WGT_PAID_INVOICES'),
											'dataPreset' => $entityPrefix.'_INVOICE_SUM_STATS::SUCCESS_SUM',
											'dataSource' => $entityPrefix.'_INVOICE_SUM_STATS',
											'select'     => array('name' => 'SUCCESS_SUM', 'aggregate' => 'SUM'),
											'format'     => array('isCurrency' => 'Y', 'enableDecimals' => 'N'),
										),
									),
								'title'       => GetMessage('CRM_COMM_WGT_PAYMENTS'),
								'context'     => 'F',
								'filter' => array(
									'periodType' => FilterPeriodType::LAST_DAYS_90
								)
							),
						),
				),
			)
	);

	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' => 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'),
								'display' => array('colorScheme' => 'green')
							)
						)
					)
				)
			),
			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'),
								'display' => array('colorScheme' => 'yellow')
							)
						)
					)
				)
			)
		)
	);

	$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' => 'blue')
							)
						)
					)
				)
			),
			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' => 'red')
							)
						)
					)
				)
			)
		)
	);

	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')
							)
						)
					)
				)
			)
		);

		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')
							)
						)
					)
				)
			);
		}

		$rowData[] = array(
			'height' => 180,
			'cells'  => $cells
		);
	}

	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')
								)
							)
						)
					)
				)
			)
		);
	}

	return $rowData;
}

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