grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 */ class ProjectTable { private $tasks; public function __construct($tasks) { $this->tasks = $tasks; //draw the grid $this->draw($this->tasks); } public function draw($tasks) { global $mod_strings, $app_list_strings; // Instantiate the TimeDate Class $timeDate = new TimeDate(); echo ' '; $task_count = 0; if (!is_null($tasks)) { foreach ($tasks as $task) { //Get resources $project = new Project(); $project->retrieve($task->project_id); //Get project resources (users & contacts) $resources1 = $project->get_linked_beans('project_users_1', 'User'); $resources2 = $project->get_linked_beans('project_contacts_1', 'Contact'); //Combine resources into array of objects $resource_array = array(); foreach ($resources1 as $user) { $resource = new stdClass; $resource->id = $user->id; $resource->name = $user->name; $resource->type = 'user'; $resource_array[] = $resource; } foreach ($resources2 as $contact) { $resource = new stdClass; $resource->id = $contact->id; $resource->name = $contact->name; $resource->type = 'contact'; $resource_array[] = $resource; } echo ''; if (ACLController::checkAccess('Project', 'edit', true)) { echo ''; } else { echo ''; } echo ''; $task_count++; } } echo '
'.$mod_strings['LBL_TASK_ID'].' '.$mod_strings['LBL_TASK_NAME'].' '.$mod_strings['LBL_PREDECESSORS'].' '.$mod_strings['LBL_START'].' '.$mod_strings['LBL_FINISH'].' '.$mod_strings['LBL_DURATION'].' '.$mod_strings['LBL_ASSIGNED_USER_ID'].' '.$mod_strings['LBL_PERCENT_COMPLETE'].' '.$mod_strings['LBL_MILESTONE_FLAG'].' '.$mod_strings['LBL_ACTUAL_DURATION'].'
'.$task->project_task_id.''.$task->name.''.$task->name.''; foreach ($tasks as $predecessor) { if ($predecessor->project_task_id==$task->predecessors) { echo $predecessor->name; } } echo ' ' .$timeDate->to_display_date($task->date_start, true). ' ' .$timeDate->to_display_date($task->date_finish, true). ' ' .$task->duration.' '.$app_list_strings['duration_unit_dom'][$task->duration_unit]. ' '; $rflag = '0'; foreach ($resource_array as $resource) { if ($resource->id == $task->assigned_user_id) { if ($resource->type == 'user') { echo ''.$resource->name.''; $rflag = '1'; } elseif ($resource->type == 'contact') { echo ''.$resource->name.''; $rflag = '1'; } } } if ($rflag == '0') { echo $mod_strings['LBL_UNASSIGNED']; } if ($task->milestone_flag == '1') { $checked = $app_list_strings['checkbox_dom']['1']; } else { $checked = $app_list_strings['checkbox_dom']['2']; } echo ' '.$task->percent_complete.' '.$checked.' '.$task->actual_duration.' '; if (ACLController::checkAccess('Project', 'delete', true)) { echo ''; } else { echo ''; } echo '
'; } // Function for basic field validation (present and neither empty nor only white space public function IsNullOrEmptyString($question) { return (!isset($question) || trim($question)===''); } }