• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/posting/sender.php
  • Класс: BitrixSenderPostingSender
  • Вызов: Sender::finalizePosting
private function finalizePosting(string $status): void
{
	if (!PostingRecipientTable::hasUnprocessed($this->postingId))
	{
		$onAfterEndResult = $this->message->onAfterEnd();
		if (!$onAfterEndResult->isSuccess())
		{
			$this->resultCode = static::RESULT_CONTINUE;

			return;
		}
		$errorMessage = implode(', ', $onAfterEndResult->getErrorMessages());
		if (strlen($errorMessage))
		{
			ModelLetterTable::update($this->letterId, ['ERROR_MESSAGE' => $errorMessage]);
		}
	}

	// set result code to continue or end of sending
	$isContinue = $status == PostingTable::STATUS_PART;
	$this->resultCode = $isContinue ? static::RESULT_CONTINUE : static::RESULT_SENT;

	if ($this->resultCode == static::RESULT_SENT)
	{
		$this->resultCode = !$this->threadStrategy->finalize() ? static::RESULT_CONTINUE : static::RESULT_SENT;
		TimeLineJob::addEventAgent($this->letterId);
	}
}