protected function innerDelete($ID, &$errors) { /** @global CMain $APPLICATION */ global $APPLICATION; if (!CCrmStatus::CheckDeletePermission($ID)) { $errors[] = 'Access denied.'; return false; } $statusInvoice = new CCrmStatusInvoice('INVOICE_STATUS'); $currentFields = $statusInvoice->getStatusById($ID); if (!is_array($currentFields)) { $errors[] = 'Status is not found.'; return false; } $statusId = intval($ID); if ($statusId === ($statusId & 0xff) && $statusId >= 65 && $statusId <= 90) { $statusId = chr($statusId); if (isset($currentFields['SYSTEM']) && $currentFields['SYSTEM'] === 'Y') { $errors[] = "Can't delete system status"; return false; } } unset($statusId); $result = $statusInvoice->Delete($ID); if ($result === false) { if ($e = $APPLICATION->GetException()) { $errors[] = $e->GetString(); } else { $errors[] = 'Error on deleting status.'; } } return $result !== false; }