• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/manager.php
  • Класс: BitrixSaleDeliveryServicesManager
  • Вызов: Manager::deleteRelatedEntities
static function deleteRelatedEntities($deliveryId, bool $checkServiceUsage = true)
{
	$con = BitrixMainApplication::getConnection();
	$deliveryId = (int)$deliveryId;

	$con->queryExecute("
		DELETE FROM b_sale_service_rstr
		WHERE
		    SERVICE_ID = " . $deliveryId . "
		    AND SERVICE_TYPE = " . (int)RestrictionsManager::SERVICE_TYPE_SHIPMENT . "
	");
	$con->queryExecute("DELETE FROM b_sale_delivery2location WHERE DELIVERY_ID=".$deliveryId);
	$con->queryExecute("DELETE FROM b_sale_delivery2paysystem WHERE DELIVERY_ID=".$deliveryId);
	$con->queryExecute("DELETE FROM b_sale_delivery_es WHERE DELIVERY_ID=".$deliveryId);

	$dbRes = Table::getList(array(
		'filter' => array(
			"PARENT_ID" => $deliveryId
		),
		'select' => array("ID")
	));

	while ($child = $dbRes->fetch())
	{
		self::delete($child["ID"], $checkServiceUsage);
	}

	self::cleanIdCodeCached($deliveryId);
	return true;
}