public function getProjectTaskLinksByCategory(CAppUI $AppUI, $project_id = 0, $task_id = 0, $category_id = 0, $search = '') { // load the following classes to retrieved denied records $project = new CProject(); $task = new CTask(); // SETUP FOR LINK LIST $q = new w2p_Database_Query(); $q->addQuery('DISTINCT links.*'); $q->addQuery('contact_first_name, contact_last_name'); $q->addQuery('project_name, project_color_identifier, project_status'); $q->addQuery('task_name, task_id'); $q->addTable('links'); $q->leftJoin('users', 'u', 'user_id = link_owner'); $q->leftJoin('contacts', 'c', 'user_contact = contact_id'); if ($search != '') { $q->addWhere('(link_name LIKE \'%' . $search . '%\' OR link_description LIKE \'%' . $search . '%\')'); } if ($project_id > 0) { // Project $q->addWhere('link_project = ' . (int) $project_id); } if ($task_id > 0) { // Task $q->addWhere('link_task = ' . (int) $task_id); } if ($category_id >= 0) { // Category $q->addWhere('link_category = ' . $category_id); } // Permissions $project->setAllowedSQL($AppUI->user_id, $q, 'link_project'); $task->setAllowedSQL($AppUI->user_id, $q, 'link_task and task_project = link_project'); $q->addOrder('project_name, link_name'); return $q->loadList(); }
public function delete() { $q = new w2p_Database_Query(); $q->setDelete('custom_fields_lists'); $q->addWhere('field_id = ' . (int) $this->field_id); $q->addWhere('list_option_id = ' . (int) $this->list_option_id); return $q->exec(); }
public function deleteByObject($object_id) { $q = new w2p_Database_Query(); $q->setDelete('custom_fields_values'); $q->addWhere('value_object_id=' . (int) $object_id); $q->exec(); }
public function store($object_id) { global $db; $object_id = (int) $object_id; if ($object_id) { $this->value_intvalue = (int) $this->value_intvalue; $ins_charvalue = $this->value_charvalue == null ? '' : stripslashes($this->value_charvalue); $q = new w2p_Database_Query(); $q->addTable('custom_fields_values'); if ($this->value_id) { $q->addUpdate('value_charvalue', $ins_charvalue); $q->addUpdate('value_intvalue', $this->value_intvalue); $q->addWhere('value_id = ' . $this->value_id); } else { $q->addInsert('value_module', ''); $q->addInsert('value_field_id', $this->field_id); $q->addInsert('value_object_id', $object_id); $q->addInsert('value_charvalue', $ins_charvalue); $q->addInsert('value_intvalue', $this->value_intvalue); } $rs = $q->exec(); $q->clear(); if (!$rs) { return $db->ErrorMsg() . ' | SQL: '; } } else { return 'Error: Cannot store field (' . $this->field_name . '), associated id not supplied.'; } }
public function authenticate($username, $password) { global $db, $AppUI; $this->username = $username; $q = new w2p_Database_Query(); $q->addTable('users'); $q->addQuery('user_id, user_password'); $q->addWhere("user_username = '******'"); $q->addWhere("user_password = '******'"); $q->exec(); if ($row = $q->fetchRow()) { $this->user_id = $row['user_id']; return true; } return false; }
public function loadFull(CAppUI $AppUI, $holidayId) { $q = new w2p_Database_Query(); $q->addTable('holiday'); $q->addQuery('holiday.*'); $q->addWhere('holiday.holiday_id = ' . (int) $holidayId); $q->loadObject($this, true, false); }
public function getStructure($moduleName) { $q = new w2p_Database_Query(); $q->addTable('custom_fields_struct'); $q->addWhere("field_module = '{$moduleName}'"); $q->addOrder('field_order ASC'); return $q->loadList(); }
public function store(CAppUI $AppUI = null) { global $AppUI; $perms = $AppUI->acl(); $stored = false; $this->_error = $this->check(); if (count($this->_error)) { return $this->_error; } $q = new w2p_Database_Query(); if ($this->message_id && $perms->checkModuleItem('forums', 'edit', $this->forum_id)) { $q->setDelete('forum_visits'); $q->addWhere('visit_message = ' . (int) $this->message_id); $q->exec(); if ($msg = parent::store()) { return $msg; } $stored = true; } if (0 == $this->message_id && $perms->checkModuleItem('forums', 'add')) { $this->message_date = $q->dbfnNowWithTZ(); if ($msg = parent::store()) { return $msg; } $q->addTable('forum_messages'); $q->addQuery('count(message_id), MAX(message_date)'); $q->addWhere('message_forum = ' . (int) $this->message_forum); $reply = $q->fetchRow(); //update forum descriptor $forum = new CForum(); $forum->load($AppUI, $this->message_forum); $forum->forum_message_count = $reply[0]; /* * Note: the message_date here has already been adjusted for the * timezone above, so don't do it again! */ $forum->forum_last_date = $this->message_date; $forum->forum_last_id = $this->message_id; $forum->store($AppUI); $this->sendWatchMail(false); $stored = true; } return $stored; }
public function remove() { $q = new w2p_Database_Query(); $q->dropTable('links'); $q->exec(); $q->clear(); $q->setDelete('sysvals'); $q->addWhere('sysval_title = \'LinkType\''); $q->exec(); }
public function _fetchPreviousData() { $q = new w2p_Database_Query(); $q->addTable($this->table_name); $q->addQuery($this->field_name); $q->addWhere($this->id_field_name . ' = ' . $this->row_id); $previous_data = $q->loadResult(); if ($previous_data != '') { $previous_data = unserialize($previous_data); $previous_data = !is_array($previous_data) ? array() : $previous_data; } else { $previous_data = array(); } $this->previous_data = $previous_data; }
public function store(CAppUI $AppUI = null) { global $AppUI; $q = new w2p_Database_Query(); $q->addTable('project_designer_options'); $q->addReplace('pd_option_user', $this->pd_option_user); $q->addReplace('pd_option_view_project', $this->pd_option_view_project); $q->addReplace('pd_option_view_gantt', $this->pd_option_view_gantt); $q->addReplace('pd_option_view_tasks', $this->pd_option_view_tasks); $q->addReplace('pd_option_view_actions', $this->pd_option_view_actions); $q->addReplace('pd_option_view_addtasks', $this->pd_option_view_addtasks); $q->addReplace('pd_option_view_files', $this->pd_option_view_files); $q->addWhere('pd_option_user = ' . (int) $this->pd_option_user); $q->exec(); return true; }
public function authenticate($username, $password) { global $db, $AppUI; $this->username = $username; $q = new w2p_Database_Query(); $q->addTable('users'); $q->addQuery('user_id, user_password'); $q->addWhere('user_username = \'' . $username . '\''); if (!($rs = $q->exec())) { $q->clear(); return false; } if (!($row = $q->fetchRow())) { $q->clear(); return false; } $this->user_id = $row['user_id']; $q->clear(); if (MD5($password) == $row['user_password']) { return true; } return false; }
?> </th> <th><?php echo $AppUI->_('Description'); ?> </th> </tr> <?php foreach ($billingcodes as $code) { echo showcodes($code); } if (isset($_GET['billingcode_id'])) { $q->addQuery('*'); $q->addTable('billingcode'); $q->addWhere('billingcode_id = ' . (int) w2PgetParam($_GET, 'billingcode_id', 0)); list($obj) = $q->loadList(); echo ' <tr> <td> <input type="hidden" name="billingcode_id" value="' . w2PgetParam($_GET, 'billingcode_id', 0) . '" /></td> <td><input type="text" class="text" name="billingcode_name" value="' . $obj['billingcode_name'] . '" /></td> <td><input type="text" class="text" name="billingcode_value" value="' . $obj['billingcode_value'] . '" /></td> <td><input type="text" class="text" name="billingcode_desc" value="' . $obj['billingcode_desc'] . '" /></td> </tr>'; } else { ?> <tr> <td> </td> <td><input type="text" class="text" name="billingcode_name" value="" /></td> <td><input type="text" class="text" name="billingcode_value" value="" /></td> <td><input type="text" class="text" name="billingcode_desc" value="" /></td>
$q->addQuery('task_project, task_represents_project'); $q->addQuery('task_description, task_owner, task_status'); $q->addQuery('usernames.user_username, usernames.user_id'); $q->addQuery('assignees.user_username as assignee_username'); $q->addQuery('count(distinct assignees.user_id) as assignee_count'); $q->addQuery('co.contact_first_name, co.contact_last_name'); $q->addQuery('CONCAT(co.contact_first_name,\' \', co.contact_last_name) AS owner'); $q->addQuery('task_milestone'); $q->addQuery('count(distinct f.file_task) as file_count'); $q->addQuery('tlog.task_log_problem'); $q->addQuery('task_access'); //subquery the parent state $sq = new w2p_Database_Query(); $sq->addTable('tasks', 'stasks'); $sq->addQuery('COUNT(stasks.task_id)'); $sq->addWhere('stasks.task_id <> tasks.task_id AND stasks.task_parent = tasks.task_id'); $subquery = $sq->prepare(); $sq->clear(); $q->addQuery('(' . $subquery . ') AS task_nr_of_children'); $q->addTable('tasks'); $mods = $AppUI->getActiveModules(); if (!empty($mods['history']) && canView('history')) { $q->addQuery('MAX(history_date) as last_update'); $q->leftJoin('history', 'h', 'history_item = tasks.task_id AND history_table=\'tasks\''); } $q->addJoin('projects', 'p', 'p.project_id = task_project', 'inner'); $q->leftJoin('users', 'usernames', 'task_owner = usernames.user_id'); $q->leftJoin('user_tasks', 'ut', 'ut.task_id = tasks.task_id'); $q->leftJoin('users', 'assignees', 'assignees.user_id = ut.user_id'); $q->leftJoin('contacts', 'co', 'co.contact_id = usernames.user_contact'); $q->leftJoin('task_log', 'tlog', 'tlog.task_log_task = tasks.task_id AND tlog.task_log_problem > 0');
public static function getProjects($contactId) { $q = new w2p_Database_Query(); $q->addQuery('p.project_id, p.project_name'); $q->addTable('project_contacts', 'pc'); $q->addJoin('projects', 'p', 'p.project_id = pc.project_id', 'inner'); $q->addWhere("contact_id = {$contactId}"); return $q->loadList(); }
/** * Tests adding a reminder to a task */ public function testAddReminder() { global $AppUI; global $w2Pconfig; $this->obj->load(1); // Ensure our global setting for task_reminder_control is set properly for this $old_task_reminder_control = $w2Pconfig['task_reminder_control']; $w2Pconfig['task_reminder_control'] = true; $this->obj->addReminder(); $this->obj->task_percent_complete = 50; $xml_file_dataset = $this->createXMLDataset($this->getDataSetPath() . 'tasksTestAddReminder.xml'); $xml_file_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_file_dataset, array('event_queue' => array('queue_start'))); $xml_db_dataset = $this->getConnection()->createDataSet(); $xml_db_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_db_dataset, array('event_queue' => array('queue_start'))); $this->assertTablesEqual($xml_file_filtered_dataset->getTable('event_queue'), $xml_db_filtered_dataset->getTable('event_queue')); $now_secs = time(); $min_time = $now_secs - 10; /** * Get updated dates to test against */ $q = new w2p_Database_Query(); $q->addTable('event_queue'); $q->addQuery('queue_start'); $q->addWhere('queue_id = 2'); $results = $q->loadColumn(); foreach ($results as $queue_start) { $this->assertGreaterThanOrEqual($min_time, $queue_start); $this->assertLessThanOrEqual($now_secs, $queue_start); } $w2Pconfig['task_reminder_control'] = $old_task_reminder_control; }
$q->addQuery('user_id'); $q->addJoin('contacts', 'c', 'c.contact_id = user_contact', 'inner'); $q->addWhere('c.contact_department = ' . (int) $department); $owner_ids = $q->loadColumn(); $q->clear(); } // pull valid projects and their percent complete information $q = new w2p_Database_Query(); $q->addTable('projects', 'pr'); $q->addQuery('DISTINCT pr.project_id, project_color_identifier, project_name, project_start_date, project_end_date, max(t1.task_end_date) AS project_actual_end_date, project_percent_complete, project_status, project_active'); $q->addJoin('tasks', 't1', 'pr.project_id = t1.task_project'); $q->addJoin('companies', 'c1', 'pr.project_company = c1.company_id'); if ($department > 0 && !$addPwOiD) { $q->addWhere('project_departments.department_id = ' . (int) $department); } if ($project_type > -1) { $q->addWhere('pr.project_type = ' . (int) $project_type); } if ($owner > 0) { $q->addWhere('pr.project_owner = ' . (int) $owner); } if ($proFilter == '-3') { $q->addWhere('pr.project_owner = ' . (int) $user_id); } elseif ($proFilter != '-1') { $q->addWhere('pr.project_status = ' . (int) $proFilter); } if (!($department > 0) && $company_id != 0 && !$addPwOiD) { $q->addWhere('pr.project_company = ' . (int) $company_id); }
/**** // Let's figure out which tasks are selected */ $q = new w2p_Database_Query(); $pinned_only = (int) w2PgetParam($_GET, 'pinned', 0); if (isset($_GET['pin'])) { $pin = (int) w2PgetParam($_GET, 'pin', 0); $msg = ''; // load the record data if ($pin) { $q->addTable('user_task_pin'); $q->addInsert('user_id', $AppUI->user_id); $q->addInsert('task_id', $task_id); } else { $q->setDelete('user_task_pin'); $q->addWhere('user_id = ' . (int) $AppUI->user_id); $q->addWhere('task_id = ' . (int) $task_id); } if (!$q->exec()) { $AppUI->setMsg('ins/del err', UI_MSG_ERROR, true); } else { $q->clear(); } $AppUI->redirect('', -1); } $AppUI->savePlace(); $durnTypes = w2PgetSysVal('TaskDurationType'); $taskPriority = w2PgetSysVal('TaskPriority'); $task_project = $project_id; $task_sort_item1 = w2PgetParam($_GET, 'task_sort_item1', ''); $task_sort_type1 = w2PgetParam($_GET, 'task_sort_type1', '');
echo '<table cellspacing="0" cellpadding="4" border="0" width="100%" class="std"> <tr> <td>'; // Let's figure out which users we have $user_list = w2PgetUsersHashList(); // Now which tasks will we need and the real allocated hours (estimated time / number of users) // Also we will use tasks with duration_type = 1 (hours) and those that are not marked // as milstones // GJB: Note that we have to special case duration type 24 and this refers to the hours in a day, NOT 24 hours $working_hours = $w2Pconfig['daily_working_hours']; $q = new w2p_Database_Query(); $q->addTable('tasks', 't'); $q->addTable('user_tasks', 'ut'); $q->addJoin('projects', '', 'project_id = task_project', 'inner'); $q->addQuery('t.task_id, round(t.task_duration * IF(t.task_duration_type = 24, ' . $working_hours . ', t.task_duration_type)/count(ut.task_id),2) as hours_allocated'); $q->addWhere('t.task_id = ut.task_id'); $q->addWhere('t.task_milestone = 0'); $q->addWhere('project_active = 1'); if (($template_status = w2PgetConfig('template_projects_status_id')) != '') { $q->addWhere('project_status <> ' . (int) $template_status); } if ($project_id != 0) { $q->addWhere('t.task_project = ' . (int) $project_id); } if (!$log_all) { $q->addWhere('t.task_start_date >= \'' . $start_date->format(FMT_DATETIME_MYSQL) . '\''); $q->addWhere('t.task_start_date <= \'' . $end_date->format(FMT_DATETIME_MYSQL) . '\''); } $q->addGroup('t.task_id'); $task_list = $q->loadHashList('task_id'); $q->clear();
/* $Id$ $URL$ */ if (!defined('W2P_BASE_DIR')) { die('You should not access this file directly.'); } $perms =& $AppUI->acl(); if (!canView('tasks')) { $AppUI->redirect('m=public&a=access_denied'); } $proj = (int) w2PgetParam($_GET, 'project', 0); $userFilter = w2PgetParam($_GET, 'userFilter', false); $q = new w2p_Database_Query(); $q->addQuery('t.task_id, t.task_name'); $q->addTable('tasks', 't'); if ($userFilter) { $q->addJoin('user_tasks', 'ut', 'ut.task_id = t.task_id'); $q->addWhere('ut.user_id = ' . (int) $AppUI->user_id); } if ($proj != 0) { $q->addWhere('task_project = ' . (int) $proj); } $tasks = $q->loadList(); $q->clear(); ?> <script language="javascript" type="text/javascript"> function loadTasks() { var tasks = new Array(); var sel = parent.document.forms['form'].new_task; while (sel.options.length) { sel.options[0] = null; }
public static function updateHoursWorked($taskId, $totalHours) { $q = new w2p_Database_Query(); $q->addTable('tasks'); $q->addUpdate('task_hours_worked', $totalHours + 0); $q->addWhere('task_id = ' . $taskId); $q->exec(); $q->clear(); $q->addTable('tasks'); $q->addQuery('task_project'); $q->addWhere('task_id = ' . $taskId); $project_id = $q->loadResult(); CProject::updateHoursWorked($project_id); }
break; } } } } //Action: Change dependency if (isset($_POST['bulk_task_dependency']) && $bulk_task_dependency != '') { if ($upd_task->task_id) { //If parent is self task //print_r($bulk_task_dependency);die; if ($bulk_task_dependency == '0') { $upd_task->task_dynamic = 0; $upd_task->store($AppUI); $q = new w2p_Database_Query(); $q->setDelete('task_dependencies'); $q->addWhere('dependencies_task_id=' . $upd_task->task_id); $q->exec(); } elseif (!($bulk_task_dependency == $upd_task->task_id)) { $upd_task->task_dynamic = 31; $upd_task->store($AppUI); $q = new w2p_Database_Query(); $q->addTable('task_dependencies'); $q->addReplace('dependencies_task_id', $upd_task->task_id); $q->addReplace('dependencies_req_task_id', $bulk_task_dependency); $q->exec(); //Lets recalc the dependency $dep_task = new CTask(); $dep_task->load($bulk_task_dependency); if ($dep_task->task_id) { $dep_task->shiftDependentTasks(); }
public function indexStrings() { global $w2Pconfig; $nwords_indexed = 0; /* Workaround for indexing large files: ** Based on the value defined in config data, ** files with file_size greater than specified limit ** are not indexed for searching. ** Negative value :<=> no filesize limit */ $index_max_file_size = w2PgetConfig('index_max_file_size', 0); if ($this->file_size > 0 && ($index_max_file_size < 0 || (int) $this->file_size <= $index_max_file_size * 1024)) { // get the parser application $parser = $w2Pconfig['parser_' . $this->file_type]; if (!$parser) { $parser = $w2Pconfig['parser_default']; } if (!$parser) { return false; } // buffer the file $this->_filepath = W2P_BASE_DIR . '/files/' . $this->file_project . '/' . $this->file_real_filename; if (file_exists($this->_filepath)) { $fp = fopen($this->_filepath, 'rb'); $x = fread($fp, $this->file_size); fclose($fp); // parse it $parser = $parser . ' ' . $this->_filepath; $pos = strpos($parser, '/pdf'); /* * TODO: I *really* hate using error surpression here and I would * normally just detect if safe_mode is on and if it was, skip * this call. Unfortunately, safe_mode has been deprecated in * 5.3 and will be removed in 5.4 */ if (false !== $pos) { $x = @shell_exec(`{$parser} -`); } else { $x = @shell_exec(`{$parser}`); } // if nothing, return if (strlen($x) < 1) { return 0; } // remove punctuation and parse the strings $x = str_replace(array('.', ',', '!', '@', '(', ')'), ' ', $x); $warr = explode(' ', $x); $wordarr = array(); $nwords = count($warr); for ($x = 0; $x < $nwords; $x++) { $newword = $warr[$x]; if (!preg_match('[!"#$%&\'()*+,\\-./:;<=>?@[\\\\]^_`{|}~]', $newword) && mb_strlen(mb_trim($newword)) > 2 && !preg_match('[0-9]', $newword)) { $wordarr[$newword] = $x; } } // filter out common strings $ignore = w2PgetSysVal('FileIndexIgnoreWords'); $ignore = str_replace(' ,', ',', $ignore); $ignore = str_replace(', ', ',', $ignore); $ignore = explode(',', $ignore); foreach ($ignore as $w) { unset($wordarr[$w]); } $nwords_indexed = count($wordarr); // insert the strings into the table while (list($key, $val) = each($wordarr)) { $q = new w2p_Database_Query(); $q->addTable('files_index'); $q->addReplace('file_id', $this->file_id); $q->addReplace('word', $key); $q->addReplace('word_placement', $val); $q->exec(); $q->clear(); } } else { //TODO: if the file doesn't exist.. should we delete the db record? } } $q = new w2p_Database_Query(); $q->addTable('files'); $q->addUpdate('file_indexed', 1); $q->addWhere('file_id = ' . $this->file_id); $q->exec(); return $nwords_indexed; }
public function getAllTasksForPeriod($start_date, $end_date, $company_id = 0, $user_id = null) { global $AppUI; $q = new w2p_Database_Query(); // convert to default db time stamp $db_start = $start_date->format(FMT_DATETIME_MYSQL); $db_end = $end_date->format(FMT_DATETIME_MYSQL); // Allow for possible passing of user_id 0 to stop user filtering if (!isset($user_id)) { $user_id = $AppUI->user_id; } // check permissions on projects $proj = new CProject(); $task_filter_where = $proj->getAllowedSQL($AppUI->user_id, 't.task_project'); // exclude read denied projects $deny = $proj->getDeniedRecords($AppUI->user_id); // check permissions on tasks $obj = new CTask(); $allow = $obj->getAllowedSQL($AppUI->user_id, 't.task_id'); $q->addTable('tasks', 't'); if ($user_id) { $q->innerJoin('user_tasks', 'ut', 't.task_id=ut.task_id'); } $q->innerJoin('projects', 'projects', 't.task_project = projects.project_id'); $q->innerJoin('companies', 'companies', 'projects.project_company = companies.company_id'); $q->leftJoin('project_departments', '', 'projects.project_id = project_departments.project_id'); $q->leftJoin('departments', '', 'departments.dept_id = project_departments.department_id'); $q->addQuery('DISTINCT t.task_id, t.task_name, t.task_start_date, t.task_end_date, t.task_percent_complete, t.task_duration' . ', t.task_duration_type, projects.project_color_identifier AS color, projects.project_name, t.task_milestone, task_description, task_type, company_name, task_access, task_owner'); $q->addWhere('task_status > -1' . ' AND (task_start_date <= \'' . $db_end . '\' AND t.task_percent_complete<100 OR task_end_date = \'0000-00-00 00:00:00\' OR task_end_date = NULL )'); $q->addWhere('project_active = 1'); if (($template_status = w2PgetConfig('template_projects_status_id')) != '') { $q->addWhere('project_status <> ' . $template_status); } if ($user_id) { $q->addWhere('ut.user_id = ' . (int) $user_id); } if ($company_id) { $q->addWhere('projects.project_company = ' . (int) $company_id); } if (count($task_filter_where) > 0) { $q->addWhere('(' . implode(' AND ', $task_filter_where) . ')'); } if (count($deny) > 0) { $q->addWhere('(t.task_project NOT IN (' . implode(', ', $deny) . '))'); } if (count($allow) > 0) { $q->addWhere('(' . implode(' AND ', $allow) . ')'); } $q->addOrder('t.task_start_date'); // assemble query $tasks = $q->loadList(-1, 'task_id'); // check tasks access $result = array(); foreach ($tasks as $key => $row) { $obj->load($row['task_id']); $canAccess = $obj->canAccess(); if (!$canAccess) { continue; } $result[$key] = $row; } // execute and return return $result; }
$catsql = 'file_category = ' . $tab; } } // Fetch permissions once for all queries $allowedProjects = $project->getAllowedSQL($AppUI->user_id, 'file_project'); $allowedTasks = $task->getAllowedSQL($AppUI->user_id, 'file_task'); // SQL text for count the total recs from the selected option $q = new w2p_Database_Query(); $q->addQuery('count(file_id)'); $q->addTable('files', 'f'); $q->addJoin('projects', 'p', 'p.project_id = file_project'); $q->addJoin('tasks', 't', 't.task_id = file_task'); $q->leftJoin('project_departments', 'project_departments', 'p.project_id = project_departments.project_id OR project_departments.project_id IS NULL'); $q->leftJoin('departments', 'departments', 'departments.dept_id = project_departments.department_id OR dept_id IS NULL'); if (count($allowedProjects)) { $q->addWhere('( ( ' . implode(' AND ', $allowedProjects) . ') OR file_project = 0 )'); } if (count($allowedTasks)) { $q->addWhere('( ( ' . implode(' AND ', $allowedTasks) . ') OR file_task = 0 )'); } if ($catsql) { $q->addWhere($catsql); } if ($company_id) { $q->addWhere('project_company = ' . (int) $company_id); } if ($project_id) { $q->addWhere('file_project = ' . (int) $project_id); } if ($task_id) { $q->addWhere('file_task = ' . (int) $task_id);
$boot_user_id = w2PgetParam($_GET, 'out_user_id', null); $boot_user_name = $_GET['out_name']; $details = $boot_user_name . ' by ' . $AppUI->user_first_name . ' ' . $AppUI->user_last_name; // one session or many? if ($_GET['out_session'] && $_GET['out_user_log_id']) { $boot_user_session = $_GET['out_session']; $boot_user_log_id = w2PgetParam($_GET, 'out_user_log_id', null); $boot_query_row = false; } else { if ($canEdit && $canDelete && $logoutUserFlag) { // query for all sessions open for a given user $r = new w2p_Database_Query(); $r->addTable('sessions', 's'); $r->addQuery('DISTINCT(session_id), user_access_log_id'); $r->addJoin('user_access_log', 'ual', 'session_user = user_access_log_id'); $r->addWhere('user_id = ' . (int) $boot_user_id); $r->addOrder('user_access_log_id'); //execute query and fetch results $r->exec(); $boot_query_row = $r->fetchRow(); if ($boot_query_row) { $boot_user_session = $boot_query_row['session_id']; $boot_user_log_id = $boot_query_row['user_access_log_id']; } } } do { if ($boot_user_id == $AppUI->user_id && $boot_user_session == $_COOKIE['PHPSESSID']) { $AppUI->resetPlace(); $AppUI->redirect('logout=-1'); } else {
// Let's figure out which users we have $user_list = w2PgetUsersHashList(); if ($log_userfilter != 0) { $user_list = array($log_userfilter => $user_list[$log_userfilter]); } $ss = "'" . $start_date->format(FMT_DATETIME_MYSQL) . "'"; $se = "'" . $end_date->format(FMT_DATETIME_MYSQL) . "'"; $and = false; $where = false; $q = new w2p_Database_Query(); $q->addTable('tasks', 't'); $q->addQuery('t.*'); $q->addJoin('projects', '', 'projects.project_id = task_project', 'inner'); $q->addJoin('project_departments', '', 'project_departments.project_id = projects.project_id'); $q->addJoin('departments', '', 'department_id = dept_id'); $q->addWhere('project_active = 1'); if (($template_status = w2PgetConfig('template_projects_status_id')) != '') { $q->addWhere('project_status <> ' . (int) $template_status); } if ($use_period) { $q->addWhere('( (task_start_date >= ' . $ss . ' AND task_start_date <= ' . $se . ') OR ' . '(task_end_date <= ' . $se . ' AND task_end_date >= ' . $ss . ') )'); } if ($project_id != 0) { $q->addWhere('task_project=' . $project_id); } $proj = new CProject(); $obj = new CTask(); $allowedProjects = $proj->getAllowedSQL($AppUI->user_id, 'task_project'); $allowedTasks = $obj->getAllowedSQL($AppUI->user_id); if (count($allowedProjects)) { $q->addWhere(implode(' AND ', $allowedProjects));
<script language="javascript" type="text/javascript"> <?php echo $call_back_string; ?> self.close(); </script> <?php } // Remove any empty elements $contacts_id = remove_invalid(explode(',', $selected_contacts_id)); $selected_contacts_id = implode(',', $contacts_id); $q = new w2p_Database_Query(); if (strlen($selected_contacts_id) > 0 && !$show_all && !$company_id) { $q->addTable('contacts'); $q->addQuery('DISTINCT contact_company'); $q->addWhere('contact_id IN (' . $selected_contacts_id . ')'); $where = implode(',', $q->loadColumn()); $q->clear(); if (substr($where, 0, 1) == ',') { $where = '0' . $where; } $where = $where ? 'contact_company IN(' . $where . ')' : ''; } elseif (!$company_id && !$show_all) { // Contacts from all allowed companies $where = '(contact_company IS NULL OR contact_company = 0)'; $company_name = $AppUI->_('No Company'); } elseif ($show_all) { $company_name = $AppUI->_('Allowed Companies'); } else { // Contacts for this company only $q->addWhere('contact_company = ' . (int) $company_id);
$d = new w2p_Utilities_Date(); $columnValues = array('project_name' => $AppUI->_('No projects found'), 'start_date' => $d->getDate(), 'end_date' => $d->getDate(), 'actual_end' => ''); $gantt->addBar($columnValues, ' ', 0.6, 'red'); } else { if (is_array($projects)) { //pull all tasks into an array keyed by the project id, and get the tasks in hierarchy if ($showAllGantt) { // insert tasks into Gantt Chart // select for tasks for each project // pull tasks $q = new w2p_Database_Query(); $q->addTable('tasks', 't'); $q->addQuery('t.task_id, task_parent, task_name, task_start_date, task_end_date, task_duration, task_duration_type, task_priority, task_percent_complete, task_order, task_project, task_milestone, project_id, project_name, task_dynamic'); $q->addJoin('projects', 'p', 'project_id = t.task_project'); $q->addOrder('project_id, task_start_date'); $q->addWhere('project_original_parent = ' . (int) $original_project_id); //$tasks = $q->loadList(); $task = new CTask(); $task->setAllowedSQL($AppUI->user_id, $q); $proTasks = $q->loadHashList('task_id'); $orrarr[] = array('task_id' => 0, 'order_up' => 0, 'order' => ''); $end_max = '0000-00-00 00:00:00'; $start_min = date('Y-m-d H:i:s'); //pull the tasks into an array foreach ($proTasks as $rec) { if ($rec['task_start_date'] == '0000-00-00 00:00:00') { $rec['task_start_date'] = date('Y-m-d H:i:s'); } $tsd = new w2p_Utilities_Date($rec['task_start_date']); if ($tsd->before(new w2p_Utilities_Date($start_min))) { $start_min = $rec['task_start_date'];
global $AppUI, $w2Pconfig, $cal_df, $cf; // check permissions for this module $perms =& $AppUI->acl(); $canView = canView($m); $canAddProject = $perms->checkModuleItem('projects', 'add', $project_id); if (!$canView) { $AppUI->redirect('m=public&a=access_denied'); } $AppUI->loadCalendarJS(); $today = new w2p_Utilities_Date(); $today->convertTZ($AppUI->getPref('TIMEZONE')); //Lets load the users panel viewing options $q = new w2p_Database_Query(); $q->addTable('project_designer_options', 'pdo'); $q->addQuery('pdo.*'); $q->addWhere('pdo.pd_option_user = '******'project_id', 0); $project_id = (int) w2PgetParam($_GET, 'project_id', $project_id); $extra = array('where' => 'project_active = 1'); $project = new CProject(); $projects = $project->getAllowedRecords($AppUI->user_id, 'projects.project_id,project_name', 'project_name', null, $extra, 'projects'); $q = new w2p_Database_Query(); $q->addTable('projects'); $q->addQuery('projects.project_id, company_name'); $q->addJoin('companies', 'co', 'co.company_id = project_company'); $idx_companies = $q->loadHashList(); $q->clear(); foreach ($projects as $prj_id => $prj_name) { $projects[$prj_id] = $idx_companies[$prj_id] . ': ' . $prj_name; }