[ADD] FILTRO SEDE Y COLUMNA SEDE EN LISTADO DE USUARIOS Y WEBINF IGNORADO EN GITIGNORE

parent 75ae0e13
......@@ -4,3 +4,4 @@
/nbproject/
/.idea/
/target/
/src/main/webapp/WEB-INF/
\ No newline at end of file
......@@ -53,4 +53,6 @@ public interface UsuarioDAO {
public JSONObject listarUsuarioManual(JSONObject datos) throws Exception;
JSONObject listarCargoUsuario() throws Exception;
JSONObject listarSede() throws Exception;
}
\ No newline at end of file
......@@ -38,27 +38,33 @@ public class UsuarioMYSQLDAO implements UsuarioDAO {
String personal = datos.isNull("trabajador") ? "" : datos.getString("trabajador");
boolean isNumber = personal.matches("[0-9]+");
String cargo = datos.isNull("cargo") ? "" : datos.getString("cargo");
query = "WITH tablaOrdenada AS (SELECT a.cod_usuario, a.cod_trabajador, a.usu, a.est,p.tmp_id,p.retirado\n" +
" FROM usuario AS a\n" +
" LEFT JOIN seguridad.usuario_detalle AS ud ON ud.cod_usuario = a.cod_usuario\n" +
" LEFT JOIN seguridad.proyecto_detalle AS pd\n" +
" ON pd.cod_proyecto_detalle = ud.cod_proyecto_detalle\n" +
" left join seguridad.tipo_usuario as tu on pd.cod_tipo_usuario = tu.cod_tipo_usuario\n" +
" left join nuevo.personal as p on a.cod_trabajador = p.tmp_id\n" +
" left join nuevo.cargo as c on p.codcargo = c.codcargo\n" +
" WHERE 1 = 1 \n" +
" and if("+proyecto+" = 0, true, pd.cod_proyecto = "+proyecto+")\n" +
" and if("+tipoUsuario+" = 0, true, pd.cod_proyecto_detalle = "+tipoUsuario+")\n" +
" " + estado + "\n" +
" "+ estadoTipoUsuario +"\n" +
" and if("+estadoPersonal+" = 2, true, p.retirado = "+estadoPersonal+")\n" +
" and if("+estadoPersonal+" = 2, true, p.retirado = "+estadoPersonal+")\n" +
(isNumber ? " and p.numero_documento = "+personal+" \n" : " and a.usu like '%"+personal+"%' \n" )+
" and if('"+cargo+"' = '', true, c.descargo = '"+cargo+"')\n" +
" GROUP BY a.cod_usuario, a.cod_trabajador, a.usu, a.est)\n" +
"select cod_usuario, cod_trabajador, usu, est,tmp_id,retirado\n" +
"from tablaOrdenada\n" +
"ORDER BY usu limit "+vlength+" offset "+vstart+";";
String sede = datos.optString("sede","");
query =
"WITH tablaOrdenada AS ( " +
" SELECT a.cod_usuario, a.cod_trabajador, a.usu, a.est, p.tmp_id, p.retirado " +
" FROM usuario AS a " +
" LEFT JOIN seguridad.usuario_detalle AS ud ON ud.cod_usuario = a.cod_usuario " +
" LEFT JOIN seguridad.proyecto_detalle AS pd ON pd.cod_proyecto_detalle = ud.cod_proyecto_detalle " +
" LEFT JOIN seguridad.tipo_usuario AS tu ON pd.cod_tipo_usuario = tu.cod_tipo_usuario " +
" LEFT JOIN nuevo.personal AS p ON a.cod_trabajador = p.tmp_id " +
" LEFT JOIN nuevo.cargo AS c ON p.codcargo = c.codcargo " +
" WHERE 1 = 1 " +
" AND IF(" + proyecto + " = 0, true, pd.cod_proyecto = " + proyecto + ") " +
" AND IF(" + tipoUsuario + " = 0, true, pd.cod_proyecto_detalle = " + tipoUsuario + ") " +
" " + estado + " " +
" " + estadoTipoUsuario + " " +
" AND IF(" + estadoPersonal + " = 2, true, p.retirado = " + estadoPersonal + ") " +
" AND IF(" + estadoPersonal + " = 2, true, p.retirado = " + estadoPersonal + ") " +
" AND IF('" + sede + "' = '', true, p.codlocal = '" + sede + "') " +
(isNumber ?
" AND p.numero_documento = " + personal + " \n" :
" AND a.usu LIKE '%" + personal + "%' \n") +
" AND IF('" + cargo + "' = '', true, c.descargo = '" + cargo + "') " +
" GROUP BY a.cod_usuario, a.cod_trabajador, a.usu, a.est " +
") " +
"SELECT cod_usuario, cod_trabajador, usu, est, tmp_id, retirado " +
"FROM tablaOrdenada " +
"ORDER BY usu LIMIT " + vlength + " OFFSET " + vstart + ";";
con = MySQLDAOFactory.getConnectionSQL(base);
System.out.println(query);
pst = con.prepareStatement(query);
......@@ -696,4 +702,58 @@ public class UsuarioMYSQLDAO implements UsuarioDAO {
}
return jreturn;
}
@Override
public JSONObject listarSede() throws Exception {
JSONObject jreturn = new JSONObject();
JSONArray lista = new JSONArray();
Connection con = null;
PreparedStatement pst = null;
ResultSet rSet = null;
String sql = "";
try {
con = MySQLDAOFactory.getConnectionSQL("security");
sql = "select\n" +
" codlocal,\n" +
" deslocal,\n" +
" abreviatura,\n" +
" id_local,\n" +
" id_local_profesor\n" +
" from nuevo.locales where activo = 1";
pst = con.prepareStatement(sql);
rSet = pst.executeQuery();
while (rSet.next()) {
JSONObject obj = new JSONObject();
obj.put("codlocal", rSet.getString(1));
obj.put("deslocal", rSet.getString(2));
obj.put("abreviatura", rSet.getString(3));
obj.put("id_local", rSet.getInt(4));
obj.put("id_local_profesor", rSet.getInt(5));
lista.put(obj);
}
jreturn.put("data",lista);
jreturn.put("status",true);
} catch (Exception e) {
e.printStackTrace();
jreturn.put("data",new JSONArray());
jreturn.put("status",false);
} finally {
try {
if (rSet != null) {
rSet.close();
}
if (pst != null) {
pst.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
jreturn.put("data",lista);
jreturn.put("status",true);
}
}
return jreturn;
}
}
\ No newline at end of file
......@@ -218,4 +218,14 @@ public class UsuarioService {
}
return obj;
}
public JSONObject listarSede(){
JSONObject obj = null;
try {
obj = dao.listarSede();
} catch (Exception e) {
e.printStackTrace();
}
return obj;
}
}
\ No newline at end of file
......@@ -7,13 +7,10 @@ package com.mycompany.moduloseguridad.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.WebServiceRef;
import com.mycompany.moduloseguridad.config.RequestPath;
import com.mycompany.moduloseguridad.services.UsuarioService;
import com.mycompany.moduloseguridad.utilities.HttpRequest;
......@@ -102,6 +99,9 @@ public class UsuarioServlet extends HttpServlet {
case "listarCargosDeUsuario":
listarCargosDeUsuario(request, response);
break;
case "listarSedes":
listarSede(request, response);
break;
default:
break;
}
......@@ -427,4 +427,12 @@ public class UsuarioServlet extends HttpServlet {
JSONObject json = srv.listarCargoUsuario();
out.print(new JSONArray(json.getJSONArray("data")));
}
private void listarSede(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("application/json");
PrintWriter out = response.getWriter();
UsuarioService srv = new UsuarioService();
JSONObject json = srv.listarSede();
out.print(new JSONArray(json.getJSONArray("data")));
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web version="8.0" xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/schema/jbossas/jboss-web_8_0.xsd">
<jboss-web version="8.0" xmlns="http://www.jboss.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee https://www.jboss.org/schema/jbossas/jboss-web_8_0.xsd">
<!-- COMENTAR SESSION CONFIG CUANDO PROGRAMES-->
<session-config>
<cookie-config>
<path>/moduloSeguridad</path>
</cookie-config>
</session-config>
<!-- COMENTAR SESSION CONFIG CUANDO PROGRAMES-->
</jboss-web>
\ No newline at end of file
......@@ -13,6 +13,7 @@ function segundaCarga() {
submitKey('txtUsuario', '#btnBuscar');
listarProyectos('cboProyecto');
listarTipoDeUsuario(-1, 'cboProyecto', 'cboTipoUsuario');
listarSedes('cboSede');
asignarEventosSelect();
buscarConEnter();
}
......@@ -215,7 +216,8 @@ var datosUsuario = {
"tipoUsuario": $('#cboTipoUsuario').val(),
"cargo": $('#cboCargos').val(),
"estado": isChecked,
"estadoTipoUsuario" : Number($('#cboEstadoTipoUsuario').val()) || 2
"estadoTipoUsuario" : Number($('#cboEstadoTipoUsuario').val()) || 2,
"sede": $('#cboSede').val()
};
let conta = 1;
let paramDataTable = {
......@@ -260,15 +262,17 @@ var datosUsuario = {
{targets: 1, orderable: false, width: "5%"},
{targets: 2, orderable: false, width: "15%"},
{targets: 3, orderable: false, width: "10%"},
{targets: 4, orderable: false, width: "15%"},
{targets: 4, orderable: false, width: "15%", className: "text-center"},
{targets: 5, orderable: false, width: "5%", className: "text-center"},
{targets: 6, orderable: false, width: "10%", className: "text-center"}
{targets: 6, orderable: false, width: "10%", className: "text-center"},
{targets: 7, orderable: false, width: "15%", className: "text-center"},
],
"columns": [
{"data": "codigoUsuario"},
{"data": "usuario"},
{"data": "nombreUsuario"},
{"data": "nombreArea"},
{"data": "nombreSede"},
{"data": "nombreCargo"},
{
"data": "estadoUsuario",
......@@ -340,6 +344,7 @@ $('#btnLimpiar').click(function () {
$('#cboProyecto').val('0').trigger('change');
$('#cboEstado').val('0').trigger('change');
$('#cboCargos').val('').trigger('change');
$('#cboSede').val('0').trigger('change');
recargar();
});
......@@ -1551,6 +1556,21 @@ function validarAsignacion(codigo) {
});
}
const listarSedes = input => {
$.ajax({
type: 'POST',
url: "../servlet/UsuarioServlet?accion=listarSedes",
dataType: 'JSON',
success: function (result) {
var print = "<option value=''>SELECCIONE SEDE</option> ";
for (var i in result) {
print += " <option value =" + result[i].codlocal + ">" + result[i].deslocal + "</option> ";
}
$("#" + input + "").html(print);
}
});
}
refrescar = () => {
$("#tblUsuario").DataTable().ajax.reload()
}
......
......@@ -80,12 +80,11 @@
<div class=' col-md-4'>
<div class="form-group">
<label style="font-size: small">
Estado Personal:
Proyecto:
</label>
<select id="cboEstado" class="form-control" name="cboEstado">
<option value="0">TODOS</option>
<option value="1">HABILITADO</option>
<option value="2">INHABILITADO</option>
<span class="asterisk">(*)</span>
<select id="cboProyecto" class="form-control" name="cboProyecto">
<option value="0">SELECCIONE UN PROYECTO</option>
</select>
</div>
</div>
......@@ -94,11 +93,10 @@
<div class='col-md-4'>
<div class="form-group">
<label style="font-size: small">
Proyecto:
Sedes:
</label>
<span class="asterisk">(*)</span>
<select id="cboProyecto" class="form-control" name="cboProyecto">
<option value="0">SELECCIONE UN PROYECTO</option>
<select id="cboSede" class="form-control" name="cboSede">
<option value="0">TODOS</option>
</select>
</div>
</div>
......@@ -116,7 +114,7 @@
<div class='col-md-4'>
<div class="form-group">
<label style="font-size: small">
Estado de TIpo de Usuario :
Estado Usuario :
</label>
<span class="asterisk">(*)</span>
<select id="cboEstadoTipoUsuario" class="form-control" name="cboTipoUsuario">
......@@ -127,18 +125,42 @@
</div>
</div>
</div>
<div class="row" style="display: flex; justify-content: center;">
<div class="col-md-4">
<div class="text-center">
<button class="btn bg-primary border-primary-600 btn-xs" type="button" id="btnBuscar"><i
class="fa fa-search"></i> Buscar
</button>
<button class="btn bg-orange border-orange-600 btn-xs" type="button" id="btnLimpiar"><i
class="fa fa-refresh"></i> Limpiar
</button>
</div>
<div style="display:flex; align-items: center; justify-content: space-between;">
<div class='col-md-4'>
<div class="form-group">
<label style="font-size: small">
Estado Personal:
</label>
<select id="cboEstado" class="form-control" name="cboEstado">
<option value="0">TODOS</option>
<option value="1">HABILITADO</option>
<option value="2">INHABILITADO</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="text-center">
<button class="btn bg-primary border-primary-600 btn-xs" type="button" id="btnBuscar"><i
class="fa fa-search"></i> Buscar
</button>
<button class="btn bg-orange border-orange-600 btn-xs" type="button" id="btnLimpiar"><i
class="fa fa-refresh"></i> Limpiar
</button>
</div>
</div>
</div>
<%-- <div class="row" style="display: flex; justify-content: center;">--%>
<%-- <div class="col-md-4">--%>
<%-- <div class="text-center">--%>
<%-- <button class="btn bg-primary border-primary-600 btn-xs" type="button" id="btnBuscar"><i--%>
<%-- class="fa fa-search"></i> Buscar--%>
<%-- </button>--%>
<%-- <button class="btn bg-orange border-orange-600 btn-xs" type="button" id="btnLimpiar"><i--%>
<%-- class="fa fa-refresh"></i> Limpiar--%>
<%-- </button>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </div>--%>
</form>
</div>
</div>
......@@ -165,6 +187,7 @@
<th class="text-center">DATOS</th>
<th class="text-center">ÁREA</th>
<th class="text-center">CARGO</th>
<th class="text-center">SEDE</th>
<th class="text-center">ESTADO</th>
<th class="text-center">ACCIONES</th>
</tr>
......
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