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)]); } }