public function indexAction($doctor_id)
 {
     $this->language->load("clinic_doctors");
     $date = date("Y-m-d");
     $this->database->query("SET @x := 0;")->update();
     $this->database->query("UPDATE clinic_reservations SET `number` = (@x:=@x+1) where `clinic_reservations`.`clinic_doctor_id` = '{$doctor_id}' AND `date` = '{$date}' AND `status` != 'canceled'  ORDER BY `time`")->update();
     // GETTING RESERVATIONS
     $model = new \modules\clinic\models\Clinic_reservations();
     $model->_select = "user_id , `number`, time , status, (SELECT fullname FROM users WHERE users.user_id = clinic_reservations.user_id) as name";
     $model->date = $date;
     $model->clinic_doctor_id = $doctor_id;
     $model->clinic_reservation_status = 'confirmed';
     $model->where("`status` != 'late' AND `status` != 'canceled' AND `status` != 'entered' ");
     $model->_order_by['number'] = 'ASC';
     $queue = $model->get();
     // GETTING LATE RESERVATIONS
     $model_late = new \modules\clinic\models\Clinic_reservations();
     $model_late->_select = "user_id, `number`, time , status, (SELECT fullname FROM users WHERE users.user_id = clinic_reservations.user_id) as name";
     $model_late->clinic_doctor_id = $doctor_id;
     $model_late->date = $date;
     $model_late->clinic_reservation_status = 'confirmed';
     $model_late->_order_by['number'] = 'ASC';
     $model_late->status = 'late';
     $late = $model_late->get();
     // GETTING TIME FROM DOCTOR SCHEDULE
     $model_time = new \modules\clinic\models\Clinic_schedules();
     $model_time->_select = "from_time , to_time ";
     $model_time->clinic_doctor_id = $doctor_id;
     $model_time->day = date('l');
     $time = $model_time->get();
     $from_time = $time[0]->from_time;
     $to_time = $time[0]->to_time;
     return $this->render('clinic_welcome_screen/main', ['from_time' => $from_time, 'to_time' => $to_time, 'day' => $date, 'names' => $queue, 'late' => $late, 'doctor_id' => $doctor_id, 'assets_url' => BASE_URL . 'source/app/modules/clinic/assets/']);
 }
 public function indexAction($offset = 0)
 {
     $this->permission('index');
     $this->language->load("clinic_reservations");
     $model = new \modules\clinic\models\Clinic_reservations();
     if ($this->input->get()) {
         $patient = Form_helper::queryToDropdown('users', 'clinic_patient_id', 'fullname', null, 'join clinic_patients on clinic_patients.user_id=users.user_id');
         $status = ['attend' => $this->Language->phrase('attend'), 'late' => $this->Language->phrase('late'), 'entered' => $this->Language->phrase('entered'), 'canceled' => $this->Language->phrase('canceled')];
         $doctor = Form_helper::queryToDropdown('users', 'clinic_doctor_id', 'fullname', null, 'join clinic_doctors on clinic_doctors    .user_id = users.user_id');
         $user_id = $this->input->get('user_id');
         if ($this->input->get('date')) {
             $model->date = $this->input->get('date');
         }
         if ($this->input->get('user_id')) {
             $model->where('`users`. `user_id`', $this->input->get('user_id'));
         }
         if ($this->input->get('status')) {
             $model->where('`clinic_reservations`. `status`', $this->input->get('status'));
         }
         if ($this->input->get('doctor_id')) {
             $model->clinic_doctor_id = $this->input->get('doctor_id');
         }
         //            $this->load->library('pagination');
         $model->_select = "clinic_reservations.* , `users`.`fullname`";
         $model->_joins = ['users' => ["`users`.`user_id` = `clinic_reservations`.`user_id`"]];
         return $this->render('clinic_reservations/index', ['items' => $model->get(), 'patient' => $patient, 'doctor' => $doctor, 'status' => $status]);
     } elseif (!$this->input->get()) {
         $patient = Form_helper::queryToDropdown('users', 'clinic_patient_id', 'fullname', null, 'join clinic_patients on clinic_patients.user_id=users.user_id');
         $status = ['attend' => $this->Language->phrase('attend'), 'late' => $this->Language->phrase('late'), 'entered' => $this->Language->phrase('entered'), 'canceled' => $this->Language->phrase('canceled')];
         $doctor = Form_helper::queryToDropdown('users', 'clinic_doctor_id', 'fullname', null, 'join clinic_doctors on clinic_doctors    .user_id = users.user_id');
         //        $model->_select = 'clinic_reservations.*,`clinic_doctor_reservation_types`.`title`,`clinic_schedules`.`clinic_schedule_id`, `users`.`fullname`';
         //        $model->_joins = [
         //            'clinic_schedules' => ['`clinic_schedules`.`clinic_schedule_id`=`clinic_reservations`.`clinic_schedule_id`', 'INNER'],
         //            'users' => ['`users`.`user_id`=`clinic_reservations`.`user_id`', 'INNER'],
         //            'clinic_doctor_reservation_types' => ['`clinic_doctor_reservation_types`.`clinic_doctor_reservation_type_id`=`clinic_reservations`.`clinic_doctor_reservation_type_id`', 'INNER'],
         //        ];
         $model->_select = "clinic_reservations.* , `users`.`fullname` ";
         $model->_joins = ['users' => ["`users`.`user_id` = `clinic_reservations`.`user_id`"]];
         $this->load->library('pagination');
         $model->_limit = $this->config->get('limit');
         $model->_offset = $offset;
         $config = ['url' => Uri_helper::url('management/clinic_reservations/index'), 'limit' => $model->_limit, 'offset' => $model->_offset];
         return $this->render('clinic_reservations/index', ['items' => $model->get(), 'patient' => $patient, 'doctor' => $doctor, 'status' => $status, 'pagination' => $this->Pagination->generate($config)]);
     }
 }