• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/mobile_helper.php
  • Класс: \CCrmMobileHelper
  • Вызов: CCrmMobileHelper::PrepareDealItem
static function PrepareDealItem(&$item, &$params, $enums = array())
{
	$itemID = intval($item['~ID']);

	if(!isset($item['~PROBABILITY']))
	{
		$item['~PROBABILITY'] = $item['PROBABILITY'] = 0;
	}

	$currencyID = isset($item['~CURRENCY_ID']) ? $item['~CURRENCY_ID'] : '';
	if($currencyID === '')
	{
		$currencyID = $item['~CURRENCY_ID'] = CCrmCurrency::GetBaseCurrencyID();
	}

	$item['~FORMATTED_OPPORTUNITY'] = CCrmCurrency::MoneyToString(
		isset($item['~OPPORTUNITY']) ? $item['~OPPORTUNITY'] : '',
		$currencyID
	);
	$item['FORMATTED_OPPORTUNITY'] = strip_tags($item['~FORMATTED_OPPORTUNITY']);


	$contactID = isset($item['~CONTACT_ID']) ? intval($item['~CONTACT_ID']) : 0;
	$item['~CONTACT_ID'] = $item['CONTACT_ID'] = 0;
	$item['CONTACT'] = $item['~CONTACT_FORMATTED_NAME'] = $item['CONTACT_FORMATTED_NAME'] = '';
	if (\CCrmContact::CheckReadPermission($contactID))
	{
		$item['~CONTACT_ID'] = $item['CONTACT_ID'] = $contactID;
		$item['CONTACT_SHOW_URL'] = $contactID > 0 && $params['CONTACT_SHOW_URL_TEMPLATE'] !== ''
			? CComponentEngine::MakePathFromTemplate(
				$params['CONTACT_SHOW_URL_TEMPLATE'], array('contact_id' => $contactID)
			) : '';

		$item['~CONTACT_FORMATTED_NAME'] = $contactID > 0
			? CCrmContact::PrepareFormattedName(
				array(
					'HONORIFIC' => isset($item['~CONTACT_HONORIFIC']) ? $item['~CONTACT_HONORIFIC'] : '',
					'NAME' => isset($item['~CONTACT_NAME']) ? $item['~CONTACT_NAME'] : '',
					'LAST_NAME' => isset($item['~CONTACT_LAST_NAME']) ? $item['~CONTACT_LAST_NAME'] : '',
					'SECOND_NAME' => isset($item['~CONTACT_SECOND_NAME']) ? $item['~CONTACT_SECOND_NAME'] : ''
				),
				$params['NAME_TEMPLATE']
			) : '';
		$item['CONTACT_FORMATTED_NAME'] = htmlspecialcharsbx($item['~CONTACT_FORMATTED_NAME']);

		if ($item['CONTACT_ID'] && $item['CONTACT_FORMATTED_NAME'])
		{
			$url = CComponentEngine::MakePathFromTemplate(
				$params['CONTACT_SHOW_URL_TEMPLATE'],
				array('contact_id' => $item['CONTACT_ID'])
			);

			$item['CONTACT'] = "".$item['CONTACT_FORMATTED_NAME']."";
		}
	}

	$companyID = isset($item['~COMPANY_ID']) ? intval($item['~COMPANY_ID']) : 0;
	$item['~COMPANY_ID'] = $item['COMPANY_ID'] = 0;
	if ($companyID > 0 && $item['COMPANY_TITLE'] && \CCrmCompany::CheckReadPermission($companyID))
	{
		$url = CComponentEngine::MakePathFromTemplate(
			$params['COMPANY_SHOW_URL_TEMPLATE'],
			array('company_id' => $companyID)
		);

		$item['COMPANY'] = "".HtmlFilter::encode($item['~COMPANY_TITLE'])."";
	}

	if(!isset($item['~COMPANY_TITLE']))
	{
		$item['~COMPANY_TITLE'] = $item['COMPANY'] = $item['COMPANY_TITLE'] = '';
	}

	if (is_array($enums["FIELDS"]) && in_array("ASSIGNED_BY", $enums["FIELDS"]))
	{
		self::PrepareUserLink($item, "ASSIGNED_BY", $params);
	}

	if (is_array($enums["FIELDS"]) && in_array("CREATED_BY", $enums["FIELDS"]))
	{
		self::PrepareUserLink($item, "CREATED_BY", $params);
	}

	if (is_array($enums["FIELDS"]) && in_array("MODIFY_BY", $enums["FIELDS"]))
	{
		self::PrepareUserLink($item, "MODIFY_BY", $params);
	}

	$stageList = is_array($enums) && isset($enums['STAGE_LIST'])
		? $enums['STAGE_LIST'] : CCrmViewHelper::GetDealStageInfos($item['~CATEGORY_ID']);

	$stageID = isset($item['~STAGE_ID']) ? $item['~STAGE_ID'] : '';
	$stageName = htmlspecialcharsbx($stageList[$stageID]["NAME"]);

	$jsStageList = is_array($enums) && isset($enums['JS_STAGE_LIST'])
		? $enums['JS_STAGE_LIST'] : array();

	if (empty($jsStageList))
	{
		$i=0;
		foreach ($stageList as $id => $info)
		{
			$jsStageList["s".$i] = array(
				"STATUS_ID" => $info["STATUS_ID"],
				"NAME" => $info["NAME"],
				"COLOR" => $info["COLOR"]
			);
			$i++;
		}
	}

	$onStatusClick = "";
	if (
		isset($enums["IS_EDIT_PERMITTED"])
		&& $enums["IS_EDIT_PERMITTED"]
	)
		$onStatusClick = 'BX.Mobile.Crm.List.showStatusList('.$itemID.','.CUtil::PhpToJSObject($jsStageList).', \'onCrmDealDetailUpdate\')';

	$item['STAGE_ID'] = '
		
'; $stopColor = false; foreach($stageList as $code => $info) { $item['STAGE_ID'].= ' '; if ($stageID == $code) $stopColor = true; if ($code == "WON" || $code == "LOSE" ) break; } $item['STAGE_ID'].= ' '.GetMessage("CRM_COLUMN_DEAL_STAGE").' - '.$stageName.'
'; $typeList = $enums && isset($enums['TYPE_LIST']) ? $enums['TYPE_LIST'] : self::GetStatusList('DEAL_TYPE'); if(!isset($item['~TYPE_ID'])) { $item['~TYPE_ID'] = $item['TYPE_ID'] = ''; } $typeID = $item['~TYPE_ID']; if($typeID === '' || !isset($typeList[$typeID])) { $item['~TYPE_NAME'] = $item['TYPE_NAME'] = ''; } else { $item['~TYPE_NAME'] = $typeList[$typeID]; $item['TYPE_NAME'] = htmlspecialcharsbx($item['~TYPE_NAME']); } $item['TYPE_ID'] = $item['TYPE_NAME']; if (isset($item["DATE_CREATE"])) { $item["DATE_CREATE"] = ConvertTimeStamp(MakeTimeStamp($item['DATE_CREATE'])); } if (isset($item["DATE_MODIFY"])) { $item["DATE_MODIFY"] = ConvertTimeStamp(MakeTimeStamp($item['DATE_MODIFY'])); } if (isset($item["CLOSED"])) { $item["CLOSED"] = $item["CLOSED"] == "Y" ? GetMessage("CRM_TEXT_YES") : GetMessage("CRM_TEXT_NO"); } if (is_array($enums["FIELDS"]) && in_array("AUDIO_CALL", $enums["FIELDS"])) { CCrmMobileHelper::prepareAudioField($item, CCrmOwnerType::Deal); } if (isset($enums['CHECKBOX_USER_FIELDS']) && is_array($enums['CHECKBOX_USER_FIELDS']) && !empty($enums['CHECKBOX_USER_FIELDS'])) { foreach($enums['CHECKBOX_USER_FIELDS'] as $fieldId) { $item[$fieldId] = $item[$fieldId] == 1 ? GetMessage("CRM_TEXT_YES") : GetMessage("CRM_TEXT_NO"); } } if (isset($item["PRODUCT_ID"])) { $item["PRODUCT_ID"] = htmlspecialcharsbx($item["PRODUCT_ID"]); } $item['COMMENTS'] = $item['~COMMENTS']; }