public function testArrayMerge()
 {
     $array1 = array('a', 'b', 'c', 4 => 'd', 5 => 'e');
     $array2 = array('z', 6 => 'y', 7 => 'x', 4 => 'w', 5 => 'v');
     $newArray = arrayMerge($array1, $array2);
     $this->assertEquals('b', $newArray[1]);
     //    Tests no overwrite
     $this->assertEquals('w', $newArray[4]);
     //    Tests explicit overwrite
     $this->assertEquals('z', $newArray[0]);
     //    Tests conincidental overwrite
 }
示例#2
0
 /**
  * Merges configurations from all the loaded files.
  * @param string $group
  * @param array $config
  * @return Config_Reader
  */
 public function load($group, array $config = NULL)
 {
     if ($files = Exido::findFile($this->_directory, $group)) {
         // Set config array
         $config = array();
         foreach ($files as $file) {
             // Merge each config array to the global array
             $config = arrayMerge($config, require $file);
         }
     }
     return parent::load($group, $config);
 }
示例#3
0
function getFolderSelectList()
{
    global $AppUI;
    $folders = array(0 => '');
    $q = new DBQuery();
    $q->addTable('file_folders');
    $q->addQuery('file_folder_id, file_folder_name, file_folder_parent');
    $q->addOrder('file_folder_name');
    $sql = $q->prepare();
    //	$sql = "SELECT file_folder_id, file_folder_name, file_folder_parent FROM file_folders";
    $vfolders = arrayMerge(array('0' => array(0, $AppUI->_('Root'), -1)), db_loadHashList($sql, 'file_folder_id'));
    $folders = array_filter($vfolders, "check_perm");
    return $folders;
}
 protected function _createCompanySelection($AppUI, $companyInput)
 {
     $company = new CCompany();
     $companyMatches = $company->getCompanyList($AppUI, -1, $companyInput);
     $company_id = count($companyMatches) == 1 ? $companyMatches[0]['company_id'] : $AppUI->user_company;
     $companies = $company->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name');
     $companies = arrayMerge(array('0' => ''), $companies);
     $output .= '<td>' . arraySelect($companies, 'company_id', ' onChange=this.form.new_company.value=\'\'', $company_id) . '<input type="text" name="new_company" value="' . ($company_id > 0 ? '' : $companyInput) . '" />';
     if ($company_id == 0) {
         $output .= '<br /><em>' . $AppUI->_('compinfo') . '</em>';
     }
     $output .= '</td></tr>';
     return $output;
 }
示例#5
0
/**
 * Taken from CakePHP!
 * This function can be thought of as a hybrid between PHP's array_merge and array_merge_recursive. The difference
 * to the two is that if an array key contains another array then the function behaves recursive (unlike array_merge)
 * but does not do if for keys containing strings (unlike array_merge_recursive). See the unit test for more information.
 *
 * Note: This function will work with an unlimited amount of arguments and typecasts non-array parameters into arrays.
 *
 * @param array $arr1 Array to be merged
 * @param array $arr2 Array to merge with
 * 
 * @return array Merged array
 */
function arrayMerge($arr1, $arr2 = null)
{
    $args = func_get_args();
    if (!isset($r)) {
        $r = (array) current($args);
    }
    while (($arg = next($args)) !== false) {
        foreach ((array) $arg as $key => $val) {
            if (is_array($val) && isset($r[$key]) && is_array($r[$key])) {
                $r[$key] = arrayMerge($r[$key], $val);
            } elseif (is_int($key)) {
                $r[] = $val;
            } else {
                $r[$key] = $val;
            }
        }
    }
    return $r;
}
/* $Id$ $URL$ */
if (!defined('W2P_BASE_DIR')) {
    die('You should not access this file directly.');
}
global $AppUI, $company_id, $dept_ids, $department, $locale_char_set, $proFilter, $projectStatus, $showInactive, $showLabels, $showAllGantt, $user_id, $w2Pconfig, $project_id, $project_original_id;
w2PsetExecutionConditions($w2Pconfig);
// get the prefered date format
$df = $AppUI->getPref('SHDATEFORMAT');
$projectStatus = w2PgetSysVal('ProjectStatus');
$projectStatus = arrayMerge(array('-2' => $AppUI->_('All w/o in progress')), $projectStatus);
$user_id = w2PgetParam($_REQUEST, 'user_id', $AppUI->user_id);
if ($AppUI->user_id == $user_id) {
    $projectStatus = arrayMerge(array('-3' => $AppUI->_('My projects')), $projectStatus);
} else {
    $projectStatus = arrayMerge(array('-3' => $AppUI->_('User\'s projects')), $projectStatus);
}
$proFilter = w2PgetParam($_REQUEST, 'proFilter', '0');
$company_id = w2PgetParam($_REQUEST, 'company_id', 0);
$department = w2PgetParam($_REQUEST, 'department', 0);
$showLabels = w2PgetParam($_REQUEST, 'showLabels', 1);
$showInactive = w2PgetParam($_REQUEST, 'showInactive', 1);
$original_project_id = w2PgetParam($_REQUEST, 'original_project_id', 1);
$pjobj = new CProject();
$working_hours = $w2Pconfig['daily_working_hours'];
// pull valid projects and their percent complete information
// GJB: Note that we have to special case duration type 24 and this refers to the hours in a day, NOT 24 hours
$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');
/* $Id: departments_tab.view.projects.php 1863 2011-05-01 00:25:07Z caseydk $ $URL: https://web2project.svn.sourceforge.net/svnroot/web2project/tags/version2.4/modules/projects/departments_tab.view.projects.php $ */
if (!defined('W2P_BASE_DIR')) {
    die('You should not access this file directly.');
}
global $a, $addPwOiD, $buffer, $dept_id, $department, $min_view, $m, $priority, $projects, $tab, $user_id, $orderdir, $orderby;
$perms =& $AppUI->acl();
$df = $AppUI->getPref('SHDATEFORMAT');
$pstatus = w2PgetSysVal('ProjectStatus');
if (isset($_POST['proFilter'])) {
    $AppUI->setState('DeptProjectIdxFilter', $_POST['proFilter']);
}
$proFilter = $AppUI->getState('DeptProjectIdxFilter') !== null ? $AppUI->getState('DeptProjectIdxFilter') : '-1';
$projFilter = arrayMerge(array('-1' => 'All Projects'), $pstatus);
$projFilter = arrayMerge(array('-2' => 'All w/o in progress'), $projFilter);
$projFilter = arrayMerge(array('-3' => 'All w/o archived'), $projFilter);
natsort($projFilter);
// retrieve any state parameters
if (isset($_GET['tab'])) {
    $AppUI->setState('DeptProjIdxTab', w2PgetParam($_GET, 'tab', null));
}
if (isset($_GET['orderby'])) {
    $orderdir = $AppUI->getState('DeptProjIdxOrderDir') ? $AppUI->getState('DeptProjIdxOrderDir') == 'asc' ? 'desc' : 'asc' : 'desc';
    $AppUI->setState('DeptProjIdxOrderBy', w2PgetParam($_GET, 'orderby', null));
    $AppUI->setState('DeptProjIdxOrderDir', $orderdir);
}
$orderby = $AppUI->getState('DeptProjIdxOrderBy') ? $AppUI->getState('DeptProjIdxOrderBy') : 'project_end_date';
$orderdir = $AppUI->getState('DeptProjIdxOrderDir') ? $AppUI->getState('DeptProjIdxOrderDir') : 'asc';
if (isset($_POST['show_form'])) {
    $AppUI->setState('addProjWithOwnerInDep', w2PgetParam($_POST, 'add_pwoid', 0));
}
示例#8
0
<?php

/* TASKS $Id: gantt2.php 5766 2008-07-09 19:54:52Z merlinyoda $ */
if (!defined('DP_BASE_DIR')) {
    die('You should not access this file directly.');
}
include $AppUI->getLibraryClass('jpgraph/src/jpgraph');
include $AppUI->getLibraryClass('jpgraph/src/jpgraph_gantt');
global $company_id, $dept_ids, $department, $locale_char_set, $proFilter, $projectStatus, $showInactive, $showLabels, $showAllGantt;
// $showAllGantt == Gantt with tasks and users
// get the prefered date format
$df = $AppUI->getPref('SHDATEFORMAT');
$filter1 = array();
$projectStatus = dPgetSysVal('ProjectStatus');
$projectStatus = arrayMerge(array('-2' => $AppUI->_('All w/o in progress')), $projectStatus);
$proFilter = dPgetParam($_REQUEST, 'proFilter', '-1');
if ($proFilter == '-2') {
    $filter1[] = ' project_status != 3';
} else {
    if ($proFilter != '-1') {
        $filter1[] = ' project_status = ' . $proFilter;
    }
}
if ($company_id != 0) {
    $filter1[] = ' project_company = ' . $company_id;
}
if ($showInactive != '1') {
    $filter1[] = ' project_status <> 7';
}
$pjobj =& new CProject();
$allowed_projects = $pjobj->getAllowedSQL($AppUI->user_id);
示例#9
0
$log_start_date = dPgetCleanParam($_POST, 'log_start_date', 0);
$log_end_date = dPgetCleanParam($_POST, 'log_end_date', 0);
$log_all = (bool) dPgetParam($_POST, 'log_all', true);
$use_period = (int) dPgetParam($_POST, 'use_period', 0);
$show_orphaned = (int) dPgetParam($_POST, 'show_orphaned', 0);
$display_week_hours = (int) dPgetParam($_POST, 'display_week_hours', 0);
$max_levels = dPgetCleanParam($_POST, 'max_levels', '');
$log_userfilter = (int) dPgetParam($_POST, 'log_userfilter', 0);
$company_id = dPgetCleanParam($_POST, 'company_id', 'all');
$project_id = dPgetCleanParam($_POST, 'project_id', 'all');
require_once $AppUI->getModuleClass('projects');
require_once $AppUI->getModuleClass('tasks');
$proj = new CProject();
// filtering by companies
$projects = $proj->getAllowedRecords($AppUI->user_id, 'project_id,project_name', 'project_name');
$projFilter = arrayMerge(array('all' => $AppUI->_('All Projects')), $projects);
$durnTypes = dPgetSysVal('TaskDurationType');
$taskPriority = dPgetSysVal('TaskPriority');
// create Date objects from the datetime fields
$start_date = intval($log_start_date) ? new CDate($log_start_date) : new CDate();
$end_date = intval($log_end_date) ? new CDate($log_end_date) : new CDate();
$now = new CDate();
if (!$log_start_date) {
    $start_date->subtractSpan(new Date_Span('14,0,0,0'));
}
$end_date->setTime(23, 59, 59);
?>

<script language="javascript">
var calendarField = '';
示例#10
0
if (isset($_POST['f2'])) {
    $AppUI->setState('CompanyIdxFilter', $_POST['f2']);
}
$f2 = $AppUI->getState('CompanyIdxFilter') ? $AppUI->getState('CompanyIdxFilter') : (w2PgetConfig('company_filter_default', 'user') == 'user' ? $AppUI->user_company : 'allcompanies');
if (isset($_GET['project_id'])) {
    $AppUI->setState('TaskIdxProject', w2PgetParam($_GET, 'project_id', null));
}
$project_id = $AppUI->getState('TaskIdxProject') ? $AppUI->getState('TaskIdxProject') : 0;
if (isset($_POST['show_task_options'])) {
    $AppUI->setState('TaskListShowIncomplete', w2PgetParam($_POST, 'show_incomplete', 0));
}
$showIncomplete = $AppUI->getState('TaskListShowIncomplete', 0);
// get CCompany() to filter tasks by company
$obj = new CCompany();
$companies = $obj->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name');
$filters2 = arrayMerge(array('allcompanies' => $AppUI->_('All Companies', UI_OUTPUT_RAW)), $companies);
// setup the title block
$titleBlock = new w2p_Theme_TitleBlock('Tasks', 'applet-48.png', $m, $m . '.' . $a);
// patch 2.12.04 text to search entry box
if (isset($_POST['searchtext'])) {
    $AppUI->setState('searchtext', $_POST['searchtext']);
}
$search_text = $AppUI->getState('searchtext') ? $AppUI->getState('searchtext') : '';
$search_text = w2PformSafe($search_text, true);
$titleBlock->addCell('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $AppUI->_('Search') . ':');
$titleBlock->addCell('<input type="text" class="text" size="20" name="searchtext" onChange="document.searchfilter.submit();" value="' . $search_text . '" title="' . $AppUI->_('Search in name and description fields') . '"/>', '', '<form action="?m=tasks" method="post" id="searchfilter" accept-charset="utf-8">', '</form>');
// Let's see if this user has admin privileges
if (canView('admin')) {
    $titleBlock->addCell();
    $titleBlock->addCell($AppUI->_('User') . ':');
    $user_list = $perms->getPermittedUsers('tasks');
示例#11
0
<?php

/* SYSKEYS $Id$ */
if (!defined('DP_BASE_DIR')) {
    die('You should not access this file directly.');
}
$AppUI->savePlace();
// pull all the key types
$sql = "SELECT syskey_id,syskey_name FROM syskeys ORDER BY syskey_name";
$keys = arrayMerge(array(0 => '- Select Type -'), db_loadHashList($sql));
$sql = "SELECT * FROM syskeys, sysvals WHERE sysval_key_id = syskey_id ORDER BY sysval_title";
$values = db_loadList($sql);
$sysval_id = isset($_GET['sysval_id']) ? $_GET['sysval_id'] : 0;
$titleBlock = new CTitleBlock('System Lookup Values', 'myevo-weather.png', $m, "{$m}.{$u}.{$a}");
$titleBlock->addCrumb("?m=system", "System Admin");
$titleBlock->show();
?>
<script language="javascript">
<?php 
// security improvement:
// some javascript functions may not appear on client side in case of user not having write permissions
// else users would be able to arbitrarily run 'bad' functions
if ($canEdit) {
    ?>
function delIt(id, name) {
	if (confirm('Are you sure you want to delete \'' + name + '\'?')) {
		f = document.sysValFrm;
		f.del.value = 1;
		f.sysval_id.value = id;
		f.submit();
	}
        $start_data_linkable[$i] = urlencode($start_day->getDate());
        //		$starts[$i] =  $start_day->format($df);
        $sql = "\n\t\t\tSELECT\n\t\t\t\ttask_log_creator,\n\t\t\t\tsum(task_log_hours) as hours\n\t\t\tFROM\n\t\t\t\ttask_log\n\t\t\tWHERE\n\t\t\t\ttask_log_date >= '" . $start_day->format(FMT_DATETIME_MYSQL) . "' \n\t\t\t\tAND task_log_date <= '" . $end_day->format(FMT_DATETIME_MYSQL) . "'\n\t\t\t\tAND task_log_creator in (" . implode(", ", $ids) . ")\n\t\t\tGROUP BY\n\t\t\t\ttask_log_creator\n\t\t\t";
        //print "<pre>$sql</pre>";
        $result = db_loadList($sql);
        foreach ($result as $row) {
            $people[$row['task_log_creator']][$i] = $row['hours'];
        }
        $date = $start_day->format("%Y-%m-%d") . " 12:00:00";
        $start_day->setDate($date, DATE_FORMAT_ISO);
        $start_day->addDays(-7);
    }
}
$sql = "SELECT company_id, company_name FROM companies WHERE " . getPermsWhereClause("companies", "company_id") . " ORDER BY company_name";
//print "<pre>$sql</pre>";
$companies = arrayMerge(array(0 => $AppUI->_('All Entities')), db_loadHashList($sql));
$next_day = new CDate();
$next_day->copy($start_day);
$next_day->addDays($week_count * 7 * 2);
?>
<form name="frmCompanySelect" action="" method="get">
	<input type="hidden" name="m" value="timecard">
	<input type="hidden" name="report_type" value="weekly_by_user">
	<input type="hidden" name="tab" value="<?php 
echo $tab;
?>
">
	<table cellspacing="1" cellpadding="2" border="0" width="100%">
	<tr>
		<td width="95%"><?php 
echo arraySelect($companies, 'company_id', 'size="1" class="text" id="medium" onchange="document.frmCompanySelect.submit()"', $company_id);
示例#13
0
function getFolderSelectList()
{
    global $AppUI;
    $folder = new CFileFolder();
    $allowed_folders = array();
    $allowed_folders_pre = $folder->getAllowedRecords($AppUI->user_id, 'file_folder_id, file_folder_name' . ', file_folder_parent', 'file_folder_name', 'file_folder_id');
    //get array in proper "format" for tree
    foreach ($allowed_folders_pre as $results) {
        $folder_id = $results['file_folder_id'];
        $allowed_folders[$folder_id] = array($results['file_folder_id'], $results['file_folder_name'], $results['file_folder_parent']);
    }
    $folders = arrayMerge(array(array(0, $AppUI->_('Root'), -1)), $allowed_folders);
    return $folders;
}
示例#14
0
文件: addedit.php 项目: n2i/xvnkb
		document.AddEdit.submit();
	}	
</script>
	
<tr>
	<td align="right" nowrap="nowrap"><?php 
echo $AppUI->_('Project');
?>
:</td>
	<td width="60%">
<?php 
// pull the projects list
$q->addTable('projects');
$q->addQuery('project_id, project_name');
$q->addOrder('project_name');
$projects = arrayMerge(array(0 => '(' . $AppUI->_('any', UI_OUTPUT_RAW) . ')'), $q->loadHashList());
echo arraySelect($projects, 'history_project', 'class="text"', $history["history_project"]);
?>
	</td>
</tr>
	
<tr>
	<td align="right" nowrap="nowrap"><?php 
echo $AppUI->_('Description');
?>
:</td>
	<td width="60%">
		<textarea name="history_description" class="textarea" cols="60" rows="5" wrap="virtual"><?php 
echo $history["history_description"];
?>
</textarea>
示例#15
0
global $AppUI, $user_id, $canEdit, $canDelete, $tab;
$perms =& $AppUI->acl();
$module_list = $perms->getModuleList();
//get list of 'real' modules
$pgos = array();
$q = new DBQuery();
$q->addTable('modules', 'm');
$q->addQuery('mod_id, mod_name, permissions_item_table');
$q->addWhere('permissions_item_table is not null');
$q->addWhere("permissions_item_table <> ''");
$module_pgo_list = $q->loadHashList('mod_name');
$q->clear();
//list of additional 'pseudo-modules'
$pseudo_module_pgo_list = array('File Folders' => array('mod_id' => -1, 'mod_name' => 'file_folders', 'permissions_item_table' => 'file_folders'));
//combine modules and 'pseudo-modules'
$pgo_list = arrayMerge($module_pgo_list, $pseudo_module_pgo_list);
// Build an intersection array for the modules and their listing
$modules = array();
$offset = 0;
foreach ($module_list as $module) {
    $modules[$module['type'] . "," . $module['id']] = $module['name'];
    if ($module['type'] = 'mod' && isset($pgo_list[$module['name']])) {
        $pgos[$offset] = $pgo_list[$module['name']]['permissions_item_table'];
    }
    $offset++;
}
$count = 0;
//Pull User perms
$user_acls = $perms->getUserACLs($user_id);
if (!is_array($user_acls)) {
    $user_acls = array();
示例#16
0
function dPgetUsers()
{
    global $AppUI;
    $q = new DBQuery();
    $q->addTable('users');
    $q->addQuery('user_id, concat_ws(" ", contact_first_name, contact_last_name) as name');
    $q->addJoin('contacts', 'con', 'contact_id = user_contact');
    $q->addOrder('contact_last_name,contact_first_name');
    return arrayMerge(array(0 => $AppUI->_('All Users')), $q->loadHashList());
}
示例#17
0
$projects = $project->getAllowedRecords($AppUI->user_id, 'projects.project_id,project_name', 'project_name', null, $extra, 'projects');
$q = new DBQuery();
$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;
}
asort($projects);
$projects = arrayMerge(array('0' => $AppUI->_('(None)', UI_OUTPUT_RAW)), $projects);
$extra = array();
$task = new CTask();
$tasks = $task->getAllowedRecords($AppUI->user_id, 'task_id,task_name', 'task_name', null, $extra);
$tasks = arrayMerge(array('0' => $AppUI->_('(None)', UI_OUTPUT_RAW)), $tasks);
if (!$project_id) {
    //$AppUI->redirect('m=projects&pd=1');
    // setup the title block
    $ttl = 'ProjectDesigner';
    $titleBlock = new CTitleBlock($ttl, 'projectdesigner.png', $m, $m . '.' . $a);
    $titleBlock->addCrumb('?m=projects', 'projects list');
    $titleBlock->addCell();
    if ($canAddProject) {
        $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new project') . '">', '', '<form action="?m=projects&a=addedit" method="post" accept-charset="utf-8">', '</form>');
    }
    $titleBlock->show();
    ?>
	<script language="javascript">
	function submitIt() {
		var f = document.prjFrm;
示例#18
0
文件: co.php 项目: joly/web2project
    $file_task = $obj->file_task;
    $task_name = $obj->getTaskName();
} elseif ($file_task) {
    $q = new DBQuery();
    $q->addTable('tasks');
    $q->addQuery('task_name');
    $q->addWhere('task_id=' . (int) $file_task);
    $task_name = $q->loadResult();
    $q->clear();
} else {
    $task_name = '';
}
$extra = array('where' => 'project_active<>0');
$project = new CProject();
$projects = $project->getAllowedRecords($AppUI->user_id, 'projects.project_id,project_name', 'project_name', null, $extra, 'projects');
$projects = arrayMerge(array('0' => $AppUI->_('All')), $projects);
?>

<script language='javascript'>
function popFile( params ) {
    fileloader = window.open("fileviewer.php?"+params,"mywindow","location=1,status=1,scrollbars=0,width=80,height=80");
    fileloader.moveTo(0,0);
}
</script>

<table width="100%" border="0" cellpadding="3" cellspacing="3" class="std">

<form name="coFrm" action="?m=files" method="post" accept-charset="utf-8">
	<input type="hidden" name="dosql" value="do_file_co" />
	<input type="hidden" name="del" value="0" />
	<input type="hidden" name="file_id" value="<?php 
示例#19
0
        $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);
    }
    // collect all the users for the department owner list
    $q = new DBQuery();
    $q->addTable('users', 'u');
    $q->addTable('contacts', 'con');
    $q->addQuery('user_id');
    $q->addQuery('CONCAT_WS(", ",contact_last_name, contact_first_name)');
    $q->addOrder('contact_first_name');
    $q->addWhere('u.user_contact = con.contact_id');
    $q->addOrder('contact_last_name, contact_first_name');
    $owners = arrayMerge(array('0' => ''), $q->loadHashList());
    // setup the title block
    $ttl = $company_id > 0 ? "Edit Department" : "Add Department";
    $titleBlock = new CTitleBlock($ttl, 'users.gif', $m, "{$m}.{$a}");
    $titleBlock->addCrumb("?m=companies", "companies list");
    $titleBlock->addCrumb("?m=companies&a=view&company_id={$company_id}", "view this company");
    $titleBlock->show();
    ?>
<script language="javascript">
function testURL( x ) {
	var test = "document.editFrm.dept_url.value";
	test = eval(test);
	if (test.length > 6) {
		newwin = window.open( "http://" + test, 'newwin', '' );
	}
}
示例#20
0
文件: vw_logs.php 项目: n2i/xvnkb
$task_log_costcodes = $q->loadHashList();
// Show deleted codes separately (at the end)
$q->addTable('billingcode');
$q->addQuery('billingcode_id, billingcode_name');
$q->addOrder('billingcode_name');
$q->addWhere('billingcode_status = 1');
$q->addWhere('(company_id = 0 OR company_id = ' . $company_id . ')');
$task_log_costcodes = array_merge(array(0 => 'None'), $task_log_costcodes, $q->loadHashList());
$q = new DBQuery();
$q->addTable('users', 'u');
$q->addQuery('user_id, concat(contact_first_name," ",contact_last_name)');
$q->addJoin('contacts', 'c', 'u.user_contact = c.contact_id');
$q->addJoin('project_contacts', 'p', 'p.contact_id = u.user_id');
$q->addOrder('contact_first_name, contact_last_name');
$q->addWhere('p.project_id = ' . $project_id);
$users = arrayMerge(array('-1' => $AppUI->_('All members')), $q->loadHashList());
$cost_code = dPgetParam($_GET, 'cost_code', '0');
if (isset($_GET['user_id'])) {
    $AppUI->setState('ProjectsTaskLogsUserFilter', $_GET['user_id']);
}
$user_id = $AppUI->getState('ProjectsTaskLogsUserFilter') ? $AppUI->getState('ProjectsTaskLogsUserFilter') : $AppUI->user_id;
if (isset($_GET['hide_inactive'])) {
    $AppUI->setState('ProjectsTaskLogsHideArchived', true);
} else {
    $AppUI->setState('ProjectsTaskLogsHideArchived', false);
}
$hide_inactive = $AppUI->getState('ProjectsTaskLogsHideArchived');
if (isset($_GET['hide_complete'])) {
    $AppUI->setState('ProjectsTaskLogsHideComplete', true);
} else {
    $AppUI->setState('ProjectsTaskLogsHideComplete', false);
示例#21
0
$project = new CProject();
$sprojects = $project->getAllowedRecords($AppUI->user_id, 'project_id,project_name', 'project_name', null, $extra);
$q = new DBQuery();
$q->addTable('projects');
$q->addQuery('project_id, company_name');
$q->addJoin("companies", 'co', 'co.company_id = project_company');
$idx_companies = $q->loadHashList();
$q->clear();
foreach ($sprojects as $prj_id => $prj_name) {
    $sprojects[$prj_id] = $idx_companies[$prj_id] . ': ' . $prj_name;
}
asort($sprojects);
$sprojects = arrayMerge(array('' => '(' . $AppUI->_('Move to Project', UI_OUTPUT_RAW) . ')'), $sprojects);
//lets addthe reference to percent
@(include_once "./functions/tasks_func.php");
$spercent = arrayMerge(array('' => '(Progress)'), $percent);
?>
            <form name='frm_bulk' method='POST' action='?m=projectdesigner&a=do_task_bulk_aed'>
	      <input type="hidden" name="project_id" value="<?php 
echo $project_id;
?>
" />
	      <input type="hidden" name="opt_view_project" value="<?php 
echo isset($view_options[0]['pd_option_view_project']) ? $view_options[0]['pd_option_view_project'] : 1;
?>
" />
	      <input type="hidden" name="opt_view_gantt" value="<?php 
echo isset($view_options[0]['pd_option_view_gantt']) ? $view_options[0]['pd_option_view_gantt'] : 1;
?>
" />
	      <input type="hidden" name="opt_view_tasks" value="<?php 
示例#22
0
function projects_list_data($user_id = false)
{
    global $AppUI, $addPwOiD, $cBuffer, $company, $company_id, $company_prefix, $deny, $department;
    global $dept_ids, $dPconfig, $orderby, $orderdir, $projects, $tasks_critical, $tasks_problems;
    global $tasks_sum, $tasks_summy, $tasks_total, $owner, $projectTypeId, $project_status;
    global $currentTabId;
    $addProjectsWithAssignedTasks = $AppUI->getState('addProjWithTasks') ? $AppUI->getState('addProjWithTasks') : 0;
    //for getting permissions on project records
    $obj_project = new CProject();
    // Let's delete temproary tables
    $q = new DBQuery();
    $table_list = array('tasks_sum', 'tasks_total', 'tasks_summy', 'tasks_critical', 'tasks_problems', 'tasks_users');
    $q->dropTemp($table_list);
    $q->exec();
    $q->clear();
    // Task sum table
    // by Pablo Roca (pabloroca@mvps.org)
    // 16 August 2003
    $working_hours = $dPconfig['daily_working_hours'] ? $dPconfig['daily_working_hours'] : 8;
    // GJB: Note that we have to special case duration type 24
    // and this refers to the hours in a day, NOT 24 hours
    $q->createTemp('tasks_sum');
    $q->addTable('tasks', 't');
    $q->addQuery('t.task_project, SUM(t.task_duration * t.task_percent_complete' . ' * IF(t.task_duration_type = 24, ' . $working_hours . ', t.task_duration_type)) / SUM(t.task_duration' . ' * IF(t.task_duration_type = 24, ' . $working_hours . ', t.task_duration_type)) AS project_percent_complete, SUM(t.task_duration' . ' * IF(t.task_duration_type = 24, ' . $working_hours . ', t.task_duration_type)) AS project_duration');
    if ($user_id) {
        $q->addJoin('user_tasks', 'ut', 'ut.task_id = t.task_id');
        $q->addWhere('ut.user_id = ' . $user_id);
    }
    $q->addWhere('t.task_id = t.task_parent');
    $q->addGroup('t.task_project');
    $tasks_sum = $q->exec();
    $q->clear();
    // At this stage tasks_sum contains the project id, and the total of tasks as percentage complate and project duration.
    // I.e. one record per project
    // Task total table
    $q->createTemp('tasks_total');
    $q->addTable('tasks', 't');
    $q->addQuery('t.task_project, COUNT(distinct t.task_id) AS total_tasks');
    if ($user_id) {
        $q->addJoin('user_tasks', 'ut', 'ut.task_id = t.task_id');
        $q->addWhere('ut.user_id = ' . $user_id);
    }
    $q->addGroup('t.task_project');
    $tasks_total = $q->exec();
    $q->clear();
    // tasks_total contains the total number of tasks for each project.
    // temporary My Tasks
    // by Pablo Roca (pabloroca@mvps.org)
    // 16 August 2003
    $q->createTemp('tasks_summy');
    $q->addTable('tasks', 't');
    $q->addQuery('t.task_project, COUNT(DISTINCT t.task_id) AS my_tasks');
    $q->addWhere('t.task_owner = ' . ($user_id ? $user_id : $AppUI->user_id));
    $q->addGroup('t.task_project');
    $tasks_summy = $q->exec();
    $q->clear();
    // tasks_summy contains total count of tasks for each project that I own.
    // temporary critical tasks
    $q->createTemp('tasks_critical');
    $q->addTable('tasks', 't');
    $q->addQuery('t.task_project, t.task_id AS critical_task' . ', MAX(t.task_end_date) AS project_actual_end_date');
    // MerlinYoda: we don't join tables if we don't get anything out of the process
    // $q->addJoin('projects', 'p', 'p.project_id = t.task_project');
    $q->addOrder('t.task_end_date DESC');
    $q->addGroup('t.task_project');
    $tasks_critical = $q->exec();
    $q->clear();
    // tasks_critical contains the latest ending task and its end date.
    // temporary task problem logs
    $q->createTemp('tasks_problems');
    $q->addTable('tasks', 't');
    $q->addQuery('t.task_project, tl.task_log_problem');
    $q->addJoin('task_log', 'tl', 'tl.task_log_task = t.task_id');
    $q->addWhere('tl.task_log_problem > 0');
    $q->addGroup('t.task_project');
    $tasks_problems = $q->exec();
    $q->clear();
    // tasks_problems contains an indication of any projects that have task logs set to problem.
    if ($addProjectsWithAssignedTasks) {
        // temporary users tasks
        $q->createTemp('tasks_users');
        $q->addTable('tasks', 't');
        $q->addQuery('t.task_project, ut.user_id');
        $q->addJoin('user_tasks', 'ut', 'ut.task_id = t.task_id');
        if ($user_id) {
            $q->addWhere('ut.user_id = ' . $user_id);
        }
        $q->addOrder('t.task_end_date DESC');
        $q->addGroup('t.task_project');
        $tasks_users = $q->exec();
        $q->clear();
    }
    // tasks_users contains all projects with tasks that have user assignments. (isn't this getting pointless?)
    // add Projects where the Project Owner is in the given department
    if ($addPwOiD && isset($department)) {
        $owner_ids = array();
        $q->addTable('users', 'u');
        $q->addQuery('u.user_id');
        $q->addJoin('contacts', 'c', 'c.contact_id = u.user_contact');
        $q->addWhere('c.contact_department = ' . $department);
        $owner_ids = $q->loadColumn();
        $q->clear();
    }
    if (isset($department)) {
        /*
         * If a department is specified, we want to display projects from the department
         * and all departments under that, so we need to build that list of departments
         */
        $dept_ids = array();
        $q->addTable('departments');
        $q->addQuery('dept_id, dept_parent');
        $q->addOrder('dept_parent,dept_name');
        $rows = $q->loadList();
        addDeptId($rows, $department);
        $dept_ids[] = $department;
    }
    $q->clear();
    $q->addTable('projects', 'p');
    $q->addQuery('p.project_id, p.project_status, p.project_color_identifier, p.project_type' . ', p.project_name, p.project_description, p.project_start_date' . ', p.project_end_date, p.project_color_identifier, p.project_company' . ', p.project_status, p.project_priority, com.company_name' . ', com.company_description, tc.critical_task, tc.project_actual_end_date' . ', if (tp.task_log_problem IS NULL, 0, tp.task_log_problem) AS task_log_problem' . ', tt.total_tasks, tsy.my_tasks, ts.project_percent_complete' . ', ts.project_duration, u.user_username');
    $q->addJoin('companies', 'com', 'p.project_company = com.company_id');
    $q->addJoin('users', 'u', 'p.project_owner = u.user_id');
    $q->addJoin('tasks_critical', 'tc', 'p.project_id = tc.task_project');
    $q->addJoin('tasks_problems', 'tp', 'p.project_id = tp.task_project');
    $q->addJoin('tasks_sum', 'ts', 'p.project_id = ts.task_project');
    $q->addJoin('tasks_total', 'tt', 'p.project_id = tt.task_project');
    $q->addJoin('tasks_summy', 'tsy', 'p.project_id = tsy.task_project');
    if ($addProjectsWithAssignedTasks) {
        $q->addJoin('tasks_users', 'tu', 'p.project_id = tu.task_project');
    }
    if (isset($project_status) && $currentTabId != 500) {
        $q->addWhere('p.project_status = ' . $project_status);
    }
    if (isset($department)) {
        $q->addJoin('project_departments', 'pd', 'pd.project_id = p.project_id');
        if (!$addPwOiD) {
            $q->addWhere('pd.department_id in (' . implode(',', $dept_ids) . ')');
        } else {
            // Show Projects where the Project Owner is in the given department
            $q->addWhere('p.project_owner IN (' . (!empty($owner_ids) ? implode(',', $owner_ids) : 0) . ')');
        }
    } else {
        if ($company_id && !$addPwOiD) {
            $q->addWhere('p.project_company = ' . $company_id);
        }
    }
    if ($projectTypeId > -1) {
        $q->addWhere('p.project_type = ' . $projectTypeId);
    }
    if ($user_id && $addProjectsWithAssignedTasks) {
        $q->addWhere('(tu.user_id = ' . $user_id . ' OR p.project_owner = ' . $user_id . ')');
    } else {
        if ($user_id) {
            $q->addWhere('p.project_owner = ' . $user_id);
        }
    }
    if ($owner > 0) {
        $q->addWhere('p.project_owner = ' . $owner);
    }
    $q->addGroup('p.project_id');
    $q->addOrder($orderby . ' ' . $orderdir);
    $obj_project->setAllowedSQL($AppUI->user_id, $q, null, 'p');
    $projects = $q->loadList();
    // retrieve list of records
    // modified for speed
    // by Pablo Roca (pabloroca@mvps.org)
    // 16 August 2003
    // get the list of permitted companies
    $obj_company = new CCompany();
    $companies = $obj_company->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name');
    if (count($companies) == 0) {
        $companies = array(0);
    }
    // get the list of permitted companies
    $companies = arrayMerge(array('0' => $AppUI->_('All')), $companies);
    //get list of all departments, filtered by the list of permitted companies.
    $q->clear();
    $q->addTable('companies', 'c');
    $q->addQuery('c.company_id, c.company_name, dep.*');
    $q->addJoin('departments', 'dep', 'c.company_id = dep.dept_company');
    $q->addJoin('projects', 'p', 'p.project_company = c.company_id');
    $q->addWhere('p.project_status NOT IN (1, 4, 5, 6, 7)');
    $q->addOrder('c.company_name, dep.dept_parent, dep.dept_name');
    $obj_company->setAllowedSQL($AppUI->user_id, $q);
    $active_companies = $q->loadList();
    $q->clear();
    $q->addTable('companies', 'c');
    $q->addQuery('c.company_id, c.company_name, dep.*');
    $q->addJoin('departments', 'dep', 'c.company_id = dep.dept_company');
    $q->addJoin('projects', 'p', 'p.project_company = c.company_id');
    $q->addOrder('c.company_name, dep.dept_parent, dep.dept_name');
    $obj_company->setAllowedSQL($AppUI->user_id, $q);
    $all_companies = $q->loadList();
    //display the select list
    $cBuffer = '<select name="department" onchange="javascript:document.pickCompany.submit()" class="text">';
    $cBuffer .= '<option value="company_0" style="font-weight:bold;">' . $AppUI->_('All') . '</option>' . "\n";
    $company = '';
    $active_company_ids = array();
    // Active companies first
    $cBuffer .= '<optgroup label="Active">';
    foreach ($active_companies as $row) {
        if ($row['dept_parent'] == 0) {
            if ($company != $row['company_id']) {
                $cBuffer .= '<option value="' . $AppUI->___($company_prefix . $row['company_id']) . '" style="font-weight:bold;"' . ($company_id == $row['company_id'] ? 'selected="selected"' : '') . '>' . $AppUI->___($row['company_name']) . '</option>' . "\n";
                $company = $row['company_id'];
                $active_company_ids[] = $company;
            }
            if ($row['dept_parent'] != null) {
                showchilddept($row);
                findchilddept($rows, $row['dept_id']);
            }
        }
    }
    $cBuffer .= '</optgroup>';
    // Inactive companies
    $cBuffer .= '<optgroup label="Inactive">';
    foreach ($all_companies as $row) {
        if ($row['dept_parent'] == 0 and !in_array($row['company_id'], $active_company_ids)) {
            if ($company != $row['company_id']) {
                $cBuffer .= '<option value="' . $AppUI->___($company_prefix . $row['company_id']) . '" style="font-weight:bold;"' . ($company_id == $row['company_id'] ? 'selected="selected"' : '') . '>' . $AppUI->___($row['company_name']) . '</option>' . "\n";
                $company = $row['company_id'];
            }
            if ($row['dept_parent'] != null) {
                showchilddept($row);
                findchilddept($rows, $row['dept_id']);
            }
        }
    }
    $cBuffer .= '</optgroup>';
    $cBuffer .= '</select>';
}
示例#23
0
$folder = intval(dPgetParam($_GET, 'folder', 0));
// "Project" filters info
require_once $AppUI->getModuleClass('projects');
// retrieve any state parameters
if (isset($_REQUEST['project_id'])) {
    $AppUI->setState('FileIdxProject', $_REQUEST['project_id']);
}
$project_id = $AppUI->getState('FileIdxProject', 0);
/*
 * get "Allowed" projects for filter list 
 * ("All" is always allowed when basing permission on projects)
 */
$project = new CProject();
$extra = array('from' => 'files', 'where' => 'project_id = file_project');
$projects = $project->getAllowedRecords($AppUI->user_id, 'project_id,project_name', 'project_name', null, $extra);
$projects = arrayMerge(array('0' => $AppUI->_('All', UI_OUTPUT_RAW)), $projects);
// get SQL for allowed projects/tasks and folders
$task = new CTask();
$allowedProjects = $project->getAllowedSQL($AppUI->user_id, 'file_project');
$allowedTasks = $task->getAllowedSQL($AppUI->user_id, 'file_task');
$cfObj = new CFileFolder();
$allowedFolders = $cfObj->getAllowedSQL($AppUI->user_id, 'file_folder');
//get permissions for folder tab
$canAccess_folders = getPermission('file_folders', 'access');
// setup the title block
$titleBlock = new CTitleBlock('Files', 'folder5.png', $m, $m . '.' . $a);
$titleBlock->addCell($AppUI->_('Filter') . ':');
$titleBlock->addCell(arraySelect($projects, 'project_id', 'onchange="javascript:document.pickProject.submit()" size="1" class="text"', $project_id), '', '<form name="pickProject" action="?m=files" method="post">', '</form>');
/*
 * override the file module's $canEdit variable passed from the main index.php 
 * in order to check on file folder permissions
示例#24
0
//getting company names (to go with project name in drop-down)
$q = new DBQuery();
$q->addTable('projects', 'p');
$q->addJoin('companies', 'co', 'co.company_id = p.project_company');
$q->addQuery('p.project_id, co.company_name');
$q->addWhere('p.project_id IN (0' . (count($projects_list) ? ',' . implode(',', array_keys($projects_list)) : '') . ')');
$proj_companies = $q->loadHashList();
$q->clear();
//folder drop-down: allowed Folders only
$folders_list = getFolderSelectList();
$folders_list = arrayMerge(array('O' => array('O', '(' . $AppUI->_('Move to Folder') . ')', -1)), $folders_list);
foreach ($projects_list as $prj_id => $prj_name) {
    $projects_list[$prj_id] = $proj_companies[$prj_id] . ': ' . $prj_name;
}
asort($projects_list);
$projects_list = arrayMerge(array('O' => '(' . $AppUI->_('Move to Project') . ')', '0' => '(' . $AppUI->_('No Project Association') . ')'), $projects_list);
?>
	<tr>
		<td colspan="50" align="right">
			<form name='frm_bulk' method='POST' action='?m=files&a=do_files_bulk_aed'>
			<input type="hidden" name="redirect" value="<?php 
echo $current_uri;
?>
" />
			<table id="tbl_bulk" name="tbl_bulk">
				<tr>
					<td>
<?php 
echo "\t\t\t\t\t\t" . arraySelect($projects_list, 'bulk_file_project', 'style="width:180px" class="text"', 'O');
?>
					</td>
示例#25
0
    }
}
// check for requestor filter
if ($HELPDESK_CONFIG['search_criteria_requestor']) {
    if (isset($_GET['requestor'])) {
        $AppUI->setState('HelpDeskRequestor', $_GET['requestor']);
    }
    $requestor = $AppUI->getState('HelpDeskRequestor') !== null ? $AppUI->getState('HelpDeskRequestor') : -1;
    if (isset($requestor) && strlen($requestor) > 0 && $requestor != '-1') {
        $tarr[] = "hi.item_requestor='{$requestor}'";
    }
    // retrieve requestor list
    $sql = "SELECT distinct(item_requestor) as requestor, item_requestor\n\t\t      FROM helpdesk_items\n\t\t      WHERE " . getCompanyPerms("item_company_id", NULL, PERM_READ) . "\n\t\t      ORDER BY item_requestor";
    $requestor_list = db_loadHashList($sql);
    if (!$_REQUEST['project_id']) {
        $selectors[] = "<td align=\"right\"><label for=\"requestor\">" . $AppUI->_('Requestor') . ":</label></td><td>" . arraySelect(arrayMerge(array('-1' => $AppUI->_('All')), $requestor_list), 'requestor', 'size="1" id="requestor" class="text" onchange="changeList()"', $requestor) . "</td>";
    }
}
$where = getItemPerms();
if (count($tarr)) {
    $where .= 'AND (' . implode("\n AND ", $tarr) . ') ';
}
$sql = "SELECT hi.*,\n        CONCAT(co.contact_first_name,' ',co.contact_last_name) assigned_fullname,\n        co.contact_email as assigned_email,\n        p.project_id,\n        p.project_name,\n        p.project_color_identifier\n        FROM helpdesk_items hi\n        LEFT JOIN users u2 ON u2.user_id = hi.item_assigned_to\n        LEFT JOIN contacts co ON u2.user_contact = co.contact_id\n        LEFT JOIN projects p ON p.project_id = hi.item_project_id\n        WHERE {$where}\n        ORDER BY ";
// Do custom order by if needed, default at the end
if ($orderby == "project_name") {
    $sql .= "p.project_name";
} elseif ($orderby == "item_assigned_to") {
    $sql .= "assigned_fullname";
} elseif ($orderby == "item_updated") {
    $sql .= "hi.item_updated";
} else {
示例#26
0
$contact_id = intval(dPgetParam($_GET, "contact_id", 0));
// check permissions for this record
$canEdit = getPermission($m, 'edit', $project_id);
$canAuthor = getPermission($m, 'add', $project_id);
if (!($canEdit && $project_id || $canAuthor && !$project_id)) {
    $AppUI->redirect('m=public&a=access_denied');
}
// get a list of permitted companies
require_once $AppUI->getModuleClass('companies');
$row = new CCompany();
$companies = $row->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name');
$companies = arrayMerge(array('0' => ''), $companies);
// get internal companies
// 6 is standard value for internal companies
$companies_internal = $row->listCompaniesByType(array('6'));
$companies_internal = arrayMerge(array('0' => ''), $companies_internal);
// pull users
$q = new DBQuery();
$q->addTable('users', 'u');
$q->addTable('contacts', 'con');
$q->addQuery('user_id');
$q->addQuery('CONCAT_WS(", ",contact_last_name,contact_first_name)');
$q->addOrder('contact_last_name');
$q->addWhere('u.user_contact = con.contact_id');
$users = $q->loadHashList();
// load the record data
$row = new CProject();
if (!$row->load($project_id, false) && $project_id > 0) {
    $AppUI->setMsg('Project');
    $AppUI->setMsg("invalidID", UI_MSG_ERROR, true);
    $AppUI->redirect();
示例#27
0
w2PsetMicroTime();
// retrieve any state parameters
if (isset($_REQUEST['company_id'])) {
    $AppUI->setState('CalIdxCompany', intval(w2PgetParam($_REQUEST, 'company_id', 0)));
}
$company_id = $AppUI->getState('CalIdxCompany', 0);
// Using simplified set/get semantics. Doesn't need as much code in the module.
$event_filter = $AppUI->checkPrefState('CalIdxFilter', w2PgetParam($_REQUEST, 'event_filter', 'my'), 'EVENTFILTER', 'my');
// get the passed timestamp (today if none)
$ctoday = new w2p_Utilities_Date();
$today = $ctoday->format(FMT_TIMESTAMP_DATE);
$date = w2PgetParam($_GET, 'date', $today);
// get the list of visible companies
$company = new CCompany();
$companies = $company->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name');
$companies = arrayMerge(array('0' => $AppUI->_('All')), $companies);
// setup the title block
$titleBlock = new CTitleBlock('Monthly Calendar', 'myevo-appointments.png', $m, $m . '.' . $a);
$titleBlock->addCrumb('?m=calendar&a=year_view&date=' . $date, 'year view');
$titleBlock->addCrumb('?m=calendar&date=' . $date, 'month view');
$titleBlock->addCrumb('?m=calendar&a=week_view&date=' . $date, 'week view');
$titleBlock->addCrumb('?m=calendar&a=day_view&date=' . $date, 'day view');
$titleBlock->addCell($AppUI->_('Company') . ':');
$titleBlock->addCell(arraySelect($companies, 'company_id', 'onChange="document.pickCompany.submit()" class="text"', $company_id), '', '<form action="' . $_SERVER['REQUEST_URI'] . '" method="post" name="pickCompany" accept-charset="utf-8">', '</form>');
$titleBlock->addCell($AppUI->_('Event Filter') . ':');
$titleBlock->addCell(arraySelect($event_filter_list, 'event_filter', 'onChange="document.pickFilter.submit()" class="text"', $event_filter, true), '', '<form action="' . $_SERVER['REQUEST_URI'] . '" method="post" name="pickFilter" accept-charset="utf-8">', '</form>');
$titleBlock->show();
?>

<script language="javascript" type="text/javascript">
function clickDay( uts, fdate ) {
示例#28
0
function getFolderSelectList()
{
    global $AppUI;
    $folders = array(0 => '');
    $q = new DBQuery();
    $q->addTable('file_folders');
    $q->addQuery('file_folder_id, file_folder_name, file_folder_parent');
    $q->addOrder('file_folder_name');
    $folders = arrayMerge(array('0' => array(0, $AppUI->_('Root'), -1)), $q->loadHashList('file_folder_id'));
    return $folders;
}
示例#29
0
include $AppUI->getLibraryClass('jpgraph/src/jpgraph');
include $AppUI->getLibraryClass('jpgraph/src/jpgraph_gantt');
// get the prefered date format
$df = $AppUI->getPref('SHDATEFORMAT');
$user_id = intval(dPgetParam($_REQUEST, 'user_id', $AppUI->user_id));
$proFilter = dPgetParam($_REQUEST, 'proFilter', '-1');
$company_id = intval(dPgetParam($_REQUEST, 'company_id', 0));
$department = intval(dPgetParam($_REQUEST, 'department', 0));
$showLabels = dPgetParam($_REQUEST, 'showLabels', 0);
$showInactive = dPgetParam($_REQUEST, 'showInactive', 0);
$sortTasksByName = dPgetParam($_REQUEST, 'sortTasksByName', 0);
$addPwOiD = dPgetParam($_REQUEST, 'addPwOiD', 0);
$m_orig = dPgetParam($_REQUEST, 'm_orig', $m);
$a_orig = dPgetParam($_REQUEST, 'a_orig', $a);
$projectStatus = dPgetSysVal('ProjectStatus');
$projectStatus = arrayMerge(array('-2' => $AppUI->_('All w/o in progress'), '-3' => $AppUI->_($AppUI->user_id == $user_id ? 'My projects' : "User's projects")), $projectStatus);
$pjobj =& new CProject();
$working_hours = $dPconfig['daily_working_hours'];
$q = new DBQuery();
/* 
 * Load department info for the case where one
 * wants to see the ProjectsWithOwnerInDeparment (PwOiD)
 * instead of the projects related to the given department.
 */
$owner_ids = array();
if ($addPwOiD && $department > 0) {
    $q->addTable('users');
    $q->addQuery('user_id');
    $q->addJoin('contacts', 'c', 'c.contact_id = user_contact');
    $q->addWhere('c.contact_department = ' . $department);
    $owner_ids = $q->loadColumn();
示例#30
0
<?php

/* TASKS $Id: tasksperuser.php,v 1.5.6.2 2007/03/06 00:34:45 merlinyoda Exp $ */
if (!defined('DP_BASE_DIR')) {
    die('You should not access this file directly.');
}
$AppUI->savePlace();
if (isset($_POST['company_id'])) {
    $AppUI->setState('CompanyIdxFilter', $_POST['company_id']);
}
$company_id = $AppUI->getState('CompanyIdxFilter') ? $AppUI->getState('CompanyIdxFilter') : 'all';
$log_all_projects = true;
// show tasks for all projects
$df = $AppUI->getPref('SHDATEFORMAT');
// get the prefered date format
// get CCompany() to filter tasks by company
require_once $AppUI->getModuleClass('companies');
$comp = new CCompany();
$companies = $comp->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name');
$compFilter = arrayMerge(array('all' => $AppUI->_('All Companies')), $companies);
// setup the title block
$titleBlock = new CTitleBlock('Tasks per User', 'applet-48.png', $m, "{$m}.{$a}");
$titleBlock->addCell($AppUI->_('Company') . ':');
$titleBlock->addCell(arraySelect($compFilter, 'company_id', 'size="1" class="text" onChange="document.companyFilter.submit();"', $company_id, false), '', '<form action="?m=tasks&a=tasksperuser" method="post" name="companyFilter">', '</form>');
$titleBlock->addCrumb("?m=tasks", "tasks list");
$titleBlock->addCrumb("?m=tasks&a=todo&user_id={$user_id}", "my todo");
$titleBlock->show();
// include the re-usable sub view
$min_view = false;
include DP_BASE_DIR . '/modules/tasks/tasksperuser_sub.php';