- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/binding/entitybinding.php
- Класс: Bitrix\Crm\Binding\EntityBinding
- Вызов: EntityBinding::prepareBoundAndUnboundEntities
static function prepareBoundAndUnboundEntities(
int $entityTypeId,
array $previousBindings,
array $currentBindings
): array
{
static::validateEntityTypeId($entityTypeId);
$previousIds = static::prepareEntityIDs($entityTypeId, $previousBindings);
$currentIds = static::prepareEntityIDs($entityTypeId, $currentBindings);
$addedIds = array_diff($currentIds, $previousIds);
$removedIds = array_diff($previousIds, $currentIds);
$bindingsOfAddedEntities = [];
foreach ($addedIds as $addedId)
{
$indexOfAddedBinding = static::findBindingIndexByEntityID($entityTypeId, $addedId, $currentBindings);
if ($indexOfAddedBinding >= 0)
{
$bindingsOfAddedEntities[] = $currentBindings[$indexOfAddedBinding];
}
}
$bindingsOfRemovedEntities = [];
foreach ($removedIds as $removedId)
{
$indexOfRemovedBinding = static::findBindingIndexByEntityID($entityTypeId, $removedId, $previousBindings);
if ($indexOfRemovedBinding >= 0)
{
$bindingsOfRemovedEntities[] = $previousBindings[$indexOfRemovedBinding];
}
}
return [$bindingsOfAddedEntities, $bindingsOfRemovedEntities];
}