- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/order/matcher/fieldsynchronizer.php
- Класс: Bitrix\Crm\Order\Matcher\FieldSynchronizer
- Вызов: FieldSynchronizer::saveRelations
static function saveRelations($propertyId, $relations)
{
$existedRelation = OrderPropsRelationTable::getList([
'select' => ['ENTITY_ID', 'ENTITY_TYPE'],
'filter' => [
'=PROPERTY_ID' => $propertyId,
'@ENTITY_TYPE' => ['P', 'D']
]
]);
foreach ($existedRelation as $item)
{
$index = array_search($item['ENTITY_ID'], $relations[$item['ENTITY_TYPE']]);
if ($index === false)
{
OrderPropsRelationTable::delete([
'PROPERTY_ID' => $propertyId,
'ENTITY_ID' => $item['ENTITY_ID'],
'ENTITY_TYPE' => $item['ENTITY_TYPE'],
]);
}
else
{
unset($relations[$item['ENTITY_TYPE']][$index]);
}
}
foreach ($relations as $entityType => $relation)
{
foreach ($relation as $entityId)
{
OrderPropsRelationTable::add([
'PROPERTY_ID' => $propertyId,
'ENTITY_ID' => $entityId,
'ENTITY_TYPE' => $entityType,
]);
}
}
}