diff --git a/src/java/pe/siso/horario/Beans/HorarioCF.java b/src/java/pe/siso/horario/Beans/HorarioCF.java index 1ba5460..09fc2a3 100644 --- a/src/java/pe/siso/horario/Beans/HorarioCF.java +++ b/src/java/pe/siso/horario/Beans/HorarioCF.java @@ -5,6 +5,8 @@ */ package pe.siso.horario.Beans; +import java.sql.Time; +import java.sql.Timestamp; import java.util.Date; /** @@ -30,11 +32,22 @@ public class HorarioCF { private String condicionTrabajador; private String observacion; private String grupoAcademico; + private Time hora; public HorarioCF(){ } + public Time getHora() { + return hora; + } + + public void setHora(Time hora) { + this.hora = hora; + } + + + public Date getFechaRegistro() { return fechaRegistro; } diff --git a/src/java/pe/siso/horario/DAO/AulaDAO.java b/src/java/pe/siso/horario/DAO/AulaDAO.java index 171bfa5..1709045 100644 --- a/src/java/pe/siso/horario/DAO/AulaDAO.java +++ b/src/java/pe/siso/horario/DAO/AulaDAO.java @@ -56,7 +56,7 @@ public interface AulaDAO { public ArrayList<Aula> listarAula(String aulas, String periodo) throws Exception; public ArrayList<Aula> listarDatosHorairo(String codSede, String periodo) throws Exception; public ArrayList<Aula> listarDatosHorairo(String periodo) throws Exception; - public ArrayList<Aula> listarDatosHorairo2do(String periodo) throws Exception; + public ArrayList<Aula> listarDatosHorairo2do(String periodo,String parte) throws Exception; public ArrayList<Aula> listadoAulas(String codigoSede, String codigoPeriodoAcademico) throws Exception; diff --git a/src/java/pe/siso/horario/DAO/DocenteDAO.java b/src/java/pe/siso/horario/DAO/DocenteDAO.java index ca4a137..59ffe38 100644 --- a/src/java/pe/siso/horario/DAO/DocenteDAO.java +++ b/src/java/pe/siso/horario/DAO/DocenteDAO.java @@ -21,6 +21,7 @@ public interface DocenteDAO { public ArrayList<Docente> listaDocentes() throws Exception; public ArrayList<HorarioCF> listarCambiosFijo(String fechaDesde,String fechaHasta) throws Exception; + public ArrayList<HorarioCF> listarRegistrosNuevosYEliminados(String fechaDesde,String fechaHasta) throws Exception; public ArrayList<Horario> listarCambiosDia(String fechaDesde,String fechaHasta) throws Exception; public ArrayList<Horario> listarCambiosDiaDocente(String cadenaAulas,String dia,String codigoDocente) throws Exception; public ArrayList<Horario> listarBajasDocente(String fechaDesde,String fechaHasta) throws Exception; diff --git a/src/java/pe/siso/horario/DAO/HorarioDAO.java b/src/java/pe/siso/horario/DAO/HorarioDAO.java index 4cdaf2e..1c18e81 100644 --- a/src/java/pe/siso/horario/DAO/HorarioDAO.java +++ b/src/java/pe/siso/horario/DAO/HorarioDAO.java @@ -136,6 +136,8 @@ public interface HorarioDAO { public Horario consultarCadenaGH(String codigoAula, String codigoPeriodoAcademico) throws Exception; public JSONObject listarVistaDobleDisponibilidad(JSONObject json); + public JSONObject listarVistaDobleDisponibilidad2(JSONObject json); + public JSONObject listarVistaDobleDisponibilidadSinZona(JSONObject json); public JSONObject listarVistaHorarioDisponibilidad(JSONObject json)throws Exception; public JSONObject listarVistaHorarioConformidad(JSONObject json)throws Exception; @@ -144,6 +146,7 @@ public interface HorarioDAO { public JSONObject listarVistaHorarioDocenteDni2(JSONObject json)throws Exception; public Horario verDocenteExamenEncuesta(String codigoDocente,String codigoPlana)throws Exception; + public Horario verDocenteCelular(String codigoDocente)throws Exception; public int updateCambioCurso(String codigoAula,String periodo,String dia,String posBloque,String nombreCursoNuevo)throws Exception; diff --git a/src/java/pe/siso/horario/MySqlDAO/MySqlAulaDAO.java b/src/java/pe/siso/horario/MySqlDAO/MySqlAulaDAO.java index f8669a0..7b34e26 100644 --- a/src/java/pe/siso/horario/MySqlDAO/MySqlAulaDAO.java +++ b/src/java/pe/siso/horario/MySqlDAO/MySqlAulaDAO.java @@ -195,7 +195,7 @@ public class MySqlAulaDAO implements AulaDAO { ResultSet rs = st.executeQuery(query); while (rs.next()) { - aula = rs.getString("des_loc") + " :: " + rs.getString("destipocentro") + " :: " + rs.getString("desnivel") + " :: " + rs.getString("destipogrado") + " :: " + rs.getString("desgrado") + " :: " + rs.getString("nombre") + " :: " + rs.getString("desturno"); + aula = rs.getString("des_loc") + " :: GRADO : " + rs.getString("desgrado") + " :: AULA : " + rs.getString("nombre") + " :: TURNO : " + rs.getString("desturno"); // aula = rs.getString("des_loc") + " :: " + rs.getString("destipocentro") + " :: " + rs.getString("desnivel") + " :: " + rs.getString("destipogrado") + " :: " + rs.getString("desgrado") + " :: " + rs.getString("desseccion") + " :: " + rs.getString("nombre") + " :: " + rs.getString("desturno"); } } catch (Exception e) { @@ -984,7 +984,7 @@ public class MySqlAulaDAO implements AulaDAO { + "INNER JOIN seccion on seccion.codseccion=aula.codseccion " + "INNER JOIN turno on turno.codturno=aula.codturno WHERE "; if (!codSede.equals("") && codTipoCentro.equals("")) { - if (codSede.equals("todo")) { + if (codSede.equals("todo") || codSede.equals("todo2")) { query += " "; } else { query += " aula.codlocal='" + codSede + "' and "; @@ -1941,14 +1941,65 @@ public class MySqlAulaDAO implements AulaDAO { } @Override - public ArrayList<Aula> listarDatosHorairo2do(String periodo) throws Exception { + public ArrayList<Aula> listarDatosHorairo2do(String periodo,String parte) throws Exception { String base = "horario"; ArrayList<Aula> lista = new ArrayList<Aula>(); Connection cnx = null; try { cnx = MySqlDAOFactory.obtenerConexion(base); Statement st = cnx.createStatement(); - String query = "SELECT \n" + + if(parte.equals("todo")){ + String query = "SELECT \n" + + " hcd.codAula, \n" + + " hcd.codGru, \n" + + " gh.max_gru, \n" + + " gh.cadena, \n" + + " sede.des_loc, \n" + + " tipo_centro.destipocentro, \n" + + " centro.descentro, \n" + + " nivel.desnivel, \n" + + " tipo_grado.destipogrado, \n" + + " grado.desgrado, \n" + + " seccion.desseccion, \n" + + " turno.desturno \n" + + " FROM \n" + + " horario_curso_docente as hcd \n" + + " INNER JOIN aula ON aula.codaula = hcd.codAula \n" + + " INNER JOIN sede ON sede.cod_loc = aula.codlocal \n" + + " INNER JOIN tipo_centro ON tipo_centro.codtipocentro = aula.codtipocentro \n" + + " INNER JOIN centro ON centro.codcentro = aula.cocentro \n" + + " INNER JOIN nivel ON nivel.codnivel = aula.codnivel \n" + + " INNER JOIN tipo_grado ON tipo_grado.codtipogrado = aula.codtipogrado \n" + + " INNER JOIN grado ON grado.codgrado = aula.codgrado \n" + + " INNER JOIN seccion ON seccion.codseccion = aula.codseccion \n" + + " INNER JOIN turno ON turno.codturno = aula.codturno \n" + + " INNER JOIN grupo_horario as gh on gh.cod_gru=hcd.codGru \n" + + " WHERE hcd.cod_per='"+periodo+"' and aula.estado='1' and sede.cod_loc in (1,2,3,4,5,6,7,8,9,10,11,12,13,16,17,21,22,23,24,41,44,43,50,15,46)\n" + + " GROUP BY aula.codAula,hcd.codGru \n" + + " ORDER BY hcd.codGru,sede.des_loc,hcd.cod_gru_aul,grado.desgrado,tipo_centro.destipocentro,centro.descentro,nivel.desnivel,tipo_grado.destipogrado,turno.desturno,seccion.desseccion"; + + ResultSet rs = st.executeQuery(query); + + while (rs.next()) { + Aula aula = new Aula(); + aula.setCodigoAula(rs.getInt("codAula")); + aula.setCodigoGrupo(rs.getString("codGru")); + aula.setMaxGrupo(rs.getInt("max_gru")); + aula.setCadena(rs.getString("cadena")); + aula.setNombreLocal(rs.getString("des_loc")); + aula.setNombreTipoCentro(rs.getString("destipocentro")); + aula.setNombreCentro(rs.getString("descentro")); + aula.setNombreNivel(rs.getString("desnivel")); + aula.setNombreTipoGrado(rs.getString("destipogrado")); + aula.setNombreGrado(rs.getString("desgrado")); + aula.setNombreSeccion(rs.getString("desseccion")); + aula.setNombreTurno(rs.getString("desturno")); + + lista.add(aula); + } + + }else if(parte.equals("todo2")){ + String query = "SELECT \n" + " hcd.codAula, \n" + " hcd.codGru, \n" + " gh.max_gru, \n" + @@ -1973,7 +2024,7 @@ public class MySqlAulaDAO implements AulaDAO { " INNER JOIN seccion ON seccion.codseccion = aula.codseccion \n" + " INNER JOIN turno ON turno.codturno = aula.codturno \n" + " INNER JOIN grupo_horario as gh on gh.cod_gru=hcd.codGru \n" + - " WHERE hcd.cod_per='"+periodo+"' and aula.estado='1'\n" + + " WHERE hcd.cod_per='"+periodo+"' and aula.estado='1' and sede.cod_loc in (49,52,42,45,25,26,27,28,30,31,32,33,48,29,34,35,36,37,38)\n" + " GROUP BY aula.codAula,hcd.codGru \n" + " ORDER BY hcd.codGru,sede.des_loc,hcd.cod_gru_aul,grado.desgrado,tipo_centro.destipocentro,centro.descentro,nivel.desnivel,tipo_grado.destipogrado,turno.desturno,seccion.desseccion"; @@ -1996,6 +2047,15 @@ public class MySqlAulaDAO implements AulaDAO { lista.add(aula); } + + + } + + + + + + } catch (Exception e) { e.printStackTrace(); } finally { diff --git a/src/java/pe/siso/horario/MySqlDAO/MySqlDAOFactory.java b/src/java/pe/siso/horario/MySqlDAO/MySqlDAOFactory.java index 13c077c..426eb66 100644 --- a/src/java/pe/siso/horario/MySqlDAO/MySqlDAOFactory.java +++ b/src/java/pe/siso/horario/MySqlDAO/MySqlDAOFactory.java @@ -56,13 +56,16 @@ public class MySqlDAOFactory extends DAOFactory { try { conexion = DriverManager.getConnection( - "jdbc:mysql://localhost:3306/encuesta_docente", - "root", - "mysql"); +// "jdbc:mysql://localhost:3306/encuesta_docente", +// "root", +// "mysql"); +// "jdbc:mysql://172.16.2.43:3306/encuesta_docente", +// "billy", +// "billy"); // //serverdes5 -// "jdbc:mysql://172.16.0.15:3306/encuesta_docente", -// "sistemaHorarios", -// "Sac0Olive1357$"); + "jdbc:mysql://172.16.0.15:3306/encuesta_docente", + "sistemaHorarios", + "Sac0Olive1357$"); } catch (Exception e) { // TODO Auto-generated catch block @@ -74,13 +77,16 @@ public class MySqlDAOFactory extends DAOFactory { try { conexion = DriverManager.getConnection( - "jdbc:mysql://localhost:3306/nuevo", - "root", - "mysql"); +// "jdbc:mysql://localhost:3306/nuevo", +// "root", +// "mysql"); +// "jdbc:mysql://172.16.2.43:3306/nuevo", +// "billy", +// "billy"); // serverweb -// "jdbc:mysql://172.16.0.15:3306/nuevo", -// "sistemaHorarios", -// "Sac0Olive1357$"); + "jdbc:mysql://172.16.0.15:3306/nuevo", + "sistemaHorarios", + "Sac0Olive1357$"); } catch (Exception e) { // TODO Auto-generated catch block @@ -92,12 +98,15 @@ public class MySqlDAOFactory extends DAOFactory { try { conexion = DriverManager.getConnection( - "jdbc:mysql://localhost:3306/horarios_docente", - "root", - "mysql"); -// "jdbc:mysql://172.16.0.15:3306/horarios_docente", -// "sistemaHorarios", -// "Sac0Olive1357$"); +// "jdbc:mysql://localhost:3306/horarios_docente", +// "root", +// "mysql"); +// "jdbc:mysql://172.16.2.43:3306/horarios_docente", +// "billy", +// "billy"); + "jdbc:mysql://172.16.0.15:3306/horarios_docente", + "sistemaHorarios", + "Sac0Olive1357$"); } catch (Exception e) { // TODO Auto-generated catch block @@ -108,13 +117,16 @@ public class MySqlDAOFactory extends DAOFactory { try { conexion = DriverManager.getConnection( - "jdbc:mysql://localhost:3306/sacoolive3", - "root", - "mysql"); +// "jdbc:mysql://localhost:3306/sacoolive3", +// "root", +// "mysql"); +// "jdbc:mysql://172.16.2.43:3306/sacoolive3", +// "billy", +// "billy"); //serverdes5 -// "jdbc:mysql://172.16.0.15:3306/sacoolive3", -// "sistemaHorarios", -// "Sac0Olive1357$"); + "jdbc:mysql://172.16.0.15:3306/sacoolive3", + "sistemaHorarios", + "Sac0Olive1357$"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/src/java/pe/siso/horario/MySqlDAO/MySqlDocenteDAO.java b/src/java/pe/siso/horario/MySqlDAO/MySqlDocenteDAO.java index fc43719..abf1a3e 100644 --- a/src/java/pe/siso/horario/MySqlDAO/MySqlDocenteDAO.java +++ b/src/java/pe/siso/horario/MySqlDAO/MySqlDocenteDAO.java @@ -2366,13 +2366,10 @@ public class MySqlDocenteDAO implements DocenteDAO { h.setGrupoAcademico(rs.getString("grupoAcademico")); h.setCodigoAula(rs.getString("aulas")); h.setCantidadHoras(rs.getString("cantMin")); - - h.setDocenteSaliente(rs.getString("doc_saliente")); h.setCursoSaliente(rs.getString("nom_cur")); h.setFechaFin(rs.getString("fechafin")); h.setMotivoCambio(rs.getString("motivoCambio")); - h.setDocenteEntrante(rs.getString("doc_entrante")); h.setCursoEntrante(rs.getString("curso_entrante")); h.setFechaInicio(rs.getString("fechainicio")); @@ -2388,6 +2385,99 @@ public class MySqlDocenteDAO implements DocenteDAO { } return lista; } + + @Override + public ArrayList<HorarioCF> listarRegistrosNuevosYEliminados(String fechaDesde, String fechaHasta) throws Exception { + ArrayList<HorarioCF> lista = new ArrayList<HorarioCF>(); + String base = "horario"; + Connection cnx = null; + try { + cnx = MySqlDAOFactory.obtenerConexion(base); + + String query = "SELECT \n" + +" tbl1.fecha,tbl1.des_loc,tbl1.dia,tbl1.turno,CONCAT(tbl1.ingreso,\" - \",tbl1.salida)as horario,tbl1.grupoAcademico,tbl1.aulas,\n" + +"\n" + +" tbl1.hora,tbl1.docente,tbl1.nom_cur,tbl1.accion\n" + +" FROM ( \n" + +" SELECT tbl.fecha,tbl.dia,tbl.des_loc,MIN(tbl.ingreso) ingreso,MAX(tbl.salida) salida,SUM(tbl.cantLib) cantLib, \n" + +"\n" + +" tbl.turno,\n" + +" REPLACE(GROUP_CONCAT(DISTINCT tbl.aula ORDER BY ingreso ),',','-') aulas,\n" + +" SUM(tbl.cantAulas) cantAulas,tbl.grupoAcademico, \n" + +" tbl.computable,tbl.hora,tbl.docente,tbl.accion,tbl.nom_cur\n" + +" FROM ( \n" + +" SELECT hcd.hora,hcd.cod_hcd,hcd.fecha,hcd.dia numdia,ELT(hcd.dia, 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo') AS dia, \n" + +" s.des_loc,\n" + +" TIME_FORMAT(hcd.hor_ini,'%H:%i') ingreso,\n" + +" TIME_FORMAT(hcd.hor_fin,'%H:%i') salida,\n" + +" IF(tg.destipogrado ='LIBRE',1,0) cantLib, \n" + +" IF (hcd.hor_ini>='07:00' AND hcd.hor_fin<='14:30','M','T') turno, \n" + +"\n" + +" \n" + +"\n" + +" TRIM(IF(tg.destipogrado ='LIBRE',tg.abrTipGrado,REPLACE(REPLACE(REPLACE(REPLACE(a.nombre,'TO ',''),'DO ',''),'RO ',''),'Y ','y'))) aula, \n" + +"\n" + +" 1 cantAulas,IF(g.abrGrado LIKE '%1%' OR g.abrGrado LIKE '%2%','A',IF(a.codtipocentro = 2,'C','B')) grupoAcademico, \n" + +" IF(a.codtipocentro = 2,240,360) computable,\n" + +" CONCAT(pf1.apellido,',',pf1.nombre)as docente,\n" + +" IF(hcd.accion = 'REGISTRADO','SIN CURSO','ELIMINADO') as accion,c.nom_cur\n" + +"\n" + +" FROM historial_horario hcd \n" + +" INNER JOIN curso c ON c.cod_cur=hcd.cod_cur \n" + +" INNER JOIN sacoolive3.profesor pf1 ON pf1.codprofesor=hcd.cod_doc \n" + +" INNER JOIN aula a ON a.codaula=hcd.codAula \n" + +" INNER JOIN grado g on g.codgrado = a.codgrado \n" + +" INNER JOIN tipo_grado tg ON g.codtipogrado=tg.codtipogrado \n" + +" INNER JOIN sede s ON s.cod_loc=a.codlocal \n" + +" WHERE \n" + +" hcd.fecha BETWEEN ? AND ? and hcd.est_hcd=1\n" + +" AND (accion ='REGISTRADO' OR accion ='ELIMINADO')\n" + +" \n" + +" \n" + +" ) tbl \n" + +" GROUP BY tbl.fecha,tbl.dia,tbl.des_loc,tbl.turno,tbl.grupoAcademico,tbl.nom_cur,tbl.cantAulas\n" + +" ORDER BY tbl.hora DESC\n" + +" \n" + +" ) tbl1"; + + + PreparedStatement st = cnx.prepareStatement(query); + + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); + Date fechaInicio = dateFormat.parse(fechaDesde); + Date fechaFin = dateFormat.parse(fechaHasta); + + st.setTimestamp(1, new Timestamp(fechaInicio.getTime())); + st.setTimestamp(2, new Timestamp(fechaFin.getTime())); + System.out.println("QUERYY --->" + st); + ResultSet rs = st.executeQuery(); + + while (rs.next()) { + HorarioCF h = new HorarioCF(); + + h.setFechaRegistro(rs.getDate("fecha")); + h.setNombreSede(rs.getString("des_loc")); + h.setDia(rs.getString("dia")); + h.setHorario(rs.getString("horario")); + h.setGrupoAcademico(rs.getString("grupoAcademico")); + h.setCodigoAula(rs.getString("aulas")); + h.setHora(rs.getTime("hora")); + + h.setDocenteEntrante(rs.getString("docente")); + h.setCursoEntrante(rs.getString("nom_cur")); + h.setMotivoCambio(rs.getString("accion")); + + lista.add(h); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + cnx.close(); + } + return lista; + + } + @Override public ArrayList<Horario> listarCambiosDia(String fechaDesde, String fechaHasta) throws Exception { @@ -2794,4 +2884,6 @@ public class MySqlDocenteDAO implements DocenteDAO { return codDocente; } + + } diff --git a/src/java/pe/siso/horario/MySqlDAO/MySqlHorarioDAO.java b/src/java/pe/siso/horario/MySqlDAO/MySqlHorarioDAO.java index bcdd241..5665e1e 100644 --- a/src/java/pe/siso/horario/MySqlDAO/MySqlHorarioDAO.java +++ b/src/java/pe/siso/horario/MySqlDAO/MySqlHorarioDAO.java @@ -15,6 +15,7 @@ import java.sql.Statement; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.jsp.jstl.sql.Result; @@ -727,7 +728,7 @@ public class MySqlHorarioDAO implements HorarioDAO { Statement st = cnx.createStatement(); //String query = "select COUNT(cod_cur) as cantidad from horario_curso_docente where codAula='"+codAula+"' and cod_tur='"+codTurno+"' and cod_cur='"+codCurso+"' and cod_per='"+periodo+"' "; - String query = "select COUNT(cod_cur) as cantidad from horario_curso_docente where codAula='" + codAula + "' and cod_cur='" + codCurso + "' and cod_per='" + periodo + "' "; + String query = "select COUNT(cod_cur) as cantidad from horario_curso_docente where codAula='" + codAula + "' and cod_cur='" + codCurso + "' and cod_per='" + periodo + "' and est_hcd=1 "; System.out.println("cruuuceee-->> " + query); ResultSet rs = st.executeQuery(query); // System.out.println(query); @@ -1489,9 +1490,12 @@ public class MySqlHorarioDAO implements HorarioDAO { try { cnx = MySqlDAOFactory.obtenerConexion(base); Statement st = cnx.createStatement(); + //--------HISTORIAL--------------------- String queryHH0 = "SELECT cod_hcd,codAula,dia,pos_blo,hor_ini,hor_fin,cod_cur,cod_doc,cod_tur,cod_per,codGru FROM horario_curso_docente WHERE cod_hcd='" + codHorarioCursoDocente + "'"; ResultSet rs0 = st.executeQuery(queryHH0); + + if (rs0.next()) { String codAula = rs0.getString("codAula"); String dia = rs0.getString("dia"); @@ -1509,6 +1513,7 @@ public class MySqlHorarioDAO implements HorarioDAO { st.executeUpdate(queryHH1); } //--------HISTORIAL--------------------- + String query = "DELETE FROM horario_curso_docente WHERE cod_hcd='" + codHorarioCursoDocente + "' "; System.out.println(query); @@ -1981,11 +1986,12 @@ public class MySqlHorarioDAO implements HorarioDAO { Statement st2 = cnx2.createStatement(); String consultaTipoDocente = "SELECT hr.codSec,hr.cod_hcd,hr.codAula,hr.dia,hr.pos_blo,hr.hor_ini,hr.hor_fin,hr.cod_cur, " // + " hr.cod_doc,hr.cod_tur,hr.cod_per,hr.codGru,hr.est_hcd,cur.nom_cur " - + " hr.cod_doc,hr.cod_tur,hr.cod_per,hr.codGru,hr.est_hcd,cur.nom_cur,pd.cod_pla " + + " hr.cod_doc,hr.cod_tur,hr.cod_per,hr.codGru,hr.est_hcd,cur.nom_cur,cur.cod_pla,dd.cel_dat_per " + "FROM " + " horario_curso_docente AS hr " // + " INNER JOIN curso AS cur ON cur.cod_cur = hr.cod_cur " - + " INNER JOIN curso AS cur ON cur.cod_cur = hr.cod_cur LEFT JOIN tabla_evaluacion pd ON pd.cod_doc=hr.cod_doc " + + " INNER JOIN curso AS cur ON cur.cod_cur = hr.cod_cur " + + " LEFT JOIN datos_docente dd ON dd.cod_doc=hr.cod_doc " + "WHERE " + " hr.codAula = '" + codigoAula + "' " + "AND hr.cod_per = '" + codigoPeriodo + "' " @@ -2023,6 +2029,7 @@ public class MySqlHorarioDAO implements HorarioDAO { horario.setH_nombreCurso(rs.getString("nom_cur")); horario.setH_clase(rs.getString("codSec")); horario.setCodigoPlana(rs.getString("cod_pla")); + horario.setCelularDocente(rs.getString("cel_dat_per")); } if (horario.getH_codigoHorarioCursoDocente() != null) { @@ -2166,7 +2173,7 @@ public class MySqlHorarioDAO implements HorarioDAO { libre = libreRS.getInt("cant"); } - String queryCant = "SELECT cod_hcd FROM horario_curso_docente WHERE codAula='" + codigoAula + "' and dia='" + dia + "' and pos_blo='" + Posicionbloque + "' and cod_per='" + periodo + "' "; + String queryCant = "SELECT cod_hcd FROM horario_curso_docente WHERE codAula='" + codigoAula + "' and dia='" + dia + "' and pos_blo='" + Posicionbloque + "' and cod_per='" + periodo + "' and est_hcd='1'"; //System.out.println("-(1)-> "+queryCant); ResultSet rsCant = st.executeQuery(queryCant); if (rsCant.next()) { @@ -2391,13 +2398,42 @@ public class MySqlHorarioDAO implements HorarioDAO { int dato = 1; String base = "horario"; Connection cnx = null; + ResultSet rs0=null; try { cnx = MySqlDAOFactory.obtenerConexion(base); Statement st = cnx.createStatement(); - codAulas = codAulas.replace("#", ","); - String query = "DELETE FROM horario_curso_docente WHERE cod_cur='" + codCur + "' and cod_per='" + periodo + "' and codAula in (" + codAulas + ")"; + + String codAulas2 = codAulas.replace("#", ","); + String [] array=codAulas2.split(","); + for (String array1 : array) { + String queryHH0 = "SELECT cod_hcd,codAula,dia,pos_blo,hor_ini,hor_fin,cod_cur,cod_doc,cod_tur,cod_per,codGru" + + " FROM horario_curso_docente WHERE codAula='" + array1 + "' and cod_cur='" + codCur + "' and cod_per='" + periodo + "'"; + rs0 = st.executeQuery(queryHH0); + if(rs0.next()){ + String codAula = rs0.getString("codAula"); + String dia = rs0.getString("dia"); + String Posicionbloque = rs0.getString("pos_blo"); + String Hini = rs0.getString("hor_ini"); + String Hfin = rs0.getString("hor_fin"); + String codigoTurno = rs0.getString("cod_tur"); + String codigoCurso = rs0.getString("cod_cur"); + String codigoDocente = rs0.getString("cod_doc"); + String periodo2 = rs0.getString("cod_per"); + String codigoGrupo = rs0.getString("codGru"); + + String queryHH1 = "INSERT INTO historial_horario (codAula,dia,pos_blo,hor_ini,hor_fin,cod_tur,cod_cur,cod_doc,est_hcd,cod_per,codGru,fecha,hora,accion,cod_usu) " + + "VALUES ('" + codAula + "','" + dia + "','" + Posicionbloque + "','" + Hini + "','" + Hfin + "','" + codigoTurno + "','" + codigoCurso + "','" + codigoDocente + "','1','" + periodo2 + "','" + codigoGrupo + "',CURDATE(),CURTIME(),'ELIMINADO',9)"; + st.executeUpdate(queryHH1); + } + } + + + + String query = "DELETE FROM horario_curso_docente WHERE cod_cur='" + codCur + "' and cod_per='" + periodo + "' and codAula in (" + codAulas2 + ")"; System.out.println(query); dato = st.executeUpdate(query); + + } catch (Exception e) { e.printStackTrace(); } finally { @@ -2562,7 +2598,7 @@ public class MySqlHorarioDAO implements HorarioDAO { " te.pro_pla, \n" + " te.exa, \n" + " te.not_enc, \n" + -" te.prom,dd.bloqueo,dd.diasSin,IF(te.puesto = \"\" ,'No registrado',IFNULL(te.puesto,'No Registrado')) as puesto,zona.nom_zon \n" + +" te.prom,dd.bloqueo,dd.diasSin,IF(te.puesto = \"\" ,'No registrado',IFNULL(te.puesto,'No Registrado')) as puesto,IFNULL(zona.nom_zon,'No registrado') as nom_zon \n" + " FROM \n" + " plana_docente pd \n" + " INNER JOIN sacoolive3.profesor pr ON pr.codprofesor = pd.cod_doc \n" + @@ -2610,7 +2646,7 @@ public class MySqlHorarioDAO implements HorarioDAO { " ORDER BY \n" + " nombreDoc ASC"; pst = cn.prepareStatement(sql); - System.out.println(sql); + System.out.println(pst); pst.setString(1, json.getString("codigoPeriodo")); pst.setString(2, json.getString("codigoPeriodo")); @@ -3164,6 +3200,47 @@ public class MySqlHorarioDAO implements HorarioDAO { return horario; } + + @Override + public Horario verDocenteCelular(String codigoDocente) throws Exception { + String base = "horario"; + Connection cnx = null; + ResultSet rs = null; + PreparedStatement pst = null; + Horario horario = new Horario(); + try { + cnx = MySqlDAOFactory.obtenerConexion(base); + String query = "SELECT\n" + +" \n" + +" dd.cel_dat_per \n" + +" FROM \n" + +" datos_docente dd \n" + +" INNER JOIN sacoolive3.profesor pr ON dd.cod_doc = pr.codprofesor \n" + +"\n" + +" WHERE \n" + +" dd.cod_doc = "+codigoDocente+" "; + + pst = cnx.prepareStatement(query); +// pst.setString(1, codigoDocente); + + +// + rs = pst.executeQuery(); + + if (rs.next()) { + + horario.setCelularDocente(rs.getString(1)); +// + } + + } catch (Exception e) { + e.printStackTrace(); + } finally { + cnx.close(); + } + + return horario; + } public static void main(String[] args) { @@ -3381,4 +3458,349 @@ public class MySqlHorarioDAO implements HorarioDAO { return obj; } + @Override + public JSONObject listarVistaDobleDisponibilidad2(JSONObject json) { + JSONObject jReturn = new JSONObject(); + Connection cn = null; + PreparedStatement pst = null; + ResultSet rs = null; + + try { + cn = MySqlDAOFactory.obtenerConexion("horario"); + String sql = "" + + "SELECT " + + " pr.codprofesor, " + + " CONCAT(pr.apellido, ', ', pr.nombre) nombreDoc, " + + " if(dat.cel_dat_per = '0','No registrado',COALESCE(dat.cel_dat_per, '')) cel_dat_per, " + + " COALESCE(dat.nom_dir,'') nom_dir, " + + " COALESCE(dat.cor_dat_per,'')cor_dat_per, " + + " COALESCE(u.nom_dis_ubi,'')nom_dis_ubi, " + + " COALESCE(dd.diaDis,'' ) diaDis, " + + " te.pro_pla, " + + " te.exa, " + + " te.not_enc, " + + " te.prom " + + "FROM " + + " plana_docente pd " + + "INNER JOIN sacoolive3.profesor pr ON pr.codprofesor = pd.cod_doc " + + "LEFT JOIN ( " + + " SELECT " + + " codDoc, " + + " diaDis " + + " FROM " + + " disponibilidad_docente " + + " WHERE " + + " estDis = 1 " + + " AND cod_per = ? " + + ") dd ON dd.codDoc = pd.cod_doc " + + "INNER JOIN datos_docente dat ON dat.cod_doc = pr.codprofesor " + + "INNER JOIN ubigeo u ON u.cod_dep_ubi = dat.cod_dep " + + "AND u.cod_pro_ubi = dat.cod_prov " + + "AND u.cod_dis_ubi = dat.cod_dis " + + "LEFT JOIN ( " + + "SELECT " + + "te.cod_doc , " + + "te.pro_pla, " + + " te.exa, " + + " te.not_enc, " + + " te.prom " + + "FROM tabla_evaluacion te " + + "INNER JOIN encuesta_docente.encuesta enc " + + "ON enc.cod_enc = te.cod_enc " + + "where enc.cod_per = ? and te.cod_pla = ? " + + " ) te ON te.cod_doc = pr.codprofesor " + + "WHERE " + + " pr.estadoprofe = 'Y' " + + "AND pd.cod_pla = ? " + + "GROUP BY " + + " pr.codprofesor, " + + " CONCAT(pr.apellido, ', ', pr.nombre), " + + " dd.diaDis, " + + " dat.cel_dat_per, " + + " dat.nom_dir, " + + " dat.cor_dat_per, " + + " u.nom_dis_ubi, " + + " te.pro_pla, " + + " te.exa, " + + " te.not_enc, " + + " te.prom " + + "ORDER BY " + + " nombreDoc ASC "; + + pst = cn.prepareStatement(sql); + System.out.println(sql); + + pst.setString(1, json.getString("codigoPeriodo2")); + pst.setString(2, json.getString("codigoPeriodo2")); + pst.setString(3, json.getString("codigoPlana")); + pst.setString(4, json.getString("codigoPlana")); + + + + rs = pst.executeQuery(); + + JSONArray arrayDocente = new JSONArray(); + while (rs.next()) { + JSONObject obj = new JSONObject(); + obj + .put("codDocente", rs.getInt("codprofesor")) + .put("nombre", rs.getString("nombreDoc")) + .put("disponibilidad", rs.getString("diaDis")) + .put("celular", rs.getString("cel_dat_per")) + .put("direccion", rs.getString("nom_dir")) + .put("correo", rs.getString("cor_dat_per")) + .put("promedioPlana",rs.getString("pro_pla")) + .put("examen", rs.getString("exa")) + .put("notaEncuesta",rs.getString("not_enc")) + .put("promedio",rs.getString("prom")) + .put("distrito", rs.getString("nom_dis_ubi")); + + + + arrayDocente.put(obj); + } + + for (Object objDocente : arrayDocente) { + + JSONObject docente = (JSONObject) objDocente; + sql = "" + + "select " + + "hcd.dia, " + + "s.des_loc, " + + "if(hcd.hor_ini < '14:30',1,2) turno, " + + "GROUP_CONCAT(CONCAT(g.abrGrado,'-',a.nombre)) aulas " + + "from horario_curso_docente hcd " + + "inner join aula a on a.codaula = hcd.codAula " + + "inner join seccion se on se.codseccion = a.codseccion " + + "inner join grado g on g.codgrado = a.codgrado " + + "inner join sede s on s.cod_loc = a.codlocal " + + "where hcd.est_hcd = 1 " + + "and hcd.cod_per = ? " + + "and hcd.cod_doc = ? " + // + "and hcd.dia in (?) " + + "group by " + + "hcd.cod_doc, " + + "hcd.dia, " + + "s.des_loc, " + + "turno " + + "order by " + + "hcd.dia, " + + "turno"; + pst = cn.prepareStatement(sql); + + pst.setString(1, json.getString("codigoPeriodo2")); + pst.setInt(2, docente.getInt("codDocente")); +// pst.setString(3, String.join(",", arrayDias)); + + rs = pst.executeQuery(); + JSONArray arrayAulas = new JSONArray(); + + while (rs.next()) { + JSONObject jObj = new JSONObject(); + jObj.put("dia", Objects.toString(rs.getString("dia"),"")); + jObj.put("sede", rs.getString("des_loc")); + jObj.put("turno", rs.getString("turno")); + jObj.put("aulas", rs.getString("aulas")); + + arrayAulas.put(jObj); + } + docente.put("arrayAulas", arrayAulas); + } + + jReturn + .put("data", arrayDocente) + .put("status", true); + + } catch (Exception e) { + jReturn + .put("status", false) + .put("message", e.getMessage()); + } finally { + try { + if (cn != null) { + cn.close(); + } + if (pst != null) { + pst.close(); + } + } catch (SQLException ex) { + Logger.getLogger(MySqlHorarioDAO.class.getName()).log(Level.SEVERE, null, ex); + } + } + return jReturn; + } + + @Override + public JSONObject listarVistaDobleDisponibilidadSinZona(JSONObject json) { + JSONObject jReturn = new JSONObject(); + Connection cn = null; + PreparedStatement pst = null; + ResultSet rs = null; + + try { + cn = MySqlDAOFactory.obtenerConexion("horario"); + String sql = "" + + "SELECT \n" + +" pr.codprofesor, \n" + +" CONCAT(pr.apellido, ', ', pr.nombre) nombreDoc, \n" + +" IFNULL(dat.cel_dat_per,'No registrado') as cel_dat_per, \n" + +" IFNULL(dat.nom_dir,'No registrado') as nom_dir, \n" + +" IFNULL(dat.cor_dat_per,'No registrado') as cor_dat_per, \n" + +" IFNULL(u.nom_dis_ubi,'No registrado')as nom_dis_ubi, \n" + +" +\n" + +" COALESCE(dd.diaDis,''), \n" + +" COALESCE(te.pro_pla,''), \n" + +" COALESCE(te.exa,''), \n" + +" COALESCE(te.not_enc,''), \n" + +" COALESCE(te.prom,''),COALESCE(dd.bloqueo,''),COALESCE(dd.diasSin,''),IF(te.puesto = \"\" ,'No registrado',IFNULL(te.puesto,'No Registrado')) as puesto,IFNULL(zona.nom_zon,'No registrado') as nom_zon \n" + +" FROM \n" + +" plana_docente pd \n" + +" INNER JOIN sacoolive3.profesor pr ON pr.codprofesor = pd.cod_doc \n" + +" LEFT JOIN ( \n" + +" SELECT \n" + +" codDoc, \n" + +" diaDis,bloqueo,diasSin \n" + +" FROM \n" + +" disponibilidad_docente \n" + +" WHERE \n" + +" estDis = 1 \n" + +" AND cod_per = ? \n" + +" ) dd ON dd.codDoc = pd.cod_doc \n" + +" LEFT JOIN datos_docente dat ON dat.cod_doc = pr.codprofesor \n" + +" LEFT JOIN ubigeo u ON u.cod_dep_ubi = dat.cod_dep \n" + +" AND u.cod_pro_ubi = dat.cod_prov \n" + +" AND u.cod_dis_ubi = dat.cod_dis LEFT JOIN zona_docente ON dat.cod_doc=zona_docente.cod_doc AND zona_docente.est_zon_doc = '1' LEFT JOIN zona ON zona_docente.cod_zon = zona.cod_zon\n" + +" LEFT JOIN ( \n" + +" SELECT \n" + +" te.cod_doc , \n" + +" te.pro_pla, \n" + +" te.exa, \n" + +" te.not_enc, \n" + +" te.prom,te.puesto \n" + +" FROM tabla_evaluacion te \n" + +" INNER JOIN encuesta_docente.encuesta enc \n" + +" ON enc.cod_enc = te.cod_enc \n" + +" where enc.cod_per = ? and te.cod_pla = ? \n" + +" ) te ON te.cod_doc = pr.codprofesor \n" + +" WHERE \n" + +" pr.estadoprofe = 'Y' \n" + +" AND pd.cod_pla = ? AND pd.cod_per=?\n" + +" GROUP BY \n" + +" pr.codprofesor, \n" + +" CONCAT(pr.apellido, ', ', pr.nombre), \n" + +" dd.diaDis, \n" + +" dat.cel_dat_per, \n" + +" dat.nom_dir, \n" + +" dat.cor_dat_per, \n" + +" u.nom_dis_ubi, \n" + +" te.pro_pla, \n" + +" te.exa, \n" + +" te.not_enc, \n" + +" te.prom \n" + +" ORDER BY \n" + +" nombreDoc ASC"; + + pst = cn.prepareStatement(sql); + System.out.println(sql); + + pst.setString(1, json.getString("codigoPeriodo2")); + pst.setString(2, json.getString("codigoPeriodo2")); + pst.setString(3, json.getString("codigoPlana")); + pst.setString(4, json.getString("codigoPlana")); + + + + rs = pst.executeQuery(); + + JSONArray arrayDocente = new JSONArray(); + while (rs.next()) { + JSONObject obj = new JSONObject(); + obj + .put("codDocente", rs.getInt("codprofesor")) + .put("nombre", rs.getString("nombreDoc")) + .put("disponibilidad", rs.getString("diaDis")) + .put("celular", rs.getString("cel_dat_per")) + .put("direccion", rs.getString("nom_dir")) + .put("correo", rs.getString("cor_dat_per")) + .put("promedioPlana",rs.getString("pro_pla")) + .put("examen", rs.getString("exa")) + .put("notaEncuesta",rs.getString("not_enc")) + .put("promedio",rs.getString("prom")) + .put("distrito", rs.getString("nom_dis_ubi")); + + + + arrayDocente.put(obj); + } + + for (Object objDocente : arrayDocente) { + + JSONObject docente = (JSONObject) objDocente; + sql = "" + + "select " + + "hcd.dia, " + + "s.des_loc, " + + "if(hcd.hor_ini < '14:30',1,2) turno, " + + "GROUP_CONCAT(CONCAT(g.abrGrado,'-',a.nombre)) aulas " + + "from horario_curso_docente hcd " + + "inner join aula a on a.codaula = hcd.codAula " + + "inner join seccion se on se.codseccion = a.codseccion " + + "inner join grado g on g.codgrado = a.codgrado " + + "inner join sede s on s.cod_loc = a.codlocal " + + "where hcd.est_hcd = 1 " + + "and hcd.cod_per = ? " + + "and hcd.cod_doc = ? " + // + "and hcd.dia in (?) " + + "group by " + + "hcd.cod_doc, " + + "hcd.dia, " + + "s.des_loc, " + + "turno " + + "order by " + + "hcd.dia, " + + "turno"; + pst = cn.prepareStatement(sql); + + pst.setString(1, json.getString("codigoPeriodo2")); + pst.setInt(2, docente.getInt("codDocente")); +// pst.setString(3, String.join(",", arrayDias)); + + rs = pst.executeQuery(); + JSONArray arrayAulas = new JSONArray(); + + while (rs.next()) { + JSONObject jObj = new JSONObject(); + jObj.put("dia", Objects.toString(rs.getString("dia"),"")); + jObj.put("sede", rs.getString("des_loc")); + jObj.put("turno", rs.getString("turno")); + jObj.put("aulas", rs.getString("aulas")); + + arrayAulas.put(jObj); + } + docente.put("arrayAulas", arrayAulas); + } + + jReturn + .put("data", arrayDocente) + .put("status", true); + + } catch (Exception e) { + jReturn + .put("status", false) + .put("message", e.getMessage()); + } finally { + try { + if (cn != null) { + cn.close(); + } + if (pst != null) { + pst.close(); + } + } catch (SQLException ex) { + Logger.getLogger(MySqlHorarioDAO.class.getName()).log(Level.SEVERE, null, ex); + } + } + return jReturn; + } + } diff --git a/src/java/pe/siso/horario/Services/AulaServices.java b/src/java/pe/siso/horario/Services/AulaServices.java index 8fea891..13a1ac8 100644 --- a/src/java/pe/siso/horario/Services/AulaServices.java +++ b/src/java/pe/siso/horario/Services/AulaServices.java @@ -421,10 +421,10 @@ public class AulaServices { return lista; } - public ArrayList<Aula> listarDatosHorairo2do(String periodo){ + public ArrayList<Aula> listarDatosHorairo2do(String periodo,String parte){ ArrayList<Aula> lista=null; try { - lista=objAulaDAO.listarDatosHorairo2do(periodo); + lista=objAulaDAO.listarDatosHorairo2do(periodo,parte); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/src/java/pe/siso/horario/Services/DocenteServices.java b/src/java/pe/siso/horario/Services/DocenteServices.java index 568c3d8..fd17453 100644 --- a/src/java/pe/siso/horario/Services/DocenteServices.java +++ b/src/java/pe/siso/horario/Services/DocenteServices.java @@ -31,6 +31,16 @@ public class DocenteServices { } return lista; } + public ArrayList<HorarioCF> listarRegistrosNuevosYEliminados(String fechaDesde, String fechaHasta){ + ArrayList<HorarioCF> lista = null; + try { + lista = objDocenteDAO.listarRegistrosNuevosYEliminados(fechaDesde, fechaHasta); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return lista; + } public ArrayList<Horario> listarCambiosDia(String fechaDesde, String fechaHasta){ ArrayList<Horario> lista = null; diff --git a/src/java/pe/siso/horario/Services/HorarioServices.java b/src/java/pe/siso/horario/Services/HorarioServices.java index 8851287..8baa18f 100644 --- a/src/java/pe/siso/horario/Services/HorarioServices.java +++ b/src/java/pe/siso/horario/Services/HorarioServices.java @@ -660,6 +660,24 @@ public class HorarioServices { } return jReturn; } + public JSONObject listarVistaDobleDisponibilidad2(JSONObject json) { + JSONObject jReturn = null; + try { + jReturn = objHorarioDAO.listarVistaDobleDisponibilidad2(json); + } catch (Exception e) { + e.printStackTrace(); + } + return jReturn; + } + public JSONObject listarVistaDobleDisponibilidadSinZona(JSONObject json) { + JSONObject jReturn = null; + try { + jReturn = objHorarioDAO.listarVistaDobleDisponibilidadSinZona(json); + } catch (Exception e) { + e.printStackTrace(); + } + return jReturn; + } public JSONObject listarVistaHorarioDisponibilidad(JSONObject json){ JSONObject jReturn = null; @@ -712,6 +730,17 @@ public class HorarioServices { } return horario; } + public Horario verDocenteCelular(String codigoDocente ){ + Horario horario = new Horario(); + try { + horario=objHorarioDAO.verDocenteCelular(codigoDocente); + + + } catch (Exception e) { + e.printStackTrace(); + } + return horario; + } public int updateCambioCurso(String codigoAula,String periodo,String dia,String posBloque,String nombreCursoNuevo){ int retorno=0; diff --git a/src/java/pe/siso/horario/Servlets/ServletArea.java b/src/java/pe/siso/horario/Servlets/ServletArea.java index 13f621d..04245eb 100644 --- a/src/java/pe/siso/horario/Servlets/ServletArea.java +++ b/src/java/pe/siso/horario/Servlets/ServletArea.java @@ -284,6 +284,8 @@ public class ServletArea extends HttpServlet { pw.println("<option value='2'>COMUNICACIÓN</option>"); pw.println("<option value='3'>CIENCIAS SOCIALES</option>"); pw.println("<option value='4'>C.T.A.</option>"); + pw.println("<option value='5'>C.E.F.</option>"); + pw.println(" </select> " + " </span> " diff --git a/src/java/pe/siso/horario/Servlets/ServletAula.java b/src/java/pe/siso/horario/Servlets/ServletAula.java index 06d295c..088afb9 100644 --- a/src/java/pe/siso/horario/Servlets/ServletAula.java +++ b/src/java/pe/siso/horario/Servlets/ServletAula.java @@ -2178,7 +2178,7 @@ public class ServletAula extends HttpServlet { + " </button>" + " <button id='btnExportarTodo' class=\"btn btn-sm btn-warning\" onclick=\"exportarTodo();\" type=\"button\">\n" + " <i class=\"ace-icon fa fa-file-excel-o icon-on-right bigger-110\"></i>\n" - + " Exportar todo\n" + + " Exportar todas las sedes\n" + " </button>" + " </td>" + " <td width=\"10\"></td>" diff --git a/src/java/pe/siso/horario/Servlets/ServletBloque.java b/src/java/pe/siso/horario/Servlets/ServletBloque.java index 072d4b5..4c1224f 100644 --- a/src/java/pe/siso/horario/Servlets/ServletBloque.java +++ b/src/java/pe/siso/horario/Servlets/ServletBloque.java @@ -871,9 +871,63 @@ public class ServletBloque extends HttpServlet { } } - - - pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n" + + + if(codigo.equals("56") ){ + pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n" + +" <div class=\"table-header\">\n HORARIO "+nombreGru+" " + +" </div>\n" + +" <div>\n" + +" <div class=\"dataTables_wrapper form-inline no-footer\" id=\"sample-table-2_wrapper\">\n" + + +" <table class=\"table table-striped table-bordered table-hover dataTable no-footer\" id=\"sample-table-2\" role=\"grid\" aria-describedby=\"sample-table-2_info\" >\n" + +" <thead>\n" + +" <tr role=\"row\">\n" + +" <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\" >LUNES</th>\n" + +" <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">MARTES</th>\n" + +" <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">MIÉRCOLES</th>\n" + +" <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">JUEVES</th>\n" + +" <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">VIERNES</th>\n" + +//" <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">SÁBADO</th>\n" + +" </tr>\n" + +" </thead>\n" + +" <tbody>"); + + String HorIni=""; + String HorFin=""; + int contenido = 0; + for(int t=1; t<=x;t++){ + pw.println("<tr>"); + for(int i=1; i<=5;i++){ + for(int j=0; j<array1.length;j++){ + String[] array2 = array1[j].split("#"); + if(array2[2].equals(""+i)){ + if(Integer.parseInt(array2[0])>=t){ + String[] horas = array2[3].split("¡"); + int h = t-1; + String[] hora = horas[h].split("-"); + HorIni=hora[0]; + HorFin=hora[1]; + contenido=1; + } + } + } + + if(contenido==1){ + pw.println("<td align='center' style=' vertical-align:middle;'>"+HorIni+"<br>"+HorFin+"</td>"); + }else{ + pw.println("<td align='center' style='color:red; background-color:#F5A9A9; vertical-align:middle;'>SIN HORARIO</td>"); + } + + contenido=0; + + } + pw.println("</tr>"); + } + + + }else{ + + pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n" + " <div class=\"table-header\">\n HORARIO "+nombreGru+" " + " </div>\n" + " <div>\n" + @@ -891,11 +945,8 @@ public class ServletBloque extends HttpServlet { " </tr>\n" + " </thead>\n" + " <tbody>"); - - - - - String HorIni=""; + + String HorIni=""; String HorFin=""; int contenido = 0; for(int t=1; t<=x;t++){ @@ -926,6 +977,18 @@ public class ServletBloque extends HttpServlet { } pw.println("</tr>"); } + + + + } + + + + + + + + diff --git a/src/java/pe/siso/horario/Servlets/ServletHorario.java b/src/java/pe/siso/horario/Servlets/ServletHorario.java index 11b9b33..f7080e1 100644 --- a/src/java/pe/siso/horario/Servlets/ServletHorario.java +++ b/src/java/pe/siso/horario/Servlets/ServletHorario.java @@ -168,6 +168,10 @@ public class ServletHorario extends HttpServlet { verHorarioDocenteDni2(request,response); }else if("registrarConformidad".equals(param)){ registrarConformidad(request,response); + }else if("listarVistaDobleDisponibilidad2".equals(param)){ + listarVistaDobleDisponibilidad2(request,response); + }else if("listarVistaDobleDisponibilidadSinZona".equals(param)){ + listarVistaDobleDisponibilidadSinZona(request,response); } } @@ -2567,8 +2571,61 @@ public class ServletHorario extends HttpServlet { } } + + if(codigo.equals("56")){ + + pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n" + + " <div class=\"table-header\">\n HORARIO " + nombreGru + " " + + " </div>\n" + + " <div>\n" + + " <div class=\"dataTables_wrapper form-inline no-footer\" id=\"sample-table-2_wrapper\">\n" + + " <table class=\"table table-striped table-bordered table-hover dataTable no-footer\" id=\"sample-table-2\" role=\"grid\" aria-describedby=\"sample-table-2_info\" >\n" + + " <thead>\n" + + " <tr role=\"row\">\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\" >LUNES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">MARTES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">MIÉRCOLES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">JUEVES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">VIERNES</th>\n" +// + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">SÁBADO</th>\n" + + " </tr>\n" + + " </thead>\n" + + " <tbody>"); - pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n" + String HorIni = ""; + String HorFin = ""; + int contenido = 0; + for (int t = 1; t <= x; t++) { + pw.println("<tr>"); + for (int i = 1; i <= 5; i++) { + for (int j = 0; j < array1.length; j++) { + String[] array2 = array1[j].split("#"); + if (array2[2].equals("" + i)) { + if (Integer.parseInt(array2[0]) >= t) { + String[] horas = array2[3].split("¡"); + int h = t - 1; + String[] hora = horas[h].split("-"); + HorIni = hora[0]; + HorFin = hora[1]; + contenido = 1; + } + } + } + + if (contenido == 1) { + pw.println("<td align='center' style=' vertical-align:middle;'>" + HorIni + "<br>" + HorFin + "</td>"); + } else { + pw.println("<td align='center' style='color:red; background-color:#F5A9A9; vertical-align:middle;'>SIN HORARIO</td>"); + } + + contenido = 0; + + } + pw.println("</tr>"); + } + + }else{ + pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n" + " <div class=\"table-header\">\n HORARIO " + nombreGru + " " + " </div>\n" + " <div>\n" @@ -2617,6 +2674,10 @@ public class ServletHorario extends HttpServlet { } pw.println("</tr>"); } + + } + + pw.println("</table><br>" + "<br>" @@ -2662,6 +2723,11 @@ public class ServletHorario extends HttpServlet { String cadenaAulasGrabada = request.getParameter("cadenaAulas"); String datoTD = ""; String[] aulas = codAulas.split("#"); + int codigonuevo=6; + if(codigo.equals("56")){ + codigonuevo=5; + } + //REGISTRAR GRUPO AULAS String cadenaAulas = ""; @@ -2720,7 +2786,42 @@ public class ServletHorario extends HttpServlet { for (int i = 0; i < cantidad; i++) { String nomAula = servicios.consultarAula(aulas[i]); - pw.println("<input type='hidden' id='cadenaAulasHorario' value='" + cadenaAulas + "'><div style=\"border: 1px solid #CCCCCC;\">\n" + if(codigonuevo == 5){ + pw.println("<input type='hidden' id='cadenaAulasHorario' value='" + cadenaAulas + "'><div style=\"border: 1px solid #CCCCCC;\">\n" + + " <div class=\"table-header\">\n" + + " <table width='100%'>" + + " <tr>" + + " <td><span class='badge badge-warning'>" + contGenral + "</span> " + nomAula + "</td>" + + " <td align='right' >" + + " <!--<span class='badge badge-warning'> " + + " <div class=\"pull-right action-buttons\">\n" + + " <a class=\"red\" href=\"#\">\n" + + " <i class=\"ace-icon fa fa-trash-o bigger-150\"></i>\n" + + " </a>\n" + + " </div>" + + " </span>-->" + + " <i class='ace-icon fa fa-calendar icon-on-right bigger-110'></i> </td>" + + " </td>" + + " <td width='10' ></td>" + + " </tr>" + + " </table>" + + " </div>\n" + + " <div>\n" + + " <div class=\"dataTables_wrapper form-inline no-footer\" id=\"sample-table-2_wrapper\">\n" + + " <table class=\"table table-striped table-bordered table-hover dataTable no-footer\" id=\"sample-table-2\" role=\"grid\" aria-describedby=\"sample-table-2_info\" >\n" + + " <thead>\n" + + " <tr role=\"row\">\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >LUNES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >MARTES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >MIÉRCOLES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >JUEVES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >VIERNES</th>\n" +// + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >SÁBADO</th>\n" + + " </tr>\n" + + " </thead>\n" + + " <tbody>"); + }else{ + pw.println("<input type='hidden' id='cadenaAulasHorario' value='" + cadenaAulas + "'><div style=\"border: 1px solid #CCCCCC;\">\n" + " <div class=\"table-header\">\n" + " <table width='100%'>" + " <tr>" @@ -2753,6 +2854,11 @@ public class ServletHorario extends HttpServlet { + " </tr>\n" + " </thead>\n" + " <tbody>"); + } + + + + String codPeriodo2 = "" + codPeriodo; String HorIni = ""; @@ -2775,7 +2881,7 @@ public class ServletHorario extends HttpServlet { for (int t = 1; t <= x; t++) { pw.println("<tr>"); String bloqueGrupoDia = ""; - for (int f = 1; f <= 6; f++) { + for (int f = 1; f <= codigonuevo; f++) { for (int j = 0; j < array1.length; j++) { String[] array2 = array1[j].split("#"); @@ -2823,28 +2929,35 @@ public class ServletHorario extends HttpServlet { Horario DatosHorario = new Horario(); Horario obj = new Horario(); + Horario obj2 = new Horario(); String examen = ""; + String valor=""; + String codigoDocente=""; String nota_encuesta = ""; DatosHorario = serviciosHor.consultarDatosHorarioAulaPorPosicionDiaria(aulas[i], codPeriodo2, dia, posicion); + if(DatosHorario.getCelularDocente() == null){ + DatosHorario.setCelularDocente("No registrado"); + } + if(DatosHorario.getCodigoPlana() == null){ //System.out.println("No hay plana"); obj.setExamen(" No evaluado "); - obj.setCelularDocente(" No registrado "); + }else{ int codigoACambiar=Integer.parseInt(codPeriodo2); int resta = codigoACambiar - 1; String codigoCambiado=String.valueOf(resta); - obj = serviciosHor.verDocenteExamenEncuesta(DatosHorario.getH_codigoDocente(), DatosHorario.getCodigoPlana()); + + obj = serviciosHor.verDocenteExamenEncuesta(DatosHorario.getH_codigoDocente(), DatosHorario.getCodigoPlana()); + if(obj.getExamen() == null){ obj.setExamen(" No evaluado "); } - if(obj.getCelularDocente() == null){ - obj.setCelularDocente("No registrado"); - } + } @@ -2942,7 +3055,7 @@ public class ServletHorario extends HttpServlet { } else { - pw.println("<td align='center' style='width:12%; vertical-align:middle; >" + pw.println("<td align='center' style='width:12%; vertical-align:middle;>" + " <label >" + " <div id='curso_" + contGenral + "_" + diaPos + "_" + diaGen + "'> " + "<div class=\"inline pull-center position-relative dropdown-hover\">\n" @@ -3007,7 +3120,7 @@ public class ServletHorario extends HttpServlet { + " </div><br>" + " <b>" + DatosHorario.getH_nombreCurso() + "</b> " + " <br>" + DatosHorario.getH_apellidosDocente() + ", " + DatosHorario.getH_nombreDocente()+ " " - + " <br> Prom.ENC :" + obj.getExamen() + " <br> Cel : " + obj.getCelularDocente()+ " " + + " <br> Prom.ENC :" + obj.getExamen() + " <br> Cel : " + DatosHorario.getCelularDocente()+ " " + " <span ><a id='verCambioDia' href='javascript:historyChangeDay("+diaGen+","+DatosHorario.getH_codigoDocente()+");' title='Ver Historial Cambio Dia' style='margin-left:40px;'><i class=\"ace-icon fa fa-eye icon-on-right bigger-110\"></i></a></span>" + " </div>" + " </label>" @@ -3776,6 +3889,10 @@ public class ServletHorario extends HttpServlet { int cantidad = Integer.parseInt(request.getParameter("cantidad")); String codAulas = request.getParameter("codAulas"); String codigo = request.getParameter("codigo"); // codigo grupo + int codigonuevo=6; + if(codigo.equals("56")){ + codigonuevo=5; + } Horario horarioCadenaGrupo = new Horario(); horarioCadenaGrupo = serviciosHor.consultarCadenaGH(codigo); @@ -3832,8 +3949,42 @@ public class ServletHorario extends HttpServlet { for (int i = 0; i < cantidad; i++) { String nomAula = servicios.consultarAula(aulas[i]); - - pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n" + if(codigonuevo == 5){ + pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n" + + " <div class=\"table-header\">\n" + + " <table width='100%'>" + + " <tr>" + + " <td><span class='badge badge-warning'>" + contGenral + "</span> " + nomAula + "</td>" + + " <td align='right' >" + + " <!--<span class='badge badge-warning'> " + + " <div class=\"pull-right action-buttons\">\n" + + " <a class=\"red\" href=\"#\">\n" + + " <i class=\"ace-icon fa fa-trash-o bigger-150\"></i>\n" + + " </a>\n" + + " </div>" + + " </span>-->" + + " <i class='ace-icon fa fa-calendar icon-on-right bigger-110'></i> </td>" + + " </td>" + + " <td width='10' ></td>" + + " </tr>" + + " </table>" + + " </div>\n" + + " <div>\n" + + " <div class=\"dataTables_wrapper form-inline no-footer\" id=\"sample-table-2_wrapper\">\n" + + " <table class=\"table table-striped table-bordered table-hover dataTable no-footer\" id=\"sample-table-2\" role=\"grid\" aria-describedby=\"sample-table-2_info\" >\n" + + " <thead>\n" + + " <tr role=\"row\">\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >LUNES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >MARTES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >MIÉRCOLES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >JUEVES</th>\n" + + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >VIERNES</th>\n" +// + " <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"2\" width='16%' >SÁBADO</th>\n" + + " </tr>\n" + + " </thead>\n" + + " <tbody>"); + }else{ + pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n" + " <div class=\"table-header\">\n" + " <table width='100%'>" + " <tr>" @@ -3866,6 +4017,12 @@ public class ServletHorario extends HttpServlet { + " </tr>\n" + " </thead>\n" + " <tbody>"); + } + + + + + String codPeriodo2 = "" + codPeriodo; String HorIni = ""; @@ -3888,7 +4045,7 @@ public class ServletHorario extends HttpServlet { for (int t = 1; t <= x; t++) { pw.println("<tr>"); String bloqueGrupoDia = ""; - for (int f = 1; f <= 6; f++) { + for (int f = 1; f <= codigonuevo; f++) { for (int j = 0; j < array1.length; j++) { String[] array2 = array1[j].split("#"); @@ -4109,7 +4266,7 @@ public class ServletHorario extends HttpServlet { + " <th colspan='5' style='background-color:#307ECC; color:white;'> " + " <div class=\"pull-right action-buttons\">\n" + " <a class=\"white\" href=\"javascript:editarGrupo('" + cantidad + "','" + cadenaAula2 + "','" + codigoGrupo + "')\">\n" - + " <i class=\"ace-icon fa fa-cogs bigger-100\"> Edición en grupo</i>\n" + + " <i class=\"ace-icon fa fa-cogs bigger-100\"> Agrupacion</i>\n" + " </a>\n" + " </div>" + " </th>" @@ -5122,6 +5279,23 @@ public class ServletHorario extends HttpServlet { } + private void listarVistaDobleDisponibilidad2(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setContentType("application/json"); + PrintWriter pw = response.getWriter(); + JSONObject json = new JSONObject(request.getParameter("json")); + HorarioServices service = new HorarioServices(); + JSONObject jReponse = service.listarVistaDobleDisponibilidad2(json); + pw.print(jReponse); + } + private void listarVistaDobleDisponibilidadSinZona(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setContentType("application/json"); + PrintWriter pw = response.getWriter(); + JSONObject json = new JSONObject(request.getParameter("json")); + HorarioServices service = new HorarioServices(); + JSONObject jReponse = service.listarVistaDobleDisponibilidadSinZona(json); + pw.print(jReponse); + } + } diff --git a/src/java/pe/siso/horario/Servlets/ServletRedirect.java b/src/java/pe/siso/horario/Servlets/ServletRedirect.java new file mode 100644 index 0000000..5f85234 --- /dev/null +++ b/src/java/pe/siso/horario/Servlets/ServletRedirect.java @@ -0,0 +1,76 @@ + +package pe.siso.horario.Servlets; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import pe.siso.horario.Beans.Usuario; + +/** + * + * @author sistem20user + */ +@WebServlet(name = "ServletRedirect", urlPatterns = {"/ServletRedirect"}) +public class ServletRedirect extends HttpServlet { + + + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + String dni=request.getParameter("dni"); + String prueba="20017475"; + HttpSession session_actual = request.getSession(true); + Usuario usuario = (Usuario) session_actual.getAttribute("usuario"); + + response.sendRedirect("/horario/vista/vistaConformidad.jsp?dni="+prueba); + + +// +// request.getRequestDispatcher("/vista/vistaConformidad.jsp").forward(request, response); + + } + + // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> + /** + * Handles the HTTP <code>GET</code> method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Handles the HTTP <code>POST</code> method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// </editor-fold> + +} diff --git a/src/java/pe/siso/horario/Servlets/ServletUsuario.java b/src/java/pe/siso/horario/Servlets/ServletUsuario.java index d8e45a2..5c5fc4b 100644 --- a/src/java/pe/siso/horario/Servlets/ServletUsuario.java +++ b/src/java/pe/siso/horario/Servlets/ServletUsuario.java @@ -464,7 +464,8 @@ public class ServletUsuario extends HttpServlet { }else{ pw.println("<option value=''>[Seleccione]</option>"); - pw.println("<option value='todo'>TODAS</option>"); + pw.println("<option value='todo' style='font-weight: bold;font-style: italic;'>TODAS LAS SEDES PART.1</option>"); + pw.println("<option value='todo2' style='font-weight: bold;font-style: italic;'>TODAS LAS SEDES PART.2</option>"); for (int i = 0; i < lista.size(); i++) { pw.println("<option value='" + lista.get(i).getCodigoSede() + "'>" + lista.get(i).getNombreSede() + "</option>"); diff --git a/web/vista/cambioReemplazoDocente.jsp b/web/vista/cambioReemplazoDocente.jsp index caa1f47..c852574 100644 --- a/web/vista/cambioReemplazoDocente.jsp +++ b/web/vista/cambioReemplazoDocente.jsp @@ -17,11 +17,13 @@ <link rel="stylesheet" href="../assets/css/font-awesome.css" /> <link rel="stylesheet" href="../assets/css/jquery-ui.css" /> <link rel="stylesheet" href="../assets/css/ace-fonts.css" /> - <link href="../assets/css/datepicker.css" rel="stylesheet" type="text/css"/> - <link href="../assets/css/daterangepicker.css" rel="stylesheet" type="text/css"/> - <link href="../assets/css/bootstrap-datetimepicker.css" rel="stylesheet" type="text/css"/> + + <link href="../assets/css/datepicker.css" rel="stylesheet" type="text/css"/> + <link href="../assets/css/daterangepicker.css" rel="stylesheet" type="text/css"/> + <link href="../assets/css/bootstrap-datetimepicker.css" rel="stylesheet" type="text/css"/> <link rel="stylesheet" href="../assets/css/ace.css" class="ace-main-stylesheet" id="main-ace-style" /> <script src="../assets/js/ace-extra.js"></script> + @@ -157,7 +159,9 @@ <select id="txt_tipo_reporte" class='form-control validate[required]'> <option value="1">Cambio fijo</option> <option value="2">Reemplazo por dia</option> + <option value="4">Registro y Eliminacion</option> <option value="3">Baja</option> + </select> </div> </div> @@ -650,6 +654,9 @@ window.jQuery || document.write("<script src='../assets/js/jquery1x.js'>"+"<"+"/ case '3': href = 'exportar_bajas' break; + case '4': + href='exportar_registro_eliminacion' + break; default: } location.href = href + ".jsp?fechaDesde=" + fechaDesde + "&fechaHasta=" + fechaHasta @@ -897,10 +904,12 @@ window.jQuery || document.write("<script src='../assets/js/jquery1x.js'>"+"<"+"/ <script src="../docs/assets/js/language/html.js"></script> <script src="../docs/assets/js/language/css.js"></script> <script src="../docs/assets/js/language/javascript.js"></script> - <script src="../assets/js/date-time/bootstrap-datepicker.js" type="text/javascript"></script> - <script src="../assets/js/date-time/bootstrap-datetimepicker.js" type="text/javascript"></script> - <script src="../assets/js/date-time/bootstrap-timepicker.js" type="text/javascript"></script> - <script src="../assets/js/date-time/daterangepicker.js" type="text/javascript"></script> + + + <script src="../assets/js/date-time/bootstrap-datepicker.js" type="text/javascript"></script> + <script src="../assets/js/date-time/bootstrap-datetimepicker.js" type="text/javascript"></script> + <script src="../assets/js/date-time/bootstrap-timepicker.js" type="text/javascript"></script> + <script src="../assets/js/date-time/daterangepicker.js" type="text/javascript"></script> diff --git a/web/vista/crearUsuarios.jsp b/web/vista/crearUsuarios.jsp index 2328202..726a36f 100644 --- a/web/vista/crearUsuarios.jsp +++ b/web/vista/crearUsuarios.jsp @@ -1,79 +1,197 @@ -<%-- - Document : crearUsuarios - Created on : 15-feb-2019, 16:55:08 - Author : sistem20user ---%> - <%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ include file="validar.jsp" %> <!DOCTYPE html> -<html> +<html lang="es"> <head> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> - <title>JSP Page</title> - - <link rel="stylesheet" href="../assets/css/bootstrap.css" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> + <meta charset="utf-8" /> + <title>:::SISTEMA DE HORARIOS:::</title> + + <meta name="description" content="overview & stats" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> + + + + <link rel="stylesheet" href="../assets/css/bootstrap.css" /> <link rel="stylesheet" href="../assets/css/font-awesome.css" /> - <link rel="stylesheet" href="../assets/css/jquery-ui.css" /> + <link rel="stylesheet" href="../assets/css/jquery-ui.css" /> <link rel="stylesheet" href="../assets/css/ace-fonts.css" /> <link rel="stylesheet" href="../assets/css/ace.css" class="ace-main-stylesheet" id="main-ace-style" /> <script src="../assets/js/ace-extra.js"></script> - + + + + <!-- inline scripts related to this page --> + </head> - <body onload='abrirModal();'> - - <div id="dialog-registro" class="hide"> - <form autocomplete="off"> - <table width='100%' border='0'> - <tr> - <td>Nombre: </td> - <td><input type="text" name="txtusuario" id="txtUsuario" autocomplete="off" required=""/> </td> <td>Apellido Paterno : <input type="text" name="txtusuario" id="txtApellido" required="" autocomplete="off" onblur="crearUser();" /></td> - </tr> - - - <tr> - <td>Clave: </td> - <td><input type="text" name="txtclave" id="txtClave" required="" autocomplete="off" /></td> - </tr> - - - <tr> - - - <td>Usuario :</td> - <td> - <input type="text" name="txtclave" id="txtUser" required="" disabled/> - </td> - - </tr> - <tr> - <td>Año</td> - <td> - <select id="cmbAnio"> - <option value="2019">2019</option> - </select> - </td> - </tr> - <tr> - <td>Sede :</td> - <td> - <div id="divLocales"> - <select class="chosen-select form-control validate[required]" id="cmbSede" required="" > - <option value="">[Seleccione]</option> - </select> - </div> - </td> - - </tr> -<!-- <tr> - <td><input type="button" value='Crear Usuario' onclick="registroUsuario();"/></td> - </tr>--> - - </table> - - </form> + + <body class="no-skin" onLoad="cargar();cargarSede();"> + <!-- #section:basics/navbar.layout --> + <div id="navbar" class="navbar navbar-default"> + <script type="text/javascript"> + try { + ace.settings.check('navbar', 'fixed') + } catch (e) { + } + </script> + + <div class="navbar-container" id="navbar-container"> + <%@ include file="banner.jsp" %> + </div><!-- /.navbar-container --> + <p id="lblUsuario" style="display: none;"><%=usuario!=null?usuario.getCodigoTipoUsuario():""%></p> + + </div> - - <div id="dialog-noti1" class="hide"> + + + <!-- /section:basics/navbar.layout --> + <div class="main-container" id="main-container"> + <script type="text/javascript"> + try { + ace.settings.check('main-container', 'fixed') + } catch (e) { + } + </script> + + <!-- #section:basics/sidebar --> + <div id="sidebar" class="sidebar responsive"> + <script type="text/javascript"> + try { + ace.settings.check('sidebar', 'fixed') + } catch (e) { + } + </script> + <input id="codModulo" type="hidden" value="<%=menu!=null?menu.getCodModulo():""%>"> + <input id="codCategoria" type="hidden" value="<%=menu!=null?menu.getCodCategoria():""%>"> + <%@ include file="menu.jsp" %> + <!-- #section:basics/sidebar.layout.minimize --> + <div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse"> + <i class="ace-icon fa fa-angle-double-left" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i> + </div> + <!-- /section:basics/sidebar.layout.minimize --> + <script type="text/javascript"> + try { + ace.settings.check('sidebar', 'collapsed')} catch (e) { + } + </script> + </div> + + <!-- /section:basics/sidebar --> + <div class="main-content"> + <div class="main-content-inner"> + <!-- #section:basics/content.breadcrumbs --> + <div class="breadcrumbs" id="breadcrumbs"> + <script type="text/javascript"> + try { + ace.settings.check('breadcrumbs', 'fixed')} catch (e) { + } + </script> + + <ul class="breadcrumb"> + <li> + <i class="ace-icon fa fa-home home-icon"></i> + <a href="principal.jsp">INICIO</a> + </li> + <li class="active">USUARIOS</li> + </ul><!-- /.breadcrumb --> + </div> + + <!-- /section:basics/content.breadcrumbs --> + <div class="page-content"> + + <div class="page-header"> + <h1> + REGISTRO + <small> + <i class="ace-icon fa fa-angle-double-right"></i> + usuario observador + </small> + </h1> + </div><!-- /.page-header --> + + <div class="row"> + + + + + + <!-- ----------- CONTENEDOR DE FORMULARIOS--------INI----- --> + + <div class="col-sm-12" style="width:100%;"> + + <div class="col-sm-4"></div> + <div class="col-sm-4"> + <div class="widget-box widget-color-blue"> + <div class="widget-header"> + <h4 class="widget-title">Registrar Usuario Observador</h4> + </div> + + <div class="widget-body"> + <div class="widget-main no-padding"> + <form id="registroEncuesta" method="post"> + <fieldset> + <div class="row"> + <div class="col-sm-6 form-group"> + <label>Nombre: <span style='color:red;'>*</span></label> + <div> + <input type="text" id="txtUsuario" size="80" class='form-control validate[required]' autocomplete="off" > + </div> + </div> + <div class="col-sm-6 form-group"> + <label>Apellido Paterno <span style='color:red;'>*</span></label> + <div> + <input type="text" id="txtApellido" onblur="crearUser();" size="80" class='form-control validate[required]]' placeholder="" onblur="validaFecha(this.value);" autocomplete="off" > + </div> + </div> + </div> + <div class="row"> + <div class="col-sm-6 form-group"> + <label>Usuario</label> + <div> + <input type="text" disabled id="txtUser"> + </div> + </div> + <div class="col-sm-6 form-group"> + <label>Clave <span style='color:red;'>*</span></label> + <div> + <input type="text" id="txtClave" size="80" class='form-control validate[required]]' placeholder="" onblur="validaFecha(this.value);" autocomplete="off" > + </div> + </div> + </div> + <div class="row"> + <div class="col-lg-12 form-group"> + <label>Sede <span style='color:red;'>*</span></label> + <div id="divLocales"> + <select class="chosen-select form-control validate[required]" id="cmbSede" required="" > + <option value="">[Seleccione]</option> + </select> + + </div> + </div> + </div> + </fieldset> + <div class="form-actions center"> + <button class="btn btn-sm btn-info" type="button" onclick="validar_registro();"> + <i class="ace-icon fa fa-file-excel-o icon-on-right bigger-110"></i> + Registrar + </button> + </div> + </form> + </div> + </div> + </div> + </div> + <div class="col-sm-4"></div> + + </div> + + <!-- ----------- CONTENEDOR DE FORMULARIOS--------FIN----- --> + + + <!-- ::::::::::-ALERTAS-::::::::::::::: --> + + + <div id="dialog-noti1" class="hide"> Se registro con exito al usuario.<br> ¿Desea seguir registrando? </div> @@ -86,23 +204,53 @@ Se debe de completar todos los campos. </div> - - <!-- the following scripts are used in demo only for onpage help and you don't need them --> - <!--[if !IE]> --> + + + + <!-- ::::::::::-ALERTAS-::::::::::::::: --> + + + </div><!-- /.row --> + </div><!-- /.page-content --> + </div> + </div><!-- /.main-content --> + + <div class="footer"> + <%@ include file="footer.jsp" %> + </div> + + <a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse"> + <i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i> + </a> + </div><!-- /.main-container --> + + <!-- basic scripts --> + + <!--[if !IE]> --> <script type="text/javascript"> - window.jQuery || document.write("<script src='../assets/js/jquery.js'>"+"<"+"/script>"); - </script> + window.jQuery || document.write("<script src='../assets/js/jquery.js'>" + "<" + "/script>"); + </script> + + <!-- <![endif]--> + + <!--[if IE]> +<script type="text/javascript"> + window.jQuery || document.write("<script src='../assets/js/jquery1x.js'>"+"<"+"/script>"); +</script> +<![endif]--> <script type="text/javascript"> - if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.js'>"+"<"+"/script>"); + if ('ontouchstart' in document.documentElement) + document.write("<script src='../assets/js/jquery.mobile.custom.js'>" + "<" + "/script>"); </script> + <script src="../assets/js/jquery-ui.js"></script> <script src="../assets/js/bootstrap.js"></script> <!-- page specific plugin scripts --> - <script src="../assets/js/jquery-ui.js"></script> + <!--<script src="../assets/js/jquery-ui.js"></script>--> <script src="../assets/js/jquery.ui.touch-punch.js"></script> <!--[if lte IE 8]> - <script src="../assets/js/excanvas.js"></script> + <script src="../assets/js/excanvas.js"></script> <![endif]--> <script src="../assets/js/jquery-ui.custom.js"></script> <script src="../assets/js/jquery.ui.touch-punch.js"></script> @@ -135,12 +283,23 @@ <script src="../assets/js/ace/ace.widget-on-reload.js"></script> <script src="../assets/js/ace/ace.searchbox-autocomplete.js"></script> <script src="../assets/js/ace/ace.searchbox-autocomplete.js"></script> - - - <link rel="stylesheet" href="css/validationEngine.jquery.css" type="text/css"/> - + + + <link rel="stylesheet" href="css/validationEngine.jquery.css" type="text/css"/> + <!--<link rel="stylesheet" href="css/template.css" type="text/css"/>--> + + + <!-- inline scripts related to this page --> <script type="text/javascript"> - + + jQuery(function ($) { + let reg = $("#lblUsuario").text(); + if (reg === "6") { + $("#btnRegistrar").hide(); + $("#txtZona").prop('disabled', 'true'); + } + + //override dialog's title function to allow for HTML titles $.widget("ui.dialog", $.extend({}, $.ui.dialog.prototype, { _title: function (title) { @@ -151,152 +310,341 @@ title.text($title); } })); - - $('.dialogs,.comments').ace_scroll({ - size: 300 + + + + $("#id-btn-dialog2").on('click', function (e) {//-- + e.preventDefault(); + $("#dialog-confirm").removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle red'></i> Empty the recycle bin?</h4></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-trash-o bigger-110'></i> Delete all items", + "class": "btn btn-danger btn-xs", + click: function () { + $(this).dialog("close"); + } + } + , + { + html: "<i class='ace-icon fa fa-times bigger-110'></i> Cancel", + "class": "btn btn-xs", + click: function () { + $(this).dialog("close"); + } + } + ] + }); }); - - function abrirModal(){ - cargarSede(); - $("#dialog-registro").removeClass('hide').dialog({ - resizable: false, - modal: true, - width: 500, - title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Registrar Usuario</span></h4></div></div>", - title_html: true, - - buttons: [ + + $('.easy-pie-chart.percentage').each(function () { + var $box = $(this).closest('.infobox'); + var barColor = $(this).data('color') || (!$box.hasClass('infobox-dark') ? $box.css('color') : 'rgba(255,255,255,0.95)'); + var trackColor = barColor == 'rgba(255,255,255,0.95)' ? 'rgba(255,255,255,0.25)' : '#E2E2E2'; + var size = parseInt($(this).data('size')) || 50; + $(this).easyPieChart({ + barColor: barColor, + trackColor: trackColor, + scaleColor: false, + lineCap: 'butt', + lineWidth: parseInt(size / 10), + animate: /msie\s*(8|7|6)/.test(navigator.userAgent.toLowerCase()) ? false : 1000, + size: size + }); + }) + + $('.sparkline').each(function () { + var $box = $(this).closest('.infobox'); + var barColor = !$box.hasClass('infobox-dark') ? $box.css('color') : '#FFF'; + $(this).sparkline('html', { - html: "<i class='ace-icon fa fa-check bigger-110'></i> Registrar", - "class": "btn btn-primary btn-xs", - click: function () { - - let op=validar(); - - if(op){ - registroUsuario(); - }else{ - alerta6(); - } - } - }, { - html: "<i class='ace-icon fa fa-times bigger-110'></i> Cancelar", - "class": "btn btn-danger btn-xs", - click: function () { - $(this).dialog("close"); + tagValuesAttribute: 'data-values', + type: 'bar', + barColor: barColor, + chartRangeMin: $(this).data('min') || 0 + }); + }); + + + //flot chart resize plugin, somehow manipulates default browser resize event to optimize it! + //but sometimes it brings up errors with normal resize event handlers + $.resize.throttleWindow = false; + + var placeholder = $('#piechart-placeholder').css({'width': '90%', 'min-height': '150px'}); + var data = [ + {label: "social networks", data: 38.7, color: "#68BC31"}, + {label: "search engines", data: 24.5, color: "#2091CF"}, + {label: "ad campaigns", data: 8.2, color: "#AF4E96"}, + {label: "direct traffic", data: 18.6, color: "#DA5430"}, + {label: "other", data: 10, color: "#FEE074"} + ] + function drawPieChart(placeholder, data, position) { + $.plot(placeholder, data, { + series: { + pie: { + show: true, + tilt: 0.8, + highlight: { + opacity: 0.25 + }, + stroke: { + color: '#fff', + width: 2 + }, + startAngle: 2 } + }, + legend: { + show: true, + position: position || "ne", + labelBoxBorderColor: null, + margin: [-30, 15] } - ] + , + grid: { + hoverable: true, + clickable: true + } + }) + } + drawPieChart(placeholder, data); + + /** + we saved the drawing function and the data to redraw with different position later when switching to RTL mode dynamically + so that's not needed actually. + */ + placeholder.data('chart', data); + placeholder.data('draw', drawPieChart); + + + //pie chart tooltip example + var $tooltip = $("<div class='tooltip top in'><div class='tooltip-inner'></div></div>").hide().appendTo('body'); + var previousPoint = null; + + placeholder.on('plothover', function (event, pos, item) { + if (item) { + if (previousPoint != item.seriesIndex) { + previousPoint = item.seriesIndex; + var tip = item.series['label'] + " : " + item.series['percent'] + '%'; + $tooltip.show().children(0).text(tip); + } + $tooltip.css({top: pos.pageY + 10, left: pos.pageX + 10}); + } else { + $tooltip.hide(); + previousPoint = null; + } + + }); + + ///////////////////////////////////// + $(document).one('ajaxloadstart.page', function (e) { + $tooltip.remove(); }); + + + + + var d1 = []; + for (var i = 0; i < Math.PI * 2; i += 0.5) { + d1.push([i, Math.sin(i)]); } - - function crearUser(){ - - - let nombre=$("#txtUsuario").val(); - let apellido=$("#txtApellido").val(); - let generateUser=nombre.substring(0,1); - let apellidofinal=apellido.replace(/ /g, ""); - - $("#txtUser").val(generateUser+apellidofinal); - + + var d2 = []; + for (var i = 0; i < Math.PI * 2; i += 0.5) { + d2.push([i, Math.cos(i)]); } - - function validar(){ - - let flag=false; - let user=$("#txtUsuario").val(); - let clave=$("#txtClave").val(); - let sede=$("#cmbSede option:selected").val(); - - if(user == "" || clave == "" || sede == ""){ - flag=false; - }else{ - flag=true; + + var d3 = []; + for (var i = 0; i < Math.PI * 2; i += 0.2) { + d3.push([i, Math.tan(i)]); } - - - return flag; - } - - - function cargarSede() { - $.ajax({ - type: 'POST', - url: '../ServletUsuario?accion=cargarSede2', - success: function (resultado) { -// close_carga(); - $("#divLocales").html(resultado); - }, complete: function () { - + + + var sales_charts = $('#sales-charts').css({'width': '100%', 'height': '220px'}); + $.plot("#sales-charts", [ + {label: "Domains", data: d1}, + {label: "Hosting", data: d2}, + {label: "Services", data: d3} + ], { + hoverable: true, + shadowSize: 0, + series: { + lines: {show: true}, + points: {show: true} + }, + xaxis: { + tickLength: 0 + }, + yaxis: { + ticks: 10, + min: -2, + max: 2, + tickDecimals: 3 + }, + grid: { + backgroundColor: {colors: ["#fff", "#fff"]}, + borderWidth: 1, + borderColor: '#555' } }); + + + $('#recent-box [data-rel="tooltip"]').tooltip({placement: tooltip_placement}); + function tooltip_placement(context, source) { + var $source = $(source); + var $parent = $source.closest('.tab-content') + var off1 = $parent.offset(); + var w1 = $parent.width(); + + var off2 = $source.offset(); + //var w2 = $source.width(); + + if (parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2)) + return 'right'; + return 'left'; + } + + + $('.dialogs,.comments').ace_scroll({ + size: 300 + }); + + + //Android's default browser somehow is confused when tapping on label which will lead to dragging the task + //so disable dragging when clicking on label + var agent = navigator.userAgent.toLowerCase(); + if ("ontouchstart" in document && /applewebkit/.test(agent) && /android/.test(agent)) + $('#tasks').on('touchstart', function (e) { + var li = $(e.target).closest('#tasks li'); + if (li.length == 0) + return; + var label = li.find('label.inline').get(0); + if (label == e.target || $.contains(label, e.target)) + e.stopImmediatePropagation(); + }); + + $('#tasks').sortable({ + opacity: 0.8, + revert: true, + forceHelperSize: true, + placeholder: 'draggable-placeholder', + forcePlaceholderSize: true, + tolerance: 'pointer', + stop: function (event, ui) { + //just for Chrome!!!! so that dropdowns on items don't appear below other items after being moved + $(ui.item).css('z-index', 'auto'); + } + } + ); + $('#tasks').disableSelection(); + $('#tasks input:checkbox').removeAttr('checked').on('click', function () { + if (this.checked) + $(this).closest('li').addClass('selected'); + else + $(this).closest('li').removeClass('selected'); + }); + + + //show the dropdowns on top or bottom depending on window height and menu position + $('#task-tab .dropdown-hover').on('mouseenter', function (e) { + var offset = $(this).offset(); + + var $w = $(window) + if (offset.top > $w.scrollTop() + $w.innerHeight() - 100) + $(this).addClass('dropup'); + else + $(this).removeClass('dropup'); + }); + + + + }); + + //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + + + + + + + + function validar_registro() { + let validado = validar(); + if (validado) { + registroUsuario(); + }else{ + alerta6(); + } } - - - function registroUsuario(){ - let user=$("#txtUser").val(); - let clave=$("#txtClave").val(); - let sede=$("#cmbSede option:selected").val(); - + + function validar() { + + let flag = false; + let user = $("#txtUsuario").val(); + let clave = $("#txtClave").val(); + let sede = $("#cmbSede option:selected").val(); + + if (user == "" || clave == "" || sede == "") { + flag = false; + } else { + flag = true; + } + + + return flag; + } + function registroUsuario() { + let user = $("#txtUser").val(); + let clave = $("#txtClave").val(); + let sede = $("#cmbSede option:selected").val(); + $.ajax({ - url:'../ServletUsuario?accion=registroUsuarioObservador', - type:'POST', - data:{ - user:user, - pass:clave, - sede:sede + url: '../ServletUsuario?accion=registroUsuarioObservador', + type: 'POST', + data: { + user: user, + pass: clave, + sede: sede }, success: function (data, textStatus, jqXHR) { - if(data.trim() == "1"){ - alerta4(); - }else if(data.trim() == "0"){ + if (data.trim() == "1") { + alerta4(); + } else if (data.trim() == "0") { alerta5(); } - - - } + + + } }); - + } - - - function alerta4(){ - $("#dialog-noti1").removeClass('hide').dialog({ + function alerta5(){ + $("#dialog-noti2").removeClass('hide').dialog({ resizable: false, modal: true, - title: "<div class='widget-color-green' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Notificación</span></h4></div></div>", + title: "<div class='widget-color-red' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Advertencia</span></h4></div></div>", title_html: true, buttons: [ { - html: "<i class='ace-icon fa fa-check bigger-110'></i> SI", - "class": "btn btn-success btn-xs", - click: function () { - $("#txtUsuario").val(""); - $("#txtClave").val(""); - $("#txtApellido").val(""); - $("#txtUser").val(""); - - $(this).dialog("close"); - document.getElementById("txtUsuario").focus(); - - } - }, - { - html: "<i class='ace-icon fa fa-times bigger-110'></i> NO", + html: "<i class='ace-icon fa fa-check bigger-110'></i> Cerrar", "class": "btn btn-danger btn-xs", click: function () { $(this).dialog("close"); - $("#dialog-registro").dialog("close"); + } } + ] }); } - function alerta5(){ - $("#dialog-noti2").removeClass('hide').dialog({ + + function alerta6(){ + $("#dialog-noti3").removeClass('hide').dialog({ resizable: false, modal: true, title: "<div class='widget-color-red' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Advertencia</span></h4></div></div>", @@ -314,27 +662,117 @@ ] }); } - function alerta6(){ - $("#dialog-noti3").removeClass('hide').dialog({ + + + + function alerta4(){ + $("#dialog-noti1").removeClass('hide').dialog({ resizable: false, modal: true, - title: "<div class='widget-color-red' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Advertencia</span></h4></div></div>", + title: "<div class='widget-color-green' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Notificación</span></h4></div></div>", title_html: true, buttons: [ { - html: "<i class='ace-icon fa fa-check bigger-110'></i> Cerrar", - "class": "btn btn-danger btn-xs", + html: "<i class='ace-icon fa fa-check bigger-110'></i> SI", + "class": "btn btn-success btn-xs", click: function () { + $("#txtUsuario").val(""); + $("#txtClave").val(""); + $("#txtApellido").val(""); + $("#txtUser").val(""); + $(this).dialog("close"); + document.getElementById("txtUsuario").focus(); } + }, + { + html: "<i class='ace-icon fa fa-times bigger-110'></i> NO", + "class": "btn btn-danger btn-xs", + click: function () { + $(this).dialog("close"); + $("#dialog-registro").dialog("close"); + } } - ] }); } - + + + + + + function cargarSede() { + $.ajax({ + type: 'POST', + url: '../ServletUsuario?accion=cargarSede2', + success: function (resultado) { + // close_carga(); + $("#divLocales").html(resultado); + }, complete: function () { + + } + }); + } + + function crearUser() { + + + let nombre = $("#txtUsuario").val(); + let apellido = $("#txtApellido").val(); + let generateUser = nombre.substring(0, 1); + let apellidofinal = apellido.replace(/ /g, ""); + + $("#txtUser").val(generateUser + apellidofinal); + + } + + + + + + + + + + $('input').keypress(function (e) { + if (e.which == 13) { + return false; + } + }); + + function cargando() { + $("#dialog-cargando").removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-header' ><h4 class='smaller'><i class='fa fa-spinner'></i> Cargando...</h4></div>", + title_html: true + }); + } + + function close_carga() { + $("#dialog-cargando").dialog("close"); + } + + + + </script> - </body> - + + <!-- the following scripts are used in demo only for onpage help and you don't need them --> + + <link rel="stylesheet" href="../assets/css/ace.onpage-help.css" /> + <link rel="stylesheet" href="../docs/assets/js/themes/sunburst.css" /> + + <script type="text/javascript"> ace.vars['base'] = '..';</script> + <script src="../assets/js/ace/elements.onpage-help.js"></script> + <script src="../assets/js/ace/ace.onpage-help.js"></script> + <script src="../docs/assets/js/rainbow.js"></script> + <script src="../docs/assets/js/language/generic.js"></script> + <script src="../docs/assets/js/language/html.js"></script> + <script src="../docs/assets/js/language/css.js"></script> + <script src="../docs/assets/js/language/javascript.js"></script> + <script src="js/languages/jquery.validationEngine-es.js" type="text/javascript" charset="utf-8"></script> + <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script> + </html> diff --git a/web/vista/exportarHorarioDocentePersonalizadoPlana.jsp b/web/vista/exportarHorarioDocentePersonalizadoPlana.jsp index 1595d3b..a3e8729 100644 --- a/web/vista/exportarHorarioDocentePersonalizadoPlana.jsp +++ b/web/vista/exportarHorarioDocentePersonalizadoPlana.jsp @@ -19,14 +19,31 @@ padding: 10px } </style> + + <% + String textoplana = request.getParameter("textoplana"); + %> </head> <body> - <strong>Leyenda :</strong> - <p style="font-size: 120%;"> Cuadros con (X) : Sin disponibilidad</p> - <p style="font-size: 120%;"> Cuadros en blanco : Con disponibilidad</p> + <tr> + <td><strong>Leyenda :</strong><td> + <tr> + <td> Cuadros con (X) : Sin disponibilidad - </td> + </tr> + <tr> + <td> Cuadros en blanco : Con disponibilidad</td> + </tr> + + </tr> + + <tr> + <td align='center' colspan='12' ><h3>REPORTE POR PLANA - <%=textoplana%></h3></td> + </tr> + <% String plana = request.getParameter("plana"); String periodo = request.getParameter("periodo"); + String correoDocente=""; String direccionDocente=""; String celularDocente=""; @@ -37,16 +54,16 @@ JSONObject jparam=new JSONObject(); - jparam.put("codigoPeriodo",periodo); + jparam.put("codigoPeriodo2",periodo); jparam.put("codigoPlana",plana); - JSONObject objeto=servicios.listarVistaDobleDisponibilidad(jparam); + JSONObject objeto=servicios.listarVistaDobleDisponibilidad2(jparam); JSONArray arrayPersona = objeto.getJSONArray("data"); // response.setContentType("application/vnd.ms-excel; "); - response.setHeader("Content-Disposition","attachment; filename=UsuarioDocente.xls"); + response.setHeader("Content-Disposition","attachment; filename="+textoplana+".xls"); for(Object objetoPersona : arrayPersona){ @@ -64,6 +81,8 @@ direccionDocente=dataPersona.getString("direccion"); } + + if(dataPersona.has("celular")){ celularDocente=dataPersona.getString("celular"); } @@ -71,7 +90,6 @@ if(dataPersona.has("distrito")){ distrito=dataPersona.getString("distrito"); } - @@ -89,13 +107,15 @@ if(!dataPersona.isNull("disponibilidad")){ String [] disponibilidad = dataPersona.getString("disponibilidad").split("-"); for(int i= 0; i < disponibilidad.length; i++){ - String turno = disponibilidad[i].split("#")[0]; - String dia = disponibilidad[i].split("#")[1]; + if(disponibilidad[i].contains("#")){ + String turno = disponibilidad[i].split("#")[0]; + String dia = disponibilidad[i].split("#")[1]; - if(turno.equals("1")){ - diaM.add(dia); - } else if(turno.equals("2")){ - diaT.add(dia); + if(turno.equals("1")){ + diaM.add(dia); + } else if(turno.equals("2")){ + diaT.add(dia); + } } } } @@ -116,17 +136,16 @@ } - String borderT="style='border:solid 0.5pt #000000;vertical-align:middle; background-color:#307ECC;color:white;width:-2;height:22; ' "; - String borderTD="style='border:solid 0.5pt #000000;vertical-align:middle; background-color:#FFCC99;width:-2;height:;' "; + String borderT="style='border:solid 0.5pt #000000;vertical-align:middle; background-color:#808080;color:white;width:-2;height:22; ' "; + String borderTD="style='border:solid 0.5pt #000000;vertical-align:middle; background-color:#A6A6A6;width:-2;height:;' "; String border="style='border:solid 0.5pt #000000;vertical-align:middle;width:-2;height:25;'"; %> - - <table border="1" width='20'> - <tr> - <td colspan="4" height='10'> </td> - </tr> + + <table border="1" width='10'> + + <tr> <td colspan="0"<%=borderT%> ><b>DOCENTE:</b></td> <td colspan="0" <%=border%>><font><b><%=nombreDocente%></b></font></td> @@ -142,7 +161,7 @@ </tr> <tr> - <td colspan="2" style="background-color:#307ECC;color:white;" ><b>DIRECCIÓN:</b></td> + <td colspan="0" <%=borderT%>><b>DIRECCIÓN:</b></td> <td colspan="0" height='50'><font><b><%=direccionDocente%></b></font></td> </tr> <tr> @@ -154,7 +173,7 @@ <td colspan="0" <%=border%> ><font><b><%=promedio%></b></font></td> </tr> <tr> - <td height='10' colspan="1" ></td> + <td height='5' colspan="1" ></td> </tr> <tr> diff --git a/web/vista/exportarHorarioTodoPeriodo2.jsp b/web/vista/exportarHorarioTodoPeriodo2.jsp index 6480b6e..8816bd6 100644 --- a/web/vista/exportarHorarioTodoPeriodo2.jsp +++ b/web/vista/exportarHorarioTodoPeriodo2.jsp @@ -98,10 +98,6 @@ if(segundo<10){ secAc = "0"+segundo; }else{ secAc = ""+segundo; } - - - - %> @@ -196,7 +192,7 @@ %> <tr> - <td height='20' colspan='12' align='center'><H3><font color='#006090'><b>AULA:</b> <%=nomAula%></font> </H3></td> + <td height='20' colspan='12' align='center'><H3><font color='#006090'><b>SEDE:</b> <%=nomAula%></font> </H3></td> </tr> <tr> <td height='15' width='35' ></td> @@ -212,7 +208,7 @@ <td height='15' width='35' ></td> <td height='15' width='130' ></td> </tr> - <tr > + <tr> <td width='140' <%=borderColorTitulo%> align='center' colspan='2'>LUNES</td> <td width='140' <%=borderColorTitulo%> align='center' colspan='2'>MARTES</td> <td width='140' <%=borderColorTitulo%> align='center' colspan='2'>MIÉRCOLES</td> @@ -223,8 +219,6 @@ <% String codPeriodo2 = ""+codPeriodo; - - String HorIni=""; String HorFin=""; int dia1=0; int dia2=0; int dia3=0; int dia4=0; int dia5=0; int dia6=0; @@ -250,6 +244,7 @@ HorIni=hora1[0]; HorFin=hora1[1]; bloqueGrupoDia = array2[0]; + if(f==1){ dia1++; diaPos=dia1; diaGen=f;} else if(f==2){ dia2++; diaPos=dia2; diaGen=f;} else if(f==3){ dia3++; diaPos=dia3; diaGen=f;} @@ -269,7 +264,7 @@ DatosHorario = serviciosHor.consultarDatosHorarioAulaPorPosicionDiaria(aulas[i],codPeriodo2,dia,posicion); %> - <td <%=border%> align='center' width='35' style='color:white; background-color:#62A8D1; vertical-align:middle; font-size: 10px; '> + <td <%=border%> align='center' width='35' style='color:white; background-color:#62A8D1; vertical-align:middle; font-size: 10px;'> <%=HorIni%> <br> <%=HorFin%> @@ -321,7 +316,7 @@ }else{ %> - <td <%=border%> width='130' align='center' style=' font-size: 10px; '> + <td <%=border%> width='130' align='center' style=' font-size: 10px;'> <b><%=DatosHorario.getH_nombreCurso()%></b><br> <%=DatosHorario.getH_apellidosDocente()%>, <%=DatosHorario.getH_nombreDocente()%> </td> diff --git a/web/vista/exportarHorarioTodoPeriodoSedes2doGrado.jsp b/web/vista/exportarHorarioTodoPeriodoSedes2doGrado.jsp index 0218b80..8c2b1e7 100644 --- a/web/vista/exportarHorarioTodoPeriodoSedes2doGrado.jsp +++ b/web/vista/exportarHorarioTodoPeriodoSedes2doGrado.jsp @@ -124,11 +124,12 @@ //String codSede = request.getParameter("codSede"); String periodo = request.getParameter("periodo"); + String parte=request.getParameter("parte"); int codPeriodo = Integer.parseInt(periodo); AulaServices serviciosAula = new AulaServices(); ArrayList<Aula> listaDatos = null; - listaDatos = serviciosAula.listarDatosHorairo2do(periodo); + listaDatos = serviciosAula.listarDatosHorairo2do(periodo,parte); for(int z=0;z<listaDatos.size();z++){ @@ -196,7 +197,7 @@ %> <tr> - <td height='20' colspan='12' align='center'><H3><font color='#006090'><b>AULA:</b> <%=nomAula%></font> </H3></td> + <td height='20' colspan='12' align='center'><H3><font color='#006090'><b>SEDE:</b> <%=nomAula%></font> </H3></td> </tr> <tr> <td height='15' width='35' ></td> @@ -334,7 +335,7 @@ }else{ %> -<!-- <td colspan='2' width='140' align='center' ></td>--> + <!-- <td colspan='2' width='140' align='center' ></td>--> <td <%=border%> colspan='2' width='140' align='center' style='background-color: #FF7C80; color: white; vertical-align:middle; font-size: 10px; ' >SIN HORARIO</td> <% } diff --git a/web/vista/exportar_registro_eliminacion.jsp b/web/vista/exportar_registro_eliminacion.jsp new file mode 100644 index 0000000..34f2f15 --- /dev/null +++ b/web/vista/exportar_registro_eliminacion.jsp @@ -0,0 +1,145 @@ +<%-- + Document : exportar_cambios_fijos + Created on : 31-oct-2018, 17:01:58 + Author : sistem20user +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@page import="pe.siso.horario.Beans.HorarioCF"%> +<%@page import="pe.siso.horario.Beans.Aula"%> +<%@page import="pe.siso.horario.Beans.Docente"%> +<%@page import="pe.siso.horario.Services.DocenteServices"%> +<%@page import="pe.siso.horario.Services.AulaServices"%> +<%@page import="java.util.ArrayList"%> +<%@page import="pe.siso.horario.Beans.Usuario"%> +<%@page import="java.time.format.DateTimeFormatter"%> +<%@page import="java.time.LocalDateTime"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>JSP Page</title> + <style> + #dg{ + background-color: #D9D2E9; + font-weight: bold; + } + #ds{ + background-color: #FFF2CC; + font-weight: bold; + } + #di{ + background-color: #C9DAF8; + font-weight: bold; + } + </style> + </head> + <body> + <% +// + response.setContentType("application/vnd.ms-excel; "); + response.setHeader("Content-Disposition","attachment; filename=cambio-fijo.xls"); + + + HttpSession session_actual = request.getSession(true); + Usuario usuario=(Usuario)session_actual.getAttribute("usuario"); + + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy"); + LocalDateTime now = LocalDateTime.now(); + + String fechaDesde = request.getParameter("fechaDesde"); + String fechaHasta = request.getParameter("fechaHasta"); + String[] dias = {"Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo"}; + +// String centrado="style='vertical-align:middle;' "; + String centrado=" align='center' "; + + AulaServices serviceAula = new AulaServices(); + + DocenteServices serviceDocente = new DocenteServices(); + ArrayList<HorarioCF> lista = serviceDocente.listarRegistrosNuevosYEliminados(fechaDesde,fechaHasta); + %> + + <table cellpadding= '0' cellspacing= '0'> + <tr> + <td <%=centrado%> colspan='5' align='center'><h3>LISTADO DE REGISTROS Y ELIMINACION DE DOCENTES</h3></td> + </tr> + <tr> + <td colspan='5' height='10'></td> + </tr> + <tr> + <td colspan='3' >FUENTE: SISTEMA DE HORARIOS</td> + <td colspan='2' align='right'>SACO OLIVEROS - SISTEMAS</td> + </tr> + <tr> + <td colspan='3' >RESPONSABLE: <%=usuario!=null?usuario.getNombreTipoUsuario():""%></td> + <td colspan='2' align='right'></td> + </tr> + <tr> + <td colspan='5' height='20'>FECHA: <%=dtf.format(now)%></td> + </tr> + <tr> + <td colspan='5' height='20'></td> + </tr> + </table> + <table border="2"> + <tr> + <td <%=centrado%> colspan="7" style="text-align: center;background-color: #D9D2E9;font-weight: bold;">DATOS GENERALES</td> + </tr> + <tr bgcolor="lightgreen"> + <td <%=centrado%> style="padding: 10px" id="dg">REGISTRO</td> + <td <%=centrado%> style="padding: 10px" id="ds">HORA REGISTRO</td> + <td <%=centrado%> style="padding: 10px" id="dg">SEDE</td> + <td <%=centrado%> style="padding: 10px" id="dg">DIA</td> + + <td <%=centrado%> style="padding: 10px;" id="dg">HORARIO</td> + + <td <%=centrado%> style="padding: 10px" id="dg">GRUPO ACADEMICO</td> + + <td <%=centrado%> style="padding: 10px" id="dg">AULAS</td> + + + <td <%=centrado%> style="padding: 10px" id="di">APELLIDOS Y NOMBRES</td> + <td <%=centrado%> style="padding: 10px" id="di">CURSO</td> + <td <%=centrado%> style="padding: 10px" id="di">ACCION</td> + + </tr> + <% + String estilo=""; + for(HorarioCF horario : lista){ + if(horario.getMotivoCambio().equals("ELIMINADO")){ + estilo="style='background-color:#D0CECE;padding : 10px;color:black;'"; + + }else{ + estilo="style='background-color:#FFD966;padding : 10px;'"; + } + + %> + <tr> + <td style="padding : 10px"><%=horario.getFechaRegistro()%></td> + <td style="padding : 10px"><%=horario.getHora()%></td> + <td style="padding : 10px"><%=horario.getNombreSede()%></td> + <td style="padding : 10px"><%=horario.getDia()%></td> + + <td style="padding : 10px"><%=horario.getHorario()%> </td> + <td style="padding : 10px"><%=horario.getGrupoAcademico()%></td> + <td style="padding : 10px"><%=horario.getCodigoAula()%></td> + + + + + <td style="padding : 10px"><%=horario.getDocenteEntrante()%></td> + <td style="padding : 10px"><%=horario.getCursoEntrante()%></td> + + <td <%=estilo%>><%=horario.getMotivoCambio()%></td> + + + + + </tr> + <% + } + %> + </table> + </body> +</html> diff --git a/web/vista/footer.jsp b/web/vista/footer.jsp index d1ccaed..ca55f7d 100644 --- a/web/vista/footer.jsp +++ b/web/vista/footer.jsp @@ -9,7 +9,7 @@ <div class="footer-content"> <span class="bigger-120"> <span class="blue bolder">Sistema </span> - de Horarios © 2017 + de Horarios © 2019 <img src="../assets/images/icons/internet explorer.png" class="align-middle"> diff --git a/web/vista/gen_hor_gen.jsp b/web/vista/gen_hor_gen.jsp index a67adf2..1254a58 100644 --- a/web/vista/gen_hor_gen.jsp +++ b/web/vista/gen_hor_gen.jsp @@ -960,13 +960,10 @@ close_carga(); // debugger $('#aula').html(resultado); + let op=$("#cmbSede").val(); - if(op === "todo"){ - $("#btnExportarHorSede").hide(); - } - if(op !== "todo"){ - $("#btnExportarTodo").hide(); - } + + name=$("#lblUsuario").text(); if(name === "6" || name === "5"){ @@ -1961,8 +1958,15 @@ function exportarTodo(){ //--2DOgrado var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>"; - window.location="exportarHorarioTodoPeriodoSedes2doGrado.jsp?periodo="+periodo; + let op=$("#cmbSede").val(); + window.location="exportarHorarioTodoPeriodoSedes2doGrado.jsp?periodo="+periodo+"&parte="+op; } + + + function questionPart(){ + + } + /*function exportarTodo(){ var codSede = $("#cmbSede").val(); diff --git a/web/vista/horario_plana2.jsp b/web/vista/horario_plana2.jsp index aa4717d..112dac0 100644 --- a/web/vista/horario_plana2.jsp +++ b/web/vista/horario_plana2.jsp @@ -718,9 +718,10 @@ function buscarCurso(){ var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>"; var plana = $("#cmbPlana").val(); + var textoplana = $("#cmbPlana option:selected").text(); //alert(periodo+" - "+plana); // window.location="exportarHorarioPorPlana2.jsp?periodo="+periodo+"&plana="+plana; - window.location="exportarHorarioDocentePersonalizadoPlana.jsp?periodo="+periodo+"&plana="+plana; + window.location="exportarHorarioDocentePersonalizadoPlana.jsp?periodo="+periodo+"&plana="+plana+"&textoplana="+textoplana; /*var codArea = $("#cmbArea").val(); var codPlana = $("#cmbPlana").val(); $.ajax({ diff --git a/web/vista/man_zona.jsp b/web/vista/man_zona.jsp index 1d4a6a3..43490d2 100644 --- a/web/vista/man_zona.jsp +++ b/web/vista/man_zona.jsp @@ -1075,11 +1075,8 @@ <script src="../docs/assets/js/language/generic.js"></script> <script src="../docs/assets/js/language/html.js"></script> <script src="../docs/assets/js/language/css.js"></script> - <script src="../docs/assets/js/language/javascript.js"></script> - - - - <script src="js/languages/jquery.validationEngine-es.js" type="text/javascript" charset="utf-8"></script> - <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script> + <script src="../docs/assets/js/language/javascript.js"></script> + <script src="js/languages/jquery.validationEngine-es.js" type="text/javascript" charset="utf-8"></script> + <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script> </html> diff --git a/web/vista/vistaDobleDisponibilidad.jsp b/web/vista/vistaDobleDisponibilidad.jsp index f28a677..76b8236 100644 --- a/web/vista/vistaDobleDisponibilidad.jsp +++ b/web/vista/vistaDobleDisponibilidad.jsp @@ -103,7 +103,7 @@ <!-- <a class="btn btn-app btn-light btn-xs align-left" onclick="window.print();" target="_blank" id="iconoImprimir"> <i class="ace-icon fa fa-print bigger-160"></i>--> <label>Zona:</label> - <select id="cmbZonas" onchange="listarDisponibilidad();"> + <select id="cmbZonas" onchange="listarDisponibilidad();activarPrint();"> </select> </div> @@ -150,7 +150,15 @@ listarZona() document.querySelector('#btnBuscar').addEventListener('click', function () { - listarDisponibilidad() + debugger + let cmbZonas=$("#cmbZonas option:selected").text(); + if(cmbZonas === "[SELECCIONE]"){ + alert("ELEGIR UNA ZONA DE BUSQUEDA"); + }else{ + listarDisponibilidad() + } + + }) }); @@ -186,18 +194,44 @@ let codigoPlana = document.querySelector('#cbPlana').value let codigoPeriodo = '<%= periodo!=null?periodo.getCodigoPeriodo():""%>' + console.log(codigoPeriodo) let codigoZona = document.querySelector('#cmbZonas').value // let distritos=new ZonaDistritoServices(); - if (codigoPlana && codigoPeriodo && codigoZona) { + if (codigoPlana && codigoPeriodo && codigoZona) { + + let json = { codigoPlana, codigoPeriodo, codigoZona } + + peticionWith3Parameters(json); + - $.ajax({ - url: '../ServletHorario?Accion=listarVistaDobleDisponibilidad', + + }else{ + + let codigoPeriodo2 = '<%= periodo!=null?periodo.getCodigoPeriodo():""%>' + +// let codigoPlana2 = document.querySelector('#cbPlana').value + + let json2={ + codigoPlana, + codigoPeriodo2 + } + + peticionSimple(json2); + } + + + } + + function peticionSimple(json){ + + $.ajax({ + url: '../ServletHorario?Accion=listarVistaDobleDisponibilidadSinZona', type: 'POST', dataType: 'json', data: { @@ -211,7 +245,8 @@ let nDia=[] let mensaje='No registrado' data.data.forEach(function (docente) { - if(typeof(docente.celular && docente.distrito && docente.zona) == "undefined"){ + console.log(docente) + if(typeof(docente.celular && docente.distrito) == "undefined"){ html += '<table>' html += '<div class="divider"></div>' @@ -225,6 +260,7 @@ html += '<p>Distrito: No registrado</p>' html += '<p>Direccion: No registrado</p>' html += '<p>Correo: No registrado</p>' + html += '</tr>' html += '<br>' @@ -384,23 +420,396 @@ } else { html += '<p>EL DOCENTE NO TIENE DISPONIBILIDAD REGISTRADA</p>' } - html += ` - </div> - ` + html += `</div>` + + }else{ + + html += '<div class="divider"></div>' + html += '<div class="section">' + + html +='<h6 id="nombreDocente" style="font-weight:bold;">' + docente.nombre + '</h6>' + html += '<label id="codDocente" style="visibility:hidden;">' + docente.codDocente + '</label>' + html += '<p>Celular: '+ docente.celular +'</p>' + html += '<p>Distrito: '+ docente.distrito +'</p>' + html += '<p>Direccion: '+ docente.direccion +'</p>' + html += '<p>Correo: '+ docente.correo +'</p>' + + html += '<br>' + + + + + if (docente.disponibilidad) { + + let disponibilidad = docente.disponibilidad.split('-') || [] + let diasM = [] + let diasT = [] + let aulasM = [] + let aulasT = [] + + if (docente.arrayAulas) { + docente.arrayAulas.forEach(v => { + if (v.turno == '1') { + aulasM.push(v) + } else if (v.turno == '2') { + aulasT.push(v) + } + }) + } + + let diasin=docente.diasin.split('-') || [] + let diasMS = [] + let diasTS = [] + + diasin.forEach(function(b){ + let nTurnoS = b.split('#')[0] + let nDiaS = b.split('#')[1] + + if (nTurnoS == '1') { + diasMS.push(nDiaS) + } else if (nTurno == '2') { + diasTS.push(nDiaS) + } + + }) + + + let bloqueo = docente.bloqueo.split('-') || [] + let diasMB = [] + let diasTB = [] + let aulasMB = [] + let aulasTB = [] + + bloqueo.forEach(function(b){ + let nTurno = b.split('#')[0] + let nDia = b.split('#')[1] + + if (nTurno == '1') { + diasMB.push(nDia) + } else if (nTurno == '2') { + diasTB.push(nDia) + } + + }) + + + disponibilidad.forEach(function (d) { + let turno = d.split('#')[0] + let dia = d.split('#')[1] + + if (turno == '1') { + diasM.push(dia) + } else if (turno == '2') { + diasT.push(dia) + } + }) + + html += '<p class="col s12">' + html += '<table class="centered">' + html += '<thead>' + html += '<tr>' + html += '<td>TURNO</td>' + html += '<td id="dia">LUNES</td>' + html += '<td id="dia">MARTES</td>' + html += '<td id="dia">MIERCOLES</td>' + html += '<td id="dia">JUEVES</td>' + html += '<td id="dia">VIERNES</td>' + html += '<td id="dia">SABADO</td>' + html += '</tr>' + html += '</thead>' + html += '<tbody>' + + + html += '<tr>' + html += '<td id="turno">M</td>' + + for (let i = 0; i < 6; i++) { + let aulas = aulasM.map(a => { + if (a.dia == i + 1) { + return a.sede + ' - ' + a.aulas + } + }) + + if (diasM.some(d => d == (i + 1))) { + + html += `<td class="green" onclick="colorChange(this);"> `+ aulas.join(' \n ') + `</td> ` + + } else if(diasMB.some(t => t == ( i + 1))){ + + html += '<td class="blue" onclick="colorChange(this);" id="changed"> ' + aulas.join(' \n ') + '</td> ' + + }else if(diasMS.some(r => r == ( i + 1))){ + + html += '<td class="blue" onclick="colorChange(this);" id="changed"> ' + aulas.join(' \n ') + '</td> ' + + } else { + + html += '<td class="red" onclick="colorChange(this);" id="changed"> ' + aulas.join(' \n ') + '</td> ' + } + } + - + html += '</tr>' + + html += '<tr>' + html += '<td id="turno">T</td>' + + for (let i = 0; i < 6; i++) { + let aulas = aulasT.map(a => { + + if (a.dia == i + 1) { + return a.sede + ' - ' + a.aulas + } + }) + if (diasT.some(d => d == (i + 1))) { + + html += `<td class="green" onclick="colorChange(this);"> ` + aulas.join(' \n ') + `</td> ` + + + }else if(diasTB.some( t => t == (i + 1))){ + + html += '<td class="blue" onclick="colorChange(this);" id="changed"> ' + aulas.join(' \n ') + '</td> ' + + }else if(diasTS.some(q => q == ( i + 1))){ + + html += '<td class="blue" onclick="colorChange(this);" id="changed"> ' + aulas.join(' \n ') + '</td>' + + } else { + + + html += '<td class="red" onclick="colorChange(this);" id="changed"> ' + aulas.join(' \n ') + '</td> ' + + } + } + html += '</tr>' + + html += '</tbody>' + html += '</table>' + html += '</p>' + + } else { + html += '<p>EL DOCENTE NO TIENE DISPONIBILIDAD REGISTRADA</p>' + } + + + html += ` + </div> + ` + + + } + + }) + document.querySelector('#divListaDisponibilidad').innerHTML = html + } + }) + + } + + + function peticionWith3Parameters(json){ + + $.ajax({ + url: '../ServletHorario?Accion=listarVistaDobleDisponibilidad', + type: 'POST', + dataType: 'json', + data: { + json: JSON.stringify(json) + }, + success: function (data, textStatus, jqXHR) { + + + let html = '' + let nTurno =[] + let nDia=[] + let mensaje='No registrado' + data.data.forEach(function (docente) { + if(typeof(docente.celular && docente.distrito) == "undefined"){ + + html += '<table>' + html += '<div class="divider"></div>' + html += '<div class="section">' + + html +='<h6 id="nombreDocente">' + docente.nombre + '<span></span><span></span><span style="margin-left:650px;font-size:20px;color:#6C7807"><i class="small material-icons" title="Puesto" style="color:black;">grade</i><strong>No registrado</strong></span></h6>' + html += '<label id="codDocente" style="visibility:hidden;">' + docente.codDocente + '</label>' + + html += '<tr>' + html += '<p>Celular: No registrado</p>' + html += '<p>Distrito: No registrado</p>' + html += '<p>Direccion: No registrado</p>' + html += '<p>Correo: No registrado</p>' + html += '<p>Zona: No registrado</p>' + html += '</tr>' + + html += '<br>' + + + + + if (docente.disponibilidad) { + + let disponibilidad = docente.disponibilidad.split('-') || [] + let diasM = [] + let diasT = [] + let aulasM = [] + let aulasT = [] + + if (docente.arrayAulas) { + docente.arrayAulas.forEach(v => { + if (v.turno == '1') { + aulasM.push(v) + } else if (v.turno == '2') { + aulasT.push(v) + } + }) + } + + let diasin=docente.diasin.split('-') || [] + let diasMS = [] + let diasTS = [] + + diasin.forEach(function(b){ + let nTurnoS = b.split('#')[0] + let nDiaS = b.split('#')[1] + + if (nTurnoS == '1') { + diasMS.push(nDiaS) + } else if (nTurno == '2') { + diasTS.push(nDiaS) + } + + }) + + + let bloqueo = docente.bloqueo.split('-') || [] + let diasMB = [] + let diasTB = [] + let aulasMB = [] + let aulasTB = [] + + bloqueo.forEach(function(b){ + let nTurno = b.split('#')[0] + let nDia = b.split('#')[1] + + if (nTurno == '1') { + diasMB.push(nDia) + } else if (nTurno == '2') { + diasTB.push(nDia) + } + + }) + + + disponibilidad.forEach(function (d) { + let turno = d.split('#')[0] + let dia = d.split('#')[1] + + if (turno == '1') { + diasM.push(dia) + } else if (turno == '2') { + diasT.push(dia) + } + }) + + html += '<p class="col s12">' + html += '<table class="centered" id="tableDisponibilidad">' + html += '<thead>' + html += '<tr>' + html += '<td>TURNO</td>' + html += '<td id="dia">LUNES</td>' + html += '<td id="dia">MARTES</td>' + html += '<td id="dia">MIERCOLES</td>' + html += '<td id="dia">JUEVES</td>' + html += '<td id="dia">VIERNES</td>' + html += '<td id="dia">SABADO</td>' + html += '</tr>' + html += '</thead>' + html += '<tbody>' + + + html += '<tr>' + html += '<td id="turno">M</td>' + + for (let i = 0; i < 6; i++) { + let aulas = aulasM.map(a => { + if (a.dia == i + 1) { + return a.sede + ' - ' + a.aulas + } + }) + + if (diasM.some(d => d == (i + 1))) { + + html += `<td class="green" onclick="colorChange(this);">` + aulas.join(' \n ') + `</td>` + + } else if(diasMB.some(t => t == ( i + 1))){ + + html += `<td class="blue" onclick="colorChange(this);" id="changed">` + aulas.join(' \n ') + `</td>` + + }else if(diasMS.some(r => r == ( i + 1))){ + + html += `<td class="blue" onclick="colorChange(this);" id="changed">` + aulas.join(' \n ') + `</td>` + + } else { + + html += `<td class="red" onclick="colorChange(this);" id="changed">` + aulas.join(' \n ') + `</td>` + } + } + + + html += '</tr>' + + html += '<tr>' + html += '<td id="turno">T</td>' + + for (let i = 0; i < 6; i++) { + let aulas = aulasT.map(a => { + + if (a.dia == i + 1) { + return a.sede + ' - ' + a.aulas + } + }) + if (diasT.some(d => d == (i + 1))) { + + html += `<td class="green" onclick="colorChange(this);">` + aulas.join(' \n ') + `</td>` + + }else if(diasTB.some( t => t == (i + 1))){ + + html += `<td class="blue" onclick="colorChange(this);" id="changed">` + aulas.join(' \n ') + `</td>` + + }else if(diasTS.some(q => q == ( i + 1))){ + + html += `<td class="blue" onclick="colorChange(this);" id="changed">` + aulas.join(' \n ') + `</td>` + + } else { + + + html += `<td class="red" onclick="colorChange(this);" id="changed">` + aulas.join(' \n ') + `</td>` + + } + } + + html += '</tr>' + + html += '</tbody>' + html += '</table>' + html += '</p>' + + + } else { + html += '<p>EL DOCENTE NO TIENE DISPONIBILIDAD REGISTRADA</p>' + } + html += `</div>` + }else{ - - html += '<div class="divider"></div>' html += '<div class="section">' - html +='<h6 id="nombreDocente" style="font-weight:bold;">' + docente.nombre + '<span></span><span></span><span style="margin-left:650px;font-size:25px;color:#6C7807"><img src="../assets/images/puesto_image.png" alt="" height="42" width="42"/><strong>'+docente.puesto+'</strong></span></h6>' + html +='<h6 id="nombreDocente" style="font-weight:bold;">' + docente.nombre + '<span></span><span></span><span style="margin-left:650px;font-size:25px;color:#6C7807"><img src="../assets/images/puesto_image.png" alt="Puesto" height="42" width="42"/><strong>'+docente.puesto+'</strong></span></h6>' html += '<label id="codDocente" style="visibility:hidden;">' + docente.codDocente + '</label>' html += '<p>Celular: '+ docente.celular +'</p>' html += '<p>Distrito: '+ docente.distrito +'</p>' @@ -573,16 +982,17 @@ - } + } }) document.querySelector('#divListaDisponibilidad').innerHTML = html } }) - } - + } + + function colorChange(obj){ @@ -606,8 +1016,8 @@ if($(obj).hasClass('blue')){ - let isBoss2 = confirm("¿Esta seguro de querer desbloquear el dia "+convertirDia(dia) +" ?"); - if(isBoss2){ + let question = confirm("¿Esta seguro de querer desbloquear el dia "+convertirDia(dia) +" ?"); + if(question){ $.ajax({ url:'../ServletHorario?Accion=rollbackDisponibilidad', @@ -650,9 +1060,9 @@ }else{ - let isBoss = confirm("¿Esta seguro de querer bloquear el dia "+convertirDia(dia) +" ?"); + let question = confirm("¿Esta seguro de querer bloquear el dia "+convertirDia(dia) +" ?"); - if(isBoss){ + if(question){ //aqui realizar peticion AJAX $.ajax({ diff --git a/web/vista/vistaTotalConformidad.jsp b/web/vista/vistaTotalConformidad.jsp new file mode 100644 index 0000000..2626c3e --- /dev/null +++ b/web/vista/vistaTotalConformidad.jsp @@ -0,0 +1,1040 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ include file="validar.jsp" %> +<!DOCTYPE html> +<html lang="es"> + <head> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> + <meta charset="utf-8" /> + <title>:::SISTEMA DE HORARIOS:::</title> + + <meta name="description" content="overview & stats" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> + + + + <link rel="stylesheet" href="../assets/css/bootstrap.css" /> + <link rel="stylesheet" href="../assets/css/font-awesome.css" /> + <link rel="stylesheet" href="../assets/css/jquery-ui.css" /> + <link rel="stylesheet" href="../assets/css/ace-fonts.css" /> + <link rel="stylesheet" href="../assets/css/ace.css" class="ace-main-stylesheet" id="main-ace-style" /> + <script src="../assets/js/ace-extra.js"></script> + + + + <!-- inline scripts related to this page --> + + </head> + + <body class="no-skin" onLoad="cargar();"> + <!-- #section:basics/navbar.layout --> + <div id="navbar" class="navbar navbar-default"> + <script type="text/javascript"> + try{ace.settings.check('navbar' , 'fixed')}catch(e){} + </script> + + <div class="navbar-container" id="navbar-container"> + <%@ include file="banner.jsp" %> + </div><!-- /.navbar-container --> + <p id="lblUsuario" style="display: none;"><%=usuario!=null?usuario.getCodigoTipoUsuario():""%></p> + + + </div> + + + <!-- /section:basics/navbar.layout --> + <div class="main-container" id="main-container"> + <script type="text/javascript"> + try{ace.settings.check('main-container' , 'fixed')}catch(e){} + </script> + + <!-- #section:basics/sidebar --> + <div id="sidebar" class="sidebar responsive"> + <script type="text/javascript"> + try{ace.settings.check('sidebar' , 'fixed')}catch(e){} + </script> + <input id="codModulo" type="hidden" value="<%=menu!=null?menu.getCodModulo():""%>"> + <input id="codCategoria" type="hidden" value="<%=menu!=null?menu.getCodCategoria():""%>"> + <%@ include file="menu.jsp" %> + <!-- #section:basics/sidebar.layout.minimize --> + <div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse"> + <i class="ace-icon fa fa-angle-double-left" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i> + </div> + <!-- /section:basics/sidebar.layout.minimize --> + <script type="text/javascript"> + try{ace.settings.check('sidebar' , 'collapsed')}catch(e){} + </script> + </div> + + <!-- /section:basics/sidebar --> + <div class="main-content"> + <div class="main-content-inner"> + <!-- #section:basics/content.breadcrumbs --> + <div class="breadcrumbs" id="breadcrumbs"> + <script type="text/javascript"> + try{ace.settings.check('breadcrumbs' , 'fixed')}catch(e){} + </script> + + <ul class="breadcrumb"> + <li> + <i class="ace-icon fa fa-home home-icon"></i> + <a href="principal.jsp">INICIO</a> + </li> + <li class="active">CONFORMIDAD</li> + </ul><!-- /.breadcrumb --> + </div> + + <!-- /section:basics/content.breadcrumbs --> + <div class="page-content"> + + <div class="page-header"> + <h1> + Conformidad + <small> + <i class="ace-icon fa fa-angle-double-right"></i> + Reporte + </small> + </h1> + </div><!-- /.page-header --> + + <div class="row"> + + + + + + <!-- ----------- CONTENEDOR DE FORMULARIOS--------INI----- --> + + <div class="col-sm-12" style="width:100%; height: 40px;"></div> + + <!-- ----------- CONTENEDOR DE FORMULARIOS--------FIN----- --> + + + <!-- ::::::::::-ALERTAS-::::::::::::::: --> + + <div id="dialog-confirm" class="hide"> + <br> + ¿Está seguro de registrar una nueva zona? + <br><br> + </div> + + + <div id="dialog-activo" class="hide"> + ¿Está seguro de activar/desactivar? + </div> + + <div id="dialog-estado" class="hide"> + ¿Está seguro de cambiar el estado? + </div> + + <div id="dialog-satisfaccion" class="hide"> + <br> + Se registró con éxito. + <br><br> + </div> + + <div id="dialog-noti1" class="hide"> + <br> + Se actualizó con éxito. + <br><br> + </div> + + <div id="dialog-confor1" class="hide"> + <br> + ¿Está seguro de actualizar el registro? + <br><br> + </div> + + <div id="dialog-confor2" class="hide"> + <br> + ¿Está seguro de inhabilitar la zona? + <br><br> + </div> + + <div id="dialog-confor3" class="hide"> + <br> + ¿Está seguro de habilitar el área? + <br><br> + </div> + + <div id="dialog-advertencia1" class="hide"> + <br> + La zona ingresada ya existe. + <br><br> + </div> + + <div id="dialog-advertencia2" class="hide"> + <br> + No se puede inhabilitar la zona porque tiene una o más sedes asignadas. + <br><br> + </div> + + <div id="dialog-advertencia3" class="hide"> + <br> + <p>No se puede editar la zona porque tiene una o más sedes asignadas.</p> + <div id="listaSedes"></div> + <br> + </div> + <div id="dialog-Alerta2" class="hide"> + <br> + Ocurrió un error en el registro. + <br><br> + </div> + + <div id="dialog-edit" class="hide"> + <br> + <form id="actualizar" class="formular" method="post"> + <div id="divFormulario"></div> + </form> + <br><br> + </div> + + <div id="dialog-cargando" class="hide"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr><td align="center"><img src="imagenes/cargando.gif" border=0></td></tr> + </table> + </div> + + + + <!-- ::::::::::-ALERTAS-::::::::::::::: --> + + + </div><!-- /.row --> + </div><!-- /.page-content --> + </div> + </div><!-- /.main-content --> + + <div class="footer"> + <%@ include file="footer.jsp" %> + </div> + + <a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse"> + <i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i> + </a> + </div><!-- /.main-container --> + + <!-- basic scripts --> + + <!--[if !IE]> --> + <script type="text/javascript"> + window.jQuery || document.write("<script src='../assets/js/jquery.js'>"+"<"+"/script>"); + </script> + + <!-- <![endif]--> + + <!--[if IE]> +<script type="text/javascript"> + window.jQuery || document.write("<script src='../assets/js/jquery1x.js'>"+"<"+"/script>"); +</script> +<![endif]--> + <script type="text/javascript"> + if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.js'>"+"<"+"/script>"); + </script> + <script src="../assets/js/jquery-ui.js"></script> + <script src="../assets/js/bootstrap.js"></script> + + <!-- page specific plugin scripts --> + <!--<script src="../assets/js/jquery-ui.js"></script>--> + <script src="../assets/js/jquery.ui.touch-punch.js"></script> + + <!--[if lte IE 8]> + <script src="../assets/js/excanvas.js"></script> + <![endif]--> + <script src="../assets/js/jquery-ui.custom.js"></script> + <script src="../assets/js/jquery.ui.touch-punch.js"></script> + <script src="../assets/js/jquery.easypiechart.js"></script> + <script src="../assets/js/jquery.sparkline.js"></script> + <script src="../assets/js/flot/jquery.flot.js"></script> + <script src="../assets/js/flot/jquery.flot.pie.js"></script> + <script src="../assets/js/flot/jquery.flot.resize.js"></script> + + <!-- ace scripts --> + <script src="../assets/js/ace/elements.scroller.js"></script> + <script src="../assets/js/ace/elements.colorpicker.js"></script> + <script src="../assets/js/ace/elements.fileinput.js"></script> + <script src="../assets/js/ace/elements.typeahead.js"></script> + <script src="../assets/js/ace/elements.wysiwyg.js"></script> + <script src="../assets/js/ace/elements.spinner.js"></script> + <script src="../assets/js/ace/elements.treeview.js"></script> + <script src="../assets/js/ace/elements.wizard.js"></script> + <script src="../assets/js/ace/elements.aside.js"></script> + <script src="../assets/js/ace/ace.js"></script> + <script src="../assets/js/ace/ace.ajax-content.js"></script> + <script src="../assets/js/ace/ace.touch-drag.js"></script> + <script src="../assets/js/ace/ace.sidebar.js"></script> + <script src="../assets/js/ace/ace.sidebar-scroll-1.js"></script> + <script src="../assets/js/ace/ace.submenu-hover.js"></script> + <script src="../assets/js/ace/ace.widget-box.js"></script> + <script src="../assets/js/ace/ace.settings.js"></script> + <script src="../assets/js/ace/ace.settings-rtl.js"></script> + <script src="../assets/js/ace/ace.settings-skin.js"></script> + <script src="../assets/js/ace/ace.widget-on-reload.js"></script> + <script src="../assets/js/ace/ace.searchbox-autocomplete.js"></script> + <script src="../assets/js/ace/ace.searchbox-autocomplete.js"></script> + + + <link rel="stylesheet" href="css/validationEngine.jquery.css" type="text/css"/> + <!--<link rel="stylesheet" href="css/template.css" type="text/css"/>--> + + + <!-- inline scripts related to this page --> + <script type="text/javascript"> + + jQuery(function($) { + let reg= $("#lblUsuario").text(); + if(reg === "6"){ + $("#btnRegistrar").hide(); + $("#txtZona").prop('disabled','true'); + } + + + //override dialog's title function to allow for HTML titles + $.widget("ui.dialog", $.extend({}, $.ui.dialog.prototype, { + _title: function(title) { + var $title = this.options.title || ' ' + if( ("title_html" in this.options) && this.options.title_html == true ) + title.html($title); + else title.text($title); + } + })); + + + + $( "#id-btn-dialog2" ).on('click', function(e) {//-- + e.preventDefault(); + $( "#dialog-confirm" ).removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle red'></i> Empty the recycle bin?</h4></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-trash-o bigger-110'></i> Delete all items", + "class" : "btn btn-danger btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + , + { + html: "<i class='ace-icon fa fa-times bigger-110'></i> Cancel", + "class" : "btn btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + }); + + $('.easy-pie-chart.percentage').each(function(){ + var $box = $(this).closest('.infobox'); + var barColor = $(this).data('color') || (!$box.hasClass('infobox-dark') ? $box.css('color') : 'rgba(255,255,255,0.95)'); + var trackColor = barColor == 'rgba(255,255,255,0.95)' ? 'rgba(255,255,255,0.25)' : '#E2E2E2'; + var size = parseInt($(this).data('size')) || 50; + $(this).easyPieChart({ + barColor: barColor, + trackColor: trackColor, + scaleColor: false, + lineCap: 'butt', + lineWidth: parseInt(size/10), + animate: /msie\s*(8|7|6)/.test(navigator.userAgent.toLowerCase()) ? false : 1000, + size: size + }); + }) + + $('.sparkline').each(function(){ + var $box = $(this).closest('.infobox'); + var barColor = !$box.hasClass('infobox-dark') ? $box.css('color') : '#FFF'; + $(this).sparkline('html', + { + tagValuesAttribute:'data-values', + type: 'bar', + barColor: barColor , + chartRangeMin:$(this).data('min') || 0 + }); + }); + + + //flot chart resize plugin, somehow manipulates default browser resize event to optimize it! + //but sometimes it brings up errors with normal resize event handlers + $.resize.throttleWindow = false; + + var placeholder = $('#piechart-placeholder').css({'width':'90%' , 'min-height':'150px'}); + var data = [ + { label: "social networks", data: 38.7, color: "#68BC31"}, + { label: "search engines", data: 24.5, color: "#2091CF"}, + { label: "ad campaigns", data: 8.2, color: "#AF4E96"}, + { label: "direct traffic", data: 18.6, color: "#DA5430"}, + { label: "other", data: 10, color: "#FEE074"} + ] + function drawPieChart(placeholder, data, position) { + $.plot(placeholder, data, { + series: { + pie: { + show: true, + tilt:0.8, + highlight: { + opacity: 0.25 + }, + stroke: { + color: '#fff', + width: 2 + }, + startAngle: 2 + } + }, + legend: { + show: true, + position: position || "ne", + labelBoxBorderColor: null, + margin:[-30,15] + } + , + grid: { + hoverable: true, + clickable: true + } + }) + } + drawPieChart(placeholder, data); + + /** + we saved the drawing function and the data to redraw with different position later when switching to RTL mode dynamically + so that's not needed actually. + */ + placeholder.data('chart', data); + placeholder.data('draw', drawPieChart); + + + //pie chart tooltip example + var $tooltip = $("<div class='tooltip top in'><div class='tooltip-inner'></div></div>").hide().appendTo('body'); + var previousPoint = null; + + placeholder.on('plothover', function (event, pos, item) { + if(item) { + if (previousPoint != item.seriesIndex) { + previousPoint = item.seriesIndex; + var tip = item.series['label'] + " : " + item.series['percent']+'%'; + $tooltip.show().children(0).text(tip); + } + $tooltip.css({top:pos.pageY + 10, left:pos.pageX + 10}); + } else { + $tooltip.hide(); + previousPoint = null; + } + + }); + + ///////////////////////////////////// + $(document).one('ajaxloadstart.page', function(e) { + $tooltip.remove(); + }); + + + + + var d1 = []; + for (var i = 0; i < Math.PI * 2; i += 0.5) { + d1.push([i, Math.sin(i)]); + } + + var d2 = []; + for (var i = 0; i < Math.PI * 2; i += 0.5) { + d2.push([i, Math.cos(i)]); + } + + var d3 = []; + for (var i = 0; i < Math.PI * 2; i += 0.2) { + d3.push([i, Math.tan(i)]); + } + + + var sales_charts = $('#sales-charts').css({'width':'100%' , 'height':'220px'}); + $.plot("#sales-charts", [ + { label: "Domains", data: d1 }, + { label: "Hosting", data: d2 }, + { label: "Services", data: d3 } + ], { + hoverable: true, + shadowSize: 0, + series: { + lines: { show: true }, + points: { show: true } + }, + xaxis: { + tickLength: 0 + }, + yaxis: { + ticks: 10, + min: -2, + max: 2, + tickDecimals: 3 + }, + grid: { + backgroundColor: { colors: [ "#fff", "#fff" ] }, + borderWidth: 1, + borderColor:'#555' + } + }); + + + $('#recent-box [data-rel="tooltip"]').tooltip({placement: tooltip_placement}); + function tooltip_placement(context, source) { + var $source = $(source); + var $parent = $source.closest('.tab-content') + var off1 = $parent.offset(); + var w1 = $parent.width(); + + var off2 = $source.offset(); + //var w2 = $source.width(); + + if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right'; + return 'left'; + } + + + $('.dialogs,.comments').ace_scroll({ + size: 300 + }); + + + //Android's default browser somehow is confused when tapping on label which will lead to dragging the task + //so disable dragging when clicking on label + var agent = navigator.userAgent.toLowerCase(); + if("ontouchstart" in document && /applewebkit/.test(agent) && /android/.test(agent)) + $('#tasks').on('touchstart', function(e){ + var li = $(e.target).closest('#tasks li'); + if(li.length == 0)return; + var label = li.find('label.inline').get(0); + if(label == e.target || $.contains(label, e.target)) e.stopImmediatePropagation() ; + }); + + $('#tasks').sortable({ + opacity:0.8, + revert:true, + forceHelperSize:true, + placeholder: 'draggable-placeholder', + forcePlaceholderSize:true, + tolerance:'pointer', + stop: function( event, ui ) { + //just for Chrome!!!! so that dropdowns on items don't appear below other items after being moved + $(ui.item).css('z-index', 'auto'); + } + } + ); + $('#tasks').disableSelection(); + $('#tasks input:checkbox').removeAttr('checked').on('click', function(){ + if(this.checked) $(this).closest('li').addClass('selected'); + else $(this).closest('li').removeClass('selected'); + }); + + + //show the dropdowns on top or bottom depending on window height and menu position + $('#task-tab .dropdown-hover').on('mouseenter', function(e) { + var offset = $(this).offset(); + + var $w = $(window) + if (offset.top > $w.scrollTop() + $w.innerHeight() - 100) + $(this).addClass('dropup'); + else $(this).removeClass('dropup'); + }); + + + + }); + + //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + + $(document).ready( function() { + jQuery("#registroEncuesta").validationEngine(); + }); + + function enter(e) { + tecla = (document.all) ? e.keyCode : e.which; + if (tecla==13) validar_registro(); + } + + function segundaCarga(){ + listarZona(); + } + + function listarZona(){ + let name='' + $.ajax({ + type:'POST', + url:'../ServletZona?Accion=listarZonas', + data: null, + beforeSend: function() { + cargando(); + },success:function(resultado){ + close_carga(); + $('#divListadoZona').html(resultado); + name=$("#lblUsuario").text(); + if(name === "6"){ + $("#divListadoZona #btnEdicion").hide(); + $("#divListadoZona #validaEstadoZona").hide(); + $("#divListadoZona #validaEstadoZona2").hide(); + } + + },complete:function(){ + $('[data-rel=tooltip]').tooltip(); + } + }); + } + + function validar_registro(){ + var estado=$('#registroZona').validationEngine('validate'); + if(estado){ + alerta1(); + } + } + + function alerta1(){ + $( "#dialog-confirm" ).removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Conformidad</span></h4></div></div>", + //title: "<div class='widget-header' ><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle blue'></i> Alerta</h4></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-check bigger-110'></i> SI", + "class" : "btn btn-primary btn-xs", + click: function() { + registrarZonas(); + } + },{ + html: "<i class='ace-icon fa fa-times bigger-110'></i> NO", + "class" : "btn btn-danger btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + } + + function registrarZonas(){ + var Tzona = $("#txtZona").val(); + $.ajax({ + type:'POST', + url:'../ServletZona?Accion=registrarZonas', + data: 'Tzona='+Tzona, + beforeSend: function() { + cargando(); + },success:function(resultado){ + close_carga(); + if(resultado==0){ + advertenciaDuplicado(); + }else if(resultado==1){ + registroCorrecto(); + } + },complete:function(){ + $("#txtZona").val(""); + listarZona(); + } + }); + } + + + function advertenciaDuplicado(){ + $( "#dialog-confirm" ).dialog( "close" ); + $( "#dialog-advertencia1" ).removeClass('hide').dialog({ + resizable: false, + width:300, + modal: true, + title: "<div class='widget-color-orange' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-exclamation-triangle white'></i> <span class='white'>Advertencia</span></h4></div></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-times bigger-110'></i> ACEPTAR", + "class" : "btn btn-warning btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + + } + + function registroCorrecto(){ + $( "#dialog-confirm" ).dialog( "close" ); + $( "#dialog-satisfaccion" ).removeClass('hide').dialog({ + resizable: false, + width: 300, + modal: true, + title: "<div class='widget-color-green' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Notificación</span></h4></div></div>", + //title: "<div class='widget-header' ><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle blue'></i> Alerta</h4></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-check bigger-110'></i> ACEPTAR", + "class" : "btn btn-success btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + } + //--- fin registro --- // + + function validar_edicion(codigoZona){ + $.ajax({ + type:'POST', + url:'../ServletZona?Accion=validarCantidadUsoZona', + data: 'codigoZona='+codigoZona, + beforeSend: function() { + cargando(); + },success:function(resultado){ + close_carga(); + if(resultado==1){ + buscarSedesAsignadas(codigoZona); +// advertenciaValidarEdicion(); + }else if(resultado==0){ + armarEdicion(codigoZona); + } + },complete:function(){ + + } + }); + } + + function buscarSedesAsignadas(codigoZona){ + $.ajax({ + type:'POST', + url:'../ServletSede?Accion=buscarSedesAsignadas', + data: 'codigoZona='+codigoZona, + beforeSend: function() { + cargando(); + },success:function(resultado){ + close_carga(); + $("#listaSedes").html(resultado); + },complete:function(){ + advertenciaValidarEdicion(); + } + }); + } + + function advertenciaValidarEdicion(){ + $( "#dialog-advertencia3" ).removeClass('hide').dialog({ + resizable: false, + width:400, + modal: true, + title: "<div class='widget-color-orange' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-exclamation-triangle white'></i> <span class='white'>Advertencia</span></h4></div></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-times bigger-110'></i> ACEPTAR", + "class" : "btn btn-warning btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + } + function armarEdicion(codzona){ + $.ajax({ + type:'POST', + url:'../ServletZona?Accion=armarEdicion', + data: 'codigoZona='+codzona, + beforeSend: function() { + cargando(); + },success:function(resultado){ + close_carga(); + $("#divFormulario").html(resultado); + },complete:function(){ + mostrarFormularioEditar(codzona); + } + }); + } + + function mostrarFormularioEditar(codzona){ + $( "#dialog-edit" ).removeClass('hide').dialog({ + resizable: false, + width: 500, + height: 300, + modal: true, + title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-pencil white'></i> <span class='white'>Actualización de Zona</span></h4></div></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-check bigger-110'></i> ACTUALIZAR", + "class" : "btn btn-primary btn-xs", + click: function() { + validar_actualizar(codzona); + } + },{ + html: "<i class='ace-icon fa fa-times bigger-110'></i> CANCELAR", + "class" : "btn btn-danger btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + } + + function validar_actualizar(codzona){ + var estado=$('#actualizar').validationEngine('validate'); + if(estado){ + alertaConformidad1(codzona); + } + } + + + function alertaConformidad1(codzona){ + $( "#dialog-edit" ).dialog('close'); + $( "#dialog-confor1" ).removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Conformidad</span></h4></div></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-check bigger-110'></i> SI", + "class" : "btn btn-primary btn-xs", + click: function() { + actualizar(codzona); + } + },{ + html: "<i class='ace-icon fa fa-times bigger-110'></i> NO", + "class" : "btn btn-danger btn-xs", + click: function() { + $( this ).dialog( "close" ); + mostrarFormularioEditar(codzona); + } + } + ] + }); + } + + + function actualizar(codzona){ + var nombreZona=$("#txt_nom").val(); + $.ajax({ + type:'POST', + url:'../ServletZona?Accion=actualizarZona', + data: 'codigoZona='+codzona+'&nombreZona='+nombreZona, + beforeSend: function() { + cargando(); + },success:function(resultado){ + close_carga(); + + },complete:function(){ + listarZona(); + actualizarOk(); + } + }); + } + + + function actualizarOk(){ +// $( "#dialog-edit" ).dialog( "close" ); + $( "#dialog-confor1" ).dialog( "close" ); + $( "#dialog-noti1" ).removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-color-green' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Notificación</span></h4></div></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-check bigger-110'></i> ACEPTAR", + "class" : "btn btn-success btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + } + + + //------------------------------- + + function validar_estado(dato,codigoZona){ + $.ajax({ + type:'POST', + url:'../ServletZona?Accion=validarCantidadUsoZona', + data: 'codigoZona='+codigoZona, + beforeSend: function() { + cargando(); + },success:function(resultado){ + close_carga(); + if(resultado==1){ + advertencia2(); + }else if(resultado==0){ + if(dato==0){ + alertaInhabilitar(dato,codigoZona); + } + else{ + alertaHabilitar(dato,codigoZona); + } + } + },complete:function(){ + + } + }); + } + + function advertencia2(){ + $( "#dialog-advertencia2" ).removeClass('hide').dialog({ + resizable: false, + width:400, + modal: true, + title: "<div class='widget-color-orange' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-exclamation-triangle white'></i> <span class='white'>Advertencia</span></h4></div></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-times bigger-110'></i> ACEPTAR", + "class" : "btn btn-warning btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + } + + + function alertaInhabilitar(dato,codigoZona){ + $( "#dialog-confor2" ).removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Conformidad</span></h4></div></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-check bigger-110'></i> SI", + "class" : "btn btn-primary btn-xs", + click: function() { + $( this ).dialog( "close" ); + estado(dato,codigoZona); + } + },{ + html: "<i class='ace-icon fa fa-times bigger-110'></i> NO", + "class" : "btn btn-danger btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + } + + function alertaHabilitar(dato,codigoZona){ + $( "#dialog-confor3" ).removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Conformidad</span></h4></div></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-check bigger-110'></i> SI", + "class" : "btn btn-primary btn-xs", + click: function() { + $( this ).dialog( "close" ); + estado(dato,codigoZona); + } + },{ + html: "<i class='ace-icon fa fa-times bigger-110'></i> ACEPTAR", + "class" : "btn btn-danger btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + } + + + function estado(dato,codigoZona){ + $.ajax({ + type:'POST', + url:'../ServletZona?Accion=cambiarEstado', + data: 'dato='+dato+'&codigoZona='+codigoZona, + beforeSend: function() { + cargando(); + },success:function(resultado){ + close_carga(); + + },complete:function(){ + listarZona(); + cambiarEstadoOk(); + } + }); + } + + function cambiarEstadoOk(){ + $( "#dialog-noti1" ).removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-color-green' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Notificación</span></h4></div></div>", + title_html: true, + buttons: [ + { + html: "<i class='ace-icon fa fa-check bigger-110'></i> ACEPTAR", + "class" : "btn btn-success btn-xs", + click: function() { + $( this ).dialog( "close" ); + } + } + ] + }); + } + + + //------------------------------- + + + function conMayusculas(field) { + field.value = field.value.toUpperCase() + } + + + + + $('input').keypress(function(e){ + if(e.which == 13){ + return false; + } + }); + + function cargando(){ + $( "#dialog-cargando" ).removeClass('hide').dialog({ + resizable: false, + modal: true, + title: "<div class='widget-header' ><h4 class='smaller'><i class='fa fa-spinner'></i> Cargando...</h4></div>", + title_html: true + }); + } + + function close_carga(){ + $( "#dialog-cargando" ).dialog( "close" ); + } + + + + + </script> + + <!-- the following scripts are used in demo only for onpage help and you don't need them --> + + <link rel="stylesheet" href="../assets/css/ace.onpage-help.css" /> + <link rel="stylesheet" href="../docs/assets/js/themes/sunburst.css" /> + + <script type="text/javascript"> ace.vars['base'] = '..'; </script> + <script src="../assets/js/ace/elements.onpage-help.js"></script> + <script src="../assets/js/ace/ace.onpage-help.js"></script> + <script src="../docs/assets/js/rainbow.js"></script> + <script src="../docs/assets/js/language/generic.js"></script> + <script src="../docs/assets/js/language/html.js"></script> + <script src="../docs/assets/js/language/css.js"></script> + <script src="../docs/assets/js/language/javascript.js"></script> + <script src="js/languages/jquery.validationEngine-es.js" type="text/javascript" charset="utf-8"></script> + <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script> + +</html>