• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/automation/trigger/invoicetrigger.php
  • Класс: Bitrix\Crm\Automation\Trigger\InvoiceTrigger
  • Вызов: InvoiceTrigger::onSmartInvoiceStatusChanged
static function onSmartInvoiceStatusChanged(Item\SmartInvoice $item): void
{
	$factory = Container::getInstance()->getFactory($item->getEntityTypeId());
	if (!$factory)
	{
		return;
	}

	$stage = $factory->getStage($item->getStageId());
	if (!$stage || $stage->getSemantics() !== PhaseSemantics::SUCCESS)
	{
		return;
	}

	$dealsRelation = Container::getInstance()->getRelationManager()->getRelation(
		new RelationIdentifier(
			\CCrmOwnerType::Deal,
			$item->getEntityTypeId()
		)
	);
	if (!$dealsRelation)
	{
		return;
	}

	$dealIdentifiers = $dealsRelation->getParentElements(ItemIdentifier::createByItem($item));
	foreach ($dealIdentifiers as $identifier)
	{
		static::execute(
			[
				[
					'OWNER_TYPE_ID' => $identifier->getEntityTypeId(),
					'OWNER_ID' => $identifier->getEntityId()
				]
			],
			[
				'SMART_INVOICE_ID' => $item->getId(),
			]
		);
	}
}