. /** * Participation report * * @package report * @subpackage participation * @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require('../../config.php'); require_once($CFG->dirroot.'/lib/tablelib.php'); require_once(dirname(__FILE__) . '/lib.php'); define('DEFAULT_PAGE_SIZE', 20); define('SHOW_ALL_PAGE_SIZE', 5000); $activ = required_param('activ', PARAM_INT); // course id. $cali = required_param('cali', PARAM_INT); // course id. //$porcent = required_param('porcent', PARAM_INT); // Porcentaje de incidencia de la calificaciòn sobre la evaluaciòn $idcourse = required_param('idcourse', PARAM_INT); $dific = isset($_POST['porcent']) ? $_POST['porcent'] : 60; $page = optional_param('page', 0, PARAM_INT); // which page to show $perpage = optional_param('perpage', DEFAULT_PAGE_SIZE, PARAM_INT); // how many per page $url = new moodle_url('/report/traspasonotasexam/gradelist.php', array('course'=>$idcourse)); if ($activ !== 0) $url->param('activ'); if ($cali !== 0) $url->param('cali'); if ($idcourse !== 0) $url->param('course'); if ($page !== 0) $url->param('page'); if ($perpage !== DEFAULT_PAGE_SIZE) $url->param('perpage'); $PAGE->set_url($url, array( 'page' => $page, 'perpage' => $perpage, 'id' => $idcourse)); $PAGE->set_pagelayout('report'); if (!$course = $DB->get_record('course', array('id'=>$idcourse))) { print_error('invalidcourse'); } require_login($course); $context = context_course::instance($course->id); // require_capability('report/traspasonotasexam:view', $context);// ver capabilities para el docente en la página. ?> set_title($course->shortname .': Traspaso de Calificaciones a SIGA '); $PAGE->set_heading($course->fullname); echo $OUTPUT->header(); /* $dbe = new auth_plugin_db_inacap; $authdb = $dbe->db_init(); */ $enrol = enrol_get_plugin('dbinacap'); $authdb = $enrol->db_init_inacap(); $sqlDif = "select asi.tasg_ccod,decode(asi.tasg_ccod,1,(select ponf_jnota_examen *100 from ponderaciones_nota_final where talu_ccod = nvl (1, 1) and peri_ccod_inicio <= sc.peri_ccod and sc.peri_ccod <= decode (peri_ccod_termino,0, sc.peri_ccod,peri_ccod_termino)), '') pond_examen from secciones sc, asignaturas asi Where sc.asig_ccod = asi.asig_ccod and sc.secc_ccod=".$course->idnumber; $result = $authdb->Execute( $sqlDif ); foreach($result as $Ndif){ $ponde = isset($Ndif['POND_EXAMEN']) ? $Ndif['POND_EXAMEN'] : 1; } //$dific = isset($_POST['porcent']) ? $_POST['porcent'] : 25; $baseurl = $CFG->wwwroot.'/report/traspasonotasexam/gradelist.php?idcourse='.$course->id.'&activ=' .$activ.'&cali='.$cali.'&dific='.$dific.'&perpage='.$perpage.'&page='.$page; // echo $baseurl; $sqlgrades="select x.userid, x.idnumber, x.firstname,x.item, x.lastname, x.itemname, NVL(x.grademin,0) grademin, NVL(x.grademax,0) grademax,NVL(g.rawgrade,0) rawgrade, NVL(g.rawgrademin,0) rawgrademin, NVL(g.rawgrademax,0) rawgrademax, (x.GRADEMAX*$dific)/100 as xexig, to_char( (((7-4)/((NVL(x.GRADEMAX,0) )-(((NVL(x.GRADEMAX,0) )*$dific)/100)))*(NVL(G.RAWGRADE,0)-(((NVL(x.GRADEMAX,0))*$dific)/100)))+4,'990.9') ap , to_char( (((4-1)/(((NVL(x.GRADEMAX,0)-NVL(x.GRADEMin,0))*$dific)/100))*NVL(G.RAWGRADE,0))+1,'990.9') rep from ( select * from( SELECT u.id userid,u.firstname,u.lastname, u.idnumber FROM m_user u JOIN (SELECT DISTINCT eu1_u.id FROM m_user eu1_u JOIN m_user_enrolments eu1_ue ON eu1_ue.userid = eu1_u.id and eu1_ue.status=0 JOIN m_enrol eu1_e ON (eu1_e.id = eu1_ue.enrolid AND eu1_e.courseid = $idcourse) WHERE eu1_u.deleted = 0 AND eu1_u.id <> 1) je ON je.id = u.id JOIN ( SELECT DISTINCT ra.userid FROM m_role_assignments ra, m_context mctx WHERE ra.roleid IN (5) and RA.CONTEXTID = MCTX.ID and MCTX.CONTEXTLEVEL = 50 and MCTX.INSTANCEID = $idcourse ) rainner ON rainner.userid = u.id AND u.deleted = 0 ) usr, (SELECT id item, itemname, itemtype, grademin, grademax FROM m_grade_items WHERE courseid = $idcourse AND itemtype <> 'course' AND categoryid in (SELECT id FROM m_grade_categories WHERE courseid = $idcourse )) ) x left join m_grade_grades g on g.itemid = x.item and g.userid = x.userid where item in ($activ) order by firstname, lastname "; // echo $sqlgrades.'

'; $grades = $DB->get_records_sql($sqlgrades); // // //Generación de Tabla 1-- $totalcount = count($grades); $data = array(); $sqlgrades_header = 'select * from {grade_items} WHERE id = '.$activ; $grades_header = $DB->get_record_sql($sqlgrades_header); // $dbe = new auth_plugin_db_inacap; // $authdb = $dbe->db_init(); $sqlCali = "SELECT 0 CALI_NEVALUACION, s.secc_ccod, 'Examen' || ' - ' || s.SECC_FTERMINO_SEC || ' ' || $dific caliSIGA FROM secciones s WHERE s.secc_ccod =$cali"; // echo $sqlCali; $Ncali = $authdb->Execute( $sqlCali ); foreach($Ncali as $Ncalif){ $vNCali = $Ncalif['CALI_NEVALUACION']; $vCalisiga = $Ncalif['CALISIGA']; } echo '
'."\n"; echo '
'."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; // Nueva distribución de Tablas ***************************************** echo html_writer::start_tag('table', array('border' => '0', 'style'=>'margin: 0 auto;')); echo html_writer::start_tag('tr'); echo html_writer::start_tag('td', array('colspan' => '3', 'align' => 'center')); echo '

Actividad : '.$grades_header->itemname.'

'."
"; echo html_writer::end_tag('td'); echo html_writer::end_tag('tr'); /* echo html_writer::start_tag('tr'); echo html_writer::start_tag('td', array('colspan' => '3', 'align' => 'center')); echo '

Tabla de Cálculo

'."\n"; echo html_writer::end_tag('td'); echo html_writer::end_tag('tr'); */ echo html_writer::start_tag('tr'); echo html_writer::start_tag('td',array('colspan' => '3', 'align' => 'center')); echo html_writer::start_tag('table', array("width" => "100%")); echo html_writer::start_tag('tr'); echo html_writer::start_tag('td', array('align' => 'center')); //echo '
'; echo ''."\n"; echo ' % '."\n"; // echo ''."\n"; //echo '
'; echo html_writer::end_tag('td'); echo html_writer::end_tag('tr'); echo html_writer::end_tag('table'); echo html_writer::end_tag('td'); echo html_writer::end_tag('tr'); echo html_writer::start_tag('tr'); echo html_writer::start_tag('td', array('valign'=>'top')); //VARIABLES Y DATOS DE REGISTROS PARA GENERAR LA TABLA 1 $table = new flexible_table('course-grade-'.$course->id.'-'.$activ); $table->course = $course; $table->define_columns(array('fullname','grade','calif')); $table->define_headers(array('Nombres / Apellidos','Puntaje','Calificación Calculada al '.$dific.' %')); $table->define_baseurl($baseurl); $table->set_attribute('cellpadding','1'); $table->set_attribute('class', 'table table-bordered generaltable yy'); $table->set_attribute('id', 'participantes'); $table->sortable(false,'fullname','ASC'); $table->no_sorting('grade'); $table->no_sorting('calif'); $table->set_control_variables(array( TABLE_VAR_SORT => 'ssort', TABLE_VAR_HIDE => 'shide', TABLE_VAR_SHOW => 'sshow', TABLE_VAR_IFIRST => 'sifirst', TABLE_VAR_ILAST => 'silast', TABLE_VAR_PAGE => 'spage' )); $table->setup(); foreach ($grades as $u) { echo ''."\n"; if($u->rawgrade < $u->xexig) $calificacion = $u->rep;else $calificacion = $u->ap; $data = array(''.$u->firstname.' '.$u->lastname.''."\n", $u->rawgrade, $calificacion ); $table->add_data($data); } $table->print_html(); //IMPRIME TABLA 1 echo html_writer::end_tag('td'); echo html_writer::start_tag('td', array('valign'=>'top')); $GRADEMAX =$grades_header->grademax; $GRADEMIN = $grades_header->grademin; $table2 = new flexible_table('course-grade-'.$course->id.'-'.$activ.'-grid'); $table2->course = $course; $table2->define_columns(array('points','grade')); $table2->define_headers(array('Puntaje','Calificación Calculada al '.$dific.' %')); $table2->define_baseurl($baseurl); $table2->set_attribute('cellpadding','1'); $table2->set_attribute('class', 'table table-bordered generaltable xx'); $table2->set_attribute('id', 'resultados'); $table2->setup(); $RAWGRADE = $GRADEMIN; $v_exig = ($GRADEMAX*$dific)/100; while ($RAWGRADE <= $GRADEMAX) { if ($RAWGRADE < $v_exig ) $v_nota= number_format((((4-1)/((($GRADEMAX - $GRADEMIN)*$dific)/100))*$RAWGRADE)+1 ,1); else // $v_nota= number_format( (((7-4)/(($GRADEMAX - $GRADEMIN)-(((($GRADEMAX - $GRADEMIN)*$dific)/100*100)/100)))*($RAWGRADE-(((($GRADEMAX - $GRADEMIN)*$dific)/100*100)/100)))+4,2); $v_nota= number_format((((7-4)/(($GRADEMAX )-((($GRADEMAX )*$dific)/100)))*($RAWGRADE-((($GRADEMAX)*$dific)/100)))+4,1); $data1 = array($RAWGRADE,$v_nota); $table2->add_data($data1); $RAWGRADE++; } $table2->print_html(); //IMPRIME TABLA 2 echo ""; echo html_writer::end_tag('td'); echo html_writer::start_tag('td', array('valign'=>'top')); /**/ echo html_writer::end_tag('td'); echo html_writer::end_tag('tr'); echo html_writer::end_tag('table'); echo html_writer::start_tag('tr'); echo html_writer::start_tag('td', array('align' => 'center', 'colspan' =>'3')); echo html_writer::end_tag('table'); echo html_writer::start_tag('tr', array('style'=>'height: 50px')); echo html_writer::start_tag('td', array('align' => 'center')); echo ''."
"; echo html_writer::end_tag('td'); echo html_writer::end_tag('tr'); echo html_writer::start_tag('tr'); echo html_writer::start_tag('td', array('align' => 'center', 'style' => 'font-size:12px')); echo ' Volver Atrás'."\n"; echo html_writer::end_tag('td'); echo html_writer::end_tag('tr'); echo html_writer::end_tag('table'); echo html_writer::end_tag('td'); echo html_writer::end_tag('tr'); echo '
'."\n"; echo '
'."\n"; echo html_writer::end_tag('table'); $PAGE->requires->js_init_call('M.report_traspasonotasexam.init'); echo $OUTPUT->footer();