コード例 #1
0
 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/']);
 }
コード例 #2
0
 public function manageAction($id = false)
 {
     $this->permission('manage');
     $this->language->load("clinic_schedules");
     $model = new \modules\clinic\models\Clinic_schedules();
     // TODO: FIX
     $model->attributes[] = $this->Input->post('');
     $model->attributes[] = $this->Input->post('');
     $model->attributes[] = $this->Input->post('');
     $model->attributes[] = $this->Input->post('');
     $model->attributes[] = $this->Input->post('');
     $doctors = Form_helper::fullqueryToDropdown('SELECT clinic_doctors.clinic_doctor_id, users.fullname FROM clinic_doctors  INNER JOIN users ON users.user_id = clinic_doctors.user_id', 'clinic_doctor_id', 'fullname');
     if ($id) {
         $model->clinic_schedule_id = $id;
     }
     $model->language_id = $this->language->getDefaultLanguage();
     if ($model->save()) {
         Uri_helper::redirect("management/clinic_schedules");
     }
     return $this->render('clinic_schedules/manage', ['item' => $id ? $model->get() : null, 'doctor' => $doctors, 'menu' => ['saturday' => 'Saturday', 'sunday' => 'Sunday', 'monday' => 'Monday', 'tuesday' => 'Tuesday', 'wednesday' => 'Wednesday', 'thursday' => 'Thursday', 'friday' => 'Friday']]);
 }
コード例 #3
0
 public function getSearchAction()
 {
     $this->layout = 'ajax';
     $doctor_id = $this->input->get('user_id');
     $date = $this->input->get('date');
     //        if ($this->input->get('date')) {
     //            if (strtotime($this->input->get('date')) <= strtotime(date("Y-0n-j")))
     //                $date = date("Y-0n-j");
     //            else
     //                $date = $this->input->get('date');
     //        }
     $model_period = new \modules\clinic\models\Clinic_doctors();
     $model_period->_select = 'period_average ';
     $model_period->clinic_doctor_id = $doctor_id;
     $period_time = $model_period->get();
     $average_time = $period_time->period_average;
     /////////////////////get day////////////////////////////////////////
     $timestamp = strtotime($date);
     $day = date("l", $timestamp);
     $model_date = new \modules\clinic\models\Clinic_schedules();
     $model_date->_select = 'from_time , to_time ';
     $model_date->clinic_doctor_id = $doctor_id;
     $model_date->status = 'on';
     $model_date->day = $day;
     $period = $model_date->get();
     if (!$period) {
         return json_encode(['result' => 0]);
     }
     $from = $period[0]->from_time;
     $to = $period[0]->to_time;
     $time = $model_date->get_time($from, $to, $average_time, $doctor_id);
     $final = $model_date->get_searchResult($date, $time, $doctor_id);
     if (strtotime($date) < strtotime(date("Y-0n-j"))) {
         foreach ($final as $key => $value) {
             if (!$final[$key]->status) {
                 $final[$key]->status = 'old';
             }
         }
     }
     return json_encode(['result' => $final]);
 }
コード例 #4
0
 public function doctor_scheduleAction($id)
 {
     $this->permission('doctor_schedule');
     $this->language->load("clinic_doctors");
     $model = new \modules\clinic\models\Clinic_schedules();
     $model->clinic_doctor_id = $id;
     $days = ['Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'];
     if ($_POST) {
         $for_time = $this->input->post('from');
         $to_time = $this->input->post('to');
         $status = $this->input->post('day');
         $clinic_schedule_id = $this->input->post('clinic_schedule_id');
         foreach ($this->input->post('from') as $key => $value) {
             if ($clinic_schedule_id[$key]) {
                 $model->clinic_schedule_id = $clinic_schedule_id[$key];
             }
             $model->day = $days[$key];
             $model->from_time = $for_time[$key];
             $model->to_time = $to_time[$key];
             if ($status[$key] == 1) {
                 $model->status = 'on';
             } else {
                 $model->status = 'off';
             }
             $model->save();
         }
         $model->reset();
         $model->clinic_doctor_id = $id;
     }
     $schedule = [];
     foreach ($model->get() as $item) {
         $schedule[$item->day] = $item;
     }
     return $this->render('clinic_doctors/doctor_schedule', ['item' => $schedule, 'id' => $id]);
 }
コード例 #5
0
 public function get_scheduleAction($id)
 {
     $this->language->load("clinic_reservations");
     $userInfo = $this->permissions->checkUserCredentials();
     $model_id = new \modules\clinic\models\Clinic_doctors();
     $model_id->_select = 'user_id';
     $model_id->clinic_doctor_id = $id;
     $resuser_id = $model_id->get();
     $user_id = $resuser_id->user_id;
     $model = new \modules\users\models\Users();
     $model->_select = 'user_id , fullname';
     $model->status = 'active';
     $model->user_id = $user_id;
     ////////////////////////////Clinic Schedule Exceptions//////////////////
     //        $model_Expcetion = new \modules\clinic\models\Clinic_schedule_exceptions();
     ////////////////////////////doctors//////////////////////////////////
     $model_doctors = new \modules\clinic\models\Clinic_doctors();
     $model_doctors->_select = 'clinic_doctor_id, period_average';
     $model_doctors->user_id = $user_id;
     $res = $model_doctors->get();
     $period = $res[0]->period_average;
     $doctor_id = $res[0]->clinic_doctor_id;
     ////////////////////////////doctors//////////////////////////////////
     $model_type = new \modules\clinic\models\Clinic_doctor_reservation_types();
     $model_type->_select = 'clinic_doctor_reservation_type_id, title , price';
     $model_type->clinic_doctor_id = $id;
     $type_result = $model_type->get();
     /////////////////////////////Clinic Schedules///////////////////////////
     $model_schedule = new \modules\clinic\models\Clinic_schedules();
     $model_schedule->_select = 'clinic_doctor_id, day , from_time , to_time ';
     $model_schedule->clinic_doctor_id = $doctor_id;
     $model_schedule->status = 'on';
     $time = $model_schedule->get();
     if (!$time) {
         return $this->render('clinic_reservations/clinic_schedule', ['items' => $model->get()]);
     }
     $from = $time[0]->from_time;
     $to = $time[0]->to_time;
     foreach ($time as $key => $value) {
         if (strtotime($from) > strtotime($time[$key]->from_time)) {
             $from = $time[$key]->from_time;
         }
         if (strtotime($to) < strtotime($time[$key]->to_time)) {
             $to = $time[$key]->to_time;
         }
     }
     $result = $model_schedule->get();
     $time = $model_schedule->get_time($from, $to, $period, $doctor_id);
     if ($this->input->get('date')) {
         if (strtotime($this->input->get('date')) <= strtotime(date("Y-0n-j"))) {
             $date_new = $model_schedule->get_newDate(NULL, $doctor_id);
         } else {
             $date_new = $model_schedule->get_newDate($this->input->get('date'), $doctor_id);
         }
     } else {
         $date_new = $model_schedule->get_newDate(NULL, $doctor_id);
     }
     $reserved = $model_schedule->get_schedule($date_new, $time, $doctor_id);
     $exceptions = $model_schedule->exceptions($doctor_id);
     $model_schedule->pre($reserved, $result, $date_new);
     $final = $model_schedule->Final_Array($reserved, $exceptions);
     return $this->render('clinic_reservations/clinic_schedule', ['dates' => $date_new, 'items' => $model->get(), 'item_schedule' => $result, 'finals' => $final, 'time' => $time, 'reserved' => $reserved, 'user' => $userInfo, 'type' => $type_result, 'doctor_id' => $doctor_id]);
 }