• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/mailservices.php
  • Класс: BitrixMailMailServicesTable
  • Вызов: MailServicesTable::delete
static function delete($primary): EntityDeleteResult
{
	$serviceForDelete = static::getByPrimary($primary)->fetch();
	if (!$serviceForDelete)
	{
		$deleteResult = new EntityDeleteResult();
		$deleteResult->addError(new EntityEntityError(LocalizationLoc::getMessage('mail_mailservice_not_found')));

		return $deleteResult;
	}

	$deleteResult = parent::delete($primary);

	if ($deleteResult->isSuccess())
	{
		$serviceId = is_array($primary) ? $primary['ID'] : $primary;

		if (in_array($serviceForDelete['SERVICE_TYPE'], array('controller', 'domain', 'crdomain')))
		{
			$mbData = array('ACTIVE' => 'N', 'SERVICE_ID' => 0);
		}
		else
		{
			$emptyService = static::getList(array(
				'filter' => array(
					'=SITE_ID'    => $serviceForDelete['SITE_ID'],
					'ACTIVE'      => 'Y',
					'=SERVER'     => '',
					'=PORT'       => '',
					'=ENCRYPTION' => '',
					'=LINK'       => ''
				),
				'limit' => 1
			))->fetch();

			$mbData = $emptyService
				? array('SERVICE_ID' => $emptyService['ID'], 'NAME' => $emptyService['NAME'])
				: array('ACTIVE' => 'N', 'SERVICE_ID' => 0);
		}

		$selectResult = CMailbox::getList(array(), array('SERVICE_ID' => $serviceId));
		while ($mailbox = $selectResult->fetch())
			CMailbox::update($mailbox['ID'], $mbData);
	}

	return $deleteResult;
}