function checkCompanyId($company_id) { $q = new DBQuery(); $q->addTable('companies'); $q->addQuery('count(*)'); $q->addWhere("company_id = '{$company_id}'"); return db_loadResult($q->prepare()); }
function isHoliday($date = 0) { // Query database for settings $holiday_manual = db_loadResult('SELECT holiday_manual FROM holiday_settings'); $holiday_auto = db_loadResult('SELECT holiday_auto FROM holiday_settings'); $holiday_driver = db_loadResult('SELECT holiday_driver FROM holiday_settings'); if (!$date) { $date = new CDate(); } if ($holiday_manual) { // Check whether the date is blacklisted $sql = "SELECT * FROM holiday "; $sql .= "WHERE ( date(holiday_start_date) <= '"; $sql .= $date->format('%Y-%m-%d'); $sql .= "' AND date(holiday_end_date) >= '"; $sql .= $date->format('%Y-%m-%d'); $sql .= "' AND holiday_white=0 ) "; $sql .= "OR ( "; $sql .= " DATE_FORMAT(holiday_start_date, '%m-%d') <= '"; $sql .= $date->format('%m-%d'); $sql .= "' AND DATE_FORMAT(holiday_end_date, '%m-%d') >= '"; $sql .= $date->format('%m-%d'); $sql .= "' AND holiday_annual=1"; $sql .= " AND holiday_white=0 ) "; if (db_loadResult($sql)) { return 0; } // Check if we have a whitelist item for this date $sql = "SELECT * FROM holiday "; $sql .= "WHERE ( date(holiday_start_date) <= '"; $sql .= $date->format('%Y-%m-%d'); $sql .= "' AND date(holiday_end_date) >= '"; $sql .= $date->format('%Y-%m-%d'); $sql .= "' AND holiday_white=1 ) "; $sql .= "OR ( "; $sql .= " DATE_FORMAT(holiday_start_date, '%m-%d') <= '"; $sql .= $date->format('%m-%d'); $sql .= "' AND DATE_FORMAT(holiday_end_date, '%m-%d') >= '"; $sql .= $date->format('%m-%d'); $sql .= "' AND holiday_annual=1"; $sql .= " AND holiday_white=1 ) "; if (db_loadResult($sql)) { return 1; } } if ($holiday_auto) { // Still here? Ok, lets poll the automatic system $drivers_alloc = Date_Holidays::getInstalledDrivers(); $driver_object = Date_Holidays::factory($drivers_alloc[$holiday_driver]['title'], $date->getYear(), 'en_EN'); if (!Date_Holidays::isError($driver_object)) { if ($driver_object->getHolidayForDate($date)) { return 1; } } } // No hits, must be a working day return 0; }
function sendNewPass() { global $AppUI; $_live_site = dPgetConfig('base_url'); $_sitename = dPgetConfig('company_name'); // ensure no malicous sql gets past $checkusername = trim(dPgetParam($_POST, 'checkusername', '')); $checkusername = db_escape($checkusername); $confirmEmail = trim(dPgetParam($_POST, 'checkemail', '')); $confirmEmail = mb_strtolower(db_escape($confirmEmail)); $query = 'SELECT user_id FROM users LEFT JOIN contacts ON user_contact = contact_id' . " WHERE user_username='******' AND LOWER(contact_email)='{$confirmEmail}'"; if (!($user_id = db_loadResult($query)) || !$checkusername || !$confirmEmail) { $AppUI->setMsg('Invalid username or email.', UI_MSG_ERROR); $AppUI->redirect(); } $newpass = makePass(); $message = $AppUI->_('sendpass0', UI_OUTPUT_RAW) . ' ' . $checkusername . ' ' . $AppUI->_('sendpass1', UI_OUTPUT_RAW) . ' ' . $_live_site . ' ' . $AppUI->_('sendpass2', UI_OUTPUT_RAW) . ' ' . $newpass . ' ' . $AppUI->_('sendpass3', UI_OUTPUT_RAW); $subject = "{$_sitename} :: " . $AppUI->_('sendpass4', UI_OUTPUT_RAW) . " - {$checkusername}"; $m = new Mail(); // create the mail $m->From("dotProject@" . dPgetConfig('site_domain')); $m->To($confirmEmail); $m->Subject($subject); $m->Body($message, isset($GLOBALS['locale_char_set']) ? $GLOBALS['locale_char_set'] : ""); // set the body $m->Send(); // send the mail $newpass = md5($newpass); $sql = "UPDATE users SET user_password='******' WHERE user_id='{$user_id}'"; $cur = db_exec($sql); if (!$cur) { die('SQL error' . $database->stderr(true)); } else { $AppUI->setMsg('New User Password created and emailed to you'); $AppUI->redirect(); } }
<?php if (count($user_list)) { $percentage_sum = $hours_allocated_sum = $hours_worked_sum = 0; $sum_total_hours_allocated = $sum_total_hours_worked = 0; $sum_hours_allocated_complete = $sum_hours_worked_complete = 0; //TODO: Split times for which more than one users were working... foreach ($user_list as $user_id => $user) { $sql = "SELECT task_id\n\t\t\t FROM user_tasks\n\t\t\t where user_id = {$user_id}"; $tasks_id = db_loadColumn($sql); $total_hours_allocated = $total_hours_worked = 0; $hours_allocated_complete = $hours_worked_complete = 0; foreach ($tasks_id as $task_id) { if (isset($task_list[$task_id])) { // Now let's figure out how many time did the user spent in this task $sql = "SELECT sum(task_log_hours)\n\t\t \t\t\tFROM task_log\n\t\t \t\t\tWHERE task_log_task = {$task_id}\n\t\t\t\t\t AND task_log_creator = {$user_id}"; $hours_worked = round(db_loadResult($sql), 2); $sql = "SELECT task_percent_complete\n FROM tasks\n WHERE task_id = {$task_id}"; // echo $sql; $percent = db_loadColumn($sql); $complete = $percent[0] == 100; if ($complete) { $hours_allocated_complete += $task_list[$task_id]["hours_allocated"]; $hours_worked_complete += $hours_worked; } $total_hours_allocated += $task_list[$task_id]["hours_allocated"]; $total_hours_worked += $hours_worked; } } $sum_total_hours_allocated += $total_hours_allocated; $sum_total_hours_worked += $total_hours_worked; $sum_hours_allocated_complete += $hours_allocated_complete;
function getCompanyName() { $sql = "select company_name from companies where company_id = '" . $this->contact_company . "'"; $q = new DBQuery(); $q->addTable('companies'); $q->addQuery('company_name'); $q->addWhere('company_id = ' . $this->contact_company); $sql = $q->prepare(); $q->clear(); $company_name = db_loadResult($sql); return $company_name; }
$titleBlock->addCrumb("?m=companies", "companies list"); if ($company_id) { $titleBlock->addCrumb("?m=companies&a=view&company_id={$company_id}", "view this company"); } $titleBlock->show(); } else { ##echo $sql.db_error();## $company_id = $dept_id ? $drow['dept_company'] : $company_id; // check if valid company $q = new DBQuery(); $q->addTable('companies', 'com'); $q->addQuery('company_name'); $q->addWhere('com.company_id = ' . $company_id); $sql = $q->prepare(); $q->clear(); $company_name = db_loadResult($sql); if (!$dept_id && $company_name === null) { $AppUI->setMsg('badCompany', UI_MSG_ERROR); $AppUI->redirect(); } // collect all the departments in the company $depts = array(0 => ''); if ($company_id) { $q = new DBQuery(); $q->addTable('departments', 'dep'); $q->addQuery('dept_id, dept_name, dept_parent'); $q->addWhere('dep.dept_company = ' . $company_id); $q->addWhere('dep.dept_id != ' . $dept_id); $depts = $q->loadArrayList(); $depts['0'] = array(0, '- ' . $AppUI->_('Select Unit') . ' -', -1); }
$sql = "SELECT COUNT(item_id)\n FROM helpdesk_items\n WHERE {$item_perms}"; $numtotal = db_loadResult($sql); /* * Unassigned = 0 * Open = 1 * Closed = 2 * On hold = 3 * Delete = 4 * Testing = 5 */ $sql = "SELECT COUNT(DISTINCT(item_id))\n FROM \n \thelpdesk_items\n WHERE \n \titem_assigned_to=" . $AppUI->user_id . "\n \tAND (item_status != 2)"; $nummine = db_loadResult($sql); $sql = "SELECT COUNT(DISTINCT(item_id))\n FROM \n \thelpdesk_items\n \tLEFT JOIN helpdesk_item_status on helpdesk_items.item_id = helpdesk_item_status.status_item_id\n WHERE \n \tstatus_code = 0\n AND item_status <> 2\n AND (TO_DAYS(NOW()) - TO_DAYS(status_date) = 0)\n \tAND {$item_perms}"; $numopened = db_loadResult($sql); $sql = "SELECT COUNT(DISTINCT(item_id))\n FROM \n \thelpdesk_items\n \tLEFT JOIN helpdesk_item_status on helpdesk_items.item_id = helpdesk_item_status.status_item_id\n WHERE \n \titem_status=2\n \tAND status_code=11\n \tAND (TO_DAYS(NOW()) - TO_DAYS(status_date) = 0)\n AND {$item_perms}"; $numclosed = db_loadResult($sql); ?> <table cellspacing="0" cellpadding="2" border="0" width="100%"> <tr> <td width="80%" valign="top"> <?php // Tabbed information boxes $tabBox = new CTabBox("?m=helpdesk", "{$dPconfig['root_dir']}/modules/helpdesk/", $tab); $tabBox->add('vw_idx_stats', $AppUI->_('Help Desk Items') . " ({$numtotal})"); $tabBox->add('vw_idx_my', $AppUI->_('My Open') . " ({$nummine})"); $tabBox->add('vw_idx_new', $AppUI->_('Opened Today') . " ({$numopened})"); $tabBox->add('vw_idx_closed', $AppUI->_('Closed Today') . " ({$numclosed})"); $tabBox->add('vw_idx_watched', "Watched Tickets"); $tabBox->show(); ?> </td>
$AppUI->setMsg("noCompanies", UI_MSG_ERROR, true); $AppUI->redirect(); } } if ($project_id == 0 && $company_id > 0) { $row->project_company = $company_id; } // add in the existing company if for some reason it is dis-allowed if ($project_id && !array_key_exists($row->project_company, $companies)) { $q = new DBQuery(); $q->addTable('companies'); $q->addQuery('company_name'); $q->addWhere('companies.company_id = ' . $row->project_company); $sql = $q->prepare(); $q->clear(); $companies[$row->project_company] = db_loadResult($sql); } // get critical tasks (criteria: task_end_date) $criticalTasks = $project_id > 0 ? $row->getCriticalTasks() : NULL; // get ProjectPriority from sysvals $projectPriority = dPgetSysVal('ProjectPriority'); // format dates $df = $AppUI->getPref('SHDATEFORMAT'); $start_date = new CDate($row->project_start_date); $end_date = intval($row->project_end_date) ? new CDate($row->project_end_date) : null; $actual_end_date = intval($criticalTasks[0]['task_end_date']) ? new CDate($criticalTasks[0]['task_end_date']) : null; $style = $actual_end_date > $end_date && !empty($end_date) ? 'style="color:red; font-weight:bold"' : ''; // setup the title block $ttl = $project_id > 0 ? "Edit Project" : "New Project"; $titleBlock = new CTitleBlock($ttl, 'applet3-48.png', $m, "{$m}.{$a}"); $titleBlock->addCrumb("?m=projects", "projects list");
</td> </tr> </table> <?php if ($log_pdf) { // make the PDF file if ($project_id) { $sql = "SELECT project_name FROM projects WHERE project_id={$project_id}"; $pname = 'Project: ' . db_loadResult($sql); } else { $pname = "All Companies and All Projects"; } echo db_error(); if ($company_id) { $sql = "SELECT company_name FROM companies WHERE company_id={$company_id}"; $cname = 'Company: ' . db_loadResult($sql); } else { $cname = "All Companies and All Projects"; } echo db_error(); $font_dir = dPgetConfig('root_dir') . "/lib/ezpdf/fonts"; $temp_dir = dPgetConfig('root_dir') . "/files/temp"; $base_url = dPgetConfig('base_url'); require $AppUI->getLibraryClass('ezpdf/class.ezpdf'); $pdf =& new Cezpdf(); $pdf->ezSetCmMargins(1, 2, 1.5, 1.5); $pdf->selectFont("{$font_dir}/Helvetica.afm"); $pdf->ezText(dPgetConfig('company_name'), 12); // $pdf->ezText( dPgetConfig( 'company_name' ).' :: '.dPgetConfig( 'page_title' ), 12 ); $date = new CDate(); $pdf->ezText("\n" . $date->format($df), 8);
function upgrade($old_version) { $success = 1; switch ($old_version) { case "0.1": // Drop unused columns, add some new columns $bulk_sql[] = "\n ALTER TABLE `helpdesk_items`\n ADD `item_requestor_phone` varchar(30) NOT NULL default '' AFTER `item_requestor_email`,\n ADD `item_company_id` int(11) NOT NULL default '0' AFTER `item_project_id`,\n ADD `item_requestor_type` tinyint NOT NULL default '0' AFTER `item_requestor_phone`,\n ADD `item_notify` int(1) DEFAULT '1' NOT NULL AFTER `item_assigned_to`,\n ADD `item_created_by` int(11) NOT NULL default '0',\n\t\t ADD `item_updated` datetime default NULL,\n DROP `item_receipt_target`,\n DROP `item_receipt_custom`,\n DROP `item_receipted`,\n DROP `item_resolve_target`,\n DROP `item_resolve_custom`,\n DROP `item_resolved`,\n DROP `item_assetno`\n "; // Add help desk item id to task log table $bulk_sql[] = "\n ALTER TABLE `task_log`\n ADD `task_log_help_desk_id` int(11) NOT NULL default '0' AFTER `task_log_task`\n "; // Add help desk item status log table $bulk_sql[] = "\n CREATE TABLE `helpdesk_item_status` (\n `status_id` INT NOT NULL AUTO_INCREMENT,\n `status_item_id` INT NOT NULL,\n `status_code` TINYINT NOT NULL,\n `status_date` TIMESTAMP NOT NULL,\n `status_modified_by` INT NOT NULL,\n `status_comment` TEXT DEFAULT '',\n PRIMARY KEY (`status_id`)\n )\n "; // Execute the above SQL foreach ($bulk_sql as $s) { db_exec($s); if (db_error()) { $success = 0; } } // Add audit trail to system values $sql = "SELECT syskey_id\n FROM syskeys\n WHERE syskey_name = 'HelpDeskList'"; $syskey_id = db_loadResult($sql); $sv = new CSysVal($syskey_id, 'HelpDeskAuditTrail', "0|Created\n1|Title\n2|Requestor Name\n3|Requestor E-mail\n4|Requestor Phone\n5|Assigned To\n6|Notify by e-mail\n7|Company\n8|Project\n9|Call Type\n10|Call Source\n11|Status\n12|Priority\n13|Severity\n14|Operating System\n15|Application\n16|Summary\n17|Deleted"); $sv->store(); // Update help desk status values $sql = "UPDATE sysvals\n SET sysval_value='0|Unassigned\n1|Open\n2|Closed\n3|On Hold\n4|Testing'\n WHERE sysval_title='HelpDeskStatus'\n LIMIT 1"; db_exec($sql); /* Get data for conversion update */ $sql = "SELECT item_id,item_requestor_id,item_created,item_project_id\n FROM helpdesk_items"; $items = db_loadList($sql); /* Populate the status log table with the item's creation date */ foreach ($items as $item) { $timestamp = date('Ymdhis', db_dateTime2unix($item['item_created'])); $sql = "INSERT INTO helpdesk_item_status\n (status_item_id,status_code,status_date,status_modified_by)\n VALUES ({$item['item_id']},0,'{$timestamp}',\n {$item['item_requestor_id']})"; db_exec($sql); } /* Figure out the company for each item based on project id or based on requestor id */ foreach ($items as $item) { if ($item['item_project_id']) { $sql = "SELECT project_company\n FROM projects\n WHERE project_id='{$item['item_project_id']}'"; $company_id = db_loadResult($sql); } else { if ($item['item_requestor_id']) { $sql = "SELECT user_company\n FROM users\n WHERE user_id='{$item['item_requestor_id']}'"; $company_id = db_loadResult($sql); } } if ($company_id) { $sql = "UPDATE helpdesk_items\n SET item_company_id='{$company_id}'\n WHERE item_id='{$item['item_id']}'"; db_exec($sql); } } // If our status was 5 (Testing), now it is 4 (Testing) $sql = "UPDATE helpdesk_items\n SET item_status='4'\n WHERE item_status='5'"; db_exec($sql); break; case 0.2: // Version 0.3 features new permissions $success = 1; break; case 0.3: // Version 0.31 includes new watchers functionality $sql = "\n\t\tCREATE TABLE helpdesk_item_watchers (\n\t\t `item_id` int(11) NOT NULL default '0',\n\t\t `user_id` int(11) NOT NULL default '0',\n\t\t `notify` char(1) NOT NULL default ''\n\t\t) TYPE=MyISAM"; db_exec($sql); case 0.31: $sql = "\n ALTER TABLE `helpdesk_items`\n\t\t ADD `item_updated` datetime default NULL\n "; db_exec($sql); $sql = "SELECT `item_id` FROM helpdesk_items"; $rows = db_loadList($sql); $sql = ''; foreach ($rows as $row) { $sql = "SELECT MAX(status_date) status_date FROM helpdesk_item_status WHERE status_item_id =" . $row['item_id']; $sdrow = db_loadList($sql); $sql = ''; $sql = "UPDATE `helpdesk_items`\n \t \tSET `item_updated`='" . $sdrow[0]['status_date'] . "' \n \t \tWHERE `item_id`=" . $row['item_id']; db_exec($sql); } if (db_error()) { $success = 0; } else { $success = 1; } break; default: $success = 0; } // NOTE: Need to return true, not null, if all is good return $success; }
function checkCompanyId($company_id) { return db_loadResult("SELECT count(*) FROM companies WHERE company_id = '{$company_id}'"); }
/** * Document::db_updateObject() * * { Description } * * @param [type] $updateNulls */ function db_updateObject($table, &$object, $keyName, $updateNulls = true, $descriptionField = NULL) { global $AppUI; $perms =& $AppUI->acl(); $fmtsql = "UPDATE `{$table}` SET %s WHERE %s"; $obj_vars_arr = get_object_vars($object); foreach ($obj_vars_arr as $k => $v) { if (is_array($v) || is_object($v) || $k[0] == '_') { // internal or NA field continue; } if ($k == $keyName) { // PK not to be updated $where = "{$keyName}='" . db_escape($v) . "'"; continue; } if ($v === NULL && !$updateNulls) { continue; } $val = $v === '' ? "''" : "'" . db_escape($v) . "'"; $tmp[] = "{$k}={$val}"; } if (count($tmp)) { $sql = sprintf($fmtsql, implode(",", $tmp), $where); $retval = db_exec($sql); if ($retval) { $perm_item_id = $perms->get_object_id($table, $obj_vars_arr[$keyName], 'axo'); if ($perm_item_id) { if ($descriptionField) { $keyDesc = $descriptionField; } else { //try to get a valid label field from module table by default $keyDesc = db_loadResult('SELECT permissions_item_label FROM modules' . " WHERE permissions_item_table = '" . $table . "'"); } if ($keyDesc) { $perms->edit_object($perm_item_id, $table, $obj_vars_arr[$keyDesc], $obj_vars_arr[$keyName], 0, 0, 'axo'); } } } } else { $retval = true; } return $retval; }
function getPermission($mod, $perm, $item_id = 0) { // First check if the module is readable, i.e. has view permission. $perms =& $GLOBALS['AppUI']->acl(); $result = $perms->checkModule($mod, $perm); // If we have access then we need to ensure we are not denied access to the particular // item. if ($result && $item_id) { if ($perms->checkModuleItemDenied($mod, $perm, $item_id)) { $result = false; } } // If denied we need to check if we are allowed the task. This can be done // a lot better in PHPGACL, but is here for compatibility. if ($mod == 'tasks' && !$result && $item_id > 0) { $sql = "SELECT task_project FROM tasks WHERE task_id = {$item_id}"; $project_id = db_loadResult($sql); $result = getPermission('projects', $perm, $project_id); } return $result; }
if (!$res) { $AppUI->setMsg('File could not be moved', UI_MSG_ERROR); $AppUI->redirect(); } } if (!$file_id) { $obj->file_owner = $AppUI->user_id; if (!$obj->file_version_id) { $q = new DBQuery(); $q->addTable('files'); $q->addQuery('file_version_id'); $q->addOrder('file_version_id DESC'); $q->setLimit(1); $sql = $q->prepare(); $q->clear(); $latest_file_version = db_loadResult($sql); $obj->file_version_id = $latest_file_version + 1; } else { $q = new DBQuery(); $q->addTable('files'); $q->addUpdate('file_checkout', ''); $q->addWhere("file_version_id = {$obj->file_version_id}"); $q->exec(); $q->clear(); } } if ($msg = $obj->store()) { $AppUI->setMsg($msg, UI_MSG_ERROR); } else { $obj->load($obj->file_id); if ($not == '1') {
function getPermission($mod, $perm, $item_id = 0) { global $AppUI; $perms =& $AppUI->acl(); // First check if the module is readable, i.e. has view permission. $result = $perms->checkModuleItem($mod, $perm, $item_id); // We need to check if we are allowed to view in the parent module item. // This can be done a lot better in PHPGACL, but is here for compatibility. if ($item_id && $perm == 'view') { if ($mod == 'task_log') { $sql = 'SELECT task_log_task FROM task_log WHERE task_log_id =' . $item_id; $task_id = db_loadResult($sql); $result = $result && getPermission('tasks', $perm, $task_id); } else { if ($mod == 'tasks') { $sql = 'SELECT task_project FROM tasks WHERE task_id =' . $item_id; $project_id = db_loadResult($sql); $result = $result && getPermission('projects', $perm, $project_id); } else { if ($mod == 'projects') { $sql = 'SELECT project_company FROM projects WHERE project_id =' . $item_id; $company_id = db_loadResult($sql); $result = $result && getPermission('companies', $perm, $company_id); } } } } return $result; }
} if ($obj->file_project) { $file_project = $obj->file_project; } if ($obj->file_task) { $file_task = $obj->file_task; $task_name = $obj->getTaskName(); } else { if ($file_task) { $q = new DBQuery(); $q->addTable('tasks'); $q->addQuery('task_name'); $q->addWhere("task_id={$file_task}"); $sql = $q->prepare(); $q->clear(); $task_name = db_loadResult($sql); } else { $task_name = ''; } } if ($obj->file_helpdesk_item) { $file_helpdesk_item = $obj->file_helpdesk_item; } $extra = array('where' => 'project_status <> 7'); $project = new CProject(); $projects = $project->getAllowedRecords($AppUI->user_id, 'project_id,project_name', 'project_name', null, $extra); $projects = arrayMerge(array('0' => $AppUI->_('None', UI_OUTPUT_RAW)), $projects); $folders = getFolderSelectList(); ?> <script language="javascript" type="text/javascript"> function submitIt() {
function install() { $sql = "SELECT mod_directory FROM modules WHERE mod_directory = '{$this->mod_directory}'"; if (db_loadHash($sql, $temp)) { // the module is already installed // TODO: check for older version - upgrade return false; } $sql = 'SELECT max(mod_ui_order) FROM modules'; // We need to account for "pre-installed" modules that are "UI Inaccessible" // in order to make sure we get the "correct" initial value for . // mod_ui_order values of "UI Inaccessible" modules are irrelevant // and should probably be set to 0 so as not to interfere. $sql .= " WHERE mod_name NOT LIKE 'Public'"; $this->mod_ui_order = db_loadResult($sql) + 1; $perms =& $GLOBALS['AppUI']->acl(); $perms->addModule($this->mod_directory, $this->mod_name); // Determine if it is an admin module or not, then add it to the correct set if (!isset($this->mod_admin)) { $this->mod_admin = 0; } if ($this->mod_admin) { $perms->addGroupItem($this->mod_directory, "admin"); } else { $perms->addGroupItem($this->mod_directory, "non_admin"); } if (isset($this->permissions_item_table) && $this->permissions_item_table) { $perms->addModuleSection($this->permissions_item_table); } $this->store(); return true; }
<?php if (!defined('DP_BASE_DIR')) { die('You should not access this file directly.'); } // Output the PDF // make the PDF file if ($project_id != 0) { $sql = "SELECT project_name FROM projects WHERE project_id={$project_id}"; $pname = db_loadResult($sql); } else { $pname = $AppUI->_('All Projects'); } if ($err = db_error()) { $AppUI->setMsg($err, UI_MSG_ERROR); $AppUI->redirect(); } $date = new CDate(); $next_week = new CDate($date); $next_week->addSpan(new Date_Span(array(7, 0, 0, 0))); $hasResources = $AppUI->isActiveModule('resources'); $perms =& $AppUI->acl(); if ($hasResources) { $hasResources = $perms->checkModule('resources', 'view'); } // Build the data to go into the table. $pdfdata = array(); $columns = array(); $columns[] = $AppUI->_('Task Name'); $columns[] = $AppUI->_('Owner'); $columns[] = $AppUI->_('Assigned Users');
function countFiles($folder_id) { global $company_id, $project_id, $task_id; global $allowedCompanies, $allowedProjects, $allowedTasks, $allowedFolders; $q = new DBQuery(); //get file count for folder $q->addTable('files', 'f'); $q->addJoin('projects', 'p', 'p.project_id = f.file_project'); $q->addJoin('tasks', 't', 't.task_id = f.file_task'); $q->addJoin('file_folders', 'ff', 'ff.file_folder_id = f.file_folder'); $q->addQuery('count(f.file_id)', 'file_in_folder'); $q->addWhere('f.file_folder = ' . $folder_id); if (count($allowedFolders)) { $q->addWhere('((' . implode(' AND ', $allowedFolders) . ') OR f.file_folder = 0)'); } if (count($allowedProjects)) { $q->addWhere('((' . implode(' AND ', $allowedProjects) . ') OR f.file_project = 0)'); } if (count($allowedTasks)) { $q->addWhere('((' . implode(' AND ', $allowedTasks) . ') OR file_task = 0)'); } if ($project_id) { $q->addWhere('f.file_project = ' . $project_id); } if ($task_id) { $q->addWhere('f.file_task = ' . $task_id); } if ($company_id) { $q->innerJoin('companies', 'co', 'co.company_id = p.project_company'); $q->addWhere('co.company_id = ' . $company_id); if (count($allowedCompanies)) { $q->addWhere('(' . implode(' AND ', $allowedCompanies) . ')'); } } $sql = $q->prepare(); $q->clear(); return db_loadResult($sql); }
function countFiles($folder) { global $AppUI, $company_id, $allowed_companies, $tab; global $deny1, $deny2, $project_id, $task_id, $showProject, $file_types; $q = new DBQuery(); $q->addTable('files'); $q->addQuery('count(files.file_id)', 'file_in_folder'); $q->addJoin('projects', 'p', 'p.project_id = file_project'); $q->addJoin('users', 'u', 'u.user_id = file_owner'); $q->addJoin('tasks', 't', 't.task_id = file_task'); $q->addJoin('file_folders', 'ff', 'ff.file_folder_id = file_folder'); $q->addWhere('file_folder = ' . $folder); if (count($deny1) > 0) { $q->addWhere('file_project NOT IN (' . implode(',', $deny1) . ')'); } if (count($deny2) > 0) { $q->addWhere('file_task NOT IN (' . implode(',', $deny2) . ')'); } if ($project_id) { $q->addWhere('file_project = ' . $project_id); } if ($task_id) { $q->addWhere('file_task = ' . $task_id); } if ($company_id) { $q->innerJoin('companies', 'co', 'co.company_id = p.project_company'); $q->addWhere('company_id = ' . $company_id); $q->addWhere('company_id IN (' . $allowed_companies . ')'); } $sql = $q->prepare(); $q->clear(); $files_in_folder = db_loadResult($sql); return $files_in_folder; }
} //grab hours per day from config $min_hours_day = $AppUI->cfg['daily_working_hours']; $can_edit_other_timesheets = $TIMECARD_CONFIG['minimum_edit_level'] >= $AppUI->user_type; $show_other_worksheets = $TIMECARD_CONFIG['minimum_see_level'] >= $AppUI->user_type; $show_possible_hours_worked = $TIMECARD_CONFIG['show_possible_hours_worked']; //print "<pre>"; //print_r($AppUI); //print "</pre>"; //compute hours/week from config $min_hours_week = count(explode(",", dPgetConfig("cal_working_days"))) * $min_hours_day; // get date format $df = $AppUI->getPref('SHDATEFORMAT'); if (isset($_GET['user_id'])) { $sql = "SELECT user_company FROM users WHERE user_id = " . $_GET['user_id']; $company_id = db_loadResult($sql); if (getDenyRead("companies", $company_id)) { $AppUI->setMsg('Access denied', UI_MSG_ERROR); $AppUI->redirect(); } $AppUI->setState('TimecardSelectedUser', $_GET['user_id']); } $user_id = $AppUI->getState('TimecardSelectedUser') ? $AppUI->getState('TimecardSelectedUser') : $AppUI->user_id; $AppUI->savePlace(); if (isset($_GET['start_date'])) { $AppUI->setState('TimecardStartDate', $_GET['start_date']); } $start_day = new CDate($AppUI->getState('TimecardStartDate') ? $AppUI->getState('TimecardStartDate') : NULL); //set the time to noon to combat a php date() function bug that was adding an hour. $date = $start_day->format('%Y-%m-%d') . ' 12:00:00'; $start_day->setDate($date, DATE_FORMAT_ISO);
die('You should not access this file directly.'); } if (!($user_id = dPgetParam($_REQUEST, 'user_id', 0))) { $user_id = @$AppUI->user_id; } // check for a non-zero user id if ($user_id) { $old_pwd = db_escape(trim(dPgetParam($_POST, 'old_pwd', null))); $new_pwd1 = db_escape(trim(dPgetParam($_POST, 'new_pwd1', null))); $new_pwd2 = db_escape(trim(dPgetParam($_POST, 'new_pwd2', null))); // has the change form been posted if ($new_pwd1 && $new_pwd2 && $new_pwd1 == $new_pwd2) { // check that the old password matches $old_md5 = md5($old_pwd); $sql = "SELECT user_id FROM users WHERE user_password = '******' AND user_id={$user_id}"; if ($AppUI->user_type == 1 || db_loadResult($sql) == $user_id) { require_once $AppUI->getModuleClass('admin'); $user = new CUser(); $user->user_id = $user_id; $user->user_password = $new_pwd1; if ($msg = $user->store()) { $AppUI->setMsg($msg, UI_MSG_ERROR); } else { echo $AppUI->_('chgpwUpdated'); } } else { echo $AppUI->_('chgpwWrongPW'); } } else { ?> <script language="javascript">
$users[$user]['pending'][] =& $task; } else { $users[$user]['inprogress'][] =& $task; } } $users[$user]['hours'] += $users[$user]['all'][$task['task_id']]['work']; $tasks['hours'] += $users[$user]['all'][$task['task_id']]['work']; } } } $sql = ' SELECT sum(file_size) FROM files WHERE file_project = ' . $project_id . ' GROUP BY file_project'; $files = db_loadResult($sql); $ontime = round(100 * (1 - count($tasks['overdue']) / count($all_tasks) - count($tasks['completed']) / count($all_tasks))); ?> <table width="100%" border="1" cellpadding="0" cellspacing="0" class="tbl"> <tr> <th colspan="3"><?php echo $AppUI->_('Progress Chart (completed/in progress/pending)'); ?> </th> </tr> <tr height="30"> <td width="<?php echo round(count($tasks['completed']) / count($all_tasks) * 100); ?> %" style="background: springgreen; text-align: center;"><?php
function showcompany($company, $restricted = false) { global $AppUI, $allpdfdata, $log_start_date, $log_end_date, $log_all; /* $sql=" SELECT billingcode_id, billingcode_name, billingcode_value FROM billingcode WHERE company_id=$company ORDER BY billingcode_name ASC "; $company_billingcodes=NULL; $ptrc=db_exec($sql); $nums=db_num_rows($ptrc); echo db_error(); for ($x=0; $x < $nums; $x++) { $row=db_fetch_assoc($ptrc); $company_billingcodes[$row['billingcode_id']]=$row['billingcode_name']; } */ $sql = "SELECT project_id, project_name\n\t\tFROM projects\n\t\tWHERE project_company = {$company}"; $projects = db_loadHashList($sql); $sql = "SELECT company_name\n\t\tFROM companies\n\t\tWHERE company_id = {$company}"; $company_name = db_loadResult($sql); $table = '<h2>Company: ' . $company_name . '</h2> <table cellspacing="1" cellpadding="4" border="0" class="tbl">'; $project_row = ' <tr> <th>' . $AppUI->_('Project') . '</th>'; $pdfth[] = $AppUI->_('Project'); /* if (isset($company_billingcodes)) foreach ($company_billingcodes as $code) { $project_row .= '<th>' . $code . ' ' . $AppUI->_('Hours') . '</th>'; $pdfth[] = $code; } */ $project_row .= '<th>' . $AppUI->_('Total') . '</th></tr>'; $pdfth[] = $AppUI->_('Total'); $pdfdata[] = $pdfth; $hours = 0.0; $table .= $project_row; foreach ($projects as $project => $name) { $pdfproject = array(); $pdfproject[] = $name; $project_hours = 0; $project_row = "<tr><td>{$name}</td>"; $sql = "SELECT task_log_costcode, sum(task_log_hours) as hours\n\t\t\tFROM projects, tasks, task_log\n\t\t\tWHERE project_id = {$project}"; if ($log_start_date != 0 && !$log_all) { $sql .= " AND task_log_date >= {$log_start_date}"; } if ($log_end_date != 0 && !$log_all) { $sql .= " AND task_log_date <= {$log_end_date}"; } if ($restricted) { $sql .= " AND task_log_creator = '" . $AppUI->user_id . "'"; } $sql .= " AND project_id = task_project\n\t\t\tAND task_id = task_log_task\n\t\t\tGROUP BY project_id"; //task_log_costcode"; $task_logs = db_loadHashList($sql); /* if (isset($company_billingcodes)) foreach($company_billingcodes as $code => $name) { if (isset($task_logs[$code])) { $value = sprintf( "%.2f", $task_logs[$code] ); $project_row .= '<td>' . $value . '</td>'; $project_hours += $task_logs[$code]; $pdfproject[] = $value; } else { $project_row .= '<td> </td>'; $pdfproject[] = 0; } } */ foreach ($task_logs as $task_log) { $project_hours += $task_log; } $project_row .= '<td>' . round($project_hours, 2) . '</td></tr>'; $pdfproject[] = round($project_hours, 2); $hours += $project_hours; if ($project_hours > 0) { $table .= $project_row; $pdfdata[] = $pdfproject; } } if ($hours > 0) { $allpdfdata[$company_name] = $pdfdata; echo $table; echo '<tr><td>Total</td><td>' . round($hours, 2) . '</td></tr></table>'; } return $hours; }
die('You should not access this file directly.'); } $contact_id = intval(dPgetParam($_GET, 'contact_id', 0)); $AppUI->savePlace(); // load the record data $msg = ''; $row = new CContact(); $canDelete = $row->canDelete($msg, $contact_id); // Don't allow to delete contacts, that have a user associated to them. $q = new DBQuery(); $q->addTable('users'); $q->addQuery('user_id'); $q->addWhere('user_contact = ' . $contact_id); $sql = $q->prepare(); $q->clear(); $tmp_user = db_loadResult($sql); if (!empty($tmp_user)) { $canDelete = false; } $canEdit = getPermission($m, 'edit', $contact_id); if (!$row->load($contact_id) && $contact_id > 0) { $AppUI->setMsg('Contact'); $AppUI->setMsg('invalidID', UI_MSG_ERROR, true); $AppUI->redirect(); } else { if ($row->contact_private && $row->contact_owner != $AppUI->user_id && $row->contact_owner && $contact_id != 0) { $AppUI->redirect('m=public&a=access_denied'); } } // setup the title block $ttl = 'View Contact';
function delete() { $q = new DBQuery(); $q->setDelete('forum_visits'); $q->addWhere('visit_message = ' . $this->message_id); $q->exec(); // No error if this fails, it is not important. $q->clear(); $q->addTable('forum_messages'); $q->addQuery('message_forum'); $q->addWhere('message_id = ' . $this->message_id); $forumId = db_loadResult($q->prepare()); $q->clear(); $q->setDelete('forum_messages'); $q->addWhere('message_id = ' . $this->message_id); if (!$q->exec()) { $result = db_error(); } else { $result = NULL; } $q->clear(); $q->addTable('forum_messages'); $q->addQuery('COUNT(*)'); $q->addWhere('message_forum = ' . $forumId); $messageCount = db_loadResult($q->prepare()); $q->clear(); $q->addTable('forums'); $q->addUpdate('forum_message_count', $messageCount); $q->addWhere('forum_id = ' . $forumId); $q->exec(); $q->clear(); return $result; }
function get_deps_max_end_date($taskObj) { global $tracked_dynamics; $q = new DBQuery(); $deps = $taskObj->getDependencies(); $obj = new CTask(); $last_end_date = false; // Don't respect end dates of excluded tasks if ($tracked_dynamics && !empty($deps)) { $track_these = implode(',', $tracked_dynamics); $q->addTable('tasks'); $q->addQuery('MAX(task_end_date)'); $q->addWhere('task_id IN (' . $deps . ') AND task_dynamic IN (' . $track_these . ')'); $sql = $q->prepare(); $q->clear(); $last_end_date = db_loadResult($sql); } if (!$last_end_date) { // Set to project start date $id = $taskObj->task_project; $q->addTable('projects'); $q->addQuery('project_start_date'); $q->addWhere('project_id = ' . $id); $sql = $q->prepare(); $q->clear(); $last_end_date = db_loadResult($sql); } return $last_end_date; }
function isActiveModule($module) { $q = new DBQuery(); $q->addTable('modules'); $q->addQuery('mod_active'); $q->addWhere("mod_directory = '{$module}'"); $sql = $q->prepare(); $q->clear(); return db_loadResult($sql); }
$hours = db_loadResult($sql); $total_hours = $days * $dPconfig['daily_working_hours'] + $hours; $total_project_hours = 0; $q->addTable('tasks', 't'); $q->addQuery('ROUND(SUM(t.task_duration*u.perc_assignment/100),2)'); $q->addJoin('user_tasks', 'u', 't.task_id = u.task_id'); $q->addWhere("t.task_project = {$project_id} AND t.task_duration_type = 24 AND t.task_dynamic != 1"); $total_project_days_sql = $q->prepare(); $q->clear(); $q->addTable('tasks', 't'); $q->addQuery('ROUND(SUM(t.task_duration*u.perc_assignment/100),2)'); $q->addJoin('user_tasks', 'u', 't.task_id = u.task_id'); $q->addWhere("t.task_project = {$project_id} AND t.task_duration_type = 1 AND t.task_dynamic != 1"); $total_project_hours_sql = $q->prepare(); $q->clear(); $total_project_hours = db_loadResult($total_project_days_sql) * $dPconfig['daily_working_hours'] + db_loadResult($total_project_hours_sql); //due to the round above, we don't want to print decimals unless they really exist //$total_project_hours = rtrim($total_project_hours, "0"); } else { //no tasks in project so "fake" project data $worked_hours = $total_hours = $total_project_hours = 0.0; } // get the prefered date format $df = $AppUI->getPref('SHDATEFORMAT'); // create Date objects from the datetime fields $start_date = intval($obj->project_start_date) ? new CDate($obj->project_start_date) : null; $end_date = intval($obj->project_end_date) ? new CDate($obj->project_end_date) : null; $actual_end_date = intval($criticalTasks[0]['task_end_date']) ? new CDate($criticalTasks[0]['task_end_date']) : null; $style = $actual_end_date > $end_date && !empty($end_date) ? 'style="color:red; font-weight:bold"' : ''; // setup the title block $titleBlock = new CTitleBlock('View Project', 'applet3-48.png', $m, "{$m}.{$a}");
function countFolders() { $this->_query->clear(); $this->_query->addTable($this->_tbl); $this->_query->addQuery('COUNT(*)'); $sql = $this->_query->prepare(); $result = db_loadResult($sql); return $result; }