Autoría | Ultima modificación | Ver Log |
<?phpob_start();require('../../config.php');//require('autoload.php');global $DB, $PAGE, $CFG, $OUTPUT;require_once($CFG->libdir . '/adminlib.php');require_once $CFG->libdir . '/completionlib.php';require_once $CFG->dirroot. '/completion/classes/progress.php';//require_once $CFG->libdir . '/badgeslib.php';//require_once $CFG->libdir . '/gradelib.php';//require_once $CFG->dirroot . '/grade/querylib.php';require_once(__DIR__ . '/locallib.php');require_login();require_capability('local/cesa_reportes:view', context_system::instance());$classname = optional_param('classname', 'dashboard', PARAM_TEXT);$page = optional_param('page', 0, PARAM_INT);$PAGE->set_url(new moodle_url('/local/cesa_reportes'));$PAGE->set_context(context_system::instance());//$PAGE->set_pagetype('admin-setting');$PAGE->set_pagelayout('plain');$PAGE->set_title('Cesa Reportes');$PAGE->set_heading('Cesa Reportes');$filter_userids = [];$filter_courseids = [];$filter_by_company_active = false;$PAGE->requires->jquery();$PAGE->requires->css(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/assets/pnotify.css'));$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/assets/pnotify.js'));$PAGE->requires->css(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/css/local_cesa_reportes.css'));$PAGE->navbar->add(get_string('modulename', 'local_cesa_reportes'), new moodle_url('/local/cesa_reportes'));$context = ['classname_dashboard' => $classname == 'dashboard' ? 1 : 0,'classname_one_course' => $classname == 'one_course' ? 1 : 0,'classname_one_user' => $classname == 'one_user' ? 1 : 0,'classname_all_course' => $classname == 'all_courses' ? 1 : 0,'classname_all_course_with_activities' => $classname == 'all_courses_with_activities' ? 1 : 0,'classname_custom' => $classname == 'custom' ? 1 : 0,'classname_all_files' => $classname == 'all_files' ? 1 : 0,];if($classname == 'dashboard'){$context['graph_serie1_color'] = get_config('local_cesa_reportes', 'graph_serie1_color');$context['graph_serie2_color'] = get_config('local_cesa_reportes', 'graph_serie2_color');// $PAGE->requires->js('/local/cesa_reportes/assets/jquery-1.12.2.min.js');$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/assets/Chart.min.js'));$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/js/local_cesa_reportes_charts.js'));$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/js/local_cesa_reportes_dashboard.js'));$data = local_cesa_reportes_get_week_days();$context['last_ten_user_activities'] = (array) local_cesa_reportes_get_last_ten_user_activities($filter_by_company_active, $filter_userids, $data->min, $data->max);$context['top_ten_user_activities'] = (array) local_cesa_reportes_get_top_ten_user_activities($filter_by_company_active, $filter_userids, $data->min, $data->max);$context['last_ten_user_modules_completion'] = (array) local_cesa_reportes_get_last_ten_user_modules_completion($filter_by_company_active, $filter_userids, $data->min, $data->max);$context['top_ten_user_modules_completion'] = (array) local_cesa_reportes_get_top_ten_user_modules_completion($filter_by_company_active, $filter_userids, $data->min, $data->max);$context['chart'] = [];foreach($data->days as $day){$data1 = local_cesa_reportes_get_count_activities($filter_by_company_active, $filter_userids, $day->min, $day->max);$data2 = local_cesa_reportes_get_count_modules_completion($filter_by_company_active, $filter_userids, $day->min, $day->max);array_push($context['chart'], ['label' => $day->day,'data1' => $data1,'data2' => $data2,]);}} else if($classname == 'one_course') {$PAGE->requires->css(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/assets/select2.css'));$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/js/local_cesa_reportes_report_for_one_course.js'));$context['courses'] = [];$sql = 'SELECT id, fullname FROM {course} ';if($filter_by_company_active) {$filter_courseids = empty($filter_courseids) ? [-1] : $filter_courseids;$sql .= ' WHERE id IN (' . implode(',', $filter_courseids) . ')';}$sql .= ' ORDER BY fullname ';$records = $DB->get_records_sql($sql);foreach($records as $record){array_push($context['courses'], ['id' => $record->id,'name' => $record->fullname]) ;}} else if($classname == 'one_user') {$context['users'] = [];$PAGE->requires->css(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/assets/select2.css'));$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/js/local_cesa_reportes_report_for_one_user.js'));$sql = 'SELECT id, firstname, lastname, email FROM {user} WHERE id > 1 AND deleted = 0 ' .' AND suspended = 0 ';if($filter_by_company_active) {$filter_userids = empty($filter_userids) ? [-1] : $filter_userids;$sql .= ' AND id IN (' . implode(',', $filter_userids) . ')';}$sql .= ' ORDER BY lastname, firstname, email ';$records = $DB->get_records_sql($sql);foreach($records as $record){array_push($context['users'], ['id' => $record->id,'name' => $record->lastname . ' ' . $record->firstname . ' (' . $record->email . ')']) ;}} else if($classname == 'all_courses') {$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/js/local_cesa_reportes_all_courses.js'));$extra_fields = local_cesa_reportes_get_user_extra_field_names();$context['fields'] = [];array_push($context['fields'], ['field' => 'Apellido']);array_push($context['fields'], ['field' => 'Nombre']);array_push($context['fields'], ['field' => 'Email']);array_push($context['fields'], ['field' => 'Curso']);array_push($context['fields'], ['field' => 'Categoria']);array_push($context['fields'], ['field' => 'Matriculación']);array_push($context['fields'], ['field' => 'Fecha finalización']);array_push($context['fields'], ['field' => 'Actividades asignadas']);array_push($context['fields'], ['field' => 'Actividades completadas']);array_push($context['fields'], ['field' => 'Progreso %']);array_push($context['fields'], ['field' => 'Primera actividad']);array_push($context['fields'], ['field' => 'Ultima actividad']);foreach($extra_fields as $extra_field){array_push($context['fields'], ['field' => $extra_field->name]);}$context['items'] = [];$page = $page ? $page : 1;$include_modules = true;$data = local_cesa_reportes_get_data_for_report_or_excel($filter_by_company_active, $filter_userids, $filter_courseids, $include_modules, $page);$records = $data['items'];$context['pagination'] = $data['pagination'];if($context['pagination']['page'] > 1) {$context['pagination']['previous_page'] = $context['pagination']['page'] - 1;}if($context['pagination']['page'] < $context['pagination']['max_pages']) {$context['pagination']['next_page'] = $context['pagination']['page'] + 1;}foreach($records as $record){if(!$record->courses) {continue;}foreach($record->courses as $course){$item = [];array_push($item, ['value' => $record->lastname ]);array_push($item, ['value' => $record->firstname ]);array_push($item, ['value' => $record->email ]);array_push($item, ['value' => $course->name ]);array_push($item, ['value' => $course->category ]);array_push($item, ['value' => empty($course->timeenrolled) ? '' : date('d/m/Y h:i a', $course->timeenrolled)]);array_push($item, ['value' => empty($course->timecompleted) ? '' : date('d/m/Y h:i a', $course->timecompleted)]);array_push($item, ['value' => $course->activities_assigned, 'align-right' => true ]);array_push($item, ['value' => $course->activities_completed, 'align-right' => true ]);array_push($item, ['value' => number_format($course->percentage, 2), 'align-right' => true ]);array_push($item, ['value' => empty($course->time_activities_first) ? '' : date('d/m/Y h:i a', $course->time_activities_first) ]);array_push($item, ['value' => empty($course->time_activities_last) ? '' : date('d/m/Y h:i a', $course->time_activities_last) ]);foreach($extra_fields as $extra_field){$value = '';foreach($record->extras as $extra){if($extra->id == $extra_field->id) {$value = $extra->value;}}array_push($item, ['value' => $value ]);}array_push($context['items'], ['item' => $item]);}}} else if($classname == 'all_courses_with_activities') {$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/js/local_cesa_reportes_all_courses_with_activites.js'));$extra_fields = local_cesa_reportes_get_user_extra_field_names();$context['fields'] = [];array_push($context['fields'], ['field' => 'Apellido']);array_push($context['fields'], ['field' => 'Nombre']);array_push($context['fields'], ['field' => 'Email']);array_push($context['fields'], ['field' => 'Curso']);array_push($context['fields'], ['field' => 'Categoria']);array_push($context['fields'], ['field' => 'Matriculación']);array_push($context['fields'], ['field' => 'Fecha finalización']);array_push($context['fields'], ['field' => 'Actividades asignadas']);array_push($context['fields'], ['field' => 'Actividades completadas']);array_push($context['fields'], ['field' => 'Progreso %']);array_push($context['fields'], ['field' => 'Primera actividad']);array_push($context['fields'], ['field' => 'Ultima actividad']);array_push($context['fields'], ['field' => 'Actividad']);array_push($context['fields'], ['field' => 'Completado']);foreach($extra_fields as $extra_field){array_push($context['fields'], ['field' => $extra_field->name]);}$context['items'] = [];$page = $page ? $page : 1;$include_modules = true;$data = local_cesa_reportes_get_data_for_report_or_excel($filter_by_company_active, $filter_userids, $filter_courseids, $include_modules, $page);$records = $data['items'];$context['pagination'] = $data['pagination'];if($context['pagination']['page'] > 1) {$context['pagination']['previous_page'] = $context['pagination']['page'] - 1;}if($context['pagination']['page'] < $context['pagination']['max_pages']) {$context['pagination']['next_page'] = $context['pagination']['page'] + 1;}foreach($records as $record){if(!$record->courses) {continue;}foreach($record->courses as $course){foreach($course->activities as $activity){$item = [];array_push($item, ['value' => $record->lastname ]);array_push($item, ['value' => $record->firstname ]);array_push($item, ['value' => $record->email ]);array_push($item, ['value' => $course->name ]);array_push($item, ['value' => $course->category ]);array_push($item, ['value' => empty($course->timeenrolled) ? '' : date('d/m/Y h:i a', $course->timeenrolled)]);array_push($item, ['value' => empty($course->timecompleted) ? '' : date('d/m/Y h:i a', $course->timecompleted)]);array_push($item, ['value' => $course->activities_assigned, 'align-right' => true ]);array_push($item, ['value' => $course->activities_completed, 'align-right' => true ]);array_push($item, ['value' => number_format($course->percentage, 2), 'align-right' => true ]);array_push($item, ['value' => empty($course->time_activities_first) ? '' : date('d/m/Y h:i a', $course->time_activities_first) ]);array_push($item, ['value' => empty($course->time_activities_last) ? '' : date('d/m/Y h:i a', $course->time_activities_last) ]);array_push($item, ['value' => $activity->module ]);array_push($item, ['value' => empty($activity->timecompleted) ? '' : date('d/m/Y h:i a', $activity->timecompleted) ]);foreach($extra_fields as $extra_field){$value = '';foreach($record->extras as $extra){if($extra->id == $extra_field->id) {$value = $extra->value;}}array_push($item, ['value' => $value ]);}array_push($context['items'], ['item' => $item]);}}}} else if($classname == 'all_files') {global $DB;//$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/assets/moment.min.js'));$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/js/local_cesa_reportes_all_files.js'));$context['items'] = [];$context['fields'] = [];array_push($context['fields'], ['field' => 'Solicitado el']);array_push($context['fields'], ['field' => 'Solictado por']);array_push($context['fields'], ['field' => 'Estado']);array_push($context['fields'], ['field' => 'Archivo']);array_push($context['fields'], ['field' => 'Generado el']);} else if($classname == 'custom') {global $DB;$PAGE->requires->css(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/assets/select2.css'));$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/cesa_reportes/js/local_cesa_reportes_report_custom.js'));$context['courses'] = [];$sql = 'SELECT id, fullname FROM {course} ';if($filter_by_company_active) {$filter_courseids = empty($filter_courseids) ? [-1] : $filter_courseids;$sql .= ' WHERE id IN (' . implode(',', $filter_courseids) . ')';}$sql .= ' ORDER BY fullname ';$records = $DB->get_records_sql($sql);foreach($records as $record){array_push($context['courses'], ['id' => $record->id,'name' => $record->fullname]) ;}$context['filter_from'] = date('Y-m-d', strtotime('-1 Month'));$context['filter_to'] = date('Y-m-d', time());}echo $OUTPUT->header();echo $OUTPUT->render_from_template('local_cesa_reportes/form', $context);echo $OUTPUT->footer();