Пример #1
0
 protected function hook_postDelete()
 {
     $q = $this->_getQuery();
     $q->addTable('tasks');
     $q->addQuery('task_id');
     $q->addWhere('task_project = ' . $this->_old_key);
     $tasks_to_delete = $q->loadColumn();
     $q->clear();
     $task = new w2p_Actions_BulkTasks();
     $task->overrideDatabase($this->_query);
     foreach ($tasks_to_delete as $task_id) {
         $task->task_id = $task_id;
         $task->delete();
     }
     $q->clear();
     $q->addTable('files');
     $q->addQuery('file_id');
     $q->addWhere('file_project = ' . $this->_old_key);
     $files_to_delete = $q->loadColumn();
     $q->clear();
     $file = new CFile();
     $file->overrideDatabase($this->_query);
     foreach ($files_to_delete as $file_id) {
         $file->file_id = $file_id;
         $file->delete();
     }
     $q->clear();
     $q->addTable('events');
     $q->addQuery('event_id');
     $q->addWhere('event_project = ' . $this->_old_key);
     $events_to_delete = $q->loadColumn();
     $q->clear();
     $event = new CEvent();
     $event->overrideDatabase($this->_query);
     foreach ($events_to_delete as $event_id) {
         $event->event_id = $event_id;
         $event->delete();
     }
     $q->clear();
     // remove the project-contacts and project-departments map
     $q->setDelete('project_contacts');
     $q->addWhere('project_id =' . $this->_old_key);
     $q->exec();
     $q->clear();
     $q->setDelete('project_departments');
     $q->addWhere('project_id =' . $this->_old_key);
     $q->exec();
     $q->clear();
     $q->setDelete('tasks');
     $q->addWhere('task_represents_project =' . $this->_old_key);
     parent::hook_preDelete();
 }
Пример #2
0
 public function delete()
 {
     $result = false;
     if ($this->_perms->checkModuleItem($this->_tbl_module, 'delete', $this->{$this->_tbl_key})) {
         $q = $this->_getQuery();
         $q->addTable('tasks');
         $q->addQuery('task_id');
         $q->addWhere('task_project = ' . (int) $this->project_id);
         $tasks_to_delete = $q->loadColumn();
         $q->clear();
         $task = new CTask();
         $task->overrideDatabase($this->_query);
         foreach ($tasks_to_delete as $task_id) {
             $task->task_id = $task_id;
             $task->delete();
         }
         $q->clear();
         $q->addTable('files');
         $q->addQuery('file_id');
         $q->addWhere('file_project = ' . (int) $this->project_id);
         $files_to_delete = $q->loadColumn();
         $q->clear();
         $file = new CFile();
         $file->overrideDatabase($this->_query);
         foreach ($files_to_delete as $file_id) {
             $file->file_id = $file_id;
             $file->delete();
         }
         $q->clear();
         $q->addTable('events');
         $q->addQuery('event_id');
         $q->addWhere('event_project = ' . (int) $this->project_id);
         $events_to_delete = $q->loadColumn();
         $q->clear();
         $event = new CEvent();
         $event->overrideDatabase($this->_query);
         foreach ($events_to_delete as $event_id) {
             $event->event_id = $event_id;
             $event->delete();
         }
         $q->clear();
         // remove the project-contacts and project-departments map
         $q->setDelete('project_contacts');
         $q->addWhere('project_id =' . (int) $this->project_id);
         $q->exec();
         $q->clear();
         $q->setDelete('project_departments');
         $q->addWhere('project_id =' . (int) $this->project_id);
         $q->exec();
         $q->clear();
         $q->setDelete('tasks');
         $q->addWhere('task_represents_project =' . (int) $this->project_id);
         $q->clear();
         if ($msg = parent::delete()) {
             return $msg;
         }
         return true;
     }
     return $result;
 }