• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/mailing.php
  • Класс: Bitrix\Sender\MailingTable
  • Вызов: MailingTable::checkFieldsChain
static function checkFieldsChain(Entity\Result $result, $primary, array $fields)
{
	$id = $primary;
	$errorList = array();
	$errorCurrentNumber = 0;

	foreach($fields as $item)
	{
		$errorCurrentNumber++;

		$chainFields = array(
			'MAILING_ID' => ($id ? $id : 1),
			'ID' => $item['ID'],
			'REITERATE' => 'Y',
			'IS_TRIGGER' => 'Y',
			'EMAIL_FROM' => $item['EMAIL_FROM'],
			'SUBJECT' => $item['SUBJECT'],
			'MESSAGE' => $item['MESSAGE'],
			'TEMPLATE_TYPE' => $item['TEMPLATE_TYPE'],
			'TEMPLATE_ID' => $item['TEMPLATE_ID'],
			'TIME_SHIFT' => intval($item['TIME_SHIFT']),
		);

		$chainId = 0;
		if(!empty($item['ID']))
			$chainId = $item['ID'];

		if($chainId > 0)
		{
			$chain = MailingChainTable::getRowById(array('ID' => $chainId));
			if($chain && $chain['STATUS'] != MailingChainTable::STATUS_WAIT)
			{
				$chainFields['STATUS'] = $chain['STATUS'];
			}
		}

		if(empty($chainFields['STATUS']))
			$chainFields['STATUS'] = MailingChainTable::STATUS_WAIT;

		$chainFields['ID'] = $chainId;

		$resultItem = new Entity\Result;
		MailingChainTable::checkFields($resultItem, null, $chainFields);
		if($resultItem->isSuccess())
		{

		}
		else
		{
			$errorList[$errorCurrentNumber] = $resultItem->getErrors();
		}
	}

	$delimiter = '';
	foreach($errorList as $number => $errors)
	{
		/* @var \Bitrix\Main\Entity\FieldError[] $errors*/
		foreach($errors as $error)
		{
			$result->addError(new Entity\FieldError(
					$error->getField(),
					$delimiter . Loc::getMessage('SENDER_ENTITY_MAILING_CHAIN_ITEM_NUMBER') . $number . ': ' . $error->getMessage(),
					$error->getCode()
				)
			);

			$delimiter = '';
		}

		$delimiter = "\n";
	}


	return $result;
}