var body = $("html, body"); var app = window.angular.module('student', ['ngResource']); app.controller('studentController', ['$scope', '$http', '$window', '$rootScope', function ($scope, $http, $window, $rootScope) { var mensajes = [ { alerta: "alert alert-info", icon: "fa fa-check fa-3x", mensaje: "La calificación obtenida en este ciclo es igual al promedio del grupo." }, { alerta: "alert alert-success", icon: "fa fa-line-chart fa-3x", mensaje: "¡Felicidades! La calificación obtenida en este ciclo es más alta que el promedio del resto del grupo." }, { alerta: "alert alert-danger", icon: "fa fa-warning fa-3x", mensaje: "La calificación obtenida en este ciclo es inferior que el promedio del grupo, se debe dar un seguimiento al alumno para mejorar las notas del próximo ciclo." }, { alerta: "alert alert-warning", icon: "fa fa-question fa-3x ", mensaje: "No se cuenta con la información del grado." }]; var curp; $scope.cifraAnual=null; $scope.cifraAnualPeriodo = ""; $scope.cifraAnualAlumnosGlobales=0; $scope.cifraAnualPreliminar = 0; $scope.searchAttempt = 0; $scope.errorWhileConnecting = 0; $scope.studentsFound = 0; $scope.studentResponse = null; $scope.getAlumnosGlobales = function () { //Verificar info estadistica global $scope.cifraAnual = sessionStorage.getItem("cifraAnual"); console.log("Buscando valor de alumnos." + $scope.cifraAnual); if ($scope.cifraAnual === null) { //Buscar en API el valor de alumnos,docentes y escuelas this.getTotales(); } else { $scope.cifraAnualAlumnosGlobales = Intl.NumberFormat('en-US').format(JSON.parse($scope.cifraAnual).totalAlumnos); $scope.cifraAnualPeriodo = JSON.parse($scope.cifraAnual).periodo; $scope.cifraAnualPreliminar = JSON.parse($scope.cifraAnual).preliminar; } }; $scope.getTotales = function () { $http.get( $scope.getURLEstadistica() + 'cifraAnual') .success(function (data) { $scope.cifraAnual = JSON.stringify(data.cifraAnualDTO[0]); sessionStorage.setItem("cifraAnual", $scope.cifraAnual); $scope.cifraAnualAlumnosGlobales = Intl.NumberFormat('en-US').format(JSON.parse($scope.cifraAnual).totalAlumnos); $scope.cifraAnualPeriodo = JSON.parse($scope.cifraAnual).periodo; console.log('datos cifraAnual'); console.log(data); }); }; $scope.getURLEstadistica = function () { // return global_uri +'/Estadisticas/'; }; $scope.schoolCyclesByStudent = function () { $scope.searchAttempt = 1; $scope.errorWhileConnecting = 0; $scope.studentsFound = 0; $scope.processing = 0; curp = $scope.curp; var prom; curp = curp.toUpperCase(); var expreg = /^([A-Z]{4})([0-9]{6})([HM]{1})(AS|BC|BS|CC|CS|CH|CL|CM|DF|DG|GT|GR|HG|JC|MC|MN|MS|NT|NL|OC|PL|QT|QR|SP|SL|SR|TC|TS|TL|VZ|YN|ZS|NE)[B-DF-HJ-NP-TV-Z]{3}[0-9A-Z]{1}[0-9]{1}$/; if (expreg.test(curp)) { processing(); $("#btnResetForm").removeClass("disabled"); $http({ url: global_uri + '/alumno/schoolCyclesByStudent/curp=' + curp, headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }).success(function (data) { $scope.resultWithData = 1; if(data.students !== undefined && data.students.length > 0){ $scope.studentsFound = data.students.length; $scope.studentResponse = data; /* $scope.studentResponse.students.forEach(function (student) { if(student.schoolCyclesDTO !== undefined && student.schoolCyclesDTO.length > 0){ console.log("entro a "); } }); */ } noprocessing(); }).error(function (error) { console.log("error"); noprocessing(); $scope.errorWhileConnecting = 1; $('html, body').animate({ scrollTop: $("#sectionErrorWhileConnecting").offset().top - 50 }, 1000); }); } else { console.log("La CURP NO es correcta"); $("#modalCurpError").modal('show'); } }; $scope.showEvaluationsByStudentCycle = function (idStudentCycle) { $('#divEvaluationsNotFound'+idStudentCycle+' div').remove(); $('#divEvaluationsTable'+idStudentCycle+' table').remove(); $('#spinner'+idStudentCycle).show(); $http({ url: global_uri + '/alumno/evaluationsByStudentCycle/idStudentCycle=' + idStudentCycle, headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }).success(function (data) { if(data.evaluationStudentCycle !== undefined && data.evaluationStudentCycle.length > 0 && data.evaluationStudentCycle[0].evaluationPeriodsDTO !== undefined && data.evaluationStudentCycle[0].evaluationPeriodsDTO.length > 0) { $scope.evaluationsFound = data.evaluationStudentCycle.length; $scope.evaluationResponse = data; var periods = $scope.evaluationResponse.evaluationStudentCycle[0].evaluationPeriodsDTO; $scope.subjectsAssesedFullList = []; //Crea en el DOM la tabla de evaluaciones. $('#divEvaluationsTable'+idStudentCycle).append("
Materia
"); //Obtiene el listado de materias. periods.forEach(function (period) { //Crea la fila con los títulos de los periodos. $('#evaluationsTable'+idStudentCycle+' thead tr').append(""+period.period+""); period.subjectsAssesedDTO.forEach(function (subjectAssesed) { var addSubjectsAssesed = true; $scope.subjectsAssesedFullList.forEach(function (subjectAssesedFullList) { if ($scope.subjectsAssesedFullList.length > 0) { if (subjectAssesedFullList.subject == subjectAssesed.subject) { addSubjectsAssesed = false; } } }); if (addSubjectsAssesed) { $scope.subjectsAssesedFullList.push({ 'subject': subjectAssesed.subject }); } }); }); //Para cada materia, busca la calificación en cada uno de los periodos para insertar la fila en la tabla de evaluaciones. $scope.subjectsAssesedFullList.forEach(function (subjectAssesedFullList,i) { //Crea la fila de la materia. $('#evaluationsTable'+idStudentCycle+' tbody').append(""+subjectAssesedFullList.subject+""); //Busca la calificación que corresponde y la agrega a la fila con el orden de los periodos. periods.forEach(function (period,j) { var subjectGradeFound = 0; period.subjectsAssesedDTO.forEach(function (subjectAssesed,k) { if (subjectAssesed.subject == subjectAssesedFullList.subject) { $('#tr'+i+idStudentCycle).append(""+subjectAssesed.subjectGrade+""); subjectGradeFound = 1; } }); if(subjectGradeFound == 0){ $('#tr'+i+idStudentCycle).append("-"); } }); }); }else{ $('#divEvaluationsNotFound'+idStudentCycle).append("

Las calificaciones no se encuentran en nuestros registros.

"); } $('#spinner'+idStudentCycle).hide(); }).error(function (error) { console.log("error"); }); } $scope.showEvaluationsByStudentCycleOnTabs = function (idStudentCycle, idStudent) { $('#divEvaluationsNotFound'+idStudent+' div').remove(); $('#divEvaluationsTable'+idStudent+' table').remove(); $('#divDetailCycle'+idStudent+' div').remove(); $('#spinner'+idStudent).show(); $http({ url: global_uri + '/alumno/evaluationsByStudentCycle/idStudentCycle=' + idStudentCycle, headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }).success(function (data) { var preescolar = 0; $scope.studentResponse.students.forEach(function (student) { if (student.id == idStudent) { if (student.schoolCyclesDTO.length > 0) { student.schoolCyclesDTO.forEach(function (schoolCycle) { if(schoolCycle.idStudentCycle == idStudentCycle){ if (schoolCycle.level == "PREESCOLAR"){ preescolar = 1; } var divAvgAcreditation = ""; if(schoolCycle.avgAcreditation > 0){ divAvgAcreditation = "
" +"

Promedio

" +"

"+schoolCycle.avgAcreditation +"

" +"
" } $('#divDetailCycle'+idStudent).append( "
" +"
" +"

Ciclo

" +"

"+schoolCycle.schoolCycle+"

" +"
" +"
" +"

Nivel

" +"

"+schoolCycle.level+"

" +"
" +"
" +"

Turno

" +"

"+schoolCycle.shift+"

" +"
" +"
" +"

Grado

" +"

"+schoolCycle.grade+"

" +"
" +"
" +"

Grupo

" +"

"+schoolCycle.group+"

" +"
" +divAvgAcreditation /* +"
" +"

Actualización

" +"

"+schoolCycle.updatedAt+"

" +"
" */ +"
"); } }); } } }); if(data.evaluationStudentCycle !== undefined && data.evaluationStudentCycle.length > 0 && data.evaluationStudentCycle[0].evaluationPeriodsDTO !== undefined && data.evaluationStudentCycle[0].evaluationPeriodsDTO.length > 0) { $scope.evaluationsFound = data.evaluationStudentCycle.length; $scope.evaluationResponse = data; var periods = $scope.evaluationResponse.evaluationStudentCycle[0].evaluationPeriodsDTO; $scope.subjectsAssesedFullList = []; //Crea en el DOM la tabla de evaluaciones. $('#divEvaluationsTable'+idStudent).append("
Materia
"); //Obtiene el listado de materias. periods.forEach(function (period) { //Crea la fila con los títulos de los periodos. $('#evaluationsTable'+idStudent+' thead tr').append(""+period.period+""); period.subjectsAssesedDTO.forEach(function (subjectAssesed) { var addSubjectsAssesed = true; $scope.subjectsAssesedFullList.forEach(function (subjectAssesedFullList) { if ($scope.subjectsAssesedFullList.length > 0) { if (subjectAssesedFullList.subject == subjectAssesed.subject) { addSubjectsAssesed = false; } } }); if (addSubjectsAssesed) { $scope.subjectsAssesedFullList.push({ 'subject': subjectAssesed.subject }); } }); }); //Para cada materia, busca la calificación en cada uno de los periodos para insertar la fila en la tabla de evaluaciones. $scope.subjectsAssesedFullList.forEach(function (subjectAssesedFullList,i) { //Crea la fila de la materia. $('#evaluationsTable'+idStudent+' tbody').append(""+subjectAssesedFullList.subject+""); //Busca la calificación que corresponde y la agrega a la fila con el orden de los periodos. periods.forEach(function (period,j) { var subjectGradeFound = 0; period.subjectsAssesedDTO.forEach(function (subjectAssesed,k) { if (subjectAssesed.subject == subjectAssesedFullList.subject) { console.log("preescolar:"+preescolar); if(preescolar == 1){ $('#tr'+i+idStudent).append("-"); }else{ $('#tr'+i+idStudent).append(""+subjectAssesed.subjectGrade+""); } subjectGradeFound = 1; } }); if(subjectGradeFound == 0){ $('#tr'+i+idStudent).append("-"); } }); }); }else{ $('#divEvaluationsNotFound'+idStudent).append("

Las calificaciones no se encuentran en nuestros registros.

"); } $('#spinner'+idStudent).hide(); }).error(function (error) { console.log("error"); }); }; $scope.alerta = function (estadisticas, prom, grado) { console.log(prom); console.log(grado); console.log(estadisticas); var mensajes = [ { alerta: "alert alert-info", icon: "fa fa-check fa-3x", mensaje: "La calificación obtenida en este ciclo es igual al promedio del grupo." }, { alerta: "alert alert-success", icon: "fa fa-line-chart fa-3x", mensaje: "¡Felicidades! La calificación obtenida en este ciclo es más alta que el promedio del resto del grupo." }, { alerta: "alert alert-danger", icon: "fa fa-warning fa-3x", mensaje: "La calificación obtenida en este ciclo es inferior que el promedio del grupo, se debe dar un seguimiento al alumno para mejorar las notas del próximo ciclo." }, { alerta: "alert alert-warning", icon: "fa fa-question fa-3x ", mensaje: "No se cuenta con la información del grado." }]; $scope.msjstd = mensajes[3].mensaje; $scope.class_alerta = mensajes[3].alerta; $scope.icon_alerta = mensajes[3].icon; prom = parseFloat(prom); estadisticas.forEach(function (gradoEstadistica) { if (gradoEstadistica.grado == grado) { if (parseFloat(gradoEstadistica.promedio) < prom) { $scope.msjstd = mensajes[1].mensaje; $scope.class_alerta = mensajes[1].alerta; $scope.icon_alerta = mensajes[1].icon; } else if (parseFloat(gradoEstadistica.promedio) == prom) { $scope.msjstd = mensajes[0].mensaje; $scope.class_alerta = mensajes[0].alerta; $scope.icon_alerta = mensajes[0].icon; } else if (parseFloat(gradoEstadistica.promedio) > prom) { $scope.msjstd = mensajes[2].mensaje; $scope.class_alerta = mensajes[2].alerta; $scope.icon_alerta = mensajes[2].icon; } } }); }; $scope.newSearch = function () { $scope.searchAttempt = 0; $errorWhileConnecting = 0; $("#sectionErrorWhileConnecting").hide(); $("#sectionResultWithoutData").hide(); $scope.studentsFound = 0; console.log("newSearch1102"); }; var processing = function () { $scope.processing = 1; $("#modal-loading").modal('show'); $('.tiempo_fuera').hide(); setTimeout(revisaModal, 5000); }; var noprocessing = function () { $scope.processing = 0; $("#modal-loading").modal('hide'); }; var revisaModal = function () { /*if (($("#modal-loading").data('bs.modal') || {}).isShown) {*/ if($("#modal-loading").is(":visible")){ $('.tiempo_fuera').show(); } }; }] );