- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm.php
- Класс: BitrixImOpenLinesCrm
- Вызов: Crm::getFieldsAddLead
protected function getFieldsAddLead(): Result
{
$result = new Result;
$isCorrectEntity = $this->isFieldsCrmEntityCorrect();
if ($isCorrectEntity->isSuccess())
{
$fields = $this->getFields();
$session = $fields->getSession();
$fieldsAdd = [];
$fieldsFmAdd = [];
$fieldsAdd['SOURCE_ID'] = $this->getSourceId()->getResult();
if (!empty($fields->getTitle()))
{
$fieldsAdd['TITLE'] = $fields->getTitle();
}
else
{
$fieldsAdd['TITLE'] = $session->getChat()->getData('TITLE');
}
if (!empty($fields->getPersonName()))
{
$fieldsAdd['NAME'] = $fields->getPersonName();
}
if (!empty($fields->getPersonLastName()))
{
$fieldsAdd['LAST_NAME'] = $fields->getPersonLastName();
}
if (!empty($fields->getPersonSecondName()))
{
$fieldsAdd['SECOND_NAME'] = $fields->getPersonSecondName();
}
if (!empty($fields->getPersonEmail()))
{
$fieldsFmAdd['EMAIL']['WORK'][] = $fields->getPersonEmail();
}
if (!empty($fields->getPersonPhone()))
{
$fieldsFmAdd['PHONE']['WORK'][] = $fields->getPersonPhone();
}
if (!empty($fields->getEmails()))
{
if (!empty($fieldsFmAdd['EMAIL']['WORK']))
{
$fieldsFmAdd['EMAIL']['WORK'] = array_merge($fieldsFmAdd['EMAIL']['WORK'], $fields->getEmails());
$fieldsFmAdd['EMAIL']['WORK'] = ToolsEmail::getArrayUniqueValidate($fieldsFmAdd['EMAIL']['WORK']);
}
else
{
$fieldsFmAdd['EMAIL']['WORK'] = $fields->getEmails();
}
}
if (!empty($fields->getPhones()))
{
if (!empty($fieldsFmAdd['PHONE']['WORK']))
{
$fieldsFmAdd['PHONE']['WORK'] = array_merge($fieldsFmAdd['PHONE']['WORK'], $fields->getPhones());
$fieldsFmAdd['PHONE']['WORK'] = ToolsPhone::getArrayUniqueValidate($fieldsFmAdd['PHONE']['WORK']);
}
else
{
$fieldsFmAdd['PHONE']['WORK'] = $fields->getPhones();
}
}
if (!empty($fields->getPersonWebsite()))
{
if (mb_strlen($fields->getPersonWebsite()) > 250)
{
$fieldsAdd['SOURCE_DESCRIPTION'] = $fields->getPersonWebsite();
}
else
{
$fieldsFmAdd['WEB']['HOME'][] = $fields->getPersonWebsite();
}
}
if (($userCode = $this->getCode()) && ($userCodeImol = $this->getCodeImol()))
{
$fieldsFmAdd['IM'][CrmCommon::getCommunicationType($userCode)][] = $userCodeImol;
}
if ($userId = $this->getUserId())
{
$fieldsFmAdd['LINK']['USER'][] = $userId;
}
if (!empty($fieldsFmAdd))
{
$fieldsAdd['FM'] = CrmCommon::formatMultifieldFields($fieldsFmAdd);
}
if (!empty($fieldsAdd))
{
$result->setData($fieldsAdd);
}
}
else
{
$result->addErrors($isCorrectEntity->getErrors());
}
return $result;
}