/** * It's used for adding attendace, * render to attendance_add or attendance_list view */ public function attendance_add() { $attendance = new Attendance(); $data = array(); if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") { if (!empty($_POST['title'])) { $check = Security::check_token(); if ($check) { $attendance->set_name($_POST['title']); $attendance->set_description($_POST['description']); $attendance->set_attendance_qualify_title($_POST['attendance_qualify_title']); $attendance->set_attendance_weight($_POST['attendance_weight']); $link_to_gradebook = false; if (isset($_POST['attendance_qualify_gradebook']) && $_POST['attendance_qualify_gradebook'] == 1) { $link_to_gradebook = true; } $attendance->category_id = $_POST['category_id']; $last_id = $attendance->attendance_add($link_to_gradebook); Security::clear_token(); } $param_gradebook = ''; if (isset($_SESSION['gradebook'])) { $param_gradebook = '&gradebook=' . Security::remove_XSS($_SESSION['gradebook']); } //header('location:index.php?action=attendance_sheet_list&attendance_id='.$last_id.'&'.api_get_cidreq().$param_gradebook); header('location:index.php?action=calendar_add&attendance_id=' . $last_id . '&' . api_get_cidreq() . $param_gradebook); exit; } else { $data['error'] = true; $this->view->set_data($data); $this->view->set_layout('layout'); $this->view->set_template('attendance_add'); $this->view->render(); } } else { $this->view->set_data($data); $this->view->set_layout('layout'); $this->view->set_template('attendance_add'); $this->view->render(); } }
if (api_is_allowed_to_edit(null, true)) { $param_gradebook = ''; if (isset($_SESSION['gradebook'])) { $param_gradebook = '&gradebook=' . Security::remove_XSS($_SESSION['gradebook']); } echo '<div class="actions">'; echo '<a href="index.php?' . api_get_cidreq() . $param_gradebook . '&action=attendance_add">' . Display::return_icon('new_attendance_list.png', get_lang('CreateANewAttendance'), '', ICON_SIZE_MEDIUM) . '</a>'; /*echo '<a href="index.php?'.api_get_cidreq().$param_gradebook.'&action=calendar_logins">'. Display::return_icon('attendance_list.png',get_lang('Logins'),'',ICON_SIZE_MEDIUM).'</a>';*/ echo '</div>'; } $attendance = new Attendance(); if ($attendance->get_number_of_attendances() == 0) { $attendance->set_name(get_lang('Attendances')); $attendance->set_description(get_lang('Attendances')); $attendance->attendance_add(); } $table = new SortableTable('attendance_list', array('Attendance', 'get_number_of_attendances'), array('Attendance', 'get_attendance_data'), $default_column); $table->set_additional_parameters($parameters); $table->set_header(0, '', false, array('style' => 'width:20px;')); $table->set_header(1, get_lang('Name'), true); $table->set_header(2, get_lang('Description'), true); $table->set_header(3, get_lang('CountDoneAttendance'), true, array('style' => 'width:90px;')); if (api_is_allowed_to_edit(null, true)) { $table->set_header(4, get_lang('Actions'), false, array('style' => 'text-align:center')); $actions = array('attendance_set_invisible_select' => get_lang('SetInvisible'), 'attendance_set_visible_select' => get_lang('SetVisible')); $allow = api_get_configuration_value('allow_delete_attendance'); if ($allow) { $actions['attendance_delete_select'] = get_lang('DeleteAllSelectedAttendances'); } $table->set_form_actions($actions);
static function transaction_34($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)) { //There's only one course per session so far $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); } // attendance are registered with date + time, so get time // from session schedule $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 = array(); if (is_array($data_list) && isset($data_list) && $data_list['boost_sessions'] && isset($data_list['sessions_attendances'][$course_info['real_id']][$session_id])) { //error_log('Found reference to an existing sheet in data_list'); $list = $data_list['sessions_attendances'][$course_info['real_id']][$session_id]; foreach ($list as $at_id) { $attendance_list[$at_id] = array('id' => $at_id); //error_log('attendance sheet is '.$at_id); } } else { $attendance_list = $attendance->get_attendances_list($course_info['real_id'], $session_id); //error_log('Gotten attendance_sheet from table '.$attendance_list[0]['id']); } if (count($attendance_list) == 0) { $d = array('session_id' => $session_id, 'user_id' => $user_id, 'fecha' => $attendance_date, 'status' => $attendance_user_status); $attendance->set_name('Asistencia'); $attendance->set_description(''); $link_to_gradebook = false; $attendance_id = $attendance->attendance_add($link_to_gradebook, self::default_admin_id); if (is_array($data_list) && isset($data_list) && $data_list['boost_sessions']) { $data_list['sessions_attendances'][$course_info['real_id']][$session_id][] = $attendance_sheet_id; } //error_log("Attendance created in attendance_id = $attendance_id - course code: {$course_info['code']} - session_id: $session_id - $attendance_date"); //self::create_attendance($d); /*return array( 'entity' => 'attendance_sheet', 'before' => null, 'after' => $attendance_sheet_after, 'message' => "Attendance sheet added with id: $result", 'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL );*/ /* 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); error_log('Setting date ' . $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_info = $attendance->attendance_sheet_get_info($cal_id, $user_id); if (empty($attendance_sheet_info)) { $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); } else { return array('message' => "Attendance sheet can't be added, because it already exists - 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); } if ($result) { return array('entity' => 'attendance_sheet', 'before' => null, 'after' => $attendance_sheet_after, 'message' => "Attendance sheet added with id: {$result}", 'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL); } else { return array('message' => "Attendance sheet can't be added 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 = "Something is wrong with the course"; } } else { $message = "NO course found for session id: {$session_id}"; } return array('message' => $message, 'status_id' => self::TRANSACTION_STATUS_FAILED); } else { return $data; } }