/** * Delete the order * @param int $id Order ID. * @return Sale\Result * @throws \Bitrix\Main\ArgumentNullException */ public static function delete($id) { $result = new Sale\Result(); if (intval($id) <= 0) { $result->addError(new Sale\ResultError(Main\Localization\Loc::getMessage('SALE_COMPATIBLE_ORDER_ID_NOT_FOUND'), 'SALE_COMPATIBLE_ORDER_ID_NOT_FOUND')); return $result; } $r = Sale\Order::delete($id); if (!$r->isSuccess()) { $result->addErrors($r->getErrors()); } return $result; }
/** * Delete the order * @param int $id Order ID. * @return Sale\Result * @throws \Bitrix\Main\ArgumentNullException */ public static function delete($id) { $result = new Sale\Result(); if (intval($id) <= 0) { $result->addError(new Sale\ResultError(Main\Localization\Loc::getMessage('SALE_COMPATIBLE_ORDER_ID_NOT_FOUND'), 'SALE_COMPATIBLE_ORDER_ID_NOT_FOUND')); return $result; } /** @var Sale\Order $order */ if (!($order = Sale\Order::load($id))) { $result->addError(new Sale\ResultError(Loc::getMessage('SALE_ORDER_ENTITY_NOT_FOUND'), 'SALE_ORDER_ENTITY_NOT_FOUND')); return $result; } /** @var Sale\PaymentCollection $paymentCollection */ if ($paymentCollection = $order->getPaymentCollection()) { /** @var Sale\Payment $payment */ foreach ($paymentCollection as $payment) { if ($payment->isPaid()) { $payment->setPaid('N'); } } /** @var Sale\Result $r */ $r = $order->save(); if (!$r->isSuccess()) { return $r; } } /** @var Sale\Result $r */ $r = Sale\Order::delete($id); if (!$r->isSuccess()) { $result->addErrors($r->getErrors()); } return $result; }
continue; } if (CSaleOrder::IsLocked($ID, $lockedBY, $dateLock) && $_REQUEST['action'] != "unlock") { $lAdmin->AddGroupError(str_replace("#DATE#", "{$dateLock}", str_replace("#ID#", "{$lockedBY}", Loc::getMessage("SOE_ORDER_LOCKED"))), $ID); } else { switch ($_REQUEST['action']) { case "delete": if (!($saleOrder = \Bitrix\Sale\Order::load($ID))) { $lAdmin->AddGroupError(Loc::getMessage("SALE_DELETE_ERROR_CANT_FIND", array("#ID#" => $ID))); break; } if (!CSaleOrder::CanUserDeleteOrder($ID, $arUserGroups, $intUserID)) { $lAdmin->AddGroupError(Loc::getMessage("SO_NO_PERMS2DEL", array("#ID#" => $ID)), $ID); break; } $res = \Bitrix\Sale\Order::delete($ID); if (!$res->isSuccess()) { $lAdmin->AddGroupError(implode("<br>\n", $res->getErrorMessages())); } break; case "unlock": CSaleOrder::UnLock($ID); break; case "cancel": if (!CSaleOrder::CanUserCancelOrder($ID, $arUserGroups, $intUserID)) { $lAdmin->AddGroupError(Loc::getMessage("SOA_PERMS_CANCEL_GROUP", array("#ID#" => $ID)), $ID); break; } /** @var \Bitrix\Sale\Order $saleOrder */ if (!($saleOrder = \Bitrix\Sale\Order::load($ID))) { $lAdmin->AddGroupError(Loc::getMessage("SO_NO_ORDER", array("#ID#" => $ID)), $ID);