Commit 84fdacb0 by Luis Gangas

[edit] arreglar querys fichaLoteDetalle

parents 4e50e26f 2ce7e33e
......@@ -2,8 +2,12 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="f1229581-2498-4c33-b7b4-f715a5fbe428" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/js/pages/bandejaPresidencia.js" beforeDir="false" afterPath="$PROJECT_DIR$/web/js/pages/bandejaPresidencia.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/js/pages/contratos.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/vistas/contratos.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/java/trismegistoplanilla/mysqldao/FichaLaboralMysqlDAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/java/trismegistoplanilla/mysqldao/FichaLaboralMysqlDAO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/java/trismegistoplanilla/mysqldao/LoteFichaMysqlDAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/java/trismegistoplanilla/mysqldao/LoteFichaMysqlDAO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/java/trismegistoplanilla/mysqldao/UbigeoMysqlDAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/java/trismegistoplanilla/mysqldao/UbigeoMysqlDAO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/vistas/consultaFichas.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/web/vistas/consultaFichas.jsp" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
......@@ -18,11 +22,12 @@
<session id="1890756217">
<usages-collector id="statistics.lifecycle.project">
<counts>
<entry key="project.closed" value="4" />
<entry key="project.closed" value="5" />
<entry key="project.open.time.0" value="1" />
<entry key="project.open.time.11" value="1" />
<entry key="project.open.time.12" value="1" />
<entry key="project.open.time.2" value="1" />
<entry key="project.opened" value="3" />
<entry key="project.opened" value="4" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
......@@ -78,6 +83,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
......@@ -89,7 +95,6 @@
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
......@@ -123,11 +128,12 @@
<workItem from="1541776578549" duration="539000" />
<workItem from="1542033991862" duration="854000" />
<workItem from="1542041168541" duration="651000" />
<workItem from="1542129782940" duration="342000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="4727000" />
<option name="totallyTimeSpent" value="5069000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
......
......@@ -28,7 +28,7 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
try {
String sql
= "select "
+ "persona.codigo_persona codigoPersona, "
+ "personal.codper codigoPersona, "
+ "ficha.codigo_ficha codigoFicha, "
+ "personal.apellidoPaterno apellidoPaterno, "
+ "personal.apellidoMaterno apellidoMaterno, "
......@@ -41,21 +41,19 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
+ "ifnull(sueldo_docente.costo_a,'') costoADocente, "
+ "ifnull(sueldo_docente.costo_b,'') costoBDocente, "
+ "ifnull(sueldo_docente.costo_c,'') costoCDocente, "
+ "ifnull(sueldo_docente.costo_mensual,'') costoMensualDocente, "
+ "ifnull(sueldo_administrativo.costo_mensual,'') costoMensualDocente "
+ "ifnull(sueldo_docente.costo_mensual,'') costoMensualDocente,"
+ "ficha_laboral.tipo_ficha "
+ "FROM ficha_laboral "
+ "inner join ficha ON ficha.codigo_ficha = ficha_laboral.codigo_ficha "
+ "inner join estado_ficha on estado_ficha.codigo_ficha = ficha.codigo_ficha "
+ "inner join personal ON personal.codper = ficha.codigo_persona "
+ "inner join tipo_documento ON tipo_documento.codigo_tipo_documento = personal.codigo_tipo_documento "
+ "left join sueldo_docente ON sueldo_docente.codigo_ficha = ficha_laboral.codigo_ficha "
+ "left join sueldo_administrativo ON sueldo_administrativo.codigo_ficha = ficha_laboral.codigo_ficha "
+ "where estado_ficha.estado_registro = 1 "
+ "and estado_ficha.codigo_tipo_estado_ficha = 4 "
+ "and sueldo_docente.estado_registro = 1 ";
cnx = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME);
ps = cnx.prepareStatement(sql);
ps.setInt(1, loteFicha.getCodigoFichaLote());
rs = ps.executeQuery();
while (rs.next()) {
DetalleLoteFichaDocenteBean detalleLoteFichaDocente = new DetalleLoteFichaDocenteBean();
......@@ -74,6 +72,7 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
detalleLoteFichaDocente.setCostoMensual(CurrencyFormat.getCustomCurrency(rs.getDouble("costoMensualDocente")));
JSONObject jsonObjDetalleLoteFichaDocente = new JSONObject(detalleLoteFichaDocente);
jsonObjDetalleLoteFichaDocente.put("codigoPersona", rs.getInt("codigoPersona"));
jsonObjDetalleLoteFichaDocente.put("tipoFicha", rs.getString("tipo_ficha"));
jsonArrayListar.put(jsonObjDetalleLoteFichaDocente);
}
......@@ -344,7 +343,8 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
+ "tipo_documento.descripcion_corta tipodocumento, "
+ "date_format(ficha_laboral.fecha_ingreso,'%d/%m/%Y') fechaInicio, "
+ "upper(monthname(ficha_laboral.fecha_ingreso)) mes, "
+ "sueldo_administrativo.codigo_area_cargo_tipo_pago codigoAreaCargoTipoPago "
+ "sueldo_administrativo.codigo_area_cargo_tipo_pago codigoAreaCargoTipoPago, "
+ "ficha_laboral.tipo_ficha "
+ "FROM ficha_laboral "
+ "inner join ficha ON ficha.codigo_ficha = ficha_laboral.codigo_ficha "
+ "inner join estado_ficha on estado_ficha.codigo_ficha = ficha.codigo_ficha "
......@@ -355,7 +355,6 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
+ "and estado_ficha.codigo_tipo_estado_ficha = 4 "
+ "and sueldo_administrativo.estado_registro = 1 ";
ps = cnx.prepareStatement(sql);
ps.setString(1, data.getString("codigoFichaLote"));
rs = ps.executeQuery();
while (rs.next()) {
DetalleLoteFichaDocenteBean detalleLote = new DetalleLoteFichaDocenteBean();
......@@ -372,6 +371,7 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
jsonObj.put("sueldoMensual", CurrencyFormat.getCustomCurrency(rs.getDouble("costoMensual")));
jsonObj.put("codigoAreaCargoTipoPago", rs.getInt("codigoAreaCargoTipoPago"));
jsonObj.put("codigoPersona", rs.getInt("codigoPersona"));
jsonObj.put("tipoFicha", rs.getString("tipo_ficha"));
jsonArray.put(jsonObj);
}
......@@ -618,16 +618,16 @@ public class DetalleLoteFichaDocenteMysqlDAO implements DetalleLoteFichaDocenteD
sql
= "select "
+ "ficha_laboral.codigo_ficha codigoFicha, "
+ "format(ficha_laboral.fecha_ingreso,'dd/MM/yyyy') fechaIngreso, "
+ "format(ficha_laboral.fecha_fin,'dd/MM/yyyy') fechaTermino, "
+ "date_format(ficha_laboral.fecha_ingreso,'%d/%m/%Y') fechaIngreso, "
+ "date_format(ficha_laboral.fecha_fin,'%d/%m/%Y') fechaTermino, "
+ columns
+ "tipo_pago.nombre tipoPago, "
+ "sede.nombre sede, "
+ "sede.deslocal sede, "
+ "area.nombre area, "
+ "cargo.nombre cargo "
+ "FROM ficha_laboral "
+ "inner join sede_area ON sede_area.codigo_sede_area = ficha_laboral.codigo_sede_area "
+ "inner join sede ON sede.codigo_sede = sede_area.codigo_sede "
+ "inner join locales sede ON sede.codigo_sede = sede_area.codigo_sede "
+ "inner join area_cargo ON area_cargo.codigo_area_cargo = ficha_laboral.codigo_area_cargo "
+ "inner join area ON area.codigo_area = area_cargo.codigo_area "
+ "inner join cargo ON cargo.codigo_cargo = area_cargo.codigo_cargo "
......
......@@ -18,27 +18,27 @@ import trismegistoplanilla.utilities.Variables;
public class FichaLaboralMysqlDAO implements FichaLaboralDAO {
@Override
public JSONObject registrarFichaLaboral(FichaLaboralBean fl, PersonaBean p, JSONArray jaExpediente, SueldoAdministrativoBean sa, SueldoDocenteBean sd, UsuarioBean u) {
System.out.println("FichaLaboralMysqlDAO: registrarFichaLaboral");
JSONObject JORegistrarFichaLaboral = null;
ResponseHelper response = new ResponseHelper();
@Override
public JSONObject registrarFichaLaboral(FichaLaboralBean fl, PersonaBean p, JSONArray jaExpediente, SueldoAdministrativoBean sa, SueldoDocenteBean sd, UsuarioBean u) {
System.out.println("FichaLaboralMysqlDAO: registrarFichaLaboral");
JSONObject JORegistrarFichaLaboral = null;
ResponseHelper response = new ResponseHelper();
String sql = "";
Connection conexion = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME);
PreparedStatement psObtenerCodigoPersona = null,
psRegistrarEnlace = null,
psRegistrarExpediente = null,
psRegistrarFichaLaboral = null,
psRegistrarSueldoAdministrativo = null,
psRegistrarSueldoDocente = null,
psObtenerUltimoEstadoFicha = null,
psDesactivarEstadoFicha = null,
psRegistrarEstadoFicha = null;
ResultSet rsObtenerCodigoPersona = null,
rsObtenerUltimoEstadoFicha = null;
try {
/* ========= ACTIVIDADES ==============
String sql = "";
Connection conexion = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME);
PreparedStatement psObtenerCodigoPersona = null,
psRegistrarEnlace = null,
psRegistrarExpediente = null,
psRegistrarFichaLaboral = null,
psRegistrarSueldoAdministrativo = null,
psRegistrarSueldoDocente = null,
psObtenerUltimoEstadoFicha = null,
psDesactivarEstadoFicha = null,
psRegistrarEstadoFicha = null;
ResultSet rsObtenerCodigoPersona = null,
rsObtenerUltimoEstadoFicha = null;
try {
/* ========= ACTIVIDADES ==============
1- OBTENER CODIGO PERSONA
2- REGISTRAR ENLACE ALFRESCO
3- REGISTRAR TIPOS DE EXPEDIENTE SELECCIONADO (ANTES VALIDAR EXISTENCIAS)
......@@ -56,318 +56,318 @@ public class FichaLaboralMysqlDAO implements FichaLaboralDAO {
6- OBTENER ULTIMO CODIGO DE ESTADO FICHA
7- DESACTIVAR ESTADO FICHA
8- REGISTRA NUEVO ESTADO FICHA (COMPLETADO)
*/
conexion.setAutoCommit(false);
// ACTIVIDAD N° 1
sql = "select codigo_persona codigoPersona from ficha where codigo_ficha = ? and estado_registro = 1";
*/
conexion.setAutoCommit(false);
// ACTIVIDAD N° 1
sql = "select codigo_persona codigoPersona from ficha where codigo_ficha = ? and estado_registro = 1";
psObtenerCodigoPersona = conexion.prepareStatement(sql);
psObtenerCodigoPersona.setInt(1, fl.getCodigoFicha());
rsObtenerCodigoPersona = psObtenerCodigoPersona.executeQuery();
rsObtenerCodigoPersona.next();
int codigoPersona = rsObtenerCodigoPersona.getInt("codigoPersona");
psObtenerCodigoPersona = conexion.prepareStatement(sql);
psObtenerCodigoPersona.setInt(1, fl.getCodigoFicha());
rsObtenerCodigoPersona = psObtenerCodigoPersona.executeQuery();
rsObtenerCodigoPersona.next();
int codigoPersona = rsObtenerCodigoPersona.getInt("codigoPersona");
// ACTIVIDAD N° 2
sql = "update personal set enlace_alfresco = upper(?) where codper = ? and retirado = 0 ";
// ACTIVIDAD N° 2
sql = "update personal set enlace_alfresco = upper(?) where codper = ? and retirado = 0 ";
psRegistrarEnlace = conexion.prepareStatement(sql);
psRegistrarEnlace.setString(1, p.getEnlaceAlfresco());
psRegistrarEnlace.setInt(2, codigoPersona);
int resultadoRegistrarEnlace = psRegistrarEnlace.executeUpdate();
if (resultadoRegistrarEnlace > 0) {
psRegistrarEnlace = conexion.prepareStatement(sql);
psRegistrarEnlace.setString(1, p.getEnlaceAlfresco());
psRegistrarEnlace.setInt(2, codigoPersona);
int resultadoRegistrarEnlace = psRegistrarEnlace.executeUpdate();
if (resultadoRegistrarEnlace > 0) {
// ACTIVIDAD N° 3
TipoExpedienteMysqlDAO expediente = new TipoExpedienteMysqlDAO();
JSONObject validarExpediente = expediente.validarTipoExpedienteSeleccionadoByID(jaExpediente);
if (validarExpediente.getBoolean("status")) {
sql = ""
+ "insert into expediente ( "
+ " codigo_persona "
+ " ,codigo_tipo_expediente "
+ " ,estado_registro "
+ ") values ( "
+ " ? "
+ " ,? "
+ " ,1 "
+ ")";
// ACTIVIDAD N° 3
TipoExpedienteMysqlDAO expediente = new TipoExpedienteMysqlDAO();
JSONObject validarExpediente = expediente.validarTipoExpedienteSeleccionadoByID(jaExpediente);
if (validarExpediente.getBoolean("status")) {
sql = ""
+ "insert into expediente ( "
+ " codigo_persona "
+ " ,codigo_tipo_expediente "
+ " ,estado_registro "
+ ") values ( "
+ " ? "
+ " ,? "
+ " ,1 "
+ ")";
psRegistrarExpediente = conexion.prepareStatement(sql);
for (int i = 0; i < jaExpediente.length(); i++) {
JSONObject objExpediente = jaExpediente.getJSONObject(i);
psRegistrarExpediente.setInt(1, codigoPersona);
psRegistrarExpediente.setInt(2, objExpediente.getInt("id"));
psRegistrarExpediente.addBatch();
}
int executeRegistrarExpediente[] = psRegistrarExpediente.executeBatch();
int resultadoRegistrarExpediente = executeRegistrarExpediente.length;
if (resultadoRegistrarExpediente > 0) {
psRegistrarExpediente = conexion.prepareStatement(sql);
for (int i = 0; i < jaExpediente.length(); i++) {
JSONObject objExpediente = jaExpediente.getJSONObject(i);
psRegistrarExpediente.setInt(1, codigoPersona);
psRegistrarExpediente.setInt(2, objExpediente.getInt("id"));
psRegistrarExpediente.addBatch();
}
int executeRegistrarExpediente[] = psRegistrarExpediente.executeBatch();
int resultadoRegistrarExpediente = executeRegistrarExpediente.length;
if (resultadoRegistrarExpediente > 0) {
// ACTIVIDAD N° 4
sql = ""
+ "insert into ficha_laboral ( "
+ " codigo_ficha "
+ " ,fecha_ingreso "
+ " ,fecha_fin "
+ " ,codigo_sede_area "
+ " ,codigo_area_cargo "
+ " ,tipo_ficha "
+ " ,fecha_registro "
+ " ,estado_registro "
+ ") values ( "
+ " ? "
+ " ,STR_TO_DATE(?,'%d/%m/%Y') "
+ " ,STR_TO_DATE(?,'%d/%m/%Y') "
+ " ,? "
+ " ,? "
+ " ,? "
+ " ,now() "
+ " ,1 "
+ ")";
// ACTIVIDAD N° 4
sql = ""
+ "insert into ficha_laboral ( "
+ " codigo_ficha "
+ " ,fecha_ingreso "
+ " ,fecha_fin "
+ " ,codigo_sede_area "
+ " ,codigo_area_cargo "
+ " ,tipo_ficha "
+ " ,fecha_registro "
+ " ,estado_registro "
+ ") values ( "
+ " ? "
+ " ,STR_TO_DATE(?,'%d/%m/%Y') "
+ " ,STR_TO_DATE(?,'%d/%m/%Y') "
+ " ,? "
+ " ,? "
+ " ,? "
+ " ,now() "
+ " ,1 "
+ ")";
psRegistrarFichaLaboral = conexion.prepareStatement(sql);
psRegistrarFichaLaboral.setInt(1, fl.getCodigoFicha());
psRegistrarFichaLaboral.setString(2, fl.getFechaIngreso());
psRegistrarFichaLaboral.setString(3, fl.getFechaFin());
psRegistrarFichaLaboral.setInt(4, fl.getCodigoSedeArea());
psRegistrarFichaLaboral.setInt(5, fl.getCodigoAreaCargo());
psRegistrarFichaLaboral.setString(6, fl.getTipoFicha());
int resultadoRegistrarFichaLaboral = psRegistrarFichaLaboral.executeUpdate();
if (resultadoRegistrarFichaLaboral > 0) {
psRegistrarFichaLaboral = conexion.prepareStatement(sql);
psRegistrarFichaLaboral.setInt(1, fl.getCodigoFicha());
psRegistrarFichaLaboral.setString(2, fl.getFechaIngreso());
psRegistrarFichaLaboral.setString(3, fl.getFechaFin());
psRegistrarFichaLaboral.setInt(4, fl.getCodigoSedeArea());
psRegistrarFichaLaboral.setInt(5, fl.getCodigoAreaCargo());
psRegistrarFichaLaboral.setString(6, fl.getTipoFicha());
int resultadoRegistrarFichaLaboral = psRegistrarFichaLaboral.executeUpdate();
if (resultadoRegistrarFichaLaboral > 0) {
// ACTIVIDAD N° 5
boolean flagSueldos = false;
if (fl.getTipoFicha().equals("A")) {
sql = ""
+ "insert into sueldo_administrativo ( "
+ " codigo_ficha "
+ " ,codigo_area_cargo_tipo_pago "
+ " ,sueldo_escalafon "
+ " ,sueldo_mensual "
+ " ,sueldo_presidencia "
+ " ,observacion "
+ " ,fecha_registro "
+ " ,estado_registro "
+ ") values ( "
+ " ? "
+ " ,? "
+ " ,? "
+ " ,? "
+ " ,? "
+ " ,? "
+ " ,now() "
+ " ,1 "
+ ")";
// ACTIVIDAD N° 5
boolean flagSueldos = false;
if (fl.getTipoFicha().equals("A")) {
sql = ""
+ "insert into sueldo_administrativo ( "
+ " codigo_ficha "
+ " ,codigo_area_cargo_tipo_pago "
+ " ,sueldo_escalafon "
+ " ,sueldo_mensual "
+ " ,sueldo_presidencia "
+ " ,observacion "
+ " ,fecha_registro "
+ " ,estado_registro "
+ ") values ( "
+ " ? "
+ " ,? "
+ " ,? "
+ " ,? "
+ " ,? "
+ " ,? "
+ " ,now() "
+ " ,1 "
+ ")";
psRegistrarSueldoAdministrativo = conexion.prepareStatement(sql);
psRegistrarSueldoAdministrativo.setInt(1, sa.getCodigoFicha());
psRegistrarSueldoAdministrativo.setInt(2, sa.getCodigoAreaCargoTipoPago());
psRegistrarSueldoAdministrativo.setString(3, sa.getSueldoEscalafon());
psRegistrarSueldoAdministrativo.setString(4, sa.getSueldoMensual());
psRegistrarSueldoAdministrativo.setNull(5, Types.DOUBLE);
psRegistrarSueldoAdministrativo.setString(6, sa.getObservacion());
int resultadoRegistrarSueldoAdministrativo = psRegistrarSueldoAdministrativo.executeUpdate();
if (resultadoRegistrarSueldoAdministrativo > 0) {
flagSueldos = true;
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar el sueldo administrativo");
conexion.rollback();
}
} else if (fl.getTipoFicha().equals("D")) {
switch (sd.getCodigoAreaCargoTipoPago()) {
case 5: // horas
sql = ""
+ "insert into sueldo_docente (codigo_ficha, codigo_area_cargo_tipo_pago, costo_a, costo_b, costo_c, observacion, fecha_registro, estado_registro) "
+ "values (?, ?, ?, ?, ?, ?, now(), 1)";
psRegistrarSueldoAdministrativo = conexion.prepareStatement(sql);
psRegistrarSueldoAdministrativo.setInt(1, sa.getCodigoFicha());
psRegistrarSueldoAdministrativo.setInt(2, sa.getCodigoAreaCargoTipoPago());
psRegistrarSueldoAdministrativo.setString(3, sa.getSueldoEscalafon());
psRegistrarSueldoAdministrativo.setString(4, sa.getSueldoMensual());
psRegistrarSueldoAdministrativo.setNull(5, Types.DOUBLE);
psRegistrarSueldoAdministrativo.setString(6, sa.getObservacion());
int resultadoRegistrarSueldoAdministrativo = psRegistrarSueldoAdministrativo.executeUpdate();
if (resultadoRegistrarSueldoAdministrativo > 0) {
flagSueldos = true;
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar el sueldo administrativo");
conexion.rollback();
}
} else if (fl.getTipoFicha().equals("D")) {
switch (sd.getCodigoAreaCargoTipoPago()) {
case 5: // horas
sql = ""
+ "insert into sueldo_docente (codigo_ficha, codigo_area_cargo_tipo_pago, costo_a, costo_b, costo_c, observacion, fecha_registro, estado_registro) "
+ "values (?, ?, ?, ?, ?, ?, now(), 1)";
psRegistrarSueldoDocente = conexion.prepareStatement(sql);
psRegistrarSueldoDocente.setInt(1, sd.getCodigoFicha());
psRegistrarSueldoDocente.setInt(2, sd.getCodigoAreaCargoTipoPago());
psRegistrarSueldoDocente.setString(3, sd.getCostoa());
psRegistrarSueldoDocente.setString(4, sd.getCostob());
psRegistrarSueldoDocente.setString(5, sd.getCostoc());
psRegistrarSueldoDocente.setString(6, sd.getObservacion());
break;
case 6: // mensual
sql = ""
+ "insert into sueldo_docente (codigo_ficha, codigo_area_cargo_tipo_pago, costo_mensual, observacion, fecha_registro, estado_registro) "
+ "values (?, ?, ?, ?, now(), 1)";
psRegistrarSueldoDocente = conexion.prepareStatement(sql);
psRegistrarSueldoDocente.setInt(1, sd.getCodigoFicha());
psRegistrarSueldoDocente.setInt(2, sd.getCodigoAreaCargoTipoPago());
psRegistrarSueldoDocente.setString(3, sd.getCostoa());
psRegistrarSueldoDocente.setString(4, sd.getCostob());
psRegistrarSueldoDocente.setString(5, sd.getCostoc());
psRegistrarSueldoDocente.setString(6, sd.getObservacion());
break;
case 6: // mensual
sql = ""
+ "insert into sueldo_docente (codigo_ficha, codigo_area_cargo_tipo_pago, costo_mensual, observacion, fecha_registro, estado_registro) "
+ "values (?, ?, ?, ?, now(), 1)";
psRegistrarSueldoDocente = conexion.prepareStatement(sql);
psRegistrarSueldoDocente.setInt(1, sd.getCodigoFicha());
psRegistrarSueldoDocente.setInt(2, sd.getCodigoAreaCargoTipoPago());
psRegistrarSueldoDocente.setString(3, sd.getCostoMensual());
psRegistrarSueldoDocente.setString(4, sd.getObservacion());
break;
case 19: // administrativo
sql = ""
+ "insert into sueldo_docente (codigo_ficha, codigo_area_cargo_tipo_pago, costo_mensual, costo_a, costo_b, costo_c, observacion, fecha_registro, estado_registro) "
+ "values (?, ?, ?, ?, ?, ?, ?, now(), 1)";
psRegistrarSueldoDocente = conexion.prepareStatement(sql);
psRegistrarSueldoDocente.setInt(1, sd.getCodigoFicha());
psRegistrarSueldoDocente.setInt(2, sd.getCodigoAreaCargoTipoPago());
psRegistrarSueldoDocente.setString(3, sd.getCostoMensual());
psRegistrarSueldoDocente.setString(4, sd.getObservacion());
break;
case 19: // administrativo
sql = ""
+ "insert into sueldo_docente (codigo_ficha, codigo_area_cargo_tipo_pago, costo_mensual, costo_a, costo_b, costo_c, observacion, fecha_registro, estado_registro) "
+ "values (?, ?, ?, ?, ?, ?, ?, now(), 1)";
psRegistrarSueldoDocente = conexion.prepareStatement(sql);
psRegistrarSueldoDocente.setInt(1, sd.getCodigoFicha());
psRegistrarSueldoDocente.setInt(2, sd.getCodigoAreaCargoTipoPago());
psRegistrarSueldoDocente.setString(3, sd.getCostoMensual());
psRegistrarSueldoDocente.setString(4, sd.getCostoa());
psRegistrarSueldoDocente.setString(5, sd.getCostob());
psRegistrarSueldoDocente.setString(6, sd.getCostoc());
psRegistrarSueldoDocente.setString(7, sd.getObservacion());
break;
default:
response.setStatus(false);
response.setMessage("No se encontró un tipo de pago para el docente");
conexion.rollback();
}
int resultadoRegistrarSueldoDocente = psRegistrarSueldoDocente.executeUpdate();
if (resultadoRegistrarSueldoDocente > 0) {
flagSueldos = true;
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar el sueldo del docente");
conexion.rollback();
}
}
psRegistrarSueldoDocente = conexion.prepareStatement(sql);
psRegistrarSueldoDocente.setInt(1, sd.getCodigoFicha());
psRegistrarSueldoDocente.setInt(2, sd.getCodigoAreaCargoTipoPago());
psRegistrarSueldoDocente.setString(3, sd.getCostoMensual());
psRegistrarSueldoDocente.setString(4, sd.getCostoa());
psRegistrarSueldoDocente.setString(5, sd.getCostob());
psRegistrarSueldoDocente.setString(6, sd.getCostoc());
psRegistrarSueldoDocente.setString(7, sd.getObservacion());
break;
default:
response.setStatus(false);
response.setMessage("No se encontró un tipo de pago para el docente");
conexion.rollback();
}
int resultadoRegistrarSueldoDocente = psRegistrarSueldoDocente.executeUpdate();
if (resultadoRegistrarSueldoDocente > 0) {
flagSueldos = true;
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar el sueldo del docente");
conexion.rollback();
}
}
if (flagSueldos) {
if (flagSueldos) {
// ACTIVIDAD N° 6
sql = ""
+ "select "
+ "codigo_estado_ficha codigoEstadoFicha "
+ "from estado_ficha "
+ "where codigo_ficha = ? and estado_registro = 1";
// ACTIVIDAD N° 6
sql = ""
+ "select "
+ "codigo_estado_ficha codigoEstadoFicha "
+ "from estado_ficha "
+ "where codigo_ficha = ? and estado_registro = 1";
psObtenerUltimoEstadoFicha = conexion.prepareStatement(sql);
psObtenerUltimoEstadoFicha.setInt(1, fl.getCodigoFicha());
rsObtenerUltimoEstadoFicha = psObtenerUltimoEstadoFicha.executeQuery();
rsObtenerUltimoEstadoFicha.next();
int codigoEstadoFicha = rsObtenerUltimoEstadoFicha.getInt("codigoEstadoFicha");
if (codigoEstadoFicha > 0) {
psObtenerUltimoEstadoFicha = conexion.prepareStatement(sql);
psObtenerUltimoEstadoFicha.setInt(1, fl.getCodigoFicha());
rsObtenerUltimoEstadoFicha = psObtenerUltimoEstadoFicha.executeQuery();
rsObtenerUltimoEstadoFicha.next();
int codigoEstadoFicha = rsObtenerUltimoEstadoFicha.getInt("codigoEstadoFicha");
if (codigoEstadoFicha > 0) {
// ACTIVIDAD N° 7
sql = ""
+ "update estado_ficha "
+ "set estado_registro = 0 "
+ "where codigo_estado_ficha = ? and estado_registro = 1";
// ACTIVIDAD N° 7
sql = ""
+ "update estado_ficha "
+ "set estado_registro = 0 "
+ "where codigo_estado_ficha = ? and estado_registro = 1";
psDesactivarEstadoFicha = conexion.prepareStatement(sql);
psDesactivarEstadoFicha.setInt(1, codigoEstadoFicha);
int resultadoDesactivarEstadoFicha = psDesactivarEstadoFicha.executeUpdate();
if (resultadoDesactivarEstadoFicha > 0) {
psDesactivarEstadoFicha = conexion.prepareStatement(sql);
psDesactivarEstadoFicha.setInt(1, codigoEstadoFicha);
int resultadoDesactivarEstadoFicha = psDesactivarEstadoFicha.executeUpdate();
if (resultadoDesactivarEstadoFicha > 0) {
// ACTIVIDAD N° 8
sql = ""
+ "insert into estado_ficha ( "
+ " codigo_ficha "
+ " ,codigo_tipo_estado_ficha "
+ " ,fecha_registro "
+ " ,codigo_usuario "
+ " ,estado_registro "
+ ") values ( "
+ " ? "
+ " ,? "
+ " ,now() "
+ " ,? "
+ " ,1 "
+ ")";
// ACTIVIDAD N° 8
sql = ""
+ "insert into estado_ficha ( "
+ " codigo_ficha "
+ " ,codigo_tipo_estado_ficha "
+ " ,fecha_registro "
+ " ,codigo_usuario "
+ " ,estado_registro "
+ ") values ( "
+ " ? "
+ " ,? "
+ " ,now() "
+ " ,? "
+ " ,1 "
+ ")";
psRegistrarEstadoFicha = conexion.prepareStatement(sql);
psRegistrarEstadoFicha.setInt(1, fl.getCodigoFicha());
psRegistrarEstadoFicha.setInt(2, 4);
psRegistrarEstadoFicha.setInt(3, u.getCodigoUsuario());
int resultadoRegistrarEstadoFicha = psRegistrarEstadoFicha.executeUpdate();
if (resultadoRegistrarEstadoFicha > 0) {
response.setStatus(true);
response.setMessage("Enhorabuena!, Los datos administrativos han sido registrados correctamente");
conexion.commit();
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar el nuevo estado de ficha 'COMPLETADO'");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo desactivar el ultimo estado de ficha");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo obtener el código de estado de ficha");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("Error ocurrió un problema al registrar los sueldos del personal, por favor contactarse con el área de sistemas");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar la ficha laboral");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar los expedientes");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage(validarExpediente.getString("message"));
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar el enlace de alfresco");
conexion.rollback();
}
} catch (SQLException e) {
e.printStackTrace();
response.setStatus(false);
response.setMessage("Error: " + e.getMessage() + " Error Code: [" + e.getErrorCode() + "]");
} finally {
try {
if (rsObtenerCodigoPersona != null) {
rsObtenerCodigoPersona.close();
}
if (rsObtenerUltimoEstadoFicha != null) {
rsObtenerUltimoEstadoFicha.close();
}
if (psObtenerCodigoPersona != null) {
psObtenerCodigoPersona.close();
}
if (psRegistrarEnlace != null) {
psRegistrarEnlace.close();
}
if (psRegistrarExpediente != null) {
psRegistrarExpediente.close();
}
if (psRegistrarFichaLaboral != null) {
psRegistrarFichaLaboral.close();
}
if (psRegistrarSueldoAdministrativo != null) {
psRegistrarSueldoAdministrativo.close();
}
if (psRegistrarSueldoDocente != null) {
psRegistrarSueldoDocente.close();
}
if (psObtenerUltimoEstadoFicha != null) {
psObtenerUltimoEstadoFicha.close();
}
if (psDesactivarEstadoFicha != null) {
psDesactivarEstadoFicha.close();
}
if (psRegistrarEstadoFicha != null) {
psRegistrarEstadoFicha.close();
}
if (conexion != null) {
conexion.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
JORegistrarFichaLaboral = new JSONObject(response);
return JORegistrarFichaLaboral;
}
psRegistrarEstadoFicha = conexion.prepareStatement(sql);
psRegistrarEstadoFicha.setInt(1, fl.getCodigoFicha());
psRegistrarEstadoFicha.setInt(2, 4);
psRegistrarEstadoFicha.setInt(3, u.getCodigoUsuario());
int resultadoRegistrarEstadoFicha = psRegistrarEstadoFicha.executeUpdate();
if (resultadoRegistrarEstadoFicha > 0) {
response.setStatus(true);
response.setMessage("Enhorabuena!, Los datos administrativos han sido registrados correctamente");
conexion.commit();
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar el nuevo estado de ficha 'COMPLETADO'");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo desactivar el ultimo estado de ficha");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo obtener el código de estado de ficha");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("Error ocurrió un problema al registrar los sueldos del personal, por favor contactarse con el área de sistemas");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar la ficha laboral");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar los expedientes");
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage(validarExpediente.getString("message"));
conexion.rollback();
}
} else {
response.setStatus(false);
response.setMessage("No se pudo registrar el enlace de alfresco");
conexion.rollback();
}
} catch (SQLException e) {
e.printStackTrace();
response.setStatus(false);
response.setMessage("Error: " + e.getMessage() + " Error Code: [" + e.getErrorCode() + "]");
} finally {
try {
if (rsObtenerCodigoPersona != null) {
rsObtenerCodigoPersona.close();
}
if (rsObtenerUltimoEstadoFicha != null) {
rsObtenerUltimoEstadoFicha.close();
}
if (psObtenerCodigoPersona != null) {
psObtenerCodigoPersona.close();
}
if (psRegistrarEnlace != null) {
psRegistrarEnlace.close();
}
if (psRegistrarExpediente != null) {
psRegistrarExpediente.close();
}
if (psRegistrarFichaLaboral != null) {
psRegistrarFichaLaboral.close();
}
if (psRegistrarSueldoAdministrativo != null) {
psRegistrarSueldoAdministrativo.close();
}
if (psRegistrarSueldoDocente != null) {
psRegistrarSueldoDocente.close();
}
if (psObtenerUltimoEstadoFicha != null) {
psObtenerUltimoEstadoFicha.close();
}
if (psDesactivarEstadoFicha != null) {
psDesactivarEstadoFicha.close();
}
if (psRegistrarEstadoFicha != null) {
psRegistrarEstadoFicha.close();
}
if (conexion != null) {
conexion.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
JORegistrarFichaLaboral = new JSONObject(response);
return JORegistrarFichaLaboral;
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -30,57 +30,6 @@ public class LoteFichaMysqlDAO implements LoteFichaDAO {
try {
cnx = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME);
String sq
= "select top " + length + " "
+ "ficha.codigo_ficha codigoFicha, "
+ "ficha.codigo_persona codigoPersona, "
+ "persona.apellido_paterno apellidoPaterno, "
+ "persona.apellido_materno apellidoMaterno, "
+ "persona.nombre nombre, "
+ "persona.numero_documento numeroDocumento, "
+ "ficha_laboral.tipo_ficha tipoFicha, "
+ "sede.nombre nombreSede, "
+ "area.nombre nombreArea, "
+ "cargo.nombre nombreCargo, "
+ "sueldo_administrativo.sueldo_escalafon sueldoEscalafonAdministrativo, "
+ "sueldo_administrativo.sueldo_mensual sueldoMensualAdministrativo, "
+ "ifnull(sueldo_administrativo.observacion,'') observacionAdministrativo, "
+ "sueldo_docente.costo_mensual costoMensualDocente, "
+ "sueldo_docente.costo_a costoADocente, "
+ "sueldo_docente.costo_b costoBDocente, "
+ "sueldo_docente.costo_c costoCDocente, "
+ "sueldo_docente.observacion observacionDocente "
+ "FROM ficha "
+ "inner join persona ON persona.codigo_persona = ficha.codigo_persona "
+ "inner join ficha_laboral ON ficha_laboral.codigo_ficha = ficha.codigo_ficha "
+ "inner join sede_area ON sede_area.codigo_sede_area = ficha_laboral.codigo_sede_area "
+ "inner join sede ON sede.codigo_sede = sede_area.codigo_sede "
+ "inner join area ON area.codigo_area = sede_area.codigo_area "
+ "inner join area_cargo ON area_cargo.codigo_area_cargo = ficha_laboral.codigo_area_cargo "
+ "inner join cargo ON cargo.codigo_cargo = area_cargo.codigo_cargo "
+ "left join sueldo_administrativo ON sueldo_administrativo.codigo_ficha = ficha_laboral.codigo_ficha "
+ "left join sueldo_docente ON sueldo_docente.codigo_ficha = ficha_laboral.codigo_ficha "
+ "where ficha.estado_registro = 1 and ficha.codigo_ficha not in "
+ "( "
+ "select top " + start + " "
+ "x.codigo_ficha from ficha x "
+ "inner join estado_ficha ON estado_ficha.codigo_ficha = x.codigo_ficha "
+ "inner join ficha_laboral ON ficha_laboral.codigo_ficha = x.codigo_ficha "
+ "left join sueldo_administrativo ON sueldo_administrativo.codigo_ficha = ficha_laboral.codigo_ficha "
+ "left join sueldo_docente ON sueldo_docente.codigo_ficha = ficha_laboral.codigo_ficha "
+ "where estado_ficha.estado_registro = 1 and estado_ficha.codigo_tipo_estado_ficha = 4 "
+ condicion + " "
+ "order by 1 desc "
+ ") "
+ "and "
+ "( "
+ "select top 1 estado_ficha.codigo_tipo_estado_ficha FROM ficha x "
+ "inner join estado_ficha ON estado_ficha.codigo_ficha = x.codigo_ficha "
+ "inner join tipo_estado_ficha ON tipo_estado_ficha.codigo_tipo_estado_ficha = estado_ficha.codigo_tipo_estado_ficha "
+ "where x.codigo_ficha = ficha.codigo_ficha and estado_ficha.estado_registro = 1 "
+ ") = 4 "
+ condicion + " "
+ "order by 1 desc";
String sql = "SELECT "
+ " ficha.codigo_ficha codigoFicha, "
......@@ -216,7 +165,7 @@ public class LoteFichaMysqlDAO implements LoteFichaDAO {
+ "ORDER BY "
+ " 1 DESC";
psCantidadFilas = cnx.prepareStatement(sqlCantidadFilas);
psCantidadFilas = cnx.prepareStatement(sqlCantidadFilas);
rsCantidadFilas = psCantidadFilas.executeQuery();
rsCantidadFilas.next();
cantidadFilas = rsCantidadFilas.getInt("cantidadFilas");
......
......@@ -25,8 +25,7 @@ public class UbigeoMysqlDAO implements UbigeoDAO {
ResponseHelper response = new ResponseHelper();
try {
connection = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME);
String sql
= "select "
String sql = "select "
+ "codigo_departamento codigoDepartamento, "
+ "nombre_departamento nombreDepartamento "
+ "from ubigeo "
......@@ -215,7 +214,7 @@ public class UbigeoMysqlDAO implements UbigeoDAO {
rs = ps.executeQuery();
rs.next();
existeDepartamento = rs.getInt("existeDepartamento");
if (existeDepartamento > 0) {
response.setStatus(true);
response.setMessage("El departamento seleccionado existe.");
......
......@@ -76,8 +76,6 @@ public class DetalleLoteFichaDocenteServlet extends HttpServlet {
PrintWriter out = response.getWriter();
DetalleLoteFichaDocenteService service = new DetalleLoteFichaDocenteService();
LoteFichaBean loteFicha = new LoteFichaBean();
int codigoLote = Integer.parseInt(request.getParameter("codigoFichaLote"));
loteFicha.setCodigoFichaLote(codigoLote);
JSONObject jsonObjListarDetalleLoteFichaDocente = service.listarDetalleLoteFichaDocenteDT(loteFicha);
out.print(jsonObjListarDetalleLoteFichaDocente);
}
......@@ -297,9 +295,7 @@ public class DetalleLoteFichaDocenteServlet extends HttpServlet {
response.setContentType("application/json");
PrintWriter out = response.getWriter();
DetalleLoteFichaDocenteService service = new DetalleLoteFichaDocenteService();
String codigoFichaLote = request.getParameter("codigoFichaLote");
JSONObject datos = new JSONObject();
datos.put("codigoFichaLote", codigoFichaLote);
JSONObject respuesta = service.listarDetalleLoteFichaAdministrativoDT(datos);
out.print(respuesta);
}
......@@ -348,6 +344,7 @@ public class DetalleLoteFichaDocenteServlet extends HttpServlet {
jsonReturn.put("formacionacademica", jOFormacion);
jsonReturn.put("expediente", jOExpediente);
jsonReturn.put("datosAdministrativos", jODatosAdministrativos);
jsonReturn.put("datosFicha", datos);
return jsonReturn;
}
......
......@@ -76,7 +76,7 @@ public class LoteFichaServlet extends HttpServlet {
JSONObject jsonReturn = service.registrarLote(jsonObjRegistrarLote, usuario);
out.print(jsonReturn);
} else {
out.print("Ha ocurrido un error. Al parecer esta infringiendo las leyes de los values en los inputs.");
out.print("Ha ocurrido un error. Al parecer esta infringiendo las leyes de los values en los inputs. Llamaremos al FBI, alto ahi, rufián.");
}
} else {
out.print("Ha ocurrido un error. Al parecer esta infringiendo las leyes de los values en los inputs.");
......
......@@ -2,19 +2,19 @@
"use strict";
$(document).ready(() => {
initSelect2();
criterioBusqueda();
limpiarFiltro();
validarFormBuscarFichas();
reglasFormBuscarFichas();
listarFichas();
verDetalleEstadoFicha();
verDetalleFichaCompletado();
verDetalleFichaAdministrativaObservadaPorPresidencia();
anularFicha();
verObservacion();
imprimirFicha();
imprimirActividadFicha();
initSelect2();
criterioBusqueda();
limpiarFiltro();
validarFormBuscarFichas();
reglasFormBuscarFichas();
listarFichas();
verDetalleEstadoFicha();
verDetalleFichaCompletado();
verDetalleFichaAdministrativaObservadaPorPresidencia();
anularFicha();
verObservacion();
imprimirFicha();
imprimirActividadFicha();
});
// INICIALIZACION
//========================================
......@@ -25,41 +25,41 @@ let tipoEntrada = '';
let paramCodigoFicha = 0;
/** inicializa el select */
function initSelect2() {
$('.select').select2({
minimumResultsForSearch: Infinity
});
$('.select').select2({
minimumResultsForSearch: Infinity
});
}
/** inicializa el datepicker */
function initSelectDatepicker() {
$(".datepicker").prop('readonly', true);
$(".datepicker").datepicker({
dateFormat: 'dd/mm/yy',
showButtonPanel: false,
onSelect: function () {
$(this).valid();
}
});
let date = new Date();
$(".datepicker").datepicker("setDate", date);
$.datepicker.regional['es'] = {
closeText: 'Cerrar',
prevText: '<Ant',
nextText: 'Sig>',
currentText: 'Hoy',
monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
weekHeader: 'Sm',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['es']);
$(".datepicker").prop('readonly', true);
$(".datepicker").datepicker({
dateFormat: 'dd/mm/yy',
showButtonPanel: false,
onSelect: function () {
$(this).valid();
}
});
let date = new Date();
$(".datepicker").datepicker("setDate", date);
$.datepicker.regional['es'] = {
closeText: 'Cerrar',
prevText: '<Ant',
nextText: 'Sig>',
currentText: 'Hoy',
monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
weekHeader: 'Sm',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['es']);
}
/**
......@@ -67,24 +67,24 @@ function initSelectDatepicker() {
* @returns {JSONObject} JsonObject
* */
function listarTipoDocumentoRequest() {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet?accion=listarTipoDocumento',
beforeSend: function () {
load("Listando tipo de documentos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
resolve(data);
}
},
error: function () {
reject("No se pudo procesar la solicitud de listar tipo de documento");
}
});
});
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet?accion=listarTipoDocumento',
beforeSend: function () {
load("Listando tipo de documentos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
resolve(data);
}
},
error: function () {
reject("No se pudo procesar la solicitud de listar tipo de documento");
}
});
});
}
/**
......@@ -92,25 +92,25 @@ function listarTipoDocumentoRequest() {
* @returns {JSONObject}
*/
function listarTipoEstadoFichaRequest() {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoEstadoFichaServlet',
data: {accion: 'listarTipoEstadoFicha'},
beforeSend: function (xhr) {
load('Listando tipo de estados de ficha');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
resolve(data);
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de listar tipos de estados de ficha");
}
});
});
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoEstadoFichaServlet',
data: {accion: 'listarTipoEstadoFicha'},
beforeSend: function (xhr) {
load('Listando tipo de estados de ficha');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
resolve(data);
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de listar tipos de estados de ficha");
}
});
});
}
/**
......@@ -118,9 +118,9 @@ function listarTipoEstadoFichaRequest() {
* @argument {int} cboID
* */
function listarTipoEstadoFichaResponse(cboID) {
listarTipoEstadoFichaRequest().then((data) => {
$('#' + cboID).html(createSelectOptions(data.data.tiposEstadoFicha, 'codigoTipoEstadoFicha', 'nombre'));
});
listarTipoEstadoFichaRequest().then((data) => {
$('#' + cboID).html(createSelectOptions(data.data.tiposEstadoFicha, 'codigoTipoEstadoFicha', 'nombre'));
});
}
/**
......@@ -132,20 +132,20 @@ function listarTipoEstadoFichaResponse(cboID) {
* @returns {Promise} Promise retorna status, msg
*/
let createSelectOptions = (obj, valueName, textName) => {
let options = '<option value="0">[SELECCIONAR]</option>';
obj.forEach((data) => {
options += '<option value="' + data[valueName] + '">' + data[textName] + '</option>';
});
return options;
let options = '<option value="0">[SELECCIONAR]</option>';
obj.forEach((data) => {
options += '<option value="' + data[valueName] + '">' + data[textName] + '</option>';
});
return options;
};
/*
* Lista el tipo de documento
* @argument {int} cboID
* */
function listarTipoDocumentoResponse(cboID) {
listarTipoDocumentoRequest().then((data) => {
$('#' + cboID).html(createSelectOptions(data.data.tipodocumentos, 'codigoTipoDocumento', 'descripcionCorta'));
});
listarTipoDocumentoRequest().then((data) => {
$('#' + cboID).html(createSelectOptions(data.data.tipodocumentos, 'codigoTipoDocumento', 'descripcionCorta'));
});
}
/**
......@@ -155,28 +155,28 @@ function listarTipoDocumentoResponse(cboID) {
* @return {boolean} verdadero|falso
* */
function validarExistenciaTipoDocumentoRequest(codigoTipoDocumento) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet',
data: {accion: 'validarExistenciaTipoDocumento', codigoTipoDocumento: codigoTipoDocumento},
beforeSend: function () {
load("Validando datos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.status);
} else {
$(location).attr('href', 'templates/close.jsp');
}
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de validar existencia tipo de documento");
}
});
});
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet',
data: {accion: 'validarExistenciaTipoDocumento', codigoTipoDocumento: codigoTipoDocumento},
beforeSend: function () {
load("Validando datos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.status);
} else {
$(location).attr('href', 'templates/close.jsp');
}
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de validar existencia tipo de documento");
}
});
});
}
/**
......@@ -186,28 +186,28 @@ function validarExistenciaTipoDocumentoRequest(codigoTipoDocumento) {
* @returns {JSONArray}
* */
function obtenerLongitudTipoEntrdadaTipoDocumentoRequest(codigoTipoDocumento) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet',
data: {accion: 'obtenerLongitudTipoEntrdadaTipoDocumento', codigoTipoDocumento: codigoTipoDocumento},
beforeSend: function () {
load("Validando datos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.data.tipodocumentos);
} else {
$(location).attr('href', 'templates/close.jsp');
}
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de obtener longitud y tipo entrada del tipo de documento");
}
});
});
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet',
data: {accion: 'obtenerLongitudTipoEntrdadaTipoDocumento', codigoTipoDocumento: codigoTipoDocumento},
beforeSend: function () {
load("Validando datos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.data.tipodocumentos);
} else {
$(location).attr('href', 'templates/close.jsp');
}
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de obtener longitud y tipo entrada del tipo de documento");
}
});
});
}
// PANEL CRITERIO DE BUSQUEDA
......@@ -222,37 +222,37 @@ function obtenerLongitudTipoEntrdadaTipoDocumentoRequest(codigoTipoDocumento) {
* */
function criterioBusqueda() {
$('#cboCriterioBusqueda').change((e) => {
$(e.currentTarget).valid();
let codigoCriterioBusqueda = parseInt($('#cboCriterioBusqueda').val());
if (isNaN(codigoCriterioBusqueda)) {
$(location).attr('href', 'templates/close.jsp');
}
if (codigoCriterioBusqueda === 0) { // [SELECCIONAR]
$('#divRowFiltro1').html('');
$('#divRowFiltro2').html('');
} else if (codigoCriterioBusqueda === 1) { // TIPO DE DOCUMENTO
HTMLtipoDocumento();
validarTipoDocumento();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 2) { // APELLIDOS
HTMLapellidos();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 3) { // FECHA DE REGISTRO
HTMLfechaRegistro();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 4) { // ESTADO
HTMLtipoEstadoFicha();
reglasFormBuscarFichas();
}
});
$('#cboCriterioBusqueda').change((e) => {
$(e.currentTarget).valid();
let codigoCriterioBusqueda = parseInt($('#cboCriterioBusqueda').val());
if (isNaN(codigoCriterioBusqueda)) {
$(location).attr('href', 'templates/close.jsp');
}
if (codigoCriterioBusqueda === 0) { // [SELECCIONAR]
$('#divRowFiltro1').html('');
$('#divRowFiltro2').html('');
} else if (codigoCriterioBusqueda === 1) { // TIPO DE DOCUMENTO
HTMLtipoDocumento();
validarTipoDocumento();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 2) { // APELLIDOS
HTMLapellidos();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 3) { // FECHA DE REGISTRO
HTMLfechaRegistro();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 4) { // ESTADO
HTMLtipoEstadoFicha();
reglasFormBuscarFichas();
}
});
}
/** Dibujar el select tipo de documento */
function HTMLtipoDocumento() {
let cboTipoDocumento =
`
let cboTipoDocumento =
`
<div class="col-md-4">
<div class="form-group">
<label for="cboTipoDocumento" class="text-semibold">Tipo documento <span class="text-danger">(*)</span></label>
......@@ -262,17 +262,17 @@ function HTMLtipoDocumento() {
</div>
</div>
`;
$('#divRowFiltro1').html(cboTipoDocumento);
$('#divRowFiltro2').html('');
$('#cboTipoDocumento').select2({
minimumResultsForSearch: Infinity
});
$('#divRowFiltro1').html(cboTipoDocumento);
$('#divRowFiltro2').html('');
$('#cboTipoDocumento').select2({
minimumResultsForSearch: Infinity
});
}
/** Dibujar el input de apellidos */
function HTMLapellidos() {
let txtApellidos =
`
let txtApellidos =
`
<div class="col-md-4">
<div class="form-group">
<label for="txtApellidos" class="text-semibold">Apellido paterno <span class="text-danger">(*)</span></label>
......@@ -280,15 +280,15 @@ function HTMLapellidos() {
</div>
</div>
`;
$('#divRowFiltro1').html(txtApellidos);
$('#txtApellidos').validCampo('abcdefghijklmnñopqrstuvwxyzáéíóú ');
$('#divRowFiltro2').html('');
$('#divRowFiltro1').html(txtApellidos);
$('#txtApellidos').validCampo('abcdefghijklmnñopqrstuvwxyzáéíóú ');
$('#divRowFiltro2').html('');
}
/** Dibujar la fecha "desde" y "hasta" */
function HTMLfechaRegistro() {
let dpFechaRegistroDesde =
`
let dpFechaRegistroDesde =
`
<div class="col-md-4">
<label for="dpFechaRegistroDesde" class="text-semibold">Desde <span class="text-danger">(*)</span></label>
<div class="input-group">
......@@ -297,8 +297,8 @@ function HTMLfechaRegistro() {
</div>
</div>
`;
let dpFechaRegistroHasta =
`
let dpFechaRegistroHasta =
`
<div class="col-md-4">
<label for="dpFechaRegistroHasta" class="text-semibold">Hasta <span class="text-danger">(*)</span></label>
<div class="input-group">
......@@ -307,15 +307,15 @@ function HTMLfechaRegistro() {
</div>
</div>
`;
$('#divRowFiltro1').html(dpFechaRegistroDesde);
$('#divRowFiltro2').html(dpFechaRegistroHasta);
initSelectDatepicker();
$('#divRowFiltro1').html(dpFechaRegistroDesde);
$('#divRowFiltro2').html(dpFechaRegistroHasta);
initSelectDatepicker();
}
/** Dibujar el select de tipo de estados */
function HTMLtipoEstadoFicha() {
let cboTipoEstado =
`
let cboTipoEstado =
`
<div class="col-md-4">
<div class="form-group">
<label for="cboTipoEstadoFicha" class="text-semibold">Estado ficha <span class="text-danger">(*)</span></label>
......@@ -325,37 +325,37 @@ function HTMLtipoEstadoFicha() {
</div>
</div>
`;
$('#divRowFiltro1').html(cboTipoEstado);
$('#divRowFiltro2').html('');
$('#cboTipoEstadoFicha').select2({
minimumResultsForSearch: Infinity
});
$('#cboTipoEstadoFicha').change((e) => {
$(e.currentTarget).valid();
});
$('#divRowFiltro1').html(cboTipoEstado);
$('#divRowFiltro2').html('');
$('#cboTipoEstadoFicha').select2({
minimumResultsForSearch: Infinity
});
$('#cboTipoEstadoFicha').change((e) => {
$(e.currentTarget).valid();
});
}
/** Validar tipo de documento <br/>
* - existencia de tipo documento <br/>
* - obtener longitud y tipo entrada */
function validarTipoDocumento() {
$('#cboTipoDocumento').change((e) => {
$(e.currentTarget).valid();
let codigoTipoDocumento = parseInt($('#cboTipoDocumento').val());
if (isNaN(codigoTipoDocumento)) {
$(location).attr('href', 'templates/close.jsp');
}
if (codigoTipoDocumento === 0) {
$('#divRowFiltro2').html('');
} else {
validarExistenciaTipoDocumentoRequest(codigoTipoDocumento).then(() => {
obtenerLongitudTipoEntrdadaTipoDocumentoRequest(codigoTipoDocumento).then((tipoDocumento) => {
HTMLnumeroDocumento(tipoDocumento);
reglasFormBuscarFichas();
});
});
}
});
$('#cboTipoDocumento').change((e) => {
$(e.currentTarget).valid();
let codigoTipoDocumento = parseInt($('#cboTipoDocumento').val());
if (isNaN(codigoTipoDocumento)) {
$(location).attr('href', 'templates/close.jsp');
}
if (codigoTipoDocumento === 0) {
$('#divRowFiltro2').html('');
} else {
validarExistenciaTipoDocumentoRequest(codigoTipoDocumento).then(() => {
obtenerLongitudTipoEntrdadaTipoDocumentoRequest(codigoTipoDocumento).then((tipoDocumento) => {
HTMLnumeroDocumento(tipoDocumento);
reglasFormBuscarFichas();
});
});
}
});
}
/** Dibujar input numero de documento <br>
......@@ -364,8 +364,8 @@ function validarTipoDocumento() {
* */
function HTMLnumeroDocumento(tipoDocumento) {
let txtNumeroDocumento =
`
let txtNumeroDocumento =
`
<div class="col-md-4">
<div class="form-group">
<label for="txtNumeroDocumento" class="text-semibold">N° Documento <span class="text-danger">(*)</span></label>
......@@ -373,124 +373,124 @@ function HTMLnumeroDocumento(tipoDocumento) {
</div>
</div>
`;
$('#divRowFiltro2').html(txtNumeroDocumento);
tipoEntrada = tipoDocumento[0].tipoEntrada;
if (tipoDocumento[0].tipoEntrada === 'N') {
$('#txtNumeroDocumento').validCampo('0123456789');
} else if (tipoDocumento[0].tipoEntrada === 'A') {
$('#txtNumeroDocumento').validCampo('abcdefghijklmnopqrstuvwxyz0123456789');
}
$('#divRowFiltro2').html(txtNumeroDocumento);
tipoEntrada = tipoDocumento[0].tipoEntrada;
if (tipoDocumento[0].tipoEntrada === 'N') {
$('#txtNumeroDocumento').validCampo('0123456789');
} else if (tipoDocumento[0].tipoEntrada === 'A') {
$('#txtNumeroDocumento').validCampo('abcdefghijklmnopqrstuvwxyz0123456789');
}
}
/**
* inicializar reglas del form buscar fichas
* */
function reglasFormBuscarFichas() {
$('#cboCriterioBusqueda').rules('add', {
valueNotEquals: '0'
});
$('#cboTipoDocumento').rules('add', {
valueNotEquals: '0'
});
if (tipoEntrada === 'N') {
$('#txtNumeroDocumento').rules('remove', 'alphanumeric');
$('#txtNumeroDocumento').rules('add', {
required: true,
number: true
});
} else if (tipoEntrada === 'A') {
$('#txtNumeroDocumento').rules('remove', 'number');
$('#txtNumeroDocumento').rules('add', {
required: true,
alphanumeric: true
});
}
$('#txtApellidos').rules('add', {
required: true,
lettersonly: true
});
$('#dpFechaRegistroDesde').rules('add', {
required: true,
dateonly: true
});
$('#dpFechaRegistroHasta').rules('add', {
required: true,
dateonly: true,
greaterThan: "#dpFechaRegistroDesde"
});
$('#cboTipoEstadoFicha').rules('add', {
valueNotEquals: '0'
});
$('#cboCriterioBusqueda').rules('add', {
valueNotEquals: '0'
});
$('#cboTipoDocumento').rules('add', {
valueNotEquals: '0'
});
if (tipoEntrada === 'N') {
$('#txtNumeroDocumento').rules('remove', 'alphanumeric');
$('#txtNumeroDocumento').rules('add', {
required: true,
number: true
});
} else if (tipoEntrada === 'A') {
$('#txtNumeroDocumento').rules('remove', 'number');
$('#txtNumeroDocumento').rules('add', {
required: true,
alphanumeric: true
});
}
$('#txtApellidos').rules('add', {
required: true,
lettersonly: true
});
$('#dpFechaRegistroDesde').rules('add', {
required: true,
dateonly: true
});
$('#dpFechaRegistroHasta').rules('add', {
required: true,
dateonly: true,
greaterThan: "#dpFechaRegistroDesde"
});
$('#cboTipoEstadoFicha').rules('add', {
valueNotEquals: '0'
});
}
/**
* validar el formulario antes de enviar peticion
* */
function validarFormBuscarFichas() {
$('#formBuscarFichas').validate({
submitHandler: function () {
listarFichas();
return false;
}
});
$('#formBuscarFichas').validate({
submitHandler: function () {
listarFichas();
return false;
}
});
}
/**
* obtener valores criterios de busqueda
* */
function criterioBusquedaParams() {
let codigoCriterioBusqueda = parseInt($('#cboCriterioBusqueda').val());
if (codigoCriterioBusqueda === 1) {
let codigoTipoDocumento = parseInt($('#cboTipoDocumento').val());
let numeroDocumento = $('#txtNumeroDocumento').val();
JOCriterioBusqueda.tipoBusqueda = 'TIPO_DOCUMENTO';
JOCriterioBusqueda.codigoTipoDocumento = codigoTipoDocumento;
JOCriterioBusqueda.numeroDocumento = numeroDocumento;
} else if (codigoCriterioBusqueda === 2) {
let apellido = $('#txtApellidos').val();
JOCriterioBusqueda.tipoBusqueda = 'APELLIDOS';
JOCriterioBusqueda.apellido = apellido;
} else if (codigoCriterioBusqueda === 3) {
let fechaDesde = $('#dpFechaRegistroDesde').val();
let fechaHasta = $('#dpFechaRegistroHasta').val();
JOCriterioBusqueda.tipoBusqueda = 'FECHA_REGISTRO';
JOCriterioBusqueda.fechaDesde = fechaDesde;
JOCriterioBusqueda.fechaHasta = fechaHasta;
} else if (codigoCriterioBusqueda === 4) {
let codigoTipoEstadoFicha = parseInt($('#cboTipoEstadoFicha').val());
JOCriterioBusqueda.tipoBusqueda = 'ESTADO_FICHA';
JOCriterioBusqueda.codigoTipoEstadoFicha = codigoTipoEstadoFicha;
} else {
JOCriterioBusqueda = {};
}
return JOCriterioBusqueda;
let codigoCriterioBusqueda = parseInt($('#cboCriterioBusqueda').val());
if (codigoCriterioBusqueda === 1) {
let codigoTipoDocumento = parseInt($('#cboTipoDocumento').val());
let numeroDocumento = $('#txtNumeroDocumento').val();
JOCriterioBusqueda.tipoBusqueda = 'TIPO_DOCUMENTO';
JOCriterioBusqueda.codigoTipoDocumento = codigoTipoDocumento;
JOCriterioBusqueda.numeroDocumento = numeroDocumento;
} else if (codigoCriterioBusqueda === 2) {
let apellido = $('#txtApellidos').val();
JOCriterioBusqueda.tipoBusqueda = 'APELLIDOS';
JOCriterioBusqueda.apellido = apellido;
} else if (codigoCriterioBusqueda === 3) {
let fechaDesde = $('#dpFechaRegistroDesde').val();
let fechaHasta = $('#dpFechaRegistroHasta').val();
JOCriterioBusqueda.tipoBusqueda = 'FECHA_REGISTRO';
JOCriterioBusqueda.fechaDesde = fechaDesde;
JOCriterioBusqueda.fechaHasta = fechaHasta;
} else if (codigoCriterioBusqueda === 4) {
let codigoTipoEstadoFicha = parseInt($('#cboTipoEstadoFicha').val());
JOCriterioBusqueda.tipoBusqueda = 'ESTADO_FICHA';
JOCriterioBusqueda.codigoTipoEstadoFicha = codigoTipoEstadoFicha;
} else {
JOCriterioBusqueda = {};
}
return JOCriterioBusqueda;
}
/**
* Limpiar el filtro realizado en el panel de busqueda por criterio
*/
function limpiarFiltro() {
Ladda.bind('#btnLimpiarFiltroFichas', {
callback: function (instance) {
var progress = 0;
var interval = setInterval(function () {
progress = Math.min(progress + Math.random(), 2);
instance.setProgress(progress);
if (progress === 2) {
instance.stop();
clearInterval(interval);
$('#divRowFiltro1').html('');
$('#divRowFiltro2').html('');
$('#cboCriterioBusqueda').val(0).trigger('change');
let formBuscarFichas = $('#formBuscarFichas').validate();
formBuscarFichas.resetForm();
JOCriterioBusqueda = {}
listarFichas();
}
}, 200);
}
});
Ladda.bind('#btnLimpiarFiltroFichas', {
callback: function (instance) {
var progress = 0;
var interval = setInterval(function () {
progress = Math.min(progress + Math.random(), 2);
instance.setProgress(progress);
if (progress === 2) {
instance.stop();
clearInterval(interval);
$('#divRowFiltro1').html('');
$('#divRowFiltro2').html('');
$('#cboCriterioBusqueda').val(0).trigger('change');
let formBuscarFichas = $('#formBuscarFichas').validate();
formBuscarFichas.resetForm();
JOCriterioBusqueda = {}
listarFichas();
}
}, 200);
}
});
}
// PANEL BUSQUEDA DE FICHAS
......@@ -502,89 +502,93 @@ function limpiarFiltro() {
* se listaran las fichas
* */
function listarFichas() {
let json = {};
json = criterioBusquedaParams();
defaultConfigDataTable();
$('#tblFichas').dataTable().fnDestroy();
$('#tblFichas').DataTable({
ajax: {
type: 'POST',
url: '../FichaServlet',
dataType: 'json',
data: {
accion: 'consultarFichasPorCriterio',
json: JSON.stringify(json)
},
error: function (data) {
errorMessage(data.responseText);
}
},
processing: true,
serverSide: true,
responsive: true,
iDisplayLength: 20,
columns: [
{data: "item", className: 'text-bold text-center'},
{data: "descripcionCortaTipoDocumento"},
{data: "numeroDocumento"},
{data: "personal"},
{data: "correo"},
{data: "fechaRegistro", className: 'text-center'},
{data: "estilo", className: 'text-center'},
{
data: "codigoTipoEstadoFicha",
className: 'text-center',
render: (data) => {
let accion = ``;
let verActividad = `<li class="text-primary">
let json = {};
json = criterioBusquedaParams();
defaultConfigDataTable();
$('#tblFichas').dataTable().fnDestroy();
$('#tblFichas').DataTable({
ajax: {
type: 'POST',
url: '../FichaServlet',
dataType: 'json',
data: {
accion: 'consultarFichasPorCriterio',
json: JSON.stringify(json)
},
error: function (data) {
errorMessage(data.responseText);
}
},
processing: true,
serverSide: true,
responsive: true,
iDisplayLength: 20,
columns: [
{data: "item", className: 'text-bold text-center'},
{data: "descripcionCortaTipoDocumento"},
{data: "numeroDocumento"},
{
data: null,
render: (data) => `${data.apellidoPaterno} ${data.apellidoMaterno}, ${data.nombre}`
},
{data: "correo"},
{data: "fechaRegistro", className: 'text-center'},
{data: "estilo", className: 'text-center'},
{
data: "codigoTipoEstadoFicha",
className: 'text-center',
render: (data) => {
let accion = ``;
let verActividad = `<li class="text-primary">
<a href="#" onclick="return false" class="verActividadFicha" data-toggle="tooltip" data-placement="top" title="VER ACTIVIDAD">${icon.eye}</a>
</li>`
let anular = `<li class="text-danger">
let anular = `<li class="text-danger">
<a href="#" onclick="return false" class="anularFicha" data-toggle="tooltip" title="ANULAR FICHA">${icon["trash-o"]}</a>
</li>`
let verObservacion = `<li class="text-warning">
let verObservacion = `<li class="text-warning">
<a href="#" onclick="return false" class="verObservacion" data-toggle="tooltip" title="VER OBSERVACION"><i style="font-size: 20px" class="fa fa-exclamation-circle fa-lg"></i></a>
</li>`
let imprimir = `<li class="text-slate">
let imprimir = `<li class="text-slate">
<a href="#" onclick="return false" class="imprimirFicha" data-toggle="tooltip" title="IMPRIMIR FICHA">${icon.printer}</a>
</li>`
let completada = `<li class="text-success">
let completada = `<li class="text-success">
<a href="#" onclick="return false" class="verDetalleFichaCompletado" data-toggle="tooltip" title="VER DETALLE FICHA">${icon.file}</a>
</li>`
switch (data) {
case 1: // PENDIENTE
accion = verActividad + anular
break;
case 3: // REGISTRADO
accion = verActividad + imprimir
break;
case 4: // COMPLETADO
accion = verActividad + imprimir + completada
break;
case 6: // POR APROBAR
accion = verActividad + imprimir + completada
break;
case 7: // APROBADO POR PRESIDENCIA
accion = verActividad + imprimir + completada
break;
case 8: // OBSERVADO POR PRESIDENCIA
accion = verActividad + imprimir + completada
break;
case 13: // FICHA ANULADA
accion = verActividad + verObservacion
break;
default:
accion = '-';
break;
}
return `<ul class="icons-list">${accion}</ul>`;
}
}
],
initComplete: () => {
$('.verActividadFicha, .anularFicha, .verDetalleFichaAdministrativaObservadaPorPresidencia, .verObservacion, .imprimirFicha, .verDetalleFichaCompletado').tooltip();
}
});
switch (data) {
case 1: // PENDIENTE
accion = verActividad + anular
break;
case 3: // REGISTRADO
accion = verActividad + imprimir
break;
case 4: // COMPLETADO
accion = verActividad + imprimir + completada
break;
case 6: // POR APROBAR
accion = verActividad + imprimir + completada
break;
case 7: // APROBADO POR PRESIDENCIA
accion = verActividad + imprimir + completada
break;
case 8: // OBSERVADO POR PRESIDENCIA
accion = verActividad + imprimir + completada
break;
case 13: // FICHA ANULADA
accion = verActividad + verObservacion
break;
default:
accion = '-';
break;
}
return `<ul class="icons-list">${accion}</ul>`;
}
}
],
initComplete: () => {
$('.verActividadFicha, .anularFicha, .verDetalleFichaAdministrativaObservadaPorPresidencia, .verObservacion, .imprimirFicha, .verDetalleFichaCompletado').tooltip();
}
});
}
......@@ -592,25 +596,25 @@ function listarFichas() {
* permite ver el detalle de la ficha y asignar datos administrativos
* */
function verDetalleFichaAdministrativaObservadaPorPresidencia() {
$('#tblFichas tbody').on('click', '.verDetalleFichaAdministrativaObservadaPorPresidencia', function () {
let codigoPersona = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoPersona;
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
$.ajax({
url: '../FichaServlet',
type: 'POST',
dataType: 'json',
data: {
accion: 'listarDatosAdministrativosFicha',
codigoPersona: codigoPersona,
codigoFicha: codigoFicha
}, success: function (data, textStatus, jqXHR) {
if (data.status) {
window.location = 'fichaObservadaPorPresidencia.jsp';
window.name = JSON.stringify(data.data.persona);
}
}
});
});
$('#tblFichas tbody').on('click', '.verDetalleFichaAdministrativaObservadaPorPresidencia', function () {
let codigoPersona = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoPersona;
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
$.ajax({
url: '../FichaServlet',
type: 'POST',
dataType: 'json',
data: {
accion: 'listarDatosAdministrativosFicha',
codigoPersona: codigoPersona,
codigoFicha: codigoFicha
}, success: function (data, textStatus, jqXHR) {
if (data.status) {
window.location = 'fichaObservadaPorPresidencia.jsp';
window.name = JSON.stringify(data.data.persona);
}
}
});
});
}
/**
......@@ -620,27 +624,27 @@ function verDetalleFichaAdministrativaObservadaPorPresidencia() {
* @param {int} codigoFicha
*/
function listarDetalleEstadoFichaRequest(codigoFicha) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'listarDetalleEstadoFicha', codigoFicha: codigoFicha},
beforeSend: function () {
load("Listando los detalles de estados de la ficha");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.data.detallesEstadoFicha);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de listar detalles de estado de ficha");
}
});
});
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'listarDetalleEstadoFicha', codigoFicha: codigoFicha},
beforeSend: function () {
load("Listando los detalles de estados de la ficha");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.data.detallesEstadoFicha);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de listar detalles de estado de ficha");
}
});
});
}
/**
......@@ -649,21 +653,21 @@ function listarDetalleEstadoFichaRequest(codigoFicha) {
*/
function verDetalleEstadoFicha() {
$('#tblFichas tbody').on('click', '.verActividadFicha', function (e) {
$('#modalListadoDetalleEstadoFicha').modal({
show: true,
backdrop: 'static',
keyboard: false
});
let data = $('#tblFichas').DataTable().row($(this).parents('tr')).data();
let codigoFicha = data.codigoFicha;
paramCodigoFicha = codigoFicha;
listarDetalleEstadoFichaRequest(codigoFicha).then((data) => {
let actividades = '';
let icon = 'icon-checkmark3';
let style = 'border-success text-success';
let iconUser = '';
for (let i in data) {
$('#tblFichas tbody').on('click', '.verActividadFicha', function (e) {
$('#modalListadoDetalleEstadoFicha').modal({
show: true,
backdrop: 'static',
keyboard: false
});
let data = $('#tblFichas').DataTable().row($(this).parents('tr')).data();
let codigoFicha = data.codigoFicha;
paramCodigoFicha = codigoFicha;
listarDetalleEstadoFichaRequest(codigoFicha).then((data) => {
let actividades = '';
let icon = 'icon-checkmark3';
let style = 'border-success text-success';
let iconUser = '';
for (let i in data) {
// if (data[i].nombreEstado === 'PENDIENTE') {
// style = 'border-slate text-slate';
// icon = 'icon-loop3';
......@@ -671,13 +675,13 @@ function verDetalleEstadoFicha() {
// style = 'border-success text-success';
// icon = 'icon-checkmark3';
// }
if (parseInt(data[i].codigoUsuario) === 0) {
iconUser = 'icon-user';
} else {
iconUser = 'icon-laptop';
}
actividades +=
`
if (parseInt(data[i].codigoUsuario) === 0) {
iconUser = 'icon-user';
} else {
iconUser = 'icon-laptop';
}
actividades +=
`
<li class="media">
<div class="media-left">
<a href="#" onclick="return false;" class="btn ${style} btn-flat btn-rounded btn-icon btn-xs"><i class="${icon}"></i></a>
......@@ -690,10 +694,10 @@ function verDetalleEstadoFicha() {
</div>
</li>
`;
}
$('#listadoActividades').html(actividades);
});
});
}
$('#listadoActividades').html(actividades);
});
});
}
/**
......@@ -702,40 +706,40 @@ function verDetalleEstadoFicha() {
* cuando su estado se encuentra en completado
*/
function verDetalleFichaCompletado() {
$('#tblFichas tbody').on('click', '.verDetalleFichaCompletado', (e) => {
let rowData = $('#tblFichas').DataTable().row($(e.currentTarget).parents('tr')).data()
verDetalleFichaCompletadoRequest(rowData)
.then((data) => {
$('#tblFichas tbody').on('click', '.verDetalleFichaCompletado', (e) => {
let rowData = $('#tblFichas').DataTable().row($(e.currentTarget).parents('tr')).data()
verDetalleFichaCompletadoRequest(rowData)
.then((data) => {
// console.log(data);
window.name = JSON.stringify(data.data.persona)
localStorage.setItem('paginaActual', 'consultaFichas')
window.location = 'fichadetalle.jsp'
})
})
window.name = JSON.stringify(data.data.persona)
localStorage.setItem('paginaActual', 'consultaFichas')
window.location = 'fichadetalle.jsp'
})
})
}
function verDetalleFichaCompletadoRequest(obj) {
return new Promise((resolve, reject) => {
$.ajax({
url: '../FichaServlet',
dataType: 'json',
type: 'POST',
data: {
accion: 'listarDetalleFichaPresidencia',
codigoPersona: obj.codigoPersona,
codigoFicha: obj.codigoFicha
}, beforeSend: function (xhr) {
}, success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
resolve(data)
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject('Error al obtener detalle ficha completado')
}
})
})
return new Promise((resolve, reject) => {
$.ajax({
url: '../FichaServlet',
dataType: 'json',
type: 'POST',
data: {
accion: 'listarDetalleFichaPresidencia',
codigoPersona: obj.codigoPersona,
codigoFicha: obj.codigoFicha
}, beforeSend: function (xhr) {
}, success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
resolve(data)
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject('Error al obtener detalle ficha completado')
}
})
})
}
/**
......@@ -747,49 +751,49 @@ function verDetalleFichaCompletadoRequest(obj) {
* @returns {boolean}
*/
function anularFichaRequest(codigoFicha, observacion) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'anularFicha', codigoFicha: codigoFicha, observacion: observacion},
beforeSend: function () {
load('Anulando Ficha, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.message);
} else {
errorMessage(data.message);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de anular ficha");
}
});
});
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'anularFicha', codigoFicha: codigoFicha, observacion: observacion},
beforeSend: function () {
load('Anulando Ficha, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.message);
} else {
errorMessage(data.message);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de anular ficha");
}
});
});
}
/**
* Anular ficha
*/
function anularFicha() {
$('#tblFichas tbody').on('click', '.anularFicha', function () {
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
$.confirm({
icon: 'fa fa-question',
draggable: false,
animationBounce: 1.5,
closeAnimation: 'opacity',
theme: 'modern',
closeIcon: false,
animation: 'scale',
backgroundDismissAnimation: 'glow',
type: 'red',
title: '¿Está seguro de anular la ficha?',
content: `
$('#tblFichas tbody').on('click', '.anularFicha', function () {
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
$.confirm({
icon: 'fa fa-question',
draggable: false,
animationBounce: 1.5,
closeAnimation: 'opacity',
theme: 'modern',
closeIcon: false,
animation: 'scale',
backgroundDismissAnimation: 'glow',
type: 'red',
title: '¿Está seguro de anular la ficha?',
content: `
<form action="" class="formName">
<div class="form-group">
<label class="text-semibold">Ingrese el motivo</label>
......@@ -797,28 +801,28 @@ function anularFicha() {
</div>
</form>
`,
buttons: {
'Sí, estoy seguro': {
btnClass: 'btn-danger',
action: () => {
let observacion = $('#txtObservacion').val().trim();
if (!observacion) {
warningMessage('Debe ingresar un motivo por el cual esta anulando la ficha');
return false;
}
anularFichaRequest(codigoFicha, observacion.toUpperCase()).then((data) => {
successMessage(data);
listarFichas();
});
}
},
'Cancelar': {
btnClass: 'bg-slate'
}
}
});
});
buttons: {
'Sí, estoy seguro': {
btnClass: 'btn-danger',
action: () => {
let observacion = $('#txtObservacion').val().trim();
if (!observacion) {
warningMessage('Debe ingresar un motivo por el cual esta anulando la ficha');
return false;
}
anularFichaRequest(codigoFicha, observacion.toUpperCase()).then((data) => {
successMessage(data);
listarFichas();
});
}
},
'Cancelar': {
btnClass: 'bg-slate'
}
}
});
});
}
/**
......@@ -829,30 +833,30 @@ function anularFicha() {
* @returns {String}
*/
function verObservacionRequest(codigoFicha) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'verObservacion', codigoFicha: codigoFicha},
beforeSend: function (xhr) {
load('Cargando datos, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
let observaciones = data.data.observaciones;
if (data.status) {
for (var i in observaciones) {
resolve(observaciones[i].observacion);
}
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de ver observacion");
}
});
});
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'verObservacion', codigoFicha: codigoFicha},
beforeSend: function (xhr) {
load('Cargando datos, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
let observaciones = data.data.observaciones;
if (data.status) {
for (var i in observaciones) {
resolve(observaciones[i].observacion);
}
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de ver observacion");
}
});
});
}
/**
......@@ -861,92 +865,92 @@ function verObservacionRequest(codigoFicha) {
* la descripcion que se le puso a la ficha
*/
function verObservacion() {
$('#tblFichas tbody').on('click', '.verObservacion', function () {
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
verObservacionRequest(codigoFicha).then((data) => {
let obs = data.split('\n');
$.alert({
title: 'Observación',
icon: 'fa fa-info fa-lg',
type: 'blue',
theme: 'Material',
content:
`<h6>
$('#tblFichas tbody').on('click', '.verObservacion', function () {
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
verObservacionRequest(codigoFicha).then((data) => {
let obs = data.split('\n');
$.alert({
title: 'Observación',
icon: 'fa fa-info fa-lg',
type: 'blue',
theme: 'Material',
content:
`<h6>
${obs.map((val) => {
return '<p>' + val + '</p>';
}).join('\n')}
return '<p>' + val + '</p>';
}).join('\n')}
<h6>
`
});
});
});
});
});
});
}
/**
* imprimir fichas
*/
function imprimirFicha() {
$('#tblFichas tbody').on('click', '.imprimirFicha', function () {
let codigoPersona = parseInt($('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoPersona);
let codigoFicha = parseInt($('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha);
let json = {
codigoPersona: codigoPersona,
codigoFicha: codigoFicha
};
$('#params').val(JSON.stringify(json));
$('#formImprimirFicha').submit();
});
$('#tblFichas tbody').on('click', '.imprimirFicha', function () {
let codigoPersona = parseInt($('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoPersona);
let codigoFicha = parseInt($('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha);
let json = {
codigoPersona: codigoPersona,
codigoFicha: codigoFicha
};
$('#params').val(JSON.stringify(json));
$('#formImprimirFicha').submit();
});
}
/**
* Imprimir actividade de ficha - (flujo)
*/
function imprimirActividadFicha() {
$('#btnImprimirActividadFicha').on('click', () => {
listarDetalleEstadoFichaRequest(paramCodigoFicha).then((data) => {
let jsonData = {
arrayActividadFicha: data,
codigoFicha: paramCodigoFicha
};
$('#paramsActividadFicha').val(JSON.stringify(jsonData));
$('#formImprimirActividadFicha').submit();
});
});
$('#btnImprimirActividadFicha').on('click', () => {
listarDetalleEstadoFichaRequest(paramCodigoFicha).then((data) => {
let jsonData = {
arrayActividadFicha: data,
codigoFicha: paramCodigoFicha
};
$('#paramsActividadFicha').val(JSON.stringify(jsonData));
$('#formImprimirActividadFicha').submit();
});
});
}
printLeyend({
el: '#leyenda',
data: [
{
icon: 'eye',
color: 'primary',
title: 'Ver actividad',
description: 'Sirve para ver la actividad de la ficha.'
},
{
icon: 'trash-o',
color: 'danger',
title: 'Anular ficha',
description: 'Sirve para anular una ficha solo si tiene el estado pendiente.'
},
{
icon: 'exclamation-circle',
color: 'warning',
title: 'Ver observación',
description: 'Sirve para ver la razón de la ficha observada.'
},
{
icon: 'print',
color: 'slate',
title: 'Imprimir ficha',
description: 'Sirve para mostrar una previsualización de la ficha impresa.'
},
{
icon: 'file-text-o',
color: 'success',
title: 'Ver detalle de la ficha',
description: 'Sirve para mostrar información detalle de la ficha.'
}
]
el: '#leyenda',
data: [
{
icon: 'eye',
color: 'primary',
title: 'Ver actividad',
description: 'Sirve para ver la actividad de la ficha.'
},
{
icon: 'trash-o',
color: 'danger',
title: 'Anular ficha',
description: 'Sirve para anular una ficha solo si tiene el estado pendiente.'
},
{
icon: 'exclamation-circle',
color: 'warning',
title: 'Ver observación',
description: 'Sirve para ver la razón de la ficha observada.'
},
{
icon: 'print',
color: 'slate',
title: 'Imprimir ficha',
description: 'Sirve para mostrar una previsualización de la ficha impresa.'
},
{
icon: 'file-text-o',
color: 'success',
title: 'Ver detalle de la ficha',
description: 'Sirve para mostrar información detalle de la ficha.'
}
]
})
\ No newline at end of file
/* global Ladda, icon */
"use strict";
$(document).ready(() => {
initSelect2();
criterioBusqueda();
limpiarFiltro();
validarFormBuscarFichas();
reglasFormBuscarFichas();
listarFichas();
verDetalleEstadoFicha();
verDetalleFichaCompletado();
verDetalleFichaAdministrativaObservadaPorPresidencia();
anularFicha();
verObservacion();
imprimirFicha();
imprimirActividadFicha();
});
// INICIALIZACION
//========================================
let JOCriterioBusqueda = {};
let tipoEntrada = '';
let paramCodigoFicha = 0;
/** inicializa el select */
function initSelect2() {
$('.select').select2({
minimumResultsForSearch: Infinity
});
}
/** inicializa el datepicker */
function initSelectDatepicker() {
$(".datepicker").prop('readonly', true);
$(".datepicker").datepicker({
dateFormat: 'dd/mm/yy',
showButtonPanel: false,
onSelect: function () {
$(this).valid();
}
});
let date = new Date();
$(".datepicker").datepicker("setDate", date);
$.datepicker.regional['es'] = {
closeText: 'Cerrar',
prevText: '<Ant',
nextText: 'Sig>',
currentText: 'Hoy',
monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
weekHeader: 'Sm',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['es']);
}
/**
* Listar tipo de documento - peticion
* @returns {JSONObject} JsonObject
* */
function listarTipoDocumentoRequest() {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet?accion=listarTipoDocumento',
beforeSend: function () {
load("Listando tipo de documentos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
resolve(data);
}
},
error: function () {
reject("No se pudo procesar la solicitud de listar tipo de documento");
}
});
});
}
/**
* Listar tipo estado de fichas - peticion
* @returns {JSONObject}
*/
function listarTipoEstadoFichaRequest() {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoEstadoFichaServlet',
data: {accion: 'listarTipoEstadoFicha'},
beforeSend: function (xhr) {
load('Listando tipo de estados de ficha');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
resolve(data);
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de listar tipos de estados de ficha");
}
});
});
}
/**
* Listar tipo de estados de ficha
* @argument {int} cboID
* */
function listarTipoEstadoFichaResponse(cboID) {
listarTipoEstadoFichaRequest().then((data) => {
$('#' + cboID).html(createSelectOptions(data.data.tiposEstadoFicha, 'codigoTipoEstadoFicha', 'nombre'));
});
}
/**
* Crea los elementos option del array que se pase como parametro
* @method createSelectOptions
* @param {JSONArray} obj array de objetos
* @param {String} valueName la key del json que se usará como value del elemento option
* @param {String} textName la key del json que se usará como text del elemento option
* @returns {Promise} Promise retorna status, msg
*/
let createSelectOptions = (obj, valueName, textName) => {
let options = '<option value="0">[SELECCIONAR]</option>';
obj.forEach((data) => {
options += '<option value="' + data[valueName] + '">' + data[textName] + '</option>';
});
return options;
};
/*
* Lista el tipo de documento
* @argument {int} cboID
* */
function listarTipoDocumentoResponse(cboID) {
listarTipoDocumentoRequest().then((data) => {
$('#' + cboID).html(createSelectOptions(data.data.tipodocumentos, 'codigoTipoDocumento', 'descripcionCorta'));
});
}
/**
* valida la existencia del tipo de documento <br/>
* seleccionado
* @argument {int} codigoTipoDocumento
* @return {boolean} verdadero|falso
* */
function validarExistenciaTipoDocumentoRequest(codigoTipoDocumento) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet',
data: {accion: 'validarExistenciaTipoDocumento', codigoTipoDocumento: codigoTipoDocumento},
beforeSend: function () {
load("Validando datos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.status);
} else {
$(location).attr('href', 'templates/close.jsp');
}
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de validar existencia tipo de documento");
}
});
});
}
/**
* obtiene la longitud y tipo de entrada <br/>
* segun tipo de documento seleccionado
* @argument {int} codigoTipoDocumento
* @returns {JSONArray}
* */
function obtenerLongitudTipoEntrdadaTipoDocumentoRequest(codigoTipoDocumento) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../TipoDocumentoServlet',
data: {accion: 'obtenerLongitudTipoEntrdadaTipoDocumento', codigoTipoDocumento: codigoTipoDocumento},
beforeSend: function () {
load("Validando datos");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.data.tipodocumentos);
} else {
$(location).attr('href', 'templates/close.jsp');
}
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de obtener longitud y tipo entrada del tipo de documento");
}
});
});
}
// PANEL CRITERIO DE BUSQUEDA
//========================================
/**
* configuracion de criterio de busqueda <br/>
* FILTROS: <br/>
* 1- Tipo de documento <br/>
* 2- Apellidos <br/>
* 3- Fecha de registro <br/>
* */
function criterioBusqueda() {
$('#cboCriterioBusqueda').change((e) => {
$(e.currentTarget).valid();
let codigoCriterioBusqueda = parseInt($('#cboCriterioBusqueda').val());
if (isNaN(codigoCriterioBusqueda)) {
$(location).attr('href', 'templates/close.jsp');
}
debugger
if (codigoCriterioBusqueda === 0) { // [SELECCIONAR]
$('#divRowFiltro1').html('');
$('#divRowFiltro2').html('');
} else if (codigoCriterioBusqueda === 1) { // TIPO DE DOCUMENTO
HTMLtipoDocumento();
validarTipoDocumento();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 2) { // APELLIDOS
HTMLapellidos();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 3) { // TIPO DE CONTRATO
HTMLtipoContrato();
reglasFormBuscarFichas();
} else if (codigoCriterioBusqueda === 4) { // RAZÓN SOCIAL
HTMLtipoEstadoFicha();
reglasFormBuscarFichas();
}
});
}
/** Dibujar el select tipo de documento */
function HTMLtipoDocumento() {
let cboTipoDocumento =
`
<div class="col-md-4">
<div class="form-group">
<label for="cboTipoDocumento" class="text-semibold">Tipo documento <span class="text-danger">(*)</span></label>
<select class="select" id="cboTipoDocumento" name="cboTipoDocumento">
${listarTipoDocumentoResponse('cboTipoDocumento')}
</select>
</div>
</div>
`;
$('#divRowFiltro1').html(cboTipoDocumento);
$('#divRowFiltro2').html('');
$('#cboTipoDocumento').select2({
minimumResultsForSearch: Infinity
});
}
/** Dibujar el input de apellidos */
function HTMLapellidos() {
let txtApellidos =
`
<div class="col-md-4">
<div class="form-group">
<label for="txtApellidos" class="text-semibold">Apellido paterno <span class="text-danger">(*)</span></label>
<input type="text" class="form-control text-uppercase" placeholder="Ingresar apellido paterno" id="txtApellidos" name="txtApellidos" maxlength="30" autocomplete="off">
</div>
</div>
`;
$('#divRowFiltro1').html(txtApellidos);
$('#txtApellidos').validCampo('abcdefghijklmnñopqrstuvwxyzáéíóú ');
$('#divRowFiltro2').html('');
}
/** Dibujar la fecha "desde" y "hasta" */
function HTMLfechaRegistro() {
let dpFechaRegistroDesde =
`
<div class="col-md-4">
<label for="dpFechaRegistroDesde" class="text-semibold">Desde <span class="text-danger">(*)</span></label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-calendar fa-lg"></i></span>
<input type="text" class="form-control datepicker" placeholder="Fecha de registro de ficha" id="dpFechaRegistroDesde" name="dpFechaRegistroDesde" autocomplete="off">
</div>
</div>
`;
let dpFechaRegistroHasta =
`
<div class="col-md-4">
<label for="dpFechaRegistroHasta" class="text-semibold">Hasta <span class="text-danger">(*)</span></label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-calendar fa-lg"></i></span>
<input type="text" class="form-control datepicker" placeholder="Fecha de registro de ficha" id="dpFechaRegistroHasta" name="dpFechaRegistroHasta" autocomplete="off">
</div>
</div>
`;
$('#divRowFiltro1').html(dpFechaRegistroDesde);
$('#divRowFiltro2').html(dpFechaRegistroHasta);
initSelectDatepicker();
}
/** Dibujar el select de tipo de estados */
function HTMLtipoEstadoFicha() {
let cboTipoEstado =
`
<div class="col-md-4">
<div class="form-group">
<label for="cboTipoEstadoFicha" class="text-semibold">Estado ficha <span class="text-danger">(*)</span></label>
<select class="select" id="cboTipoEstadoFicha" name="cboTipoEstadoFicha">
${listarTipoEstadoFichaResponse('cboTipoEstadoFicha')}
</select>
</div>
</div>
`;
$('#divRowFiltro1').html(cboTipoEstado);
$('#divRowFiltro2').html('');
$('#cboTipoEstadoFicha').select2({
minimumResultsForSearch: Infinity
});
$('#cboTipoEstadoFicha').change((e) => {
$(e.currentTarget).valid();
});
}
function HTMLtipoContrato() {
}
/** Validar tipo de documento <br/>
* - existencia de tipo documento <br/>
* - obtener longitud y tipo entrada */
function validarTipoDocumento() {
$('#cboTipoDocumento').change((e) => {
$(e.currentTarget).valid();
let codigoTipoDocumento = parseInt($('#cboTipoDocumento').val());
if (isNaN(codigoTipoDocumento)) {
$(location).attr('href', 'templates/close.jsp');
}
if (codigoTipoDocumento === 0) {
$('#divRowFiltro2').html('');
} else {
validarExistenciaTipoDocumentoRequest(codigoTipoDocumento).then(() => {
obtenerLongitudTipoEntrdadaTipoDocumentoRequest(codigoTipoDocumento).then((tipoDocumento) => {
HTMLnumeroDocumento(tipoDocumento);
reglasFormBuscarFichas();
});
});
}
});
}
/** Dibujar input numero de documento <br>
* y configurar segun tipo doc seleccionado
* @argument {JSONObject} tipoDocumento
* */
function HTMLnumeroDocumento(tipoDocumento) {
let txtNumeroDocumento =
`
<div class="col-md-4">
<div class="form-group">
<label for="txtNumeroDocumento" class="text-semibold">N° Documento <span class="text-danger">(*)</span></label>
<input type="text" class="form-control text-uppercase" placeholder="Ingresar nro documento" id="txtNumeroDocumento" name="txtNumeroDocumento" minlength="${tipoDocumento[0].longitud}" maxlength="${tipoDocumento[0].longitud}" autocomplete="off">
</div>
</div>
`;
$('#divRowFiltro2').html(txtNumeroDocumento);
tipoEntrada = tipoDocumento[0].tipoEntrada;
if (tipoDocumento[0].tipoEntrada === 'N') {
$('#txtNumeroDocumento').validCampo('0123456789');
} else if (tipoDocumento[0].tipoEntrada === 'A') {
$('#txtNumeroDocumento').validCampo('abcdefghijklmnopqrstuvwxyz0123456789');
}
}
/**
* inicializar reglas del form buscar fichas
* */
function reglasFormBuscarFichas() {
$('#cboCriterioBusqueda').rules('add', {
valueNotEquals: '0'
});
$('#cboTipoDocumento').rules('add', {
valueNotEquals: '0'
});
if (tipoEntrada === 'N') {
$('#txtNumeroDocumento').rules('remove', 'alphanumeric');
$('#txtNumeroDocumento').rules('add', {
required: true,
number: true
});
} else if (tipoEntrada === 'A') {
$('#txtNumeroDocumento').rules('remove', 'number');
$('#txtNumeroDocumento').rules('add', {
required: true,
alphanumeric: true
});
}
$('#txtApellidos').rules('add', {
required: true,
lettersonly: true
});
$('#dpFechaRegistroDesde').rules('add', {
required: true,
dateonly: true
});
$('#dpFechaRegistroHasta').rules('add', {
required: true,
dateonly: true,
greaterThan: "#dpFechaRegistroDesde"
});
$('#cboTipoEstadoFicha').rules('add', {
valueNotEquals: '0'
});
}
/**
* validar el formulario antes de enviar peticion
* */
function validarFormBuscarFichas() {
$('#formBuscarFichas').validate({
submitHandler: function () {
listarFichas();
return false;
}
});
}
/**
* obtener valores criterios de busqueda
* */
function criterioBusquedaParams() {
let codigoCriterioBusqueda = parseInt($('#cboCriterioBusqueda').val());
if (codigoCriterioBusqueda === 1) {
let codigoTipoDocumento = parseInt($('#cboTipoDocumento').val());
let numeroDocumento = $('#txtNumeroDocumento').val();
JOCriterioBusqueda.tipoBusqueda = 'TIPO_DOCUMENTO';
JOCriterioBusqueda.codigoTipoDocumento = codigoTipoDocumento;
JOCriterioBusqueda.numeroDocumento = numeroDocumento;
} else if (codigoCriterioBusqueda === 2) {
let apellido = $('#txtApellidos').val();
JOCriterioBusqueda.tipoBusqueda = 'APELLIDOS';
JOCriterioBusqueda.apellido = apellido;
} else if (codigoCriterioBusqueda === 3) {
let fechaDesde = $('#dpFechaRegistroDesde').val();
let fechaHasta = $('#dpFechaRegistroHasta').val();
JOCriterioBusqueda.tipoBusqueda = 'FECHA_REGISTRO';
JOCriterioBusqueda.fechaDesde = fechaDesde;
JOCriterioBusqueda.fechaHasta = fechaHasta;
} else if (codigoCriterioBusqueda === 4) {
let codigoTipoEstadoFicha = parseInt($('#cboTipoEstadoFicha').val());
JOCriterioBusqueda.tipoBusqueda = 'ESTADO_FICHA';
JOCriterioBusqueda.codigoTipoEstadoFicha = codigoTipoEstadoFicha;
} else {
JOCriterioBusqueda = {};
}
return JOCriterioBusqueda;
}
/**
* Limpiar el filtro realizado en el panel de busqueda por criterio
*/
function limpiarFiltro() {
Ladda.bind('#btnLimpiarFiltroFichas', {
callback: function (instance) {
var progress = 0;
var interval = setInterval(function () {
progress = Math.min(progress + Math.random(), 2);
instance.setProgress(progress);
if (progress === 2) {
instance.stop();
clearInterval(interval);
$('#divRowFiltro1').html('');
$('#divRowFiltro2').html('');
$('#cboCriterioBusqueda').val(0).trigger('change');
let formBuscarFichas = $('#formBuscarFichas').validate();
formBuscarFichas.resetForm();
JOCriterioBusqueda = {}
listarFichas();
}
}, 200);
}
});
}
// PANEL BUSQUEDA DE FICHAS
//========================================
/**
* Envia los parametros al servidor <br/>
* dependiendo los criterios enviados <br/>
* se listaran las fichas
* */
function listarFichas() {
let json = {};
json = criterioBusquedaParams();
defaultConfigDataTable();
$('#tblFichas').dataTable().fnDestroy();
$('#tblFichas').DataTable({
ajax: {
type: 'POST',
url: '../FichaServlet',
dataType: 'json',
data: {
accion: 'consultarFichasPorCriterio',
json: JSON.stringify(json)
},
error: function (data) {
errorMessage(data.responseText);
}
},
processing: true,
serverSide: true,
responsive: true,
iDisplayLength: 20,
columns: [
{data: "item", className: 'text-bold text-center'},
{data: "descripcionCortaTipoDocumento"},
{data: "numeroDocumento"},
{data: "personal"},
{data: "correo"},
{data: "fechaRegistro", className: 'text-center'},
{data: "estilo", className: 'text-center'},
{
data: "codigoTipoEstadoFicha",
className: 'text-center',
render: (data) => {
let accion = ``;
let verActividad = `<li class="text-primary">
<a href="#" onclick="return false" class="verActividadFicha" data-toggle="tooltip" data-placement="top" title="VER ACTIVIDAD">${icon.eye}</a>
</li>`
let anular = `<li class="text-danger">
<a href="#" onclick="return false" class="anularFicha" data-toggle="tooltip" title="ANULAR FICHA">${icon["trash-o"]}</a>
</li>`
let verObservacion = `<li class="text-warning">
<a href="#" onclick="return false" class="verObservacion" data-toggle="tooltip" title="VER OBSERVACION"><i style="font-size: 20px" class="fa fa-exclamation-circle fa-lg"></i></a>
</li>`
let imprimir = `<li class="text-slate">
<a href="#" onclick="return false" class="imprimirFicha" data-toggle="tooltip" title="IMPRIMIR FICHA">${icon.printer}</a>
</li>`
let completada = `<li class="text-success">
<a href="#" onclick="return false" class="verDetalleFichaCompletado" data-toggle="tooltip" title="VER DETALLE FICHA">${icon.file}</a>
</li>`
switch (data) {
case 1: // PENDIENTE
accion = verActividad + anular
break;
case 3: // REGISTRADO
accion = verActividad + imprimir
break;
case 4: // COMPLETADO
accion = verActividad + imprimir + completada
break;
case 6: // POR APROBAR
accion = verActividad + imprimir + completada
break;
case 7: // APROBADO POR PRESIDENCIA
accion = verActividad + imprimir + completada
break;
case 8: // OBSERVADO POR PRESIDENCIA
accion = verActividad + imprimir + completada
break;
case 13: // FICHA ANULADA
accion = verActividad + verObservacion
break;
default:
accion = '-';
break;
}
return `<ul class="icons-list">${accion}</ul>`;
}
}
],
initComplete: () => {
$('.verActividadFicha, .anularFicha, .verDetalleFichaAdministrativaObservadaPorPresidencia, .verObservacion, .imprimirFicha, .verDetalleFichaCompletado').tooltip();
}
});
}
/**
* permite ver el detalle de la ficha y asignar datos administrativos
* */
function verDetalleFichaAdministrativaObservadaPorPresidencia() {
$('#tblFichas tbody').on('click', '.verDetalleFichaAdministrativaObservadaPorPresidencia', function () {
let codigoPersona = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoPersona;
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
$.ajax({
url: '../FichaServlet',
type: 'POST',
dataType: 'json',
data: {
accion: 'listarDatosAdministrativosFicha',
codigoPersona: codigoPersona,
codigoFicha: codigoFicha
}, success: function (data, textStatus, jqXHR) {
if (data.status) {
window.location = 'fichaObservadaPorPresidencia.jsp';
window.name = JSON.stringify(data.data.persona);
}
}
});
});
}
/**
* Realiza la peticion para <br/>
* listar los detalles de estado <br/>
* por las que está pasando la ficha <br/>
* @param {int} codigoFicha
*/
function listarDetalleEstadoFichaRequest(codigoFicha) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'listarDetalleEstadoFicha', codigoFicha: codigoFicha},
beforeSend: function () {
load("Listando los detalles de estados de la ficha");
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.data.detallesEstadoFicha);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de listar detalles de estado de ficha");
}
});
});
}
/**
* permite ver el detalle de los estados <br/>
* por el cual esta pasando la ficha
*/
function verDetalleEstadoFicha() {
$('#tblFichas tbody').on('click', '.verActividadFicha', function (e) {
$('#modalListadoDetalleEstadoFicha').modal({
show: true,
backdrop: 'static',
keyboard: false
});
let data = $('#tblFichas').DataTable().row($(this).parents('tr')).data();
let codigoFicha = data.codigoFicha;
paramCodigoFicha = codigoFicha;
listarDetalleEstadoFichaRequest(codigoFicha).then((data) => {
let actividades = '';
let icon = 'icon-checkmark3';
let style = 'border-success text-success';
let iconUser = '';
for (let i in data) {
// if (data[i].nombreEstado === 'PENDIENTE') {
// style = 'border-slate text-slate';
// icon = 'icon-loop3';
// } else if (data[i].nombreEstado === 'REGISTRADO' || data[i].nombreEstado === 'COMPLETADO') {
// style = 'border-success text-success';
// icon = 'icon-checkmark3';
// }
if (parseInt(data[i].codigoUsuario) === 0) {
iconUser = 'icon-user';
} else {
iconUser = 'icon-laptop';
}
actividades +=
`
<li class="media">
<div class="media-left">
<a href="#" onclick="return false;" class="btn ${style} btn-flat btn-rounded btn-icon btn-xs"><i class="${icon}"></i></a>
</div>
<div class="media-body">
<u><span class="text-semibold"><i class="${iconUser}"></i> ${data[i].nombreUsuario}</span></u><br/>
<span>${data[i].descripcionEstado}</span><br/>
<span class="text-uppercase">Estado:</span> <span class="text-semibold text-primary">${data[i].nombreEstado}</span><br/>
<div class="media-annotation"><i class="fa fa-clock-o fa-lg"></i> ${data[i].fechaRegistroEstado}</div>
</div>
</li>
`;
}
$('#listadoActividades').html(actividades);
});
});
}
/**
*
* Permite ver el detalle de la ficha <br/>
* cuando su estado se encuentra en completado
*/
function verDetalleFichaCompletado() {
$('#tblFichas tbody').on('click', '.verDetalleFichaCompletado', (e) => {
let rowData = $('#tblFichas').DataTable().row($(e.currentTarget).parents('tr')).data()
verDetalleFichaCompletadoRequest(rowData)
.then((data) => {
// console.log(data);
window.name = JSON.stringify(data.data.persona)
localStorage.setItem('paginaActual', 'consultaFichas')
window.location = 'fichadetalle.jsp'
})
})
}
function verDetalleFichaCompletadoRequest(obj) {
return new Promise((resolve, reject) => {
$.ajax({
url: '../FichaServlet',
dataType: 'json',
type: 'POST',
data: {
accion: 'listarDetalleFichaPresidencia',
codigoPersona: obj.codigoPersona,
codigoFicha: obj.codigoFicha
}, beforeSend: function (xhr) {
}, success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
resolve(data)
}
}, error: function (jqXHR, textStatus, errorThrown) {
reject('Error al obtener detalle ficha completado')
}
})
})
}
/**
* Accion: anularFicha <br/>
* Realiza la peticion <br/>
* y deveuleve la respuesta <br/>
* @argument {int} codigoFicha
* @argument {String} observacion
* @returns {boolean}
*/
function anularFichaRequest(codigoFicha, observacion) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'anularFicha', codigoFicha: codigoFicha, observacion: observacion},
beforeSend: function () {
load('Anulando Ficha, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
if (data.status) {
resolve(data.message);
} else {
errorMessage(data.message);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de anular ficha");
}
});
});
}
/**
* Anular ficha
*/
function anularFicha() {
$('#tblFichas tbody').on('click', '.anularFicha', function () {
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
$.confirm({
icon: 'fa fa-question',
draggable: false,
animationBounce: 1.5,
closeAnimation: 'opacity',
theme: 'modern',
closeIcon: false,
animation: 'scale',
backgroundDismissAnimation: 'glow',
type: 'red',
title: '¿Está seguro de anular la ficha?',
content: `
<form action="" class="formName">
<div class="form-group">
<label class="text-semibold">Ingrese el motivo</label>
<textarea id="txtObservacion" class="form-control text-uppercase" rows="5" cols="30" style="resize:none;"></textarea>
</div>
</form>
`,
buttons: {
'Sí, estoy seguro': {
btnClass: 'btn-danger',
action: () => {
let observacion = $('#txtObservacion').val().trim();
if (!observacion) {
warningMessage('Debe ingresar un motivo por el cual esta anulando la ficha');
return false;
}
anularFichaRequest(codigoFicha, observacion.toUpperCase()).then((data) => {
successMessage(data);
listarFichas();
});
}
},
'Cancelar': {
btnClass: 'bg-slate'
}
}
});
});
}
/**
* ver observacion request <br/>
* realiza una peticion y trae la observacion <br/>
* segun la ficha seleccionada (solo ficha ANULADA)
* @argument {int} codigoFicha
* @returns {String}
*/
function verObservacionRequest(codigoFicha) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: '../FichaServlet',
data: {accion: 'verObservacion', codigoFicha: codigoFicha},
beforeSend: function (xhr) {
load('Cargando datos, por favor espere');
},
success: function (data, textStatus, jqXHR) {
if (textStatus === 'success') {
unload();
let observaciones = data.data.observaciones;
if (data.status) {
for (var i in observaciones) {
resolve(observaciones[i].observacion);
}
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
reject("No se pudo procesar la solicitud de ver observacion");
}
});
});
}
/**
* funcion ver observacion <br/>
* abre el modal y visualiza <br/>
* la descripcion que se le puso a la ficha
*/
function verObservacion() {
$('#tblFichas tbody').on('click', '.verObservacion', function () {
let codigoFicha = $('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha;
verObservacionRequest(codigoFicha).then((data) => {
let obs = data.split('\n');
$.alert({
title: 'Observación',
icon: 'fa fa-info fa-lg',
type: 'blue',
theme: 'Material',
content:
`<h6>
${obs.map((val) => {
return '<p>' + val + '</p>';
}).join('\n')}
<h6>
`
});
});
});
}
/**
* imprimir fichas
*/
function imprimirFicha() {
$('#tblFichas tbody').on('click', '.imprimirFicha', function () {
let codigoPersona = parseInt($('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoPersona);
let codigoFicha = parseInt($('#tblFichas').DataTable().row($(this).parents('tr')).data().codigoFicha);
let json = {
codigoPersona: codigoPersona,
codigoFicha: codigoFicha
};
$('#params').val(JSON.stringify(json));
$('#formImprimirFicha').submit();
});
}
/**
* Imprimir actividade de ficha - (flujo)
*/
function imprimirActividadFicha() {
$('#btnImprimirActividadFicha').on('click', () => {
listarDetalleEstadoFichaRequest(paramCodigoFicha).then((data) => {
let jsonData = {
arrayActividadFicha: data,
codigoFicha: paramCodigoFicha
};
$('#paramsActividadFicha').val(JSON.stringify(jsonData));
$('#formImprimirActividadFicha').submit();
});
});
}
printLeyend({
el: '#leyenda',
data: [
{
icon: 'eye',
color: 'primary',
title: 'Ver actividad',
description: 'Sirve para ver la actividad de la ficha.'
},
{
icon: 'trash-o',
color: 'danger',
title: 'Anular ficha',
description: 'Sirve para anular una ficha solo si tiene el estado pendiente.'
},
{
icon: 'exclamation-circle',
color: 'warning',
title: 'Ver observación',
description: 'Sirve para ver la razón de la ficha observada.'
},
{
icon: 'print',
color: 'slate',
title: 'Imprimir ficha',
description: 'Sirve para mostrar una previsualización de la ficha impresa.'
},
{
icon: 'file-text-o',
color: 'success',
title: 'Ver detalle de la ficha',
description: 'Sirve para mostrar información detalle de la ficha.'
}
]
})
\ No newline at end of file
let lote, ficha
let paginaActual = localStorage.getItem('paginaActual')
switch (paginaActual) {
case 'detalleLoteDocente':
if (localStorage.getItem('lote')) {
if (localStorage.getItem('detalleFichaLote')) {
lote = getLocal('lote')
ficha = getLocal('detalleFichaLote')
} else {
window.location.href = 'lotesFicha.jsp'
}
} else {
window.location.href = 'lotesFicha.jsp'
}
break;
case 'detalleConsultaLotesGeneral':
if (localStorage.getItem('loteGeneral')) {
// if (localStorage.getItem('lote')) {
if (localStorage.getItem('detalleFichaLote')) {
lote = getLocal('loteGeneral')
// lote = getLocal('lote')
ficha = getLocal('detalleFichaLote')
} else {
window.location.href = 'lotesFicha.jsp'
}
} else {
window.location.href = 'lotesFicha.jsp'
}
}
// else {
// window.location.href = 'lotesFicha.jsp'
// }
// } else {
// window.location.href = 'lotesFicha.jsp'
// }
break;
default:
window.location.href = 'main.jsp'
// case 'detalleConsultaLotesGeneral':
// if (localStorage.getItem('loteGeneral')) {
// if (localStorage.getItem('detalleFichaLote')) {
// lote = getLocal('loteGeneral')
// ficha = getLocal('detalleFichaLote')
// } else {
// window.location.href = 'lotesFicha.jsp'
// }
// } else {
// window.location.href = 'lotesFicha.jsp'
// }
// break;
// default:
// window.location.href = 'main.jsp'
//
}
......@@ -192,11 +191,11 @@ let DOMFichaComponents = {
getNode('#lblArea').innerHTML = obj.area
getNode('#lblCargo').innerHTML = obj.cargo
getNode('#lblTipoPago').innerHTML = obj.tipoPago
getNode('#lblTituloTabla').innerHTML = `Costo de ${lote.tipoLote === 'A' ? 'ADMINISTRATIVO' : 'DOCENTE'}`
getNode('#lblTituloTabla').innerHTML = `Costo de ${ficha.datosFicha.tipoFicha === 'A' ? 'ADMINISTRATIVO' : 'DOCENTE'}`
getNode('#lblObservacion').innerHTML = obj.observacion
},
costosPersonal(obj) {
if (lote.tipoLote === 'A') {
if (ficha.datosFicha.tipoFicha === 'A') {
let escalafon = helpers.printCosto({tipoCosto: 'ESCALAFON', costo: obj.sueldoEscalafon})
let mensualPropuesto = helpers.printCosto({tipoCosto: 'MENSUAL PROPUESTO', costo: obj.sueldoMensual})
getNode('#divContenidoCostos').innerHTML = escalafon + mensualPropuesto
......
const helpers = {
ajaxRequest(obj) {
return $.ajax({
url: obj.url,
type: obj.type || 'POST',
dataType: obj.dataType || 'json',
data: obj.body || '',
beforeSend: (xhr, settings) => {
load(obj.loadingMessage || 'Espere...')
}, success: (response, textStatus, jqXHR) => {
unload()
return Promise.resolve(response)
}, error: (jqXHR, textStatus, errorThrown) => {
return Promise.reject({
status: textStatus,
message: `Error making the request`,
request: obj
})
}
})
}
}
const printComponents = {
// panelLote() {
// document.querySelector('#lblNumeroLote').innerHTML = lote.numeroLote
// document.querySelector('#lblFechaRegistro').innerHTML = lote.fechaRegistro
// document.querySelector('#lblTipoLote').innerHTML = lote.tipoLote === 'A' ? '<span class="label bg-primary">ADMINISTRATIVO</span>' : '<span class="label bg-success">DOCENTE</span>'
// document.querySelector('#divEstadoLote').innerHTML = `
// <div class="form-group">
// <label class="text-semibold">Estado de lote:</label>
// <span class="pull-right-sm label bg-orange"">${lote.estadoLote}</span>
// </div>
// `
// document.querySelector('#lblCantidadFichas').innerHTML = lote.detalle.length
// },
tablaHead(obj) {
return new Promise((resolve) => {
let head = ''
// $(document.querySelector('#divTableFicha table')).html('')
if (obj === 'D') {
head = `<tr>
<th class="text-center" rowspan="2">#</th>
<th class="text-center" rowspan="2">APELLIDOS Y NOMBRES</th>
<th class="text-center" rowspan="2">N° DOCUMENTO</th>
<th class="text-center" rowspan="2">FECHA DE INICIO</th>
<th class="text-center" colspan="4" class="text-center">COSTOS</th>
<th class="text-center" rowspan="2">OBSERVACION</th>
<th class="text-center" rowspan="2">ACCIONES</th>
</tr>
<tr>
<th class="text-center">MENSUAL</th>
<th class="text-center">A</th>
<th class="text-center">B</th>
<th class="text-center">C</th>
</tr>`
} else if (obj === 'A') {
head = `<tr>
<th class="text-center" rowspan="2">#</th>
<th class="text-center" rowspan="2">APELLIDOS Y NOMBRES</th>
<th class="text-center" rowspan="2">N° DOCUMENTO</th>
<th class="text-center" rowspan="2">FECHA DE INICIO</th>
<th class="text-center" colspan="3" class="text-center">COSTOS</th>
<th class="text-center" rowspan="2">OBSERVACION</th>
<th class="text-center" rowspan="2">ACCIONES</th>
</tr>
<tr>
<th class="text-center">ESCALAFÓN</th>
<th class="text-center">PROPUESTO</th>
<th class="text-center">COSTO MENSUAL</th>
</tr>`
} else {
jAlert({type: 'error', content: 'Error al obtener el tipo de lote', buttons: {left: 'Aceptar'}})
}
document.querySelector('#tblFichasHead').innerHTML = head
resolve()
})
}
}
const httpRequest = {
listarFichasDocente(obj) {
defaultConfigDataTable()
let contador = 0
return new Promise((resolve) => {
$(document.querySelector('#tblFichas')).DataTable().destroy()
document.querySelector('#tblFichas tbody').innerHTML = ''
$(document.querySelector('#tblFichas')).DataTable({
data: obj.data.fichas,
bInfo: false,
paging: false,
columnDefs: [
{targets: 0, orderable: false, width: '2%', className: 'text-center'},
{targets: 1, orderable: false, width: '20%'},
{targets: 2, orderable: false, width: '10%'},
{targets: 3, orderable: false, width: '10%', className: 'text-center'},
{targets: 4, orderable: false, width: '7%', className: 'text-center'},
{targets: 5, orderable: false, width: '6%', className: 'text-center'},
{targets: 6, orderable: false, width: '6%', className: 'text-center'},
{targets: 7, orderable: false, width: '6%', className: 'text-center'},
{targets: 9, orderable: false, width: '2%', className: 'text-center'}
],
columns: [
{
data: null,
render: () => ++contador
},
{
data: null,
render: (data) => `${data.apellidoPaterno} ${data.apellidoMaterno} ${data.nombre}`
},
{
data: 'numeroDocumento'
},
{
data: 'fechaInicio'
},
{
data: null,
// data: 'costoMensual',
render: (data) => {
return data.costoMensual === '0.00' ? data.costoMensual : `<a href="#" class="costoMensual" data-prop="" data-type="text" data-inputclass="form-control" data-pk="1" data-value="${data.costoMensual}" data-title="Costo mensual"></a>`
}
},
{
data: null,
// data: 'costoa',
render: (data) => {
return data.costoa === '0.00' ? data.costoa : `<a href="#" class="costoa" data-type="text" data-inputclass="form-control" data-pk="1" data-value="${data.costoa}" data-title="Costo mensual"></a>`
}
},
{
data: null,
render: (data) => {
return data.costob === '0.00' ? data.costob : `<a href="#" class="costob" data-type="text" data-inputclass="form-control" data-pk="1" data-value="${data.costob}" data-title="Costo mensual"></a>`
}
},
{
data: null,
render: (data) => {
return data.costoc === '0.00' ? data.costoc : `<a href="#" class="costoc" data-type="text" data-inputclass="form-control" data-pk="1" data-value="${data.costoc}" data-title="Costo mensual"></a>`
}
},
{
data: null,
render: () => `<input type="text" class="form-control observacion" value="" placeholder="Ingrese observación"/>`
},
{
data: null,
render: (data) => {
return `<ul class="icons-list">
<li class="text-primary">
<a href="#" onclick="javascript: return false" class="verDetalleFicha" data-toggle="tooltip" data-placement="top" title="Ver detalle lote"><i style="font-size:22px;" class="fa fa-file-text-o fa-lg"></i></a>
</li>
</ul>
`
}
}
],
initComplete: function (settings, data) {
resolve(data)
}
})
})
},
listarFichasAdministrativo(obj) {
defaultConfigDataTable()
let contador = 0
return new Promise((resolve, reject) => {
$(document.querySelector('#tblFichas')).DataTable().destroy()
document.querySelector('#tblFichas tbody').innerHTML = ''
$(document.querySelector('#tblFichas')).DataTable({
data: obj.data.fichas,
bInfo: false,
paging: false,
columnDefs: [
{targets: 0, orderable: false, width: '2%', className: 'text-center'},
{targets: 1, orderable: false, width: '12%'},
{targets: 2, orderable: false, width: '8%'},
{targets: 3, orderable: false, width: '5%', className: 'text-center'},
{targets: 4, orderable: false, width: '4%', className: 'text-center'},
{targets: 5, orderable: false, width: '4%', className: 'text-center'},
{targets: 6, orderable: false, width: '4%', className: 'text-center'},
{targets: 7, orderable: false, width: '25%', className: 'text-center'},
{targets: 8, orderable: false, width: '2%', className: 'text-center'}
],
columns: [
{
data: null,
render: () => ++contador
},
// {
// data: null,
// render: () => `<input type='checkbox' class='control-primary checkbox-head'>`
// },
{
data: null,
render: (data) => `${data.apellidoPaterno} ${data.apellidoMaterno} ${data.nombre}`
},
{
data: 'numeroDocumento'
},
{
data: 'fechaInicio'
},
{
data: 'sueldoEscalafon',
render: (data) => {
return `<b> S/. ${data} </b>`
}
},
{
data: 'sueldoMensual',
render: (data) => {
return `<b> S/. ${data} </b>`
}
},
{
data: 'sueldoMensual',
render: (data) => {
return `<a href="#" style="font-size:16px;" class="costoPresidencia" data-type="text" data-inputclass="form-control" data-pk="1" data-value="${data}" data-title="Costo mensual a asignar"></a>`
}
},
{
data: null,
render: () => `<input type="text" class="form-control observacion" value="" placeholder="Ingrese observación"/>`
},
{
data: null,
render: (data) => {
return `<ul class="icons-list">
<li class="text-primary">
<a href="#" onclick="javascript: return false" class="verDetalleFicha" data-toggle="tooltip" data-placement="top" title="Ver detalle lote"><i style="font-size:22px;" class="fa fa-file-text-o fa-lg"></i></a>
</li>
</ul>
`
}
}
],
initComplete: function (settings, data) {
resolve(data)
}
})
})
},
registrarSueldoDocente(obj) {
return new Promise((resolve, reject) => {
$.ajax({
url: '../DetalleLoteFichaDocenteServlet',
dataType: 'json',
type: 'POST',
data: {
accion: 'registrarSueldosPresidenciaLoteDocente',
json: JSON.stringify(obj)
},
success: function (data, textStatus, jqXHR) {
resolve(data)
},
error: function (jqXHR, textStatus, errorThrown) {
reject(errorThrown)
}
})
})
},
registrarSueldoAdministrativo(obj) {
return new Promise((resolve, reject) => {
$.ajax({
url: '../DetalleLoteFichaDocenteServlet',
dataType: 'json',
type: 'POST',
data: {
accion: 'registrarSueldosPresidenciaLoteAdministrativo',
json: JSON.stringify(obj)
}, beforeSend: function (xhr) {
load("Actualizando lote administrativo")
}, success: function (data, textStatus, jqXHR) {
unload()
resolve(data)
}, error: function (jqXHR, textStatus, errorThrown) {
reject({
req: obj,
error: errorThrown
})
}
})
})
},
obtenerDetalle(obj) {
return new Promise((resolve, reject) => {
$.ajax({
url: '../DetalleLoteFichaDocenteServlet',
dataType: 'json',
type: 'POST',
data: {
accion: 'obtenerDetalleFicha',
json: JSON.stringify(obj)
}, beforeSend: function (xhr) {
load("Obteniendo detalle de la ficha")
}, success: function (data, textStatus, jqXHR) {
unload()
resolve(data)
}, error: function (jqXHR, textStatus, errorThrown) {
reject({
req: obj,
error: errorThrown
})
}
})
})
}
}
const eventos = {
init() {
this.listarFichaPersonal()
this.verDetalle()
},
listarFichaPersonal() {
document.querySelector('#cboCriterioFiltroFicha').addEventListener('change', (e) => {
let criterio = e.currentTarget.value
if (criterio) {
if (criterio === 'D') {
helpers.ajaxRequest({
url: '../DetalleLoteFichaDocenteServlet?accion=listarDetalleLoteFichaDocenteDT'
}).then(data => {
printComponents.tablaHead(criterio)
.then(() => {
httpRequest.listarFichasDocente(data)
.then(() => initializePluginComponents())
})
})
} else if (criterio === 'A') {
helpers.ajaxRequest({
url: '../DetalleLoteFichaDocenteServlet?accion=listarDetalleLoteFichaAdministrativoDT'
}).then(data => {
printComponents.tablaHead(criterio)
.then(() => {
httpRequest.listarFichasAdministrativo(data)
.then(() => initializePluginComponents())
})
})
}
}
})
},
verDetalle() {
$('#tblFichas tbody').on('click', '.verDetalleFicha', (e) => {
let data = $('#tblFichas').DataTable().row($(e.currentTarget).parents('tr')).data()
httpRequest.obtenerDetalle({codigoPersona: data.codigoPersona, codigoFicha: data.codigoFicha, tipoFicha: data.tipoFicha})
.then((data) => {
console.log(data)
localStorage.setItem('detalleFichaLote', JSON.stringify(data))
localStorage.setItem('paginaActual', 'detalleLoteDocente')
window.location.href = 'detalleFicha.jsp'
})
.catch(err => jAlert({type: 'error', content: err, buttons: {left: 'Aceptar'}}))
})
},
actualizarFicha() {
$('#btnActualizarFicha').on('click', (e) => {
let criterio = $('#cboCriterioFiltroFicha').val()
})
}
}
function inicializarComponentes() {
$('.bootstrap-select').selectpicker();
// Primary
$(".control-primary").uniform({
radioClass: 'choice',
wrapperClass: 'border-primary-600 text-primary-800 div-checkbox-head'
});
}
function initializePluginComponents() {
$('.costoMensual, .costoa, .costob, .costoc, .costoPresidencia').editable({
clear: false
})
$('.costoMensual, .costoPresidencia').on('shown', function (e, editable) {
editable.input.$input.TouchSpin({
min: 0,
max: 10000,
step: 0.1,
decimals: 2
}).parent().parent().addClass('editable-touchspin')
})
$('.costoa, .costob, .costoc').on('shown', function (e, editable) {
editable.input.$input.TouchSpin({
min: 0,
max: 30,
step: 0.1,
decimals: 2
}).parent().parent().addClass('editable-touchspin')
})
}
eventos.init()
inicializarComponentes()
......@@ -122,7 +122,6 @@
</tr>
</thead>
</table>
</div>
</div>
</div>
......@@ -148,7 +147,6 @@
<div class="panel-body">
<ul class="media-list" id="leyenda">
</ul>
</div>
</div>
......
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@include file="templates/validar.jsp"%>
<!DOCTYPE html>
<html>
<head>
<!--Estilos plantilla-->
<%@include file="templates/header.jsp" %>
<!--Estilos plantilla-->
<!--Estilos propios-->
<!--<link href="../js/lib/jquery-confirm-master/jquery-confirm.min.css" rel="stylesheet" type="text/css"/>-->
<!--Estilos propios-->
<link href="../css/pages/colors.css" rel="stylesheet" type="text/css"/>
<link href="../css/pages/general.css" rel="stylesheet" type="text/css"/>
</head>
<body onload="cargar();">
<input id="codTitulo" name="codTitulo" type="hidden" value="<%= menu != null ? menu.getCodigoTitulo() : 0%>">
<input id="codModulo" type="hidden" value="<%= menu != null ? menu.getCodigoModulo() : 0%>">
<input id="codCategoria" type="hidden" value="<%= menu != null ? menu.getCodigoCategoria() : 0%>">
<input id="codSubCategoria" type="hidden" value="<%= menu != null ? menu.getCodigoSubcategoria() : 0%>">
<!--navbar - sidebar-->
<%@include file="templates/header-body.jsp" %>
<!--navbar - sidebar-->
<!--breadcrumb-->
<%@include file="templates/page-header.jsp" %>
<!--breadcrumb-->
<!--
************************* PANEL DE BUSQUEDA DE FICHAS *************************
-->
<form action="../FichaServlet" method="post" id="formImprimirFicha" target="_blank">
<input type="hidden" name="accion" value="imprimirFicha" />
<input type="hidden" name="params" id="params"/>
</form>
<form action="../FichaServlet" method="post" id="formImprimirActividadFicha" target="_blank">
<input type="hidden" name="accion" value="imprimirActividadFicha" />
<input type="hidden" name="paramsActividadFicha" id="paramsActividadFicha"/>
</form>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel so-card-2">
<div class="panel-heading bg-primary">
<h6 class="panel-title text-semibold">
<i class="fa fa-search fa-lg"></i>&nbsp;&nbsp;Búsqueda de contratos
</h6>
<div class="heading-elements">
</div>
</div>
<div class="panel-body">
<form action="#" method="post" id="formBuscarFichas" name="formBuscarFichas">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label for="cboCriterioBusqueda" class="text-semibold">Criterio de búsqueda <span class="text-danger">(*)</span></label>
<select class="select" id="cboCriterioBusqueda" name="cboCriterioBusqueda">
<option value="0">[SELECCIONAR]</option>
<option value="1">TIPO DE DOCUMENTO</option>
<option value="2">APELLIDOS</option>
<option value="3">TIPO DE CONTRATO</option>
<option value="4">RAZÓN SOCIAL</option>
</select>
</div>
</div>
<div id="divRowFiltro1"></div>
<div id="divRowFiltro2"></div>
</div>
<div class="row">
<div class="col-md-12 text-danger text-right text-semibold">
(*) Campos obligatorios
</div>
</div>
<div class="row">
<div class="col-md-12 text-center">
<button type="submit" class="btn bg-primary text-center" id="btnBuscarFichas"><i class="fa fa-search fa-lg position-left"></i> Buscar </button>
<button type="button" class="btn bg-orange btn-ladda btn-ladda-progress" data-style="expand-right" data-spinner-size="20" id="btnLimpiarFiltroFichas">
<span class="ladda-label"><i class="fa fa-refresh fa-lg"></i> Limpiar</span>
<span class="ladda-spinner"></span>
<div class="ladda-progress" style="width: 158px;"></div>
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!--
************************* PANEL DE BUSQUEDA DE FICHAS *************************
-->
<!--
************************* PANEL DE LISTADO DE FICHAS *************************
-->
<div class="row">
<div class="col-md-12">
<div class="panel so-card-2">
<div class="panel-heading bg-primary">
<h6 class="panel-title text-semibold">
<i class="fa fa-file fa-lg"></i>&nbsp;&nbsp;Listado de contratos
</h6>
</div>
<table class="table table-bordered table-xxs" id="tblFichas">
<thead>
<tr>
<th class="text-center">#</th>
<th class="text-center">TIPO DOC.</th>
<th class="text-center">NRO DOC.</th>
<th class="text-center">PERSONAL</th>
<th class="text-center">CORREO</th>
<th class="text-center">FECHA REGISTRO</th>
<th class="text-center">ESTADO</th>
<th class="text-center">ACCIONES</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
<!--
************************* PANEL DE LISTADO DE FICHAS *************************
-->
<div class="row">
<div class="col-md-4 col-md-offset-4">
<!-- List of latest updates -->
<div class="panel so-card-2">
<div class="panel-heading bg-primary">
<h6 class="panel-title text-semibold">
<i class="fa fa-bookmark fa-lg"></i>&nbsp;&nbsp;Leyenda
</h6>
<div class="heading-elements">
<ul class="icons-list">
<li><a data-action="collapse"></a></li>
</ul>
</div>
</div>
<div class="panel-body">
<ul class="media-list" id="leyenda">
</ul>
</div>
</div>
</div>
</div>
<!--
************************* MDOAL LISTADO DE DETALLE DE ESTADO FICHA *************************
-->
<div id="modalListadoDetalleEstadoFicha" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header bg-primary">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h6 class="modal-title"><i class="fa fa-file fa-lg"></i>&nbsp;&nbsp;Actividades de la ficha</h6>
</div>
<div class="modal-body">
<ul class="media-list media-list-bordered" id="listadoActividades">
</ul>
</div>
<div class="modal-footer">
<button type="button" class="btn bg-danger" data-dismiss="modal"><i class="fa fa-close fa-lg position-left"></i>Cerrar</button>
<button type="button" class="btn bg-slate-600 pull-left" id="btnImprimirActividadFicha"><i class="fa fa-print fa-lg"></i> Imprimir</button>
</div>
</div>
</div>
</div>
<!--
************************* MDOAL LISTADO DE DETALLE DE ESTADO FICHA *************************
-->
<!--javascript plantilla-->
<%@include file="templates/footer-body.jsp" %>
<!--javascript plantilla-->
<!--select2-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/selects/select2.min.js"></script>
<!--validInput-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/validateInput/validate_inputs.js"></script>
<!--datepicker-->
<script type="text/javascript" src="../plantilla/assets/js/core/libraries/jquery_ui/widgets.min.js"></script>
<!--validate-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/validation/validate.min.js"></script>
<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/validation/additional_methods.min.js"></script>
<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/validation/localization/messages_es_PE.js"></script>
<script type="text/javascript" src="../js/pages/newRulesValidate.js"></script>
<!--datatable-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/tables/datatables/datatables.min.js"></script>
<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/selects/select2.min.js"></script>
<script type="text/javascript" src="../plantilla/assets/js/plugins/tables/datatables/extensions/responsive.min.js"></script>
<!--button spinner-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/buttons/spin.min.js"></script>
<script type="text/javascript" src="../plantilla/assets/js/plugins/buttons/ladda.min.js"></script>
<script type="text/javascript" src="../js/lib/jquery-confirm-master/jquery-confirm.min.js"></script>
<!--javascript propios-->
<script src="../js/pages/general.js" type="text/javascript"></script>
<script src="../js/pages/menu.js" type="text/javascript"></script>
<script src="../js/pages/contratos.js" type="text/javascript"></script>
<!--javascript propios-->
</body>
</html>
<%}%>
\ No newline at end of file
......@@ -466,11 +466,11 @@
<div class="row">
<!-- <div class="row">
<div class="col-md-12 text-center">
<button style="width: 185px; height: 35px;" class="btn bg-orange text-uppercase text-semibold btn-xlg" onclick="javascript:history.back();"><i style="font-size:22px;" class="fa fa-arrow-left fa-lg position-left"></i> Regresar</button>
<button style="width: 185px; height: 35px;" class="btn bg-orange text-uppercase text-semibold btn-xlg" ><i style="font-size:22px;" class="fa fa-arrow-left fa-lg position-left"></i> Regresar</button>
</div>
</div>
</div>-->
<!-- Primary modal -->
<div id="modalMapaResidencia" class="modal fade">
......
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@include file="templates/validar.jsp"%>
<!DOCTYPE html>
<html lang="en">
<head>
<!--Estilos plantilla-->
<%@include file="templates/header.jsp" %>
<!--Estilos plantilla-->
<!--Estilos propios-->
<!--<link href="../js/lib/jquery-confirm-master/jquery-confirm.min.css" rel="stylesheet" type="text/css"/>-->
<!--Estilos propios-->
<link href="../css/pages/colors.css" rel="stylesheet" type="text/css"/>
<link href="../css/pages/general.css" rel="stylesheet" type="text/css"/>
</head>
<body onload="cargar();">
<input id="codTitulo" type="hidden" value="<%= menu != null ? menu.getCodigoTitulo() : "0"%>">
<input id="codModulo" type="hidden" value="<%= menu != null ? menu.getCodigoModulo() : "0"%>">
<input id="codCategoria" type="hidden" value="<%= menu != null ? menu.getCodigoCategoria() : "0"%>">
<input id="codSubCategoria" type="hidden" value="<%= menu != null ? menu.getCodigoSubcategoria() : "0"%>">
<!--navbar - sidebar-->
<%@include file="templates/header-body.jsp" %>
<!--navbar - sidebar-->
<%@include file="templates/page-header.jsp" %>
<!--contenido-->
<!-- ------------------------------------------------------------------------------------------------------ -->
<!-- ------------------------------- Panel de busqueda de fichas pendientes ------------------------------- -->
<!-- ------------------------------------------------------------------------------------------------------ -->
<div class="row" style="display: flex; justify-content: center">
<div class="col-md-3">
<div class="panel so-card-2">
<div class="panel-heading bg-primary">
<h6 class="panel-title text-semibold">
<i class="fa fa-search fa-lg"></i>&nbsp;&nbsp;Filtrado de tipos de ficha
</h6>
</div>
<div class="panel-body">
<form action="#" method="post" id="formFiltroFichas" name="formFiltroFichas">
<div class="row">
<div class="col-md-12" id="divCriterioFiltroFicha">
<div class="form-group">
<label for="cboCriterioFiltroFicha" class="text-semibold">Filtro por criterio <span class="text-danger">(*)</span></label>
<select class="bootstrap-select" data-width="100%" id="cboCriterioFiltroFicha" name="cboCriterioFiltroFicha">
<option value="">Seleccione criterio</option>
<option value="A">ADMINISTRATIVO</option>
<option value="D">DOCENTE SECUNDARIA</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 text-danger text-right text-semibold">
(*) Campos obligatorios
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="panel so-card-2">
<div class="panel-heading bg-primary">
<h6 class="panel-title text-semibold">
<i class="fa fa-file fa-lg"></i>&nbsp;&nbsp;Listado de fichas
<a class="heading-elements-toggle"><i class="icon-more"></i></a>
</h6>
</div>
<div id="divTableFicha">
<table class="table table-bordered table-striped table-framed table-xxs" id="tblFichas">
<thead id="tblFichasHead">
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 text-center">
<button style="width: 185px; height: 35px;" id="btnActualizarFicha" class="btn bg-primary text-uppercase text-semibold btn-xlg tp-btn-evaluar"><i style="font-size:22px;" class="fa fa-check fa-lg position-left"></i> Actualizar</button>
</div>
</div>
<!--contenido-->
<!--javascript plantilla-->
<%@include file="templates/footer-body.jsp" %>
<!--datatable-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/tables/datatables/datatables.min.js"></script>
<!--<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/selects/select2.min.js"></script>-->
<!--checkbox-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/styling/switch.min.js"></script>
<!--checkbox-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/tables/datatables/extensions/responsive.min.js"></script>
<!--datatable-->
<!--select-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/selects/bootstrap_select.min.js"></script>
<!--jqueryconfirm-->
<script src="../js/lib/jquery-confirm-master/jquery-confirm.min.js" type="text/javascript"></script>
<!--jqueryconfirm-->
<!--editable form-->
<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/editable/editable.min.js"></script>
<script type="text/javascript" src="../plantilla/assets/js/plugins/forms/inputs/touchspin.min.js"></script>
<!--editable form-->
<!--javascript general-->
<script src="../js/pages/general.js" type="text/javascript"></script>
<!--javascript general-->
<!--javascript propios-->
<script src="../js/pages/menu.js" type="text/javascript"></script>
<!--javascript propios-->
<script src="../js/pages/fichaPresidencia.js" type="text/javascript"></script>
</body>
</html>
<% }
%>
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