Esempio n. 1
0
 /**
  * This method is used for thematic advance control (update, insert or listing)
  * render to thematic_advance.php
  * @param 	string	$action
  *
  */
 public function thematic_advance($action)
 {
     $thematic = new Thematic();
     $attendance = new Attendance();
     $data = array();
     $displayHeader = !empty($_REQUEST['display']) && $_REQUEST['display'] === 'no_header' ? false : true;
     // get data for attendance input select
     $attendance_list = $attendance->get_attendances_list();
     $attendance_select = array();
     $attendance_select[0] = get_lang('SelectAnAttendance');
     foreach ($attendance_list as $attendance_id => $attendance_data) {
         $attendance_select[$attendance_id] = $attendance_data['name'];
     }
     $thematic_id = intval($_REQUEST['thematic_id']);
     $thematic_advance_id = isset($_REQUEST['thematic_advance_id']) ? intval($_REQUEST['thematic_advance_id']) : null;
     $thematic_advance_data = array();
     switch ($action) {
         case 'thematic_advance_delete':
             if (!empty($thematic_advance_id)) {
                 if (api_is_allowed_to_edit(null, true)) {
                     $thematic->thematic_advance_destroy($thematic_advance_id);
                 }
                 header('Location: index.php');
                 exit;
             }
             break;
         case 'thematic_advance_list':
             if (!api_is_allowed_to_edit(null, true)) {
                 echo '';
                 exit;
             }
             if (isset($_REQUEST['start_date_type']) && $_REQUEST['start_date_type'] == 1 && empty($_REQUEST['start_date_by_attendance']) || !empty($_REQUEST['duration_in_hours']) && !is_numeric($_REQUEST['duration_in_hours'])) {
                 if ($_REQUEST['start_date_type'] == 1 && empty($_REQUEST['start_date_by_attendance'])) {
                     $start_date_error = true;
                     $data['start_date_error'] = $start_date_error;
                 }
                 if (!empty($_REQUEST['duration_in_hours']) && !is_numeric($_REQUEST['duration_in_hours'])) {
                     $duration_error = true;
                     $data['duration_error'] = $duration_error;
                 }
                 $data['action'] = $_REQUEST['action'];
                 $data['thematic_id'] = $_REQUEST['thematic_id'];
                 $data['attendance_select'] = $attendance_select;
                 if (isset($_REQUEST['thematic_advance_id'])) {
                     $data['thematic_advance_id'] = $_REQUEST['thematic_advance_id'];
                     $thematic_advance_data = $thematic->get_thematic_advance_list($_REQUEST['thematic_advance_id']);
                     $data['thematic_advance_data'] = $thematic_advance_data;
                 }
             } else {
                 if (api_is_allowed_to_edit(null, true)) {
                     $thematic_advance_id = isset($_REQUEST['thematic_advance_id']) ? $_REQUEST['thematic_advance_id'] : null;
                     $thematic_id = $_REQUEST['thematic_id'];
                     $content = isset($_REQUEST['content']) ? $_REQUEST['content'] : null;
                     $duration = isset($_REQUEST['duration_in_hours']) ? $_REQUEST['duration_in_hours'] : null;
                     if (isset($_REQUEST['start_date_type']) && $_REQUEST['start_date_type'] == 2) {
                         $start_date = $_REQUEST['custom_start_date'];
                         $attendance_id = 0;
                     } else {
                         $start_date = isset($_REQUEST['start_date_by_attendance']) ? $_REQUEST['start_date_by_attendance'] : null;
                         $attendance_id = isset($_REQUEST['attendance_select']) ? $_REQUEST['attendance_select'] : null;
                     }
                     $thematic->set_thematic_advance_attributes($thematic_advance_id, $thematic_id, $attendance_id, $content, $start_date, $duration);
                     $affected_rows = $thematic->thematic_advance_save();
                     if ($affected_rows) {
                         // get last done thematic advance before move thematic list
                         $last_done_thematic_advance = $thematic->get_last_done_thematic_advance();
                         // update done advances with de current thematic list
                         if (!empty($last_done_thematic_advance)) {
                             $thematic->update_done_thematic_advances($last_done_thematic_advance);
                         }
                     }
                 }
             }
             break;
         default:
             $thematic_advance_data = $thematic->get_thematic_advance_list($thematic_advance_id);
             break;
     }
     // get calendar select by attendance id
     $calendar_select = array();
     if (!empty($thematic_advance_data)) {
         if (!empty($thematic_advance_data['attendance_id'])) {
             $attendance_calendar = $attendance->get_attendance_calendar($thematic_advance_data['attendance_id']);
             if (!empty($attendance_calendar)) {
                 foreach ($attendance_calendar as $calendar) {
                     $calendar_select[$calendar['date_time']] = $calendar['date_time'];
                 }
             }
         }
     }
     $data['action'] = $action;
     $data['thematic_id'] = $thematic_id;
     $data['thematic_advance_id'] = $thematic_advance_id;
     $data['attendance_select'] = $attendance_select;
     $data['thematic_advance_data'] = $thematic_advance_data;
     $data['calendar_select'] = $calendar_select;
     $layoutName = $displayHeader ? 'layout' : 'layout_no_header';
     // render to the view
     $this->view->set_data($data);
     $this->view->set_layout($layoutName);
     $this->view->set_template('thematic_advance');
     $this->view->render();
 }
 $users = SessionManager::get_users_by_session($session_id);
 $u = array();
 foreach ($users as $user) {
     $u[] = $user['user_id'];
 }
 // Get courses list to get the right course (only one in each session)
 //$courses = SessionManager::get_course_list_by_session_id($session_id);
 //if (count($courses)>0) {
 //    foreach ($courses as $course) {
 //        $course_id = $course['id'];
 //        break;
 //    }
 if (!empty($course_id)) {
     $out2 = "-- Course " . $course_id . "\n";
     // Get attendances sheets from course (only one in each course)
     $att = $a->get_attendances_list($course_id, $session_id);
     if (count($att) > 0) {
         foreach ($att as $at) {
             $at_id = $at['id'];
             break;
             //get out after first result
         }
         $out3 = "---- Attendance " . $at_id . "\n";
         $a->set_course_int_id($course_id);
         $cal_list = $a->get_attendance_calendar($at_id);
         $cal_count = count($cal_list);
         foreach ($cal_list as $cal) {
             $cal_id = $cal['id'];
             $sql = "SELECT * FROM c_attendance_sheet WHERE c_id = {$course_id} AND attendance_calendar_id = {$cal_id}";
             $res_att = Database::query($sql);
             $att_count = Database::num_rows($res_att);
 static function transaction_36($original_data, $web_service_details)
 {
     global $data_list;
     $data = Migration::soap_call($web_service_details, 'asistenciaDetalles', array('uididpersona' => $original_data['item_id'], 'uididprograma' => $original_data['orig_id'], 'uididfecha' => $original_data['info'], 'intIdSede' => $original_data['branch_id']));
     if ($data['error'] == false) {
         $uidIdPrograma = $original_data['orig_id'];
         $uidIdPersona = $original_data['item_id'];
         $attendance_date = $data['date_assist'];
         $attendance_user_status = $data['status'];
         // modified in the asistenciaDetalles function
         $session_id = self::get_session_id_by_programa_id($uidIdPrograma, $data_list);
         $user_id = self::get_user_id_by_persona_id($uidIdPersona, $data_list);
         if (empty($user_id)) {
             return array('message' => "User does not exists in DB: {$uidIdPersona}", 'status_id' => self::TRANSACTION_STATUS_FAILED);
         }
         if (empty($session_id)) {
             return array('message' => "Session does not exists {$uidIdPrograma}", 'status_id' => self::TRANSACTION_STATUS_FAILED);
         }
         $course_list = SessionManager::get_course_list_by_session_id($session_id);
         if (!empty($course_list)) {
             $course_data = current($course_list);
             if (isset($course_data['code'])) {
                 //Check if user exist in the session
                 $status = SessionManager::get_user_status_in_course_session($user_id, $course_data['id'], $session_id);
                 if ($status === false) {
                     return array('message' => "User #{$user_id} is not registered in course code: {$course_data['code']} - session_id: {$session_id}", 'status_id' => self::TRANSACTION_STATUS_FAILED);
                 }
                 $time = self::get_horario_value($session_id);
                 $attendance_date .= " {$time}:00";
                 $attendance = new Attendance();
                 $course_info = api_get_course_info($course_data['code']);
                 $attendance->set_course_id($course_info['code']);
                 $attendance->set_course_int_id($course_info['real_id']);
                 $attendance->set_session_id($session_id);
                 $attendance_list = $attendance->get_attendances_list($course_info['real_id'], $session_id);
                 if (empty($attendance_list)) {
                     return array('message' => "Attendance not found for course code: {$course_info['code']} - session_id: {$session_id}", 'status_id' => self::TRANSACTION_STATUS_FAILED);
                     //only 1 course per session
                 } else {
                     $attendance_data = current($attendance_list);
                     $attendance_id = $attendance_data['id'];
                     error_log("Attendance found in attendance_id = {$attendance_id} - course code: {$course_info['code']} - session_id: {$session_id} - {$attendance_date}");
                 }
                 $cal_info = $attendance->get_attendance_calendar_data_by_date($attendance_id, $attendance_date);
                 if ($cal_info && isset($cal_info['id'])) {
                     $cal_id = $cal_info['id'];
                 } else {
                     //Creating the attendance date
                     $attendance->set_date_time($attendance_date);
                     $cal_id = $attendance->attendance_calendar_add($attendance_id, true);
                     error_log("Creating a new calendar item {$cal_id}");
                     /*
                                             return array(
                                                 'message' => "Attendance calendar does not exist for date: $attendance_date in attendance_id = $attendance_id - course code: {$course_info['code']} - session_id: $session_id",
                                                 'status_id' => self::TRANSACTION_STATUS_FAILED
                                             );*/
                 }
                 $users_present = array($user_id => $attendance_user_status);
                 $attendance_sheet_before = $attendance->attendance_sheet_get_info($cal_id, $user_id);
                 $result = $attendance->attendance_sheet_add($cal_id, $users_present, $attendance_id, false, true);
                 $attendance_sheet_after = $attendance->attendance_sheet_get_info($cal_id, $user_id);
                 if ($result) {
                     return array('entity' => 'attendance_sheet', 'before' => $attendance_sheet_before, 'after' => $attendance_sheet_after, 'message' => "Attendance sheet edited with", 'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL);
                 } else {
                     return array('message' => "Attendance sheet can't be edited attendance_id: {$attendance_id} - cal_id: {$cal_id} - user_id: {$user_id} - course: {$course_info['code']} - session_id: {$session_id} ", 'status_id' => self::TRANSACTION_STATUS_FAILED);
                 }
             } else {
                 $message = "Course is not set";
             }
         } else {
             $message = "NO course found for session id: {$session_id}";
         }
         return array('message' => $message, 'status_id' => self::TRANSACTION_STATUS_FAILED);
     } else {
         return $data;
     }
 }
 // Get users in session to build users list
 $users = SessionManager::get_users_by_session($session['id']);
 $u = array();
 foreach ($users as $user) {
     $u[] = $user['user_id'];
 }
 // Get courses list to get the right course (only one in each session)
 $courses = SessionManager::get_course_list_by_session_id($session['id']);
 if (count($courses) > 0) {
     foreach ($courses as $course) {
         $course_id = $course['id'];
         break;
     }
     echo "-- Course " . $course_id . "\n";
     // Get attendances sheets from course (only one in each course)
     $att = $a->get_attendances_list($course_id, $session['id']);
     if (count($att) > 0) {
         foreach ($att as $at) {
             $at_id = $at['id'];
             break;
             //get out after first result
         }
         echo "---- Attendance " . $at_id . "\n";
         $a->set_course_int_id($course_id);
         $a->update_users_results($u, $at_id);
     } else {
         var_dump($att);
     }
 }
 if ($session['id'] > $max) {
     die('Finished processing ' . $max . "\n");