• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/dispatch/state.php
  • Класс: BitrixSenderDispatchState
  • Вызов: State::changeState
private function changeState($state, Date $sendDate = null)
{
	if (!$this->isCampaignActive() && in_array($state, [self::SENDING, self::PLANNED]))
	{
		throw new InvalidOperationException(Loc::getMessage('SENDER_DISPATCH_STATE_ERROR_CAMPAIGN_INACTIVE'));
	}

	if (!$this->canChangeState($state))
	{
		$messageText = Loc::getMessage('SENDER_DISPATCH_STATE_ERROR_CHANGE', array(
			'%old%' => $this->getName(),
			'%new%' => self::getStateName($state)
		));

		throw new InvalidOperationException($messageText);
	}

	$map = self::getStateMap();
	if ($map[$state])
	{
		return $this->updateStatus($map[$state], $state, $sendDate);
	}

	return false;
}