Example #1
0
 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;
 }