Commit 5ee3fc83 by Felipe Escala Torres

Excel Report

parent 20b8275d
...@@ -22,4 +22,8 @@ public interface AsistenciaDAO { ...@@ -22,4 +22,8 @@ public interface AsistenciaDAO {
public JSONObject eliminarAsistencia(JSONObject datos) throws Exception; public JSONObject eliminarAsistencia(JSONObject datos) throws Exception;
public JSONObject listarCicloPorEstudiante(JSONObject datos) throws Exception; public JSONObject listarCicloPorEstudiante(JSONObject datos) throws Exception;
public JSONObject listarEstudiantesPorCiclo(JSONObject datos) throws Exception;
public JSONObject listarClasesPorCiclo(JSONObject datos) throws Exception;
} }
...@@ -454,4 +454,127 @@ public class MysqlAsistenciaDAO implements AsistenciaDAO { ...@@ -454,4 +454,127 @@ public class MysqlAsistenciaDAO implements AsistenciaDAO {
return jreturn; return jreturn;
} }
@Override
public JSONObject listarEstudiantesPorCiclo(JSONObject datos) throws Exception {
JSONObject jreturn;
JSONArray lista = new JSONArray();
JSONObject data = new JSONObject();
Connection con = null;
PreparedStatement pst = null;
ResultSet rSet = null;
int rs = 0;
String sql = "";
ResponseHelper response = new ResponseHelper();
try {
con = MySqlDAOFactory.obtenerConexion(GeneralVariables.nameDB);
sql = "";
} catch (Exception e) {
e.printStackTrace();
response.setStatus(false);
response.setMessage("Error --->" + e.getMessage());
} finally {
try {
if (rSet != null) {
rSet.close();
}
if (pst != null) {
pst.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
response.setStatus(false);
response.setMessage("Error --->" + e.getMessage());
}
}
jreturn = new JSONObject(response);
return jreturn;
}
@Override
public JSONObject listarClasesPorCiclo(JSONObject datos) throws Exception {
JSONObject jreturn;
JSONArray lista = new JSONArray();
JSONObject data = new JSONObject();
Connection con = null;
PreparedStatement pst = null;
ResultSet rSet = null;
int rs = 0;
String sql = "";
ResponseHelper response = new ResponseHelper();
try {
con = MySqlDAOFactory.obtenerConexion(GeneralVariables.nameDB);
sql = " SELECT "
+ " DAYOFMONTH(DATE_ADD(CONCAT_WS('-', YEAR(NOW()), ?, '01'),INTERVAL ta. ROW DAY)), "
+ " DAYOFWEEK (DATE_ADD(CONCAT_WS('-', YEAR(NOW()), ?, '01'),INTERVAL ta. ROW DAY)) -1, "
+ " DATE_ADD(CONCAT_WS('-', YEAR(NOW()), ?, '01'),INTERVAL ta. ROW DAY) "
+ " FROM "
+ " ( "
+ " SELECT @ROW := @ROW + 1 AS ROW "
+ " FROM INFORMATION_SCHEMA. COLUMNS, "
+ " (SELECT @ROW := - 1) t "
+ " ) Ta "
+ " WHERE Ta. ROW < DAYOFMONTH( "
+ " LAST_DAY(CONCAT_WS('-', YEAR(NOW()), ?, '01'))) "
+ " AND DAYOFWEEK(DATE_ADD(CONCAT_WS('-', YEAR(NOW()), ?, '01'), INTERVAL row DAY)) - 1 IN "
+ " ( "
+ " SELECT "
+ " b.dia_bloque "
+ " FROM "
+ " bloques AS b "
+ " INNER JOIN horarios AS h ON h.codigo_horario = b.codigo_horario "
+ " INNER JOIN aula AS a ON a.codigo_horario = h.codigo_horario "
+ " WHERE a.codAula = ? "
+ " ); "
+ "";
pst = con.prepareStatement(sql);
int c = 1;
pst.setString(c++, datos.getString("mesReporte"));
pst.setString(c++, datos.getString("mesReporte"));
pst.setString(c++, datos.getString("mesReporte"));
pst.setString(c++, datos.getString("mesReporte"));
pst.setString(c++, datos.getString("mesReporte"));
pst.setInt(c++, datos.getInt("codigoCiclo"));
rSet = pst.executeQuery();
while (rSet.next()) {
JSONObject obj = new JSONObject();
obj.put("dayMonth", rSet.getInt(1));
obj.put("dayWeek", rSet.getInt(2));
obj.put("date", rSet.getString(3));
lista.put(obj);
}
if (lista.length() >= 1) {
response.setStatus(true);
response.setResults(lista);
} else {
response.setStatus(false);
response.setMessage("No hay contenido");
}
} catch (Exception e) {
e.printStackTrace();
response.setStatus(false);
response.setMessage("Error --->" + e.getMessage());
} finally {
try {
if (rSet != null) {
rSet.close();
}
if (pst != null) {
pst.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
response.setStatus(false);
response.setMessage("Error --->" + e.getMessage());
}
}
jreturn = new JSONObject(response);
return jreturn;
}
} }
<%@page import="org.json.JSONObject"%>
<%@page import="java.text.SimpleDateFormat"%> <%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%> <%@page import="java.util.Date"%>
<%@page import="java.util.Calendar"%> <%@page import="java.util.Calendar"%>
<%@page import="pe.siso.academia.Beans.Aula"%> <%@page import="pe.siso.academia.Beans.Aula"%>
<%@page import="javax.swing.JPanel"%> <%@page import="javax.swing.JPanel"%>
<%@page import="pe.siso.academia.Services.MatriculadosService"%>
<%@page import="pe.siso.academia.Beans.Matriculados"%>
<%@page import="java.util.ArrayList"%> <%@page import="java.util.ArrayList"%>
<%@page import="java.io.PrintWriter"%> <%@page import="java.io.PrintWriter"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%> pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Export to Excel - Demo</title> <title></title>
</head> </head>
<body> <body>
<% <%
PrintWriter pw = response.getWriter(); PrintWriter pw = response.getWriter();
String json = request.getParameter("json");
int cantidadRegistros = 0; JSONObject parameters = new JSONObject(json);
int codigoCiclo = parameters.getInt("idCiclo");
String nombreCiclo = parameters.getString("nombreCiclo");
String mesAsistencia = parameters.getString("mesAsistencia");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename=" + "AsistenciaCiclo" + nombreCiclo + "-" + mesAsistencia + ".xls");
%>
<table>
</table>
</body>
String cod_sede=(request.getParameter("cod_sede"));
String cod_centro=(request.getParameter("cod_centro"));
String cod_nivel=(request.getParameter("cod_nivel"));
String cod_grado=(request.getParameter("cod_grado"));
String cod_ciclo=(request.getParameter("cod_ciclo"));
String turno=(request.getParameter("turno"));
String seccion1=request.getParameter("seccion");
String n_mes=request.getParameter("n_mes");
Aula au =new Aula();
au.setCodSede(cod_sede);
au.setCodCentro(cod_centro);
au.setCodNivel(cod_nivel);
au.setCodTipoGrado(cod_grado);
au.setCodGrado(cod_ciclo);
au.setCodTurno(turno);
au.setSecciones(seccion1);
ArrayList<Aula> lista=new ArrayList<Aula>();
MatriculadosService servicio=new MatriculadosService();
lista=servicio.ListaAlumnoAsistencia(au);
String fec1="2017-"+n_mes.trim()+"-12";
Calendar fecha = Calendar.getInstance();
// SimpleDateFormat Nmes = new SimpleDateFormat("M");
SimpleDateFormat Nmes1 = new SimpleDateFormat("yyyy-MM-dd");
// Date date1 = Nmes1.parse(fec1);
// Date date2 = Nmes1.parse(fec2);
// System.out.println("nuemro dsffsdg= "+date1);
// System.out.println("nuemro = "+Nmes.format(date1));
fecha.setTime(Nmes1.parse(fec1));
// fecha.add(Calendar.MONTH, 0);
// calculamos el primer dia del mes anterior
Calendar inicioMesAnterior = servicio.resetCalenderTime((Calendar)fecha.clone()); // clonamos la fecha
inicioMesAnterior.set(Calendar.DAY_OF_MONTH, inicioMesAnterior.getActualMinimum(Calendar.DAY_OF_MONTH));
// calculamos el ultimo dia del mes anterior
Calendar finMesAnterior = servicio.resetCalenderTime2((Calendar)fecha.clone());
finMesAnterior.set(Calendar.DAY_OF_MONTH, inicioMesAnterior.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println("Fecha inicio mes anterior: " + inicioMesAnterior.getTime());
System.out.println("Fecha fin mes anterior: " + finMesAnterior.getTime());
System.out.println("r: " + finMesAnterior.getTime().getDate());
int dias=0;
Date Hoy = new Date();
SimpleDateFormat MesSemana = new SimpleDateFormat("MMMM");
for (int j = 0; j < finMesAnterior.getTime().getDate(); j++) {
Date a =servicio.sumarRestarHorasFecha(inicioMesAnterior.getTime(),j);
SimpleDateFormat DiaSemana = new SimpleDateFormat("E");
// SimpleDateFormat fe = new SimpleDateFormat("yyyy/MM/dd");
if (!DiaSemana.format(a).equals("dom")) {
dias=dias+1;
// System.out.println("rango fecha ->"+fe.format(finMesAnterior.getTime()));
}
}
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename="
+ "AsistenciaCiclo"+lista.get(0).getNombAula().replace("/", " ")+".xls");
%>
<table >
<!--FILA 1-->
<tr >
<td colspan="<%=dias+2%>" style='vertical-align:middle' align="center"><h2>ASISTENCIA POR AULA</h2></td>
</tr>
<!--FILA 2-->
<tr>
<!-- <td></td><td></td><td></td><td></td>-->
<td style='vertical-align:middle' colspan="<%=dias+2%>"><b>CICLO:</b><b> <%=lista.get(0).getNombAula() %> </b></td>
</tr>
<!--FILA 3-->
<tr>
<td style='vertical-align:middle' align="left" colspan="<%=dias+2%>"><b> MES: <%=MesSemana.format(Nmes1.parse(fec1)).toUpperCase() %> </b></td>
<!--<td></td><td></td><td></td><td></td>-->
<!--<td style='vertical-align:middle' align="right" colspan="4"><b>RESPONSABLE:</b><b> </b></td>-->
</tr>
<tr>
<td style='vertical-align:middle' align="left" colspan="<%=dias+2%>"><b> SEDE: <%=lista.get(0).getNomSede() %> </b></td>
<!--<td></td><td></td><td></td><td></td>-->
<!--<td style='vertical-align:middle' align="right" colspan="4"><b>RESPONSABLE:</b><b> </b></td>-->
</tr>
<!-- FILA x -->
<tr>
<td style='vertical-align:middle' align="left" colspan="<%=dias+2%>"><b>TOTAL :</b><b> <%=lista.size() %></b></td>
<td></td><td></td><td></td><td></td>
<!-- <td align="right" colspan="4"><b>FECHA Y HORA:</b><b style='vertical-align:middle;mso-number-format:"dd/mm/yyy hh:mm AM/PM"' ></b></td>-->
</tr>
<tr></tr>
<tr>
<td style='background-color:#CEE9FB ' colspan="<%=dias+2%>" style='vertical-align:middle' align="center"><b> LISTA ASISTENCIA </b></td>
</tr>
</table>
<table border="1">
<tr>
<th>N</th>
<th >Nombres Completos</th>
<%
// obtenemos la fecha
for (int i = 0; i < finMesAnterior.getTime().getDate(); i++) {
System.out.println(" a "+i);
Date a =servicio.sumarRestarHorasFecha(inicioMesAnterior.getTime(),i);
SimpleDateFormat format = new SimpleDateFormat("dd");
SimpleDateFormat DiaSemana = new SimpleDateFormat("E");
if (!DiaSemana.format(a).equals("dom")) {
// System.out.println("fecha "+format.format(a)+" -> "+DiaSemana.format(a));
%>
<th style="mso-number-format:'00';width: 2px;" ><%=DiaSemana.format(a) %><br><%=format.format(a).trim()%></th>
<%
}
}
%>
<%
for (int i = 0; i < lista.size(); i++) {
%>
<tr>
<td><%=i+1 %></td>
<td><%=lista.get(i).getNombCompleto() %></td>
<%
for (int j = 0; j < finMesAnterior.getTime().getDate(); j++) {
Date a =servicio.sumarRestarHorasFecha(inicioMesAnterior.getTime(),j);
SimpleDateFormat DiaSemana = new SimpleDateFormat("E");
if (!DiaSemana.format(a).equals("dom")) {
%>
<td></td>
<%
}
}
%>
</tr>
<%
}
%>
</table>
</body>
</html> </html>
\ No newline at end of file
<%-- <%--
Document : man_asistencia Document : man_asistencia
Created on : 31-ago-2018, 9:06:51 Created on : 31-ago-2018, 9:06:51
Author : Felipe Escala Author : Felipe Escala
...@@ -435,7 +435,6 @@ ...@@ -435,7 +435,6 @@
DOMEvents.init() DOMEvents.init()
initRequest.init() initRequest.init()
} }
const helpers = { const helpers = {
tblCharge() { tblCharge() {
tableAsistencias.destroy() tableAsistencias.destroy()
...@@ -560,8 +559,7 @@ ...@@ -560,8 +559,7 @@
}, },
generarExcel() { generarExcel() {
$('#btnExcel').click(() => { $('#btnExcel').click(() => {
localStorage.setItem('jsonBusqueda', jsonBusqueda.toString()) window.location = 'xlsAsistencia.jsp?filters=' + JSON.stringify(jsonBusqueda)
window.location = 'xlsAsistencia.jsp'
}) })
}, },
oneMinSelected() { oneMinSelected() {
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
Author : Felipe Escala Author : Felipe Escala
--%> --%>
<%@page import="pe.siso.academia.Beans.Usuario"%>
<%@page import="java.sql.Timestamp"%>
<%@page import="pe.siso.academia.Services.AsistenciaService"%> <%@page import="pe.siso.academia.Services.AsistenciaService"%>
<%@page import="org.json.JSONArray"%> <%@page import="org.json.JSONArray"%>
<%@page import="org.json.JSONObject"%> <%@page import="org.json.JSONObject"%>
...@@ -13,22 +15,25 @@ ...@@ -13,22 +15,25 @@
<html lang="en"> <html lang="en">
<head> <head>
<% <%
String json = request.getParameter("json"); String json = request.getParameter("filters");
JSONObject jobj = new JSONObject(json); JSONObject jobj = new JSONObject(json);
jobj.put("draw", "1"); jobj.put("draw", "1");
jobj.put("start", "0"); jobj.put("start", "0");
jobj.put("length", "1000000"); jobj.put("length", "-1");
JSONObject jReturn = new JSONObject(); JSONObject jReturn = new JSONObject();
String nombreSede = jobj.getString("sedeSeleccionada");
JSONArray arrayReturn = new JSONArray(); JSONArray arrayReturn = new JSONArray();
String exportToExcel = request.getParameter("exportToExcel"); String exportToExcel = request.getParameter("exportToExcel");
if (exportToExcel != null && exportToExcel.toString().equalsIgnoreCase("YES")) { Timestamp timestamp = new Timestamp(System.currentTimeMillis());
response.setContentType("application/vnd.ms-excel"); HttpSession session_actual = request.getSession(true);
response.setHeader("Content-Disposition", "inline; filename=AulasSede" + nombreSede + ".xls"); Usuario usuario = (Usuario) session_actual.getAttribute("usuario");
AsistenciaService service = new AsistenciaService(); jobj.put("codigoSede", usuario.getCodigoSede());
jReturn = service.listarAsistencia(jobj); // if (exportToExcel != null && exportToExcel.toString().equalsIgnoreCase("YES")) {timestamp.getTime()
arrayReturn = jReturn.getJSONArray("data"); response.setContentType("application/vnd.ms-excel");
} response.setHeader("Content-Disposition", "inline; filename=ReporteAsistencias" + timestamp.getTime() + ".xls");
AsistenciaService service = new AsistenciaService();
jReturn = service.listarAsistencia(jobj);
arrayReturn = jReturn.getJSONArray("data");
// }
%> %>
<style> <style>
...@@ -50,20 +55,20 @@ ...@@ -50,20 +55,20 @@
</head> </head>
<body> <body>
<h3 align="center">Aulas de la sede <%= nombreSede%></h3> <h3 align="center">REPORTE DE ASISTENCIAS</h3>
<table style="font-size: 11px" border="2" align="center"> <table style="font-size: 11px" border="2" align="center">
<thead> <thead>
<tr bgcolor="lightgreen"> <tr bgcolor="#2D72AD" style="color: white">
<th>#</th> <th class="text-center"></th>
<th>Sede</th> <th class="text-center">ESTUDIANTE</th>
<th>Tipo centro</th> <th class="text-center">DNI</th>
<th>Centro</th> <th class="text-center">CICLO</th>
<th>Nivel</th> <th class="text-center">FECHA</th>
<th>Tipo grado</th> <th class="text-center">HORA ASISTENCIA</th>
<th>Grado</th> <th class="text-center">HORA CLASE</th>
<th>Seccion</th> <th class="text-center">OBSERVACION</th>
<th>Turno</th> <th class="text-center">ESTADO</th>
</tr> </tr>
</thead> </thead>
...@@ -71,18 +76,37 @@ ...@@ -71,18 +76,37 @@
<% <%
int sizeArray = arrayReturn.length(); int sizeArray = arrayReturn.length();
for (int i = 0; i < sizeArray; i++) { for (int i = 0; i < sizeArray; i++) {
JSONObject obj = arrayReturn.getJSONObject(i);
%> %>
<tr bgcolor="lightblue"> <tr bgcolor="#FEFEFE">
<th style="padding : 10px;" align="center"><%=obj.getInt("numeral")%></th>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getInt("numeroItem")%></td> <th style="padding : 10px;" align="left"><%=obj.getString("nombreEstudiante")%></th>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSede").getString("descripcion")%></td> <th style="padding : 10px;" align="center"><%=obj.getInt("dniEstudiante")%></th>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getJSONObject("codigoTipoGrado").getJSONObject("codigoNivel").getJSONObject("codigoCentro").getJSONObject("codigoTipoCentro").getString("descripcion")%></td> <th style="padding : 10px;" align="left"><%=obj.getString("nombreCiclo")%></th>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getJSONObject("codigoTipoGrado").getJSONObject("codigoNivel").getJSONObject("codigoCentro").getString("descripcion")%></td> <th style="padding : 10px;" align="center"><%=obj.getString("fechaAsistencia")%></th>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getJSONObject("codigoTipoGrado").getJSONObject("codigoNivel").getString("descripcion")%></td> <th style="padding : 10px;" align="center"><%=obj.getString("horaAsistencia")%></th>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getJSONObject("codigoTipoGrado").getString("descripcion")%></td> <th style="padding : 10px;" align="center"><%=obj.getString("horaInicio") + " - " + obj.getString("horaSalida")%></th>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getString("descripcion")%></td> <th style="padding : 10px;" align="left"><%=obj.getString("observacionAsistencia")%></th>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getString("descripcion")%></td> <%
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoTurno").getString("descripcion")%></td> switch (obj.getInt("estadoAsistencia")) {
case 0:
%>
<th style="padding : 10px; background-color: #BB091C; color: white" align="center"><%="FALTA"%></th>
<%
break;
case 1:
%>
<th style="padding : 10px; background-color: #8CC152; color: white" align="center"><%="ASITENCIA"%></th>
<%
break;
case 2:
%>
<th style="padding : 10px; background-color:#F5BB42; color: white" align="center"><%="TARDANZA"%></th>
<%
break;
default:
}
%>
</tr> </tr>
<% }%> <% }%>
</tbody> </tbody>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment