function _Delete($ID) { global $DB; $ID = IntVal($ID); $bSuccess = True; foreach (GetModuleEvents("sale", "OnBeforeOrderDelete", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { return false; } } $DB->StartTransaction(); if ($bSuccess) { $dbBasket = CSaleBasket::GetList(array(), array("ORDER_ID" => $ID)); while ($arBasket = $dbBasket->Fetch()) { $bSuccess = CSaleBasket::Delete($arBasket["ID"]); if (!$bSuccess) { break; } } } if ($bSuccess) { $dbRecurring = CSaleRecurring::GetList(array(), array("ORDER_ID" => $ID)); while ($arRecurring = $dbRecurring->Fetch()) { $bSuccess = CSaleRecurring::Delete($arRecurring["ID"]); if (!$bSuccess) { break; } } } if ($bSuccess) { $bSuccess = CSaleOrderPropsValue::DeleteByOrder($ID); } if ($bSuccess) { $bSuccess = CSaleOrderTax::DeleteEx($ID); } if ($bSuccess) { $bSuccess = CSaleUserTransact::DeleteByOrder($ID); } if ($bSuccess) { unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]); } if ($bSuccess) { $bSuccess = $DB->Query("DELETE FROM b_sale_order WHERE ID = " . $ID . "", true); } if ($bSuccess) { $DB->Commit(); } else { $DB->Rollback(); } foreach (GetModuleEvents("sale", "OnOrderDelete", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $bSuccess)); } return $bSuccess; }
function _Delete($ID) { global $DB, $USER_FIELD_MANAGER; $ID = IntVal($ID); $bSuccess = True; foreach(GetModuleEvents("sale", "OnBeforeOrderDelete", true) as $arEvent) if (ExecuteModuleEventEx($arEvent, Array($ID))===false) return false; $DB->StartTransaction(); if ($bSuccess) { $dbBasket = CSaleBasket::GetList(array(), array("ORDER_ID" => $ID)); while ($arBasket = $dbBasket->Fetch()) { if (CSaleBasketHelper::isSetItem($arBasket)) // set items are deleted when parent is deleted continue; $bSuccess = CSaleBasket::Delete($arBasket["ID"]); if (!$bSuccess) break; } } if ($bSuccess) { $dbRecurring = CSaleRecurring::GetList(array(), array("ORDER_ID" => $ID)); while ($arRecurring = $dbRecurring->Fetch()) { $bSuccess = CSaleRecurring::Delete($arRecurring["ID"]); if (!$bSuccess) break; } } if ($bSuccess) $bSuccess = CSaleOrderPropsValue::DeleteByOrder($ID); if ($bSuccess) $bSuccess = CSaleOrderTax::DeleteEx($ID); if($bSuccess) $bSuccess = CSaleUserTransact::DeleteByOrder($ID); if ($bSuccess) unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_".$ID]); if ($bSuccess) $bSuccess = $DB->Query("DELETE FROM b_sale_order WHERE ID = ".$ID."", true); if ($bSuccess) $USER_FIELD_MANAGER->Delete("ORDER", $ID); if ($bSuccess) $DB->Commit(); else $DB->Rollback(); foreach(GetModuleEvents("sale", "OnOrderDelete", true) as $arEvent) ExecuteModuleEventEx($arEvent, Array($ID, $bSuccess)); return $bSuccess; }