user = wp_get_current_user(); else{ $this->user = get_user_by('login', $login); } global $wpdb; $this->db = $wpdb; $this->table_name = $wpdb->prefix . 'acare_ts'; } public function list_jobs_by_staff($start, $finish){ $response = array( 'status'=>'success', 'jobs' => [], 'staff_name'=>$this->user->display_name, 'job_count' => 0. ); $sql = "SELECT * FROM $this->table_name WHERE start>='%s' and start <='%s' and staff='%s' order by start ASC"; $query = $this->db->prepare ($sql, array($start, $finish, $this->user->user_login)); $jobs = $this->db->get_results($query); $response['job_count'] = count($jobs); //$response['sql'] = $query; if ($this->db->last_error == ""){ $response['status'] = 'success'; foreach( $jobs as $s){ $response['jobs'][] = array( 'id' => $s->id, 'tos' => $s->tos, 'start'=> $s->start, 'finish'=> $s->finish, 'rate'=> $s->rate, 'staff'=> $s->staff, 'client'=> $s->client, 'ack' => $s->ack, 'rating' =>$s->rating, //descriptions 'rate_str'=> $this->get_rate_str($s->rate), 'tos_str'=> $this->get_tos_str($s->tos), 'client_name' => $this->get_display_name($s->client), 'client_addr' => $this->get_client_addr($s->client), ); } }else{ $response['status'] = 'error'; $response['err'] = $this->db->last_error; } return $response; } public function list_jobs_by_client($start, $finish){ $response = array( 'status'=>'success', 'jobs' => [], 'client_name'=>$this->user->display_name, 'job_count' => 0. ); $sql = "SELECT * FROM $this->table_name WHERE start>='%s' and start <='%s' and client='%s' order by start ASC"; $query = $this->db->prepare ($sql, array($start, $finish, $this->user->user_login)); //$query = $this->db->prepare ($sql, array($start, $finish, "593d3253-07d0-40a7-8b8e-1a5df05a56db")); $jobs = $this->db->get_results($query); $response['job_count'] = count($jobs); //$response['sql'] = $query; if ($this->db->last_error == ""){ $response['status'] = 'success'; foreach( $jobs as $s){ $el = array( 'id' => $s->id, 'tos' => $s->tos, 'start'=> $s->start, 'finish'=> $s->finish, 'rate'=> $s->rate, 'staff'=> $s->staff, 'client'=> $s->client, 'ack' => $s->ack, 'rating' => (int) $s->rating, //descriptions 'rate_str'=> $this->get_rate_str($s->rate), 'tos_str'=> $this->get_tos_str($s->tos), 'staff_name' => $this->get_display_name($s->staff), //extra field for GUI 'hl_start_date' => $this->get_date_month($s->start), 'hl_start' => $this->get_hh_mm($s->start), 'hl_finish' => $this->get_hh_mm($s->finish), 'rated' => ($s->rating >=1 && $s->rating<=5)? 'rated': '', 'start_day' => $this->get_weekday_name($s->start), 'finish_day' => $this->get_weekday_name($s->finish), ); $el['checked_' . $s->rating] = 'checked'; $response['jobs'][]=$el; } }else{ $response['status'] = 'error'; $response['err'] = $this->db->last_error; } return $response; } private function get_date_month($strdate){ $d = new \DateTime($strdate); return $d->format('d/n'); } private function get_hh_mm($strdate){ $d = new \DateTime($strdate); return $d->format('H:i'); } private function get_weekday_name($strdate){ $d = new \DateTime($strdate); return $d->format("D"); } private function get_rate_str($earnings_rate_id) { if ($this->options == NULL){ $this->options = get_option('bts_payitem_earnings_rate'); } foreach($this->options as $o){ if ($o['EarningsRateID'] == $earnings_rate_id) return $o['Name']; } return ""; } private function get_tos_str($ndis_code) { if ($this->ndis == null){ $this->ndis = new NdisPrice(2019); } return $this->ndis->get_tos_str($ndis_code); } private function get_client_addr($login) { $user = get_user_by('login', $login); return get_user_meta($user->ID, 'address', true); } private function get_display_name($login) { $user = get_user_by('login', $login); return $user->display_name; } } ?>