• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/entity/companyvalidator.php
  • Класс: Bitrix\Crm\Entity\CompanyValidator
  • Вызов: CompanyValidator::checkFieldPresence
public function checkFieldPresence($fieldName, array &$messages = null)
{
	$message = null;
	if ($fieldName === 'REVENUE_WITH_CURRENCY')
	{
		$result = !$this->isNeedToCheck('REVENUE')
			||  (isset($this->entityFields['REVENUE']) && $this->entityFields['REVENUE'] > 0);

		if(!$result)
		{
			$message = Loc::getMessage(
				'CRM_ENTITY_VALIDATOR_FIELD_MUST_BE_GREATER_THEN_ZERO',
				array('%FIELD_NAME%' => \CCrmCompany::GetFieldCaption('REVENUE'))
			);
		}
	}
	else if ($fieldName === 'LOGO')
	{
		$isNeedToCheck = $this->isNeedToCheck($fieldName);
		$isFilled = (isset($this->entityFields[$fieldName]) && $this->entityFields[$fieldName] > 0);
		$isDeleted = (isset($this->entityFields[$fieldName.'_del'])
			&& $this->entityFields[$fieldName.'_del'] === $this->entityFields[$fieldName]);
		$result = !$isNeedToCheck || ($isFilled && !$isDeleted);
		unset($isNeedToCheck, $isFilled, $isDeleted);
	}
	else if (\CCrmFieldMulti::IsSupportedType($fieldName))
	{
		$result = $this->multifieldValidator->checkPresence(array('TYPE_ID' => $fieldName));
	}
	else if (Tracking\UI\Details::isTrackingField($fieldName))
	{
		$isNeedToCheck = $this->isNeedToCheck($fieldName);
		$isFilled = Tracking\UI\Details::isTrackingFieldFilled($this->entityFields);
		$result = !$isNeedToCheck || $isFilled;
		unset($isNeedToCheck, $isFilled);
	}
	else
	{
		if($fieldName === 'CONTACT')
		{
			$effectiveFieldName = 'CONTACT_ID';
		}
		else
		{
			$effectiveFieldName = $fieldName;
		}
		$result = $this->innerCheckFieldPresence($effectiveFieldName);
	}

	if(!$result)
	{
		if($message === null)
		{
			$message = Loc::getMessage(
				'CRM_ENTITY_VALIDATOR_FIELD_IS_MISSING',
				array('%FIELD_NAME%' => \CCrmCompany::GetFieldCaption($fieldName))
			);
		}

		if(!is_array($messages))
		{
			$messages = array();
		}
		$messages[] = array('id' => $fieldName, 'text' => $message);
	}
	return $result;
}