- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/entity/contactvalidator.php
- Класс: Bitrix\Crm\Entity\ContactValidator
- Вызов: ContactValidator::checkFieldPresence
public function checkFieldPresence($fieldName, array &$messages = null)
{
$message = null;
if ($fieldName === 'PHOTO')
{
$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 === 'COMPANY')
{
$result = $this->innerCheckAnyFieldPresence(['COMPANY_IDS', 'COMPANY_ID']);
}
else
{
$result = $this->innerCheckFieldPresence($fieldName);
}
}
if(!$result)
{
if($message === null)
{
$message = Loc::getMessage(
'CRM_ENTITY_VALIDATOR_FIELD_IS_MISSING',
array('%FIELD_NAME%' => \CCrmContact::GetFieldCaption($fieldName))
);
}
if(!is_array($messages))
{
$messages = array();
}
$messages[] = array('id' => $fieldName, 'text' => $message);
}
return $result;
}