• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/lib/controller/subscription.php
  • Класс: BitrixVoximplantControllerSubscription
  • Вызов: Subscription::enqueueDisconnectAction
public function enqueueDisconnectAction($subscriptionId)
{
	if (!Permissions::createWithCurrentUser()->canModifyLines())
	{
		$this->addError(new Error("Permission denied", "permission_denied"));
		return null;
	}

	$numbersInSubscription = NumberTable::getList([
		'filter' => [
			'=SUBSCRIPTION_ID' => $subscriptionId
		]
	])->fetchAll();

	if(empty($numbersInSubscription))
	{
		$this->errorCollection[] = new Error(Loc::getMessage("VOX_SUBSCRIPTION_NUMBER_NOT_FOUND"), "not_found");
		return null;
	}

	$viHttp = new CVoxImplantHttp();
	if(count($numbersInSubscription) == 1)
	{
		$number = $numbersInSubscription[0]['NUMBER'];
		$result = $viHttp->DeactivatePhoneNumber($number);
	}
	else
	{
		$result = $viHttp->DeactivateSubscription($subscriptionId);
	}

	if (!$result)
	{
		$this->errorCollection[] = new Error($viHttp->GetError()->msg);
		return null;
	}

	$date = new DateTime();
	$date->add('23 HOUR');

	foreach ($numbersInSubscription as $item)
	{
		NumberTable::update($item["ID"], [
			'TO_DELETE' => 'Y',
			'DATE_DELETE' => $date
		]);
	}

	return $result;
}