Commit 5ee3fc83 by Felipe Escala Torres

Excel Report

parent 20b8275d
......@@ -22,4 +22,8 @@ public interface AsistenciaDAO {
public JSONObject eliminarAsistencia(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 {
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.util.Date"%>
<%@page import="java.util.Calendar"%>
<%@page import="pe.siso.academia.Beans.Aula"%>
<%@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.io.PrintWriter"%>
<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Export to Excel - Demo</title>
</head>
<body>
<%
PrintWriter pw = response.getWriter();
int cantidadRegistros = 0;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title></title>
</head>
<body>
<%
PrintWriter pw = response.getWriter();
String json = request.getParameter("json");
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>
\ No newline at end of file
<%--
<%--
Document : man_asistencia
Created on : 31-ago-2018, 9:06:51
Author : Felipe Escala
......@@ -435,7 +435,6 @@
DOMEvents.init()
initRequest.init()
}
const helpers = {
tblCharge() {
tableAsistencias.destroy()
......@@ -560,8 +559,7 @@
},
generarExcel() {
$('#btnExcel').click(() => {
localStorage.setItem('jsonBusqueda', jsonBusqueda.toString())
window.location = 'xlsAsistencia.jsp'
window.location = 'xlsAsistencia.jsp?filters=' + JSON.stringify(jsonBusqueda)
})
},
oneMinSelected() {
......
......@@ -4,6 +4,8 @@
Author : Felipe Escala
--%>
<%@page import="pe.siso.academia.Beans.Usuario"%>
<%@page import="java.sql.Timestamp"%>
<%@page import="pe.siso.academia.Services.AsistenciaService"%>
<%@page import="org.json.JSONArray"%>
<%@page import="org.json.JSONObject"%>
......@@ -13,22 +15,25 @@
<html lang="en">
<head>
<%
String json = request.getParameter("json");
String json = request.getParameter("filters");
JSONObject jobj = new JSONObject(json);
jobj.put("draw", "1");
jobj.put("start", "0");
jobj.put("length", "1000000");
jobj.put("length", "-1");
JSONObject jReturn = new JSONObject();
String nombreSede = jobj.getString("sedeSeleccionada");
JSONArray arrayReturn = new JSONArray();
String exportToExcel = request.getParameter("exportToExcel");
if (exportToExcel != null && exportToExcel.toString().equalsIgnoreCase("YES")) {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename=AulasSede" + nombreSede + ".xls");
AsistenciaService service = new AsistenciaService();
jReturn = service.listarAsistencia(jobj);
arrayReturn = jReturn.getJSONArray("data");
}
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
HttpSession session_actual = request.getSession(true);
Usuario usuario = (Usuario) session_actual.getAttribute("usuario");
jobj.put("codigoSede", usuario.getCodigoSede());
// if (exportToExcel != null && exportToExcel.toString().equalsIgnoreCase("YES")) {timestamp.getTime()
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>
......@@ -50,20 +55,20 @@
</head>
<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">
<thead>
<tr bgcolor="lightgreen">
<th>#</th>
<th>Sede</th>
<th>Tipo centro</th>
<th>Centro</th>
<th>Nivel</th>
<th>Tipo grado</th>
<th>Grado</th>
<th>Seccion</th>
<th>Turno</th>
<tr bgcolor="#2D72AD" style="color: white">
<th class="text-center"></th>
<th class="text-center">ESTUDIANTE</th>
<th class="text-center">DNI</th>
<th class="text-center">CICLO</th>
<th class="text-center">FECHA</th>
<th class="text-center">HORA ASISTENCIA</th>
<th class="text-center">HORA CLASE</th>
<th class="text-center">OBSERVACION</th>
<th class="text-center">ESTADO</th>
</tr>
</thead>
......@@ -71,18 +76,37 @@
<%
int sizeArray = arrayReturn.length();
for (int i = 0; i < sizeArray; i++) {
JSONObject obj = arrayReturn.getJSONObject(i);
%>
<tr bgcolor="lightblue">
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getInt("numeroItem")%></td>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSede").getString("descripcion")%></td>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getJSONObject("codigoTipoGrado").getJSONObject("codigoNivel").getJSONObject("codigoCentro").getJSONObject("codigoTipoCentro").getString("descripcion")%></td>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getJSONObject("codigoTipoGrado").getJSONObject("codigoNivel").getJSONObject("codigoCentro").getString("descripcion")%></td>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getJSONObject("codigoTipoGrado").getJSONObject("codigoNivel").getString("descripcion")%></td>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getJSONObject("codigoTipoGrado").getString("descripcion")%></td>
<td style="padding : 10px;" align="center"><%= arrayReturn.getJSONObject(i).getJSONObject("codigoSeccion").getJSONObject("codigoGrado").getString("descripcion")%></td>
<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>
<tr bgcolor="#FEFEFE">
<th style="padding : 10px;" align="center"><%=obj.getInt("numeral")%></th>
<th style="padding : 10px;" align="left"><%=obj.getString("nombreEstudiante")%></th>
<th style="padding : 10px;" align="center"><%=obj.getInt("dniEstudiante")%></th>
<th style="padding : 10px;" align="left"><%=obj.getString("nombreCiclo")%></th>
<th style="padding : 10px;" align="center"><%=obj.getString("fechaAsistencia")%></th>
<th style="padding : 10px;" align="center"><%=obj.getString("horaAsistencia")%></th>
<th style="padding : 10px;" align="center"><%=obj.getString("horaInicio") + " - " + obj.getString("horaSalida")%></th>
<th style="padding : 10px;" align="left"><%=obj.getString("observacionAsistencia")%></th>
<%
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>
<% }%>
</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