Пример #1
0
 /**
  * @see ItemClassInterface::delete()
  * @return bool
  */
 public function delete()
 {
     global $transaction;
     if ($this->class_id and $this->item_class and $this->item_has_item_class) {
         $transaction_id = $transaction->begin();
         $item_link_array = $this->list_items();
         if (is_array($item_link_array) and count($item_link_array) >= 1) {
             foreach ($item_link_array as $key => $value) {
                 $item_has_item_class_access = new ItemHasItemClass_Access($value);
                 if ($item_has_item_class_access->delete() == false) {
                     if ($transaction_id != null) {
                         $transaction->rollback($transaction_id);
                     }
                     return false;
                 }
             }
         }
         $item_information_array = ItemInformation::list_class_information($this->class_id);
         if (is_array($item_information_array) and count($item_information_array) >= 1) {
             foreach ($item_information_array as $key => $value) {
                 $item_information = new ItemInformation($value);
                 if ($item_information->unlink_class($this->class_id) == false) {
                     if ($transaction_id != null) {
                         $transaction->rollback($transaction_id);
                     }
                     return false;
                 }
             }
         }
         if ($this->item_class->delete() == true) {
             if ($transaction_id != null) {
                 $transaction->commit($transaction_id);
             }
             $this->__destruct();
             return true;
         } else {
             if ($transaction_id != null) {
                 $transaction->rollback($transaction_id);
             }
             return false;
         }
     } else {
         return false;
     }
 }