- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/requisite/conversion/entityaddressconverter.php
- Класс: Bitrix\Crm\Requisite\Conversion\EntityAddressConverter
- Вызов: EntityAddressConverter::setEntityAddresses
protected function setEntityAddresses(int $id, array $addresses)
{
if(!empty($addresses))
{
list($requisiteAddressMap, $requisitePresetMap) = $this->getEntityRequisiteMaps($id);
$advancedRequisiteId = 0;
foreach ($addresses as $addressTypeId => $address)
{
$isFound = false;
$isRegistered = false;
if ($advancedRequisiteId <= 0)
{
$isFound = $this->matchRequisiteAddressAndSetDef(
$addressTypeId,
$address,
$requisiteAddressMap
);
if (!$isFound)
{
if (count($requisiteAddressMap) === 1)
{
$requisiteAddresses = reset($requisiteAddressMap);
$requisiteId = key($requisiteAddressMap);
}
else
{
$requisiteId = $this->getEntityDefaultRequisiteId($id, $requisiteAddressMap);
}
if ($requisiteId > 0)
{
if (!isset($requisiteAddresses[$addressTypeId])
|| EntityAddress::isEmpty($requisiteAddresses[$addressTypeId]))
{
EntityAddress::register(
CCrmOwnerType::Requisite,
$requisiteId,
$addressTypeId,
$address
);
/*$this->logInfo(
'EntityAddress::register('.CCrmOwnerType::Requisite.', '.$addressTypeId.', '.
$requisiteId.')'
);*/
$isRegistered = true;
}
}
}
}
if (!$isFound && !$isRegistered)
{
if ($advancedRequisiteId <= 0)
{
$advancedRequisiteId = $this->addEntityRequisite(
$id,
$requisiteAddressMap,
$requisitePresetMap
);
}
if($advancedRequisiteId > 0)
{
EntityAddress::register(
CCrmOwnerType::Requisite,
$advancedRequisiteId,
$addressTypeId,
$address
);
/*$this->logInfo(
'EntityAddress::register('.\CCrmOwnerType::Requisite.', '.$advancedRequisiteId.', '.
$addressTypeId.')'
);*/
}
else
{
throw new EntityAddressConverterException(
$this->entityTypeId,
$this->defaultPresetId,
EntityAddressConverterException::CREATION_FAILED
);
}
}
}
}
}