@ -325,8 +325,159 @@
$this->view->set_template('attendance_calendar');
$this->view->render();
}
}
/**
* It's used to print attendance sheet
* @param string action
* @param int attendance id
*/
public function attendance_sheet_print($action, $attendance_id, $student_id = 0, $course_id = '') {
$attendance = new Attendance();
$courseInfo = CourseManager::get_course_information($course_id);
$attendance->set_course_id($courseInfo['code']);
$data_array = array();
$data_array['attendance_id'] = $attendance_id;
$data_array['users_in_course'] = $attendance->get_users_rel_course($attendance_id);
$data_array['attendant_calendar'] = $attendance->get_attendance_calendar($attendance_id);
if (api_is_allowed_to_edit(null, true) || api_is_drh()) {
$data_array['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
} else {
if (!empty($student_id)) {
$user_id = intval($student_id);
} else {
$user_id = api_get_user_id();
}
$data_array['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id, $user_id);
$data_array['faults'] = $attendance->get_faults_of_user($user_id, $attendance_id);
$data_array['user_id'] = $user_id;
}
$data_array['next_attendance_calendar_id'] = $attendance->get_next_attendance_calendar_id($attendance_id);
// set headers pdf
!empty($_user['official_code'])? $officialcode=$_user['official_code'].' - ':'';
$courseCategory = CourseManager::get_course_category($courseInfo['category_code']);
$teacherInfo = CourseManager::get_teacher_list_from_course_code($courseInfo['code']);
$teacherName = null;
foreach($teacherInfo as $dados) {
if($teacherName != null)
$teacherName = $teacherName . " / ";
$teacherName.= $dados['firstname']." ".$dados['lastname'];
}
$h1 = array(get_lang('Category'), $courseCategory['name']);
$h3 = array(get_lang("Title"), $courseInfo['title']);
$h4 = array(get_lang('Teacher'), $teacherName);
$h5 = array("", "");
$date = date('d-m-Y H:i:s', time());
$h6 = array(get_lang('DateTime'),api_convert_and_format_date($date, "%d/%m/%Y %H:%M"));
$header_pdf = array($h4, $h1, $h5, $h5, $h6);
// set footer pdf
$f1 = '< hr / > '.get_lang('Responsable');
$f2 = '< hr / > '.get_lang('Teacher');
$f3 = '< hr / > '.get_lang('Date');
$footer_pdf = array($f1, $f2, $f3);
// set title pdf
$title_pdf = $h3[1];
// set headers data table
$head_ape_name = get_lang('Name');
// get data table
// Marco - ordenacao fixa - just fullname
$data_table = array();
$dataClass = array();
$data_attendant_calendar = array();
$data_users_presence = array();
$data_attendant_calendar = $data_array['attendant_calendar'];
$data_users_presence = $data_array['users_presence'];
foreach ($data_array['users_in_course'] as $user) {
$result = array();
$user_info = api_get_user_info($data['id']);
// $result['official_code'] = $user['official_code'];
$result['fullname'] = $user['firstname']." ".$user['lastname'];
foreach ($data_array['attendant_calendar'] as $class_day) {
if($class_day['done_attendance'] == 1) {
if($data_users_presence[$user['user_id']][$class_day['id']]['presence'] == 1)
$result[$class_day['id']] = " . ";
else
$result[$class_day['id']] = " F ";
} else {
$result[$class_day['id']] = " \ ";
}
}
$data_table[] = $result;
}
$head_table = array(
array(get_lang('#'),5),
// array(get_lang('langOfficialCode'),15),
array(get_lang('Name'), 40),
);
foreach ($data_array['attendant_calendar'] as $class_day) {
$dataClass[] = array($class_day['date'], 2);
}
$head_table = array_merge($head_table, $dataClass);
// split page
/*
$array_nome = array();
$array_p1 = array(); // page 1
$array_p2 = array(); // page 2
foreach ($data_table as $frequencia)
{
$array_nome[] = array_slice($frequencia, 0, 2, true);
$array_p1[] = array_slice($frequencia, 2, 36, true);
$array_p2[] = array_slice($frequencia, 38, count($frequencia), true);
}
$narray1 = array();
$narray2 = array();
for($i = 0; $i < count ( $ array_nome ) ; $ i + + )
{
$narray1[] = $array_nome[$i]+$array_p1[$i];
$narray2[] = $array_nome[$i]+$array_p2[$i];
}
$data_table = array_merge($narray1, $narray2);
unset($narray1); unset($narray2); unset($array_p1); unset($array_p2); unset($array_nome);
$array_nome = array();
$array_p1 = array();
$array_p2 = array();
foreach($head_table as $head)
{
$array_nome = array_slice($head_table, 0, 3, true);
$array_p1 = array_slice($head_table, 3, 36, true);
$array_p2 = array_slice($head_table, 39, count($head_table), true);
}
$array_p1 = array_merge($array_nome, $array_p1);
$array_p2 = array_merge($array_nome, $array_p2);
unset($head_table); $head_table = array();
$head_table[] = $array_p1;
$head_table[] = $array_p2;
*/
//echo "< pre > "; print_r($head_table); echo "< / pre > "; exit();
export_pdf_attendance(& $head_table, & $data_table, & $header_pdf, $footer_pdf, $title_pdf);
?>
}
}