Path : /var/www/html/kpp2meeting/application/controllers/
File Upload :
Current File : /var/www/html/kpp2meeting/application/controllers/chart.php

<?php

class Chart extends MY_Controller {

    function __construct() {
        parent::__construct();
        $this->load->library('mydate');
        $this->load->model('script_m');

        $s_imeeting['activemenu'] = '009';
        $this->session->set_userdata('s_imeeting', $s_imeeting);
    }

    function index() {
        $data['page_title'] = "กราฟ";
        $data['content'] = 'chart/chart_v';
        $this->load->view('template_v', $data);
    }

    function room() {
        $data['extraHeadContent'] = $this->script_m->calendar();
        $data['extraHeadContent'].= $this->script_m->textformat();
        $data['extraHeadContent'].= $this->script_m->highchart();

        $first_date = strftime('%Y') . '-' . strftime('%m') . '-01';
        $data['start_date'] = $this->mydate->dateToText($first_date);
        $data['end_date'] = $this->mydate->lastDate();



        $data['page_title'] = "กราฟแสดงสถิติการใช้ห้องประชุม";
        $data['content'] = 'chart/roomchart_v';
        $this->load->view('template_v', $data);
    }

    function ajax_get_roomchart() {
        $start_date = $this->input->post('start_date');
        $end_date = $this->input->post('end_date');

        $title_text = "สถิติการใช้ห้องประชุม ระหว่างวันที่ " . $start_date . " ถึง " . $end_date;
        $data['title_text'] = $title_text;

        $this->db->order_by('name');
        $team = $this->db->get('tbteam')->result_array();

        $categories_data = array();
        $series = array();
        $i = 0;
        foreach ($team as $r) {
            $i++;
            array_push($categories_data, $r['name']);
            
            $count = $this->count_roomuse_byteam($r['id'], $this->mydate->dateToMySql($start_date), $this->mydate->dateToMySql($end_date));
            array_push($series, $count);
        }
        
        
        $data['categories_data'] = json_encode($categories_data);

        $series_data[] = array('name' => 'หน่วยงาน', 'data' => $series);
        $data['series_data'] = json_encode($series_data);

        $this->load->view('chart/roomchart_show_v', $data);
    }

    //นับจำนวนใช้ห้อง
    function count_roomuse_byteam($team_id, $start_date, $end_date) {
        $i1 = 0;
        $i2 = 0;

        $sql = "SELECT tbdepart.team_id FROM tbreserv";
        $sql.= " Inner Join tbmember ON tbreserv.member_id = tbmember.id";
        $sql.= " Inner Join tbdepart ON tbmember.depart_id = tbdepart.id";
        $sql.= " WHERE (tbreserv.status =  '1') And (tbdepart.team_id='$team_id')";
        $sql.= " And (tbreserv.rdate >= '$start_date' And tbreserv.rdate <= '$end_date')";
        $i1 = $this->db->query($sql)->num_rows();

        $sql = "SELECT tbdepart.team_id FROM tbreserv";
        $sql.= " Inner Join tbmember ON tbreserv.member_id = tbmember.id";
        $sql.= " Inner Join tbdepart ON tbmember.depart_id = tbdepart.id";
        $sql.= " Inner Join tbbooking ON tbbooking.doc_id = tbreserv.id";
        $sql.= " WHERE (tbreserv.status =  '1') And (tbdepart.team_id='$team_id')";
        $sql.= " And (tbbooking.rdate >= '$start_date' And tbbooking.rdate <= '$end_date')";
        $i2 = $this->db->query($sql)->num_rows();

        $count = $i1 + $i2;
        return $count;
    }
    
    function car() {
        $data['extraHeadContent'] = $this->script_m->calendar();
        $data['extraHeadContent'].= $this->script_m->textformat();
        $data['extraHeadContent'].= $this->script_m->highchart();

        $first_date = strftime('%Y') . '-' . strftime('%m') . '-01';
        $data['start_date'] = $this->mydate->dateToText($first_date);
        $data['end_date'] = $this->mydate->lastDate();



        $data['page_title'] = "กราฟแสดงสถิติการใช้รถ";
        $data['content'] = 'chart/carchart_v';
        $this->load->view('template_v', $data);
    }

    function ajax_get_carchart() {
        $start_date = $this->input->post('start_date');
        $end_date = $this->input->post('end_date');

        $title_text = "สถิติการใช้รถ ระหว่างวันที่ " . $start_date . " ถึง " . $end_date;
        $data['title_text'] = $title_text;

        $this->db->order_by('name');
        $team = $this->db->get('tbteam')->result_array();

        $categories_data = array();
        $series = array();
        $i = 0;
        foreach ($team as $r) {
            $i++;
            array_push($categories_data, $r['name']);
            
            $count = $this->count_caruse_byteam($r['id'], $this->mydate->dateToMySql($start_date), $this->mydate->dateToMySql($end_date));
            array_push($series, $count);
        }
        
        
        $data['categories_data'] = json_encode($categories_data);

        $series_data[] = array('name' => 'หน่วยงาน', 'data' => $series);
        $data['series_data'] = json_encode($series_data);

        $this->load->view('chart/carchart_show_v', $data);
    }

    //นับจำนวนใช้ห้อง
    function count_caruse_byteam($team_id, $start_date, $end_date) {
        $i1 = 0;
        $i2 = 0;

        $sql = "SELECT tbdepart.team_id FROM tbcarreserv";
        $sql.= " Inner Join tbmember ON tbcarreserv.member_id = tbmember.id";
        $sql.= " Inner Join tbdepart ON tbmember.depart_id = tbdepart.id";
        $sql.= " WHERE (tbcarreserv.status =  '1') And (tbdepart.team_id='$team_id')";
        $sql.= " And (tbcarreserv.rdate >= '$start_date' And tbcarreserv.rdate <= '$end_date')";
        $i1 = $this->db->query($sql)->num_rows();

        $sql = "SELECT tbdepart.team_id FROM tbcarreserv";
        $sql.= " Inner Join tbmember ON tbcarreserv.member_id = tbmember.id";
        $sql.= " Inner Join tbdepart ON tbmember.depart_id = tbdepart.id";
        $sql.= " Inner Join tbbooking_car ON tbbooking_car.doc_id = tbcarreserv.id";
        $sql.= " WHERE (tbcarreserv.status =  '1') And (tbdepart.team_id='$team_id')";
        $sql.= " And (tbbooking_car.rdate >= '$start_date' And tbbooking_car.rdate <= '$end_date')";
        $i2 = $this->db->query($sql)->num_rows();

        $count = $i1 + $i2;
        return $count;
    }

}

?>