|
- <?php
- namespace Biukop;
-
- class UserJob{
- private $user;
- private $db;
- private $table_name;
- private $jobs;
- private $options;
- public function __construct($login){
- if ($login == null || $login == "")
- $this->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;
- }
- }
-
-
- ?>
|