MonitorByActResponsible::processActivitiesChanges

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. MonitorByActResponsible
  4. processActivitiesChanges
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/counter/monitor/monitorbyactresponsible.php
  • Класс: Bitrix\Crm\Counter\Monitor\MonitorByActResponsible
  • Вызов: MonitorByActResponsible::processActivitiesChanges
protected function processActivitiesChanges(): void
{
	$changedActivities = $this->activitiesChangesCollection->getSignificantlyChangedActivities(true);
	$affectedBindings = $changedActivities->getAffectedBindings();
	$entitiesData = $this->loadEntitiesDataForBindings($affectedBindings);
	/** @var $changedActivity ActivityChange */
	foreach ($changedActivities->getValues() as $changedActivity)
	{

		$affectedResponsibleIds = [];
		if ($changedActivity->getNewResponsibleId() > 0)
		{
			$affectedResponsibleIds[] = $changedActivity->getNewResponsibleId();
		}
		if ($changedActivity->isResponsibleIdChanged() && $changedActivity->getOldResponsibleId() > 0)
		{
			$affectedResponsibleIds[] = $changedActivity->getOldResponsibleId();
		}

		foreach ($affectedResponsibleIds as $responsibleId)
		{

			$affectedTypeIds = $changedActivity->getAffectedCounterTypes(true);
			/** @var $binding ItemIdentifier */
			foreach ($changedActivity->getAffectedBindings() as $binding)
			{
				$entityData = $entitiesData[$binding->getEntityTypeId()][$binding->getEntityId()] ?? [];
				$this->resetCounters(
					$binding->getEntityTypeId(),
					$affectedTypeIds,
					$responsibleId,
					$entityData['categoryId'] ?? null,
				);
			}

		}
	}
}

Добавить комментарий