123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904 |
- <?php
- setlocale(LC_TIME, 'es_MX.UTF-8');
- require_once("../include/nocache.php");
- require_once("../include/constantes.php");
- require_once("../include/bd_pdo.php");
- require_once("../include/util.php");
- require_once("../classes/ValidaSesion.php");
- require_once("../classes/MainMenu.php");
- include_once('../include/xTemplate/xtemplate.class.php');
- $menu = 10;
- $submenu = 104;
- $pag = "calificaciones_alumnos.php";
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- $objSesion = new ValidaSesion($pdo, $submenu, GEMA);
- if(!$objSesion->tieneAcceso() || !$objSesion->puedeEditar()){
- header("Location: main.php?error=3");
- exit();
- }
- unset($objValida);
- $error = false;
- //Obtiene datos
- $stmt = $pdo->prepare('Select * from fs_tipocalificacion(NULL)');
- if(!$stmt->execute()){
- //header("Location: ".$pag."?error=2");
- $errorDesc = "Error al cargar los tipos de calificación del alumno";
- $error = true;
- //print_r($stmt->errorInfo());
- //exit();
- }
- $tipo_calif = $stmt->fetchAll();
- $stmt->closeCursor();
-
- ?>
- <!DOCTYPE html>
- <html lang="es" prefix="og: http://ogp.me/ns#">
- <head>
- <title>GEMA - Facultad de Ingeniería</title>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <link rel="icon" type="image/png" href="../img/favicon.png" />
- <link rel="stylesheet" href="../css/bootstrap-ulsa.min.css" type="text/css">
- <link rel="stylesheet" href="../css/indivisa.css" type="text/css">
- <link rel="stylesheet" href="../css/sgi.css?rand=<?php echo rand();?>" type="text/css">
- <link rel="stylesheet" href="../css/fa_all.css" type="text/css">
- <link rel="stylesheet" href="./css/alumnocardex.css" type="text/css">
- <style>
- .btn-float{z-index: 100; position: fixed; right: 280px; bottom: 5%;}
- @media (max-width: 1200px) {
- .btn-float{right: 45%; bottom:0}
- }
- @media (min-width: 1201px) and (max-width: 1550px) {
- .btn-float{right: 80px;}
- }
- </style>
- </head>
- <body>
- <div>
- <?php
- //--- Objeto que pinta menu
- $menuObj = new MainMenu($_SESSION["usuario_id"], $menu, $pdo, GEMA, "Kardex de calificaciones" );//usr, menu, pdo, sist
- $menuObj->printMenu();
- if(isset($_POST["clave"]) && !$error){
- $filter_clave = filter_input(INPUT_POST, "clave", FILTER_SANITIZE_NUMBER_INT);
- $stmt = $pdo->prepare('Select * from fs_alumnobusca(NULL, :clave, NULL, NULL, NULL, NULL, 0, 1)');
- $stmt->bindParam(":clave", $filter_clave);
- if(!$stmt->execute()){
- //header("Location: ".$pag."?error=2");
- $errorDesc = "Ocurrió un error al buscar al alumno";
- //print_r($stmt->errorInfo());
- //exit();
- $error = true;
- }else{
- $alumno_rs = $stmt->fetch();
- $stmt->closeCursor();
- if($alumno_rs["Usuario_claveULSA"] == ""){
- $error = true;
- }else{
- $stmt = $pdo->prepare('Select * from fs_periodo(NULL, NULL, :nivel, NULL)');
- $stmt->bindParam(":nivel", $alumno_rs["Nivel_id"]);
- if(!$stmt->execute()){
- $errorDesc = "Ocurrió un error al cargar los datos de los periodos.";
- $error = true;
- }else
- $periodo_rs = $stmt->fetchAll();
- }
- }
- }
- if(isset($_GET["error"]) && is_numeric($_GET["error"])){
- switch ($_GET["error"]){
- case 0: $errorDesc = "Ocurrió un error al cargar el Kardex."; break;
- case 1: $errorDesc = "Ocurrió un error al actualizar el periodo activo."; break;
- case 2: $errorDesc = "El periodo no puede ser seleccionado."; break;
- case 3: $errorDesc = "No tienes permisos de ingresar a esa sección."; break;
-
- }
- }
- ?>
- <main class="container-fluid content marco">
- <?php include_once("../include/errorMessage.php"); ?>
- <div class="row">
- <div class="col-12">
- <form action="<?php echo $pag;?>" method="post">
- <div class="form-box form-box-info">
- <div class="form-group row">
- <label for="filter_clave" class="col-4 col-form-label">Clave ULSA *</label>
- <div class="col-8 col-sm-4">
- <input type="text" class="form-control" required="required" maxlength="6" id="filter_clave" name="clave" value="<?php if(isset($filter_clave)){ echo $filter_clave;}?>">
- </div>
- </div>
- </div>
- <div class="form-group row">
- <div class="col-12 text-center">
- <button type="submit" class="btn btn-outline-primary"><?php echo $ICO["buscar"]; ?> Buscar</button>
- </div>
- </div>
- </form>
- </div>
- </div>
- <?php if(isset($filter_clave) && $alumno_rs["Usuario_claveULSA"] == ""){?>
- <h4 class="text-center text-danger mt-5">No hay alumnos registrados con la clave <?php echo $filter_clave;?></h4>
- <?php } ?>
- <?php
- if(isset($filter_clave) && !$error){
- ?>
- <div class="row my-4">
- <div class="col-12 text-center">
- <h3><b><?php echo "[".$alumno_rs["Usuario_claveULSA"]."] ". $alumno_rs["Usuario_apellidos"]." ".$alumno_rs["Usuario_nombre"];?></b></h3>
- <h5 class="text-danger mb-3"><b>CURP:</b> <?php echo $alumno_rs["Usuario_curp"];?></h5>
- </div>
- <div class="col-12 pt-3">
- <h4><b><?php echo $alumno_rs["Carrera_desc"]." ".$alumno_rs["PlanEstudio_desc"];?></b></h4>
- <p class="mb-0"><b>Fecha de ingreso:</b> <?php echo ucfirst(fechaMonthPicker($alumno_rs["Alumno_fecha_ingreso"]));?></p>
- <p class="mb-4"><b>Generación:</b> <?php echo ucfirst(fechaMonthPicker($alumno_rs["Alumno_generacion"]));?></p>
- </div>
- </div>
-
-
- <?php
-
- $stmt = $pdo->prepare('Select * from fs_alumnomaterias_cardex(:clave, :plan)');
- $stmt->bindParam(":clave", $alumno_rs["Usuario_claveULSA"]);
- $stmt->bindParam(":plan", $alumno_rs["PlanEstudio_id"]);
- if(!$stmt->execute()){
- header("Location: ".$pag."?error=1");
- //$errorDesc = "Ocurrió un error al cargar las materias.";
- //print_r($stmt->errorInfo());
- exit();
- //echo $errorDesc;
- }
- $materias_rs = $stmt->fetchAll();
- $stmt->closeCursor();
- //formato al RS de materias
- $materiasArr = Array();
- $m = 0;
- $mat_last = -1;
- foreach($materias_rs as $mat){
- if($mat_last != $mat["Materia_id"]){
- if($mat_last != -1){
- $materiasArr[$m]["califArr"]=$califArr;
- $m++;
- }
- $mat_last = $mat["Materia_id"];
- $califArr = array();
- }
- $materiasArr[$m] = array("id" => $mat["Materia_id"], "desc" => $mat["Materia_desc"], "clave"=>$mat["Materia_clave"],
- "sem"=> $mat["Materia_semestre"], "califArr"=>array(), "reprobada" => true, "comun"=>($mat["Area_hasAlerta"])?0:1);
- if($mat["Calificacion_calif"] > 0 || $mat["Calificacion_calif"] === 0 ){//no es null
- $califArr[] = array("calif"=>$mat["Calificacion_calif"], "fecha"=>$mat["Calificacion_fecha"], "calif_tipo"=>$mat["TipoCalificacion_id"], "calif_tipo_desc"=>$mat["TipoCalificacion_desc"],
- "calif_tipo_corta"=>$mat["TipoCalificacion_desc_corta"], "calif_orden"=>$mat["TipoCalificacion_orden"],
- "revalidada"=>$mat["TipoCalificacion_esEquivalencia"], "reprobada"=>(intval($mat["Calificacion_calif"]) <=5)?true:false,
- "periodo_id"=>$mat["Periodo_id"], "periodo"=>$mat["Periodo_desc"], "periodo_fecha"=>str_replace("-","", $mat["Periodo_fecha_inicial"]),
- "intersemestral"=>($mat["Periodo_intersemestral"])?1:0, "grupo"=>$mat["TipoCalificacion_id"] ==2 ? $mat["Grupo_id"]: "", "borrable"=>(fechaGuion($mat["Calificacion_fecha"])==date("Y-m-d"))?true:false);
- }
- }
- if($mat_last != -1){
- $materiasArr[$m]["califArr"]=$califArr;
- }
- //revisa si la materia ya se aprobó
- for($i=0; $i<count($materiasArr); $i++){
- for($j=0; $j< count($materiasArr[$i]["califArr"]); $j++){
- $materiasArr[$i]["reprobada"] = $materiasArr[$i]["reprobada"] && $materiasArr[$i]["califArr"][$j]["reprobada"];
- }
- }
- //-----
- $xtpl = new XTemplate('./tpl/alumnocardex.tpl.html');
- $xtpl->assign("LINK", "./export/xls_alumnocardex.php?clave=".$filter_clave);
- $xtpl->parse("main.topweb");
- $xtpl->assign("CLAVE", $filter_clave);
- $maxCol = 5;
- $sem = -1;
- if($alumno_rs["Nivel_id"] == 1)
- $xtpl->assign("SEMESTRE", "Semestre");
- else
- $xtpl->assign("SEMESTRE", "Cuatrimestre");
- $xtpl->assign("COL_SIZE", "12");
- foreach($materiasArr as $mat){
- if($sem != intval($mat["sem"])){
- if($sem != -1){
- $xtpl->parse("main.col.semestre");
- }
- $sem = intval($mat["sem"]);
- $xtpl->assign("COLS", $maxCol+2);
- $xtpl->assign("NUM", $sem);
- }
- $xtpl->assign("MATERIA", $mat["desc"]);
- $xtpl->assign("MAT_ID", $mat["id"]);
- $xtpl->assign("DATA", "id");
- $xtpl->assign("VALUE", $mat["id"]);
- $xtpl->parse("main.col.semestre.table_row.data");
- $xtpl->assign("DATA", "sem");
- $xtpl->assign("VALUE", $mat["sem"]);
- $xtpl->parse("main.col.semestre.table_row.data");
- $xtpl->assign("DATA", "comun");
- $xtpl->assign("VALUE", $mat["comun"]);
- $xtpl->parse("main.col.semestre.table_row.data");
- $xtpl->assign("DATA", "plan");
- $xtpl->assign("VALUE", $alumno_rs["PlanEstudio_id"]);
- $xtpl->parse("main.col.semestre.table_row.data");
- for($c=0; $c < $maxCol; $c++){
- if($c < count($mat["califArr"])){
- if($mat["califArr"][$c]["calif"] >0)
- $xtpl->assign("CALIF", $mat["califArr"][$c]["calif"]);
- else{
- if($mat["califArr"][$c]["calif_tipo"] == 2)//ordinario
- $xtpl->assign("CALIF", "SD");
- else
- $xtpl->assign("CALIF", "NP");
- }
- switch($mat["califArr"][$c]["calif_tipo"]){
- case 1:
- $xtpl->assign("COLOR", "calif-equivalencia");
- $xtpl->assign("TIPO", "Equivalencia");
- break;
- case 2:
- if($mat["califArr"][$c]["intersemestral"]==1){
- $xtpl->assign("COLOR", "calif-intersemestral");
- $xtpl->assign("TIPO", "Intersemestral");
- }else{
- $xtpl->assign("COLOR", "");
- $xtpl->assign("TIPO", "Ordinario");
- }
- break;
- default:
- $xtpl->assign("COLOR", "calif-extraordinario");
- $xtpl->assign("TIPO", "Extraordinario");
- break;
- }
- $xtpl->assign("DATA", "fecha");
- $xtpl->assign("VALUE", $mat["califArr"][$c]["periodo_fecha"]);
- $xtpl->parse("main.col.semestre.table_row.intento.data");
- $xtpl->assign("DATA", "orden");
- $xtpl->assign("VALUE", $mat["califArr"][$c]["calif_orden"]);
- $xtpl->parse("main.col.semestre.table_row.intento.data");
- $xtpl->assign("DATA", "calif");
- $xtpl->assign("VALUE", $mat["califArr"][$c]["calif"]);
- $xtpl->parse("main.col.semestre.table_row.intento.data");
- $xtpl->assign("DATA", "grupo");
- $xtpl->assign("VALUE", $mat["califArr"][$c]["grupo"]);
- $xtpl->parse("main.col.semestre.table_row.intento.data");
- $xtpl->assign("DATA", "periodo");
- $xtpl->assign("VALUE", $mat["califArr"][$c]["periodo_id"]);
- $xtpl->parse("main.col.semestre.table_row.intento.data");
- $xtpl->assign("DATA", "periodo_text");
- $xtpl->assign("VALUE", $mat["califArr"][$c]["periodo"]);
- $xtpl->parse("main.col.semestre.table_row.intento.data");
- $xtpl->assign("DATA", "tipo");
- $xtpl->assign("VALUE", $mat["califArr"][$c]["calif_tipo"]);
- $xtpl->parse("main.col.semestre.table_row.intento.data");
- $xtpl->assign("DATA", "tipo_text");
- $xtpl->assign("VALUE", $mat["califArr"][$c]["calif_tipo_desc"]);
- $xtpl->parse("main.col.semestre.table_row.intento.data");
- $xtpl->assign("DATA", "intersemestral");
- $xtpl->assign("VALUE", $mat["califArr"][$c]["intersemestral"]);
- $xtpl->parse("main.col.semestre.table_row.intento.data");
- $xtpl->assign("PERIODO", $mat["califArr"][$c]["periodo"]);
- $xtpl->parse("main.col.semestre.table_row.intento.tooltip");
- if($mat["califArr"][$c]["calif"] != ""){
- $xtpl->assign("ICO", $ICO["editar"]);
- $xtpl->parse("main.col.semestre.table_row.intento.editar");
- }
- if($mat["califArr"][$c]["borrable"] || $_SESSION["sgi_administrador"]){
- $xtpl->assign("ICO", $ICO["borrar2"]);
- $xtpl->parse("main.col.semestre.table_row.intento.borrar");
- }
- }else{//no hay mas intentos
- $xtpl->assign("CALIF", " ");
- $xtpl->assign("COLOR", "");
- $xtpl->parse("main.col.semestre.table_row.intento.empty");
- }
- $xtpl->parse("main.col.semestre.table_row.intento");
- }
- //Agrega botón para nueva calificación
- if($objSesion->puedeEditar()){
- //if($mat["reprobada"]){
- $xtpl->parse("main.col.semestre.table_row.nuevo");
- /*}else{
- $xtpl->assign("CALIF", " ");
- $xtpl->assign("COLOR", "");
- $xtpl->parse("main.col.semestre.table_row.intento");
- }*/
- }
- $xtpl->parse("main.col.semestre.table_row");
- }
- $xtpl->parse("main.col.semestre");
- $xtpl->parse("main.col");
- $xtpl->parse("main");
- $xtpl->out("main");
- ?>
- <p class="text-center btn-float">
- <button class="btn btn-outline-secondary btn-up"><?php echo $ICO_LG["arriba"];?></button></p>
- <?php
- }//fin hay clave
- ?>
-
-
- </main>
-
- <?php if(isset($filter_clave) && !$error){ ?>
- <!-- Modal calificacion -->
- <div class="modal fade" id="modalCalif" tabindex="-1" role="dialog" aria-labelledby="modal" aria-hidden="true">
- <div class="modal-dialog modal-dialog-centered" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <h4 class="col-12 modal-title text-center" id="modalLabel">Agregar calificación
- <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- </h4>
- </div>
- <div class="modal-body">
- <form action="" method="post" id="formaModal" onsubmit="submitForm()">
- <input type="hidden" name="mat" id="mat_new">
- <input type="hidden" name="plan" id="plan_new">
- <input type="hidden" name="comun" id="comun_new">
- <input type="hidden" id="sem_new">
- <h5 id="mat_texto" class="font-weight-bold mb-4 text-center"></h5>
- <div class="form-box">
- <div class="form-group row">
- <label for="periodo_new" class="col-6 col-form-label">Periodo *</label>
- <div class="col-6">
- <div class="datalist datalist-select mb-1 w-100" id="datalist_periodo">
- <div class="datalist-input"><?php echo $periodo_rs[0]["Periodo_desc"];?></div>
- <span class="ing-buscar icono"></span>
- <ul style="display:none">
- <?php foreach($periodo_rs as $periodo) {?>
- <li data-id="<?php echo $periodo["Periodo_id"];?>" data-intersemestral="<?php echo $periodo["Periodo_intersemestral"]; ?>" data-fecha="<?php echo str_replace("-","", $periodo["Periodo_fecha_inicial"]); ?>" <?php if(isset($_SESSION["periodo_id"]) && $_SESSION["periodo_id"] == $periodo["Periodo_id"]){echo "class='selected'";}?> ><?php echo $periodo["Periodo_desc"];?></li>
- <?php }?>
- </ul>
- <input type="hidden" id="periodo_new" name="periodo" value="<?php echo $periodo_rs[0]["Periodo_id"];?>">
- </div>
- </div>
- </div>
- <div class="form-group row">
- <label for="tipo" class="col-6 col-form-label">Tipo de calificación *</label>
- <div class="col-6">
- <div class="datalist datalist-select mb-1 w-100" id="datalist_tipo">
- <div class="datalist-input" data-hidden="tipo"></div>
- <span class="ing-buscar icono"></span>
- <ul style="display:none">
- <?php foreach($tipo_calif as $tipo) {?>
- <li data-id="<?php echo $tipo["TipoCalificacion_id"];?>" data-orden="<?php echo $tipo["TipoCalificacion_orden"];?>"><?php echo $tipo["TipoCalificacion_desc"];?></li>
- <?php }?>
- </ul>
- <input type="hidden" id="tipo" name="tipo" value="">
- </div>
- </div>
- </div>
- <div class="form-group row">
- <label for="calif_new" class="col-6 col-form-label">Calificación *</label>
- <div class="col-6">
- <select class="form-control" id="calif_new">
- <?php
- for($i=10; $i>=5; $i--){?>
- <option value="<?php echo $i;?>"><?php echo $i;?></option>
- <?php
- }
- ?>
- <option value="0" class="np">SD</option>
- </select>
- </div>
- </div>
- <div class="form-group row">
- <label for="grupo_new" class="col-6 col-form-label">Grupo</label>
- <div class="col-6">
- <select class="form-control" id="grupo_new">
- <option value="0">Sin grupo</option>
- </select>
- </div>
- </div>
- </div>
- <div class="form-group row">
- <div class="col-12 text-center">
- <button type="button" class="btn btn-outline-primary" id="submitBtn" data-tipo="1"><?php echo $ICO["aceptar"];?> Guardar</button>
- <button type="reset" class="btn btn-outline-danger" data-dismiss="modal"><?php echo $ICO["cancelar"];?> Cancelar</button>
- </div>
- </div>
- </form>
- </div>
- </div>
- </div>
- </div>
- <div class="modal fade" id="modal_confirm" tabindex="-1" role="dialog" aria-labelledby="modal" aria-hidden="true">
- <div class="modal-dialog modal-dialog-centered" role="document">
- <div class="modal-content">
- <div class="modal-body">
- <div class="row">
- <div class="col">
- <p class="font-weight-bold">¿Estás seguro de que quieres borrar la calificación?</p>
- <p id="borrar_datos" class="text-center"><span class="font-weight-bold mat_nombre"></span> - <span class="mat_calif"></span> <span class="mat_tipo"></span></p>
- </div>
- </div>
- </div>
- <div class="modal-footer">
- <input type="hidden" id="mat_borrar" name="mat" value="">
- <input type="hidden" id="per_borrar" name="per" value="">
- <input type="hidden" id="tipo_borrar" name="tipo" value="">
- <button type="button" class="btn btn-outline-primary btn-confirm"><?php echo $ICO["aceptar"];?> Borrar</button>
- <button type="button" class="btn btn-outline-danger" data-dismiss="modal" aria-label="Close"><?php echo $ICO["cancelar"];?> Cancelar</button>
- </div>
- </div>
- </div>
- </div>
- <?php }//hay clave ?>
-
- </div>
- <script src="../js/jquery.min.js"></script>
- <script src="../js/bootstrap/popper.min.js"></script>
- <script src="../js/bootstrap/bootstrap.min.js"></script>
- <script src="../js/sidebarmenu.js"></script>
- <script src="../js/datalist.js"></script>
- <?php if(isset($filter_clave) && !$error){ ?>
- <script>
- var grupo_last = 0;
- $(function () {
- $('[data-toggle="tooltip"]').tooltip()
- })
- function loadModal(rowObj){
- var btn_row = rowObj.parent().parent();
- var mat = btn_row.data("id");
- var sem = btn_row.data("sem");
- var plan = btn_row.data("plan");
- var comun = btn_row.data("comun");
- $("#mat_new").val(mat);
- $("#plan_new").val(plan);
- $("#comun_new").val(comun);
- $("#sem_new").val(sem);
- var texto = btn_row.find(".materia-nombre").text();
- $("#mat_texto").html( texto );
- $("#grupo_new").removeClass("is-invalid");
- if(comun == 1){
- $("#grupo_new").parents(".row").addClass("d-none");
- $("#grupo_new").val(0);
- }else{
- if($("#tipo").val() == 2 ){
- $("#grupo_new").parents(".row").removeClass("d-none");
- }else{
- $("#grupo_new").parents(".row").addClass("d-none");
- $("#grupo_new").val(0);
- }
- }
- if($("#tipo").val() <=2 ){
- $("#modalCalif .np").text("SD");
- }else{
- $("#modalCalif .np").text("NP");
- }
- if( loadGrupos(sem, plan, $("#periodo_new").val()) ){
- $("#modalCalif").modal("show");
- }
- }
- $(document).on( "click", ".btn-edit", function(event){
- var cell_data = $(this).parents(".materia-calif");
- setDatalist("#periodo_new", cell_data.data("periodo"));
- setDatalist("#tipo", cell_data.data("tipo"));
- loadModal($(this));
-
- $("#calif_new").val(cell_data.data("calif"));
- var grupo = cell_data.data("grupo");
- if(grupo ==""){
- grupo = 0;
- }
- $("#grupo_new").val(grupo);
- disableDatalist("#periodo_new", true);
- disableDatalist("#tipo", true);
- $("#submitBtn").data("tipo", 2);
- cell_data.addClass("active");
- });
- $(document).on( "click", ".btn-borrar", function(event){
- var cell_data = $(this).parents(".materia-calif");
- cell_data.addClass("active");
- $("#mat_borrar").val(cell_data.parent().data("id"));
- $("#per_borrar").val(cell_data.data("periodo"));
- $("#tipo_borrar").val(cell_data.data("tipo"))
- $("#borrar_datos").find(".mat_nombre").text(cell_data.parent().find(".materia-nombre").text());
- $("#borrar_datos").find(".mat_calif").text(cell_data.data("calif"));
- $("#borrar_datos").find(".mat_tipo").text(cell_data.data("tipo_text"));
- $("#modal_confirm").modal("show");
-
- });
- $(document).on( "click", ".btn-calif", function(event){
- loadModal($(this));
- disableDatalist("#periodo_new", false);
- disableDatalist("#tipo", false);
- $("#submitBtn").data("tipo", 1);
- });
- $(document).ready(function(){
- setDatalist("#tipo", 2);
- $('#modalCalif').on('shown.bs.modal', function (e) {
- $('#calif_new').focus();
- });
-
- //Detecta enter
- $('#calif_new').keydown(function(event) {
- if (event.keyCode == 13) {
- $("#submitBtn").trigger('click');
- }
- });
- $('body').keydown(function(event) {
- if (event.keyCode == 107) {// +
- $(".btn-calif").first().trigger('click');
- }
- });
- $('.btn-up').click(function(){//sube la pantalla
- $('#messageBox')[0].scrollIntoView({ block: "end" });
- });
- $('.btn-confirm').click(function(){//confirma borrado
- cell_data = $(".materia-row").find(".active");
- $.ajax({
- url: './action/calificacioncardex_delete.php',
- type: 'POST',
- dataType: 'json',
- data: { "usr": <?php echo $filter_clave;?>, "mat":$("#mat_borrar").val(), "per":$("#per_borrar").val(), "tipo": $("#tipo_borrar").val()},
- success: function(result) {
- if(result["error"]!= "" && result["error"] !== undefined){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(result["error"]);
- $('#messageBox')[0].scrollIntoView({ block: "end" });
- }else{
- cell_data.removeAttr('data-fecha').removeAttr('data-orden').removeAttr('data-calif').removeAttr('data-grupo').removeAttr('data-periodo').removeAttr('data-periodo_text');
- cell_data.removeAttr('data-tipo').removeAttr('data-tipo_text').removeAttr('data-intersemestral');
- cell_data.removeClass("active").addClass("empty");
- cell_data.html('<span class="calif"> </span>');
- $("#modal_confirm").modal("hide");
- }
- },
- error: function(jqXHR, textStatus, errorThrown ){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(errorThrown);
- $('#messageBox')[0].scrollIntoView({ block: "end" });
- }
- });
- });
- $('#datalist_tipo ul li').click(function(){//cambia datalist
- if($("#tipo").val() <=2 ){
- $("#modalCalif .np").text("SD");
- }else{
- $("#modalCalif .np").text("NP");
- }
- if($("#comun_new").val() != 1){//no es común
- if($("#tipo").val() == 2 ){
- $("#grupo_new").parents(".row").removeClass("d-none");
- }else{
- $("#grupo_new").parents(".row").addClass("d-none");
- $("#grupo_new").val(0);
- }
- }
- });
- $('#datalist_periodo ul li').click(function(){//cambia datalist
- loadGrupos($("#sem_new").val(), $("#plan_new").val(), $("#periodo_new").val())
- });
- $('#submitBtn').click(function(){//cambia datalist
- $("#grupo_new").removeClass("is-invalid");
-
- //Valida que exista grupo
- /*if( $("#comun_new").val()==0 && ($("#grupo_new").val()===null || $("#grupo_new").val()=="")){
- $("#grupo_new").addClass("is-invalid");
- return ;
- }*/
- if($("#grupo_new").val() > 0){
- grupo_last = $("#grupo_new").val();
- }
- var rowId = "#mat_"+$('#mat_new').val();
- //datos nuevos
- var calif_new = {
- "mat": parseInt($('#mat_new').val()),
- "calif": parseInt($('#calif_new').val()),
- "fecha": parseInt(getDatalistData("#periodo_new", "fecha")),
- "orden": parseInt(getDatalistData("#tipo", "orden")),
- "grupo": parseInt($('#grupo_new').val()),
- "periodo":parseInt($('#periodo_new').val()),
- "periodo_text":getDatalistText('#periodo_new', $("#periodo_new").val()),
- "tipo":parseInt($("#tipo").val()),
- "tipo_text":getDatalistText('#tipo', $("#tipo").val()),
- "intersemestral":parseInt(getDatalistData("#periodo_new", "intersemestral")),
- "new":true
- };
- if($("#submitBtn").data("tipo") == 1){//altas
- var califMateriaArr = [];
- $.ajax({
- url: './action/calificacioncardex_insert.php',
- type: 'POST',
- dataType: 'json',
- data: { "usr": <?php echo $alumno_rs["Usuario_claveULSA"];?>, "mat":calif_new.mat, "tipo": calif_new.tipo, "calif":calif_new.calif, "per":calif_new.periodo},
- success: function(result) {
- if(result["error"]!= "" && result["error"] !== undefined){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(result["error"]);
- $('#messageBox')[0].scrollIntoView({ block: "end" });
- }else{
-
- //Lee calificaciones del renglón actual y las guarda en el arreglo
- $(rowId+" .materia-calif:not(.empty)").each(function(index) {
- var calif_row = {
- "calif": parseInt($(this).data("calif")),
- "fecha": parseInt($(this).data("fecha")),
- "orden": parseInt($(this).data("orden")),
- "grupo": parseInt($(this).data("grupo")),
- "periodo":parseInt($(this).data("periodo")),
- "periodo_text":$(this).data("periodo_text"),
- "tipo": parseInt($(this).data("tipo")),
- "tipo_text": $(this).data("tipo_text"),
- "intersemestral": parseInt($(this).data("intersemestral")),
- "new":false
- };
- califMateriaArr.push(calif_row);
- });
- califMateriaArr.push(calif_new);
- //Ordenar arreglo de calificaciones
- for(var i=0; i< califMateriaArr.length-1; i++){
- for(var j=i+1; j< califMateriaArr.length; j++){
- if(califMateriaArr[i].fecha > califMateriaArr[j].fecha ||
- (califMateriaArr[i].fecha == califMateriaArr[j].fecha && califMateriaArr[i].orden > califMateriaArr[j].orden)
- ){
- var aux = califMateriaArr[i];
- califMateriaArr[i] = califMateriaArr[j];
- califMateriaArr[j] = aux;
- }
- }
- }
- //Sobreescibir valores de celdas
- $(rowId+" .materia-calif").each(function(index) {
- if(index < califMateriaArr.length){
- $(this).removeClass("empty");
- $(this).data("calif", califMateriaArr[index].calif);
- $(this).data("fecha", califMateriaArr[index].fecha);
- $(this).data("orden", califMateriaArr[index].orden);
- $(this).data("grupo", califMateriaArr[index].grupo);
- $(this).data("periodo", califMateriaArr[index].periodo);
- $(this).data("periodo_text", califMateriaArr[index].periodo_text);
- $(this).data("tipo", califMateriaArr[index].tipo);
- $(this).data("tipo_text", califMateriaArr[index].tipo_text);
- var calif = califMateriaArr[index].calif;
- if(calif == 0){
- if(califMateriaArr[index].tipo == 1 || califMateriaArr[index].tipo == 2){
- calif = "SD";
- }else{
- calif = "NP";
- }
- }
- if(califMateriaArr[index].new){
- $(this).css("font-weight", "bold");
- }else{
- $(this).css("font-weight", "");
- }
- $(this).removeClass("calif-equivalencia").removeClass("calif-intersemestral").removeClass("calif-extraordinario");
- switch(califMateriaArr[index].tipo){
- case 1: $(this).addClass("calif-equivalencia"); break;
- case 2:
- if(califMateriaArr[index].intersemestral==1)
- $(this).addClass("calif-intersemestral");
- break;
- default: $(this).addClass("calif-extraordinario"); break;
- }
- html = '<span class="calif" style="cursor:help;" data-toggle="tooltip" data-placement="top" data-html="true" title="" \
- data-original-title="<b>'+califMateriaArr[index].tipo_text+'</b><br>'+califMateriaArr[index].periodo_text+'">'+calif+'</span>';
- html+= ' <span class="btn-edit pointer"><span class="ing-editar ing-fw"></span></span>';
- html+= ' <span class="btn-borrar pointer text-danger"><span class="ing-basura ing-fw"></span></span>';
- $(this).html(html);
- $(this).find('[data-toggle="tooltip"]').tooltip();
- }
- });
- /*
- if(calif_new.calif >5){
- $(rowId).find(".btn-calif").remove();
- $(rowId).find("text-center").html("<span> </span>");
- }*/
- //$("#modalCalif").modal("hide");
- }
- },
- error: function(jqXHR, textStatus, errorThrown ){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(errorThrown);
- }
- });
-
- //ajax*/
- }else{//edición
- calif_new.new = false
- $.ajax({
- url: './action/calificacioncardex_update.php',
- type: 'POST',
- dataType: 'json',
- data: { "usr": <?php echo $filter_clave;?>, "mat":calif_new.mat, "tipo": calif_new.tipo, "calif":calif_new.calif, "per":calif_new.periodo},
- success: function(result) {
- if(result["error"]!= "" && result["error"] !== undefined){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(result["error"]);
- $('#messageBox')[0].scrollIntoView({ block: "end" });
- }else{
- //Sobreescibir valores de celda
- $(rowId).data("calif", calif_new.calif);
- $(rowId).data("grupo", calif_new.grupo);
- var calif = calif_new.calif;
- if(calif == 0){
- if(calif_new.tipo == 1 || calif_new.tipo == 2){
- calif = "SD";
- }else{
- calif = "NP";
- }
- }
- if(calif_new.new){
- $(this).css("font-weight", "bold");
- }else{
- $(this).css("font-weight", "");
- }
- $(rowId).find(".active .calif").html(calif_new.calif);
- /*
- if(calif_new.calif > 5){
- $(rowId).find(".btn-calif").remove();
- $(rowId).find("text-center").html("<span> </span>");
- }*/
- }
- },
- error: function(jqXHR, textStatus, errorThrown ){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(errorThrown);
- }
- });
- }
- $("#modalCalif").modal("hide");
- });
- });//document ready
- $('#modalCalif').on('hidden.bs.modal', function() {
- $(".materia-row").find(".active").removeClass("active");
- })
- $('#modal_confirm').on('hidden.bs.modal', function() {
- $(".materia-row").find(".active").removeClass("active");
- })
- function getDatalistData(selector, data){
- var elementRoot = $(selector).parents('.datalist');
- return elementRoot.find('ul li.selected').data(data)
- }
- function loadGrupos(sem, plan, periodo){
- var ok = false;
- $.ajax({
- url: './action/gruposasignar_busca.php',
- type: 'POST',
- dataType: 'json',
- async: false,
- data: { "sem": sem, "plan":plan, "periodo": periodo},
- success: function(result) {
- if(result["error"]!= "" && result["error"] !== undefined){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(result["error"]);
- $('#messageBox')[0].scrollIntoView({ block: "end" });
- ok = false;
- }else{
- //cargar datos de grupos
- var rows = $("#grupo_new > option").length;//cuenta actuales
- if(rows > result["grupo"].length){//sobran
- //borrar renglones extra (rows - result.length) pero dejar al menos 1
- while(rows > result["grupo"].length+1 && rows > 1){
- $("#grupo_new option:last-child").remove();
- rows--;
- }
- }else{//faltan
- // clone the rest of the rows
- for(var i=0; i<=(result["grupo"].length - rows); i++){
- var html = '<option value="" class="option"></option>';
- $(html).appendTo("#grupo_new");
- }
- }
-
- if(result["grupo"].length != 0){//hay grupos
- $("#grupo_new .option").each(function(index) {
- //if(index <= result["grupo"].length){//llenar info
- $(this).text(result["grupo"][index]["desc"]);
- $(this).val(result["grupo"][index]["id"]);
- if(grupo_last == result["grupo"][index]["id"]){
- $(this).attr("selected", true);
- }
- //}
- });
- }
- ok = true;
- }
- },
- error: function(jqXHR, textStatus, errorThrown ){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(errorThrown);
- ok = false;
- }
- });//ajax
- return ok;
- }
- </script>
- <?php } ?>
- </body>
- </html>
|