class list_jobs_tracking { public $status; public $order; public $method; public $group_id; public $avail_status; public $avail_edit; public $link_view; public $link_edit; public $job_id; public $db_name; public $account_id; public function __construct($context) { $this->avail_status = $context['avail_status']; $this->avail_edit = $context['avail_edit']; $this->link_view = $context['link_view']; $this->link_edit = $context['link_edit']; $this->status = $context['status']; $this->job_id = $context['job_id']; $this->order = (empty($context['order'])) ? "ASC" : $context['order']; $this->method = (empty($context['method'])) ? "name" : $context['method']; } public function get_user() { global $database; $status = $this->status; $results = common_users::get_all_users_sort_by_name(); $count = 0; $counter =0; $return_results = array(); $time_array = array(); foreach($results AS $result) { $staff_id = $result['id']; $staff_name = $result['name']; $times = common_job_trackings::get_total_duration_by_department_and_user($this->job_id,$staff_id); if(count($times) > 0) { $time_array[$counter]['id'] = $staff_id; $time_array[$counter]['name'] = $staff_name; foreach($times AS $time) { $time_array[$counter][$time['id']] = $time['value']; } $counter++; } } foreach($time_array AS $timing) { if(sizeOf($timing) > 3) { $return_results[]= $timing; } } //bug::bug_array("time_array",$time_array); $this->final_results = $time_array; return $this; } public function get_data() { global $database; $status = $this->status; $job_id = $this->job_id; $job_details = common_jobs::get_details($job_id); $quote_id = $job_details['quote_id']; $quote_details = common_quotes::get_details($quote_id); $job_type = $quote_details['job_type']; if($job_type != 4) { $departments = common_production_department::get_quote_departments($quote_id); } else { $departments = common_production_department::get_all_trackings_departments(); } $department_names = common_production_department::get_departments(); $department_headers = array(); foreach($departments AS $key => $department) $department_headers[$key] = $department_names[$key]['department_name']; $this->department_headers = $department_headers; $get_job_tracking = " SELECT * FROM job_trackings WHERE job_id='$job_id' "; $results = $database->getAll($get_job_tracking); $jobs = array(); foreach($results AS $job_key => $result) $jobs[$job_key][$result['user_id']][$result['department']] = $result; $users = common_users::get_all_names_link(); $job_users = array(); foreach($results AS $result) foreach($departments AS $key => $department) { $job_users[$result['user_id']]['name'] = $users[$result['user_id']]; $job_users[$result['user_id']]['user_id'] = $result['user_id']; $job_users[$result['user_id']]['time'][$key] = 0; } foreach($results AS $job_key => $result) foreach($departments AS $key => $department) { if($key == $result['department']) { if($jobs[$job_key][$result['user_id']][$key]['end_time'] == "0000-00-00 00:00:00") $jobs[$job_key][$result['user_id']][$key]['end_time'] = date('Y-m-d G:i:s'); $in_minutes = common_job_trackings::get_duration_minute($jobs[$job_key][$result['user_id']][$key]['start_time'],$jobs[$job_key][$result['user_id']][$key]['end_time']); $job_users[$result['user_id']]['time'][$key] += $in_minutes; } } //bug::bug_array("",$job_users); $this->final_results = $job_users; return $this; } public function show_new() { global $database; $department_headers = $this->department_headers; $job_id = $this->job_id; $order = $this->order; $method = $this->method; $results = $this->final_results; $avail_status = $this->avail_status; $avail_edit = $this->avail_edit; $link_view = $this->link_view; $link_edit = $this->link_edit; $normalised_results = filter::sort_results($method,$order,$results); $normalise_get = filter::normalise_get($order); $pagination_results = filter::pagination($normalised_results,$normalise_get); filter::pagination_html($pagination_results); $pagination = $pagination_results['pagination']; $start = $pagination_results['start']; $size = $pagination_results['size']; $total_results = $pagination_results['total_results']; $max_size = $pagination_results['max_size']; $order = ($order == "ASC") ? "DESC" : "ASC"; $normalise_get = filter::normalise_get($order); $new_normalised_results = array(); foreach($normalised_results AS $key => $value) $new_normalised_results[] = $key; $total_departments = array(); ?>