• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/internals/form.php
  • Класс: Bitrix\Crm\WebForm\Internals\FormTable
  • Вызов: FormTable::onDelete
static function onDelete(ORM\Event $event)
{
	$result = new ORM\EventResult;
	$data = $event->getParameters();
	$formId = $data['primary']['ID'];

	// delete Ads links
	AdsForm::unlinkForm($formId);
	$landingRows = LandingTable::getList([
		'select' => ['ID'],
		'filter' => ['=FORM_ID' => $formId]
	]);
	foreach ($landingRows as $ladingRow)
	{
		LandingTable::delete($ladingRow['ID']);
	}

	// delete fields
	$fieldDb = FieldTable::getList(array(
		'select' => array('ID'),
		'filter' => array('=FORM_ID' => $formId)
	));
	while($field = $fieldDb->fetch())
	{
		FieldTable::delete($field['ID']);
	}

	// delete field dependencies
	$fieldDependenceDb = FieldDependenceTable::getList(array(
		'select' => array('ID'),
		'filter' => array('=FORM_ID' => $formId)
	));
	while($fieldDependence = $fieldDependenceDb->fetch())
	{
		FieldDependenceTable::delete($fieldDependence['ID']);
	}

	// delete preset fields
	PresetFieldTable::delete(array('FORM_ID' => $formId));
	// delete view statistics
	FormCounterDailyTable::deleteByFormId($formId);
	// delete start edit statistics
	FormStartEditTable::delete(array('FORM_ID' => $formId));

	// delete counters
	$formCounterDb = FormCounterTable::getList(array(
		'select' => array('ID'),
		'filter' => array('=FORM_ID' => $formId)
	));
	while($formCounter = $formCounterDb->fetch())
	{
		FormCounterTable::delete($formCounter['ID']);
	}

	// delete results
	$resultRowDb = ResultTable::getList(array(
		'select' => array('ID'),
		'filter' => array('=FORM_ID' => $formId)
	));
	while($resultRow = $resultRowDb->fetch())
	{
		ResultTable::delete($resultRow['ID']);
	}

	return $result;
}