if (!$obj->bind($_POST)) {
    $AppUI->setMsg($obj->getError(), UI_MSG_ERROR);
    $AppUI->redirect();
}
if ($obj->event_start_date) {
    $start_date = new w2p_Utilities_Date($obj->event_start_date . $_POST['start_time']);
    $obj->event_start_date = $start_date->format(FMT_DATETIME_MYSQL);
}
if ($obj->event_end_date) {
    $end_date = new w2p_Utilities_Date($obj->event_end_date . $_POST['end_time']);
    $obj->event_end_date = $end_date->format(FMT_DATETIME_MYSQL);
}
$action = $del ? 'deleted' : 'stored';
$clashRedirect = false;
if ($del) {
    $result = $obj->delete();
} else {
    if ($_POST['event_assigned'] > '' && ($clash = $obj->checkClash($_POST['event_assigned']))) {
        $last_a = $a;
        $GLOBALS['a'] = "clash";
        $clashRedirect = true;
    } else {
        $result = $obj->store();
        if (isset($_POST['event_assigned'])) {
            $obj->updateAssigned(explode(',', $_POST['event_assigned']));
        }
        if (isset($_POST['mail_invited'])) {
            $obj->notify($_POST['event_assigned'], false);
        }
    }
}
Пример #2
0
}
if (!$del && $start_date->compare($start_date, $end_date) >= 0) {
    $AppUI->setMsg("Start-Date >= End-Date, please correct", UI_MSG_ERROR);
    $AppUI->redirect();
    exit;
}
// prepare (and translate) the module name ready for the suffix
$AppUI->setMsg('Event');
$do_redirect = true;
require_once $AppUI->getSystemClass("CustomFields");
if ($del) {
    if (!$obj->canDelete($msg)) {
        $AppUI->setMsg($msg, UI_MSG_ERROR);
        $AppUI->redirect();
    }
    if ($msg = $obj->delete()) {
        $AppUI->setMsg($msg, UI_MSG_ERROR);
    } else {
        $AppUI->setMsg("deleted", UI_MSG_OK, true);
    }
    $AppUI->redirect('m=calendar');
} else {
    $isNotNew = @$_POST['event_id'];
    if (!$isNotNew) {
        $obj->event_owner = $AppUI->user_id;
    }
    // Check for existence of clashes.
    if ($_POST['event_assigned'] > '' && ($clash = $obj->checkClash($_POST['event_assigned']))) {
        $last_a = $a;
        $GLOBALS['a'] = "clash";
        $do_redirect = false;
Пример #3
0
if (!$obj->bind($_POST)) {
    $AppUI->setMsg($obj->getError(), UI_MSG_ERROR);
    $AppUI->redirect();
}
if ($obj->event_start_date) {
    $start_date = new w2p_Utilities_Date($obj->event_start_date . $_POST['start_time']);
    $obj->event_start_date = $start_date->format(FMT_DATETIME_MYSQL);
}
if ($obj->event_end_date) {
    $end_date = new w2p_Utilities_Date($obj->event_end_date . $_POST['end_time']);
    $obj->event_end_date = $end_date->format(FMT_DATETIME_MYSQL);
}
$action = $del ? 'deleted' : 'stored';
$clashRedirect = false;
if ($del) {
    $result = $obj->delete($AppUI);
} else {
    if ($_POST['event_assigned'] > '' && ($clash = $obj->checkClash($_POST['event_assigned']))) {
        $last_a = $a;
        $GLOBALS['a'] = "clash";
        $clashRedirect = true;
    } else {
        $result = $obj->store($AppUI);
        if (isset($_POST['event_assigned'])) {
            $obj->updateAssigned(explode(',', $_POST['event_assigned']));
        }
        if (isset($_POST['mail_invited'])) {
            $obj->notify($_POST['event_assigned'], false);
        }
    }
}
Пример #4
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();
 }
Пример #5
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;
 }