/** * <p>Функция удаляет местоположение с кодом ID. Функция так же удаляет город этого местоположения, страну этого местоположения (если она не входит больше ни в одно другое местоположение), а так же связи этого местоположения с группами местоположений и службами доставки. </p> * * * * * @param int $ID Код местоположения. </h * * * * @return bool <p>Функция возвращает <i>true</i> в случае успешного удаления * местоположения и <i>false</i> - в противном случае.</p> <a name="examples"></a> * * * <h4>Example</h4> * <pre> * <? * if (!CSaleLocation::Delete(12)) * echo "Ошибка удаления местоположения";<br>?> * </pre> * * * @static * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocation/csalelocation__delete.008e0aa2.php * @author Bitrix */ public static function Delete($ID) { global $DB; $ID = IntVal($ID); if (!($arLocRes = CSaleLocation::GetByID($ID, LANGUAGE_ID))) { return false; } foreach (GetModuleEvents("sale", "OnBeforeLocationDelete", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { return false; } } if (IntVal($arLocRes["CITY_ID"]) > 0) { CSaleLocation::DeleteCity($arLocRes["CITY_ID"]); } $bDelCountry = True; $db_res = CSaleLocation::GetList(array("SORT" => "ASC"), array("COUNTRY_ID" => $arLocRes["COUNTRY_ID"], "!ID" => $ID), LANGUAGE_ID); if ($db_res->Fetch()) { $bDelCountry = false; } if ($bDelCountry && IntVal($arLocRes["COUNTRY_ID"]) > 0) { CSaleLocation::DeleteCountry($arLocRes["COUNTRY_ID"]); } $bDelRegion = True; $db_res = CSaleLocation::GetList(array("SORT" => "ASC"), array("REGION_ID" => $arLocRes["REGION_ID"], "!ID" => $ID), LANGUAGE_ID); if ($db_res->Fetch()) { $bDelRegion = false; } if ($bDelRegion && IntVal($arLocRes["REGION_ID"]) > 0) { CSaleLocation::DeleteRegion($arLocRes["REGION_ID"]); } $DB->Query("DELETE FROM b_sale_location2location_group WHERE LOCATION_ID = " . $ID . "", true); $DB->Query("DELETE FROM b_sale_delivery2location WHERE LOCATION_ID = " . $ID . " AND LOCATION_TYPE = 'L'", true); $DB->Query("DELETE FROM b_sale_location_zip WHERE LOCATION_ID = " . $ID . "", true); $bDelete = $DB->Query("DELETE FROM b_sale_location WHERE ID = " . $ID . "", true); foreach (GetModuleEvents("sale", "OnLocationDelete", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID)); } return $bDelete; }
function Delete($ID) { global $DB; $ID = IntVal($ID); if (!($arLocRes = CSaleLocation::GetByID($ID, LANGUAGE_ID))) return false; foreach (GetModuleEvents("sale", "OnBeforeLocationDelete", true) as $arEvent) if (ExecuteModuleEventEx($arEvent, array($ID))===false) return false; if (IntVal($arLocRes["CITY_ID"]) > 0) CSaleLocation::DeleteCity($arLocRes["CITY_ID"]); $bDelCountry = True; $db_res = CSaleLocation::GetList( array("SORT" => "ASC"), array("COUNTRY_ID" => $arLocRes["COUNTRY_ID"], "!ID"=>$ID), LANGUAGE_ID ); if ($db_res->Fetch()) $bDelCountry = false; if ($bDelCountry && IntVal($arLocRes["COUNTRY_ID"]) > 0) CSaleLocation::DeleteCountry($arLocRes["COUNTRY_ID"]); $bDelRegion = True; $db_res = CSaleLocation::GetList( array("SORT" => "ASC"), array("REGION_ID" => $arLocRes["REGION_ID"], "!ID"=>$ID), LANGUAGE_ID ); if ($db_res->Fetch()) $bDelRegion = false; if ($bDelRegion && IntVal($arLocRes["REGION_ID"]) > 0) CSaleLocation::DeleteRegion($arLocRes["REGION_ID"]); $DB->Query("DELETE FROM b_sale_location2location_group WHERE LOCATION_ID = ".$ID."", true); $DB->Query("DELETE FROM b_sale_delivery2location WHERE LOCATION_ID = ".$ID." AND LOCATION_TYPE = 'L'", true); $DB->Query("DELETE FROM b_sale_location_zip WHERE LOCATION_ID = ".$ID."", true); if(self::isLocationProMigrated()) { try { $res = Location\LocationTable::delete($ID); // the whole subtree will be deleted if(!$res->isSuccess()) return false; $bDelete = true; } catch(Exception $e) { return false; } } else { $bDelete = $DB->Query("DELETE FROM b_sale_location WHERE ID = ".$ID."", true); } foreach (GetModuleEvents("sale", "OnLocationDelete", true) as $arEvent) ExecuteModuleEventEx($arEvent, array($ID)); return $bDelete; }