• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/trigger/manager.php
  • Класс: BitrixSenderTriggerManager
  • Вызов: Manager::onAfterMailingChainSend
static function onAfterMailingChainSend(Event $event)
{
	$data = $event->getParameter(0);

	if(!$data || empty($data['MAILING_CHAIN']['ID']))
		return;

	$childChainDb = MailingChainTable::getList(array(
		'select' => array(
			'ID',
			'MAILING_ID',
			'PARENT_ID',
			'POSTING_ID',
			'STATUS',
			'TIME_SHIFT'
		),
		'filter' => array(
			'=MAILING.ACTIVE' => 'Y',
			'=IS_TRIGGER' => 'Y',
			'=STATUS' => MailingChainTable::STATUS_WAIT,
			'=PARENT_ID' => $data['MAILING_CHAIN']['ID']
		)
	));
	while($childChain = $childChainDb->fetch())
	{
		$isSend = false;

		$settings = new Settings();
		if($settings->getEndpoint('CODE') == '')
		{
			// send certainly
			$isSend = true;
		}
		elseif($settings->isEventOccur())
		{
			// send if event occur
		}
		else
		{
			// send if event not occur
		}

		if(empty($childChain['POSTING_ID']) || $childChain['STATUS'] != MailingChainTable::STATUS_WAIT)
		{
			$isSend = false;
		}


		if($isSend)
		{
			static::send($childChain);
		}

	}
}