package trismegistoplanilla.sqlserverdao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import org.json.JSONArray; import org.json.JSONObject; import trismegistoplanilla.beans.AreaBean; import trismegistoplanilla.beans.SedeBean; import trismegistoplanilla.dao.AreaDAO; import trismegistoplanilla.utilities.ResponseHelper; import trismegistoplanilla.utilities.Variables; public class AreaSqlserverDAO implements AreaDAO { @Override public JSONObject listarArea(SedeBean s) { System.out.println("AreaSqlserverDAO: listarArea"); JSONObject JObjectArea = null; JSONArray JArrayArea = new JSONArray(); ResponseHelper response = new ResponseHelper(); String sql = "" + "SELECT " + " sede_area.codigo_area codigoArea, " + " area.nombre nombre " + "FROM " + " sede_area " + "INNER JOIN dbo.area ON dbo.area.codigo_area = dbo.sede_area.codigo_area " + "WHERE " + " sede_area.estado_registro = 1 " + "AND area.estado_registro = 1 " + "AND sede_area.codigo_sede = ? " + "GROUP BY " + " sede_area.codigo_area, " + " area.nombre"; Connection conexion = null; PreparedStatement ps = null; ResultSet rs = null; try { conexion = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); ps = conexion.prepareStatement(sql); ps.setInt(1, s.getCodigoSede()); rs = ps.executeQuery(); while (rs.next()) { AreaBean a = new AreaBean(); a.setCodigoArea(rs.getInt("codigoArea")); a.setNombre(rs.getString("nombre")); JSONObject objArea = new JSONObject(a); JArrayArea.put(objArea); } JSONObject objArea = new JSONObject(); objArea.put("areas", JArrayArea); response.setStatus(true); response.setMessage("Las áreas se listaron correctamente"); response.setData(objArea); } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " Error Code: [" + e.getErrorCode() + "]"); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (conexion != null) { conexion.close(); } } catch (SQLException e) { e.printStackTrace(); } } JObjectArea = new JSONObject(response); return JObjectArea; } @Override public JSONObject validarExistenciaArea(SedeBean s, AreaBean a) { System.out.println("AreaSqlserverDAO: validarExistenciaArea"); JSONObject JObjectValidarExistenciaArea = null; ResponseHelper response = new ResponseHelper(); String sql = "" + "select " + "count(1) existeArea " + "from sede_area " + "where sede_area.estado_registro = 1 and sede_area.codigo_sede = ? and sede_area.codigo_area = ?"; Connection conexion = null; PreparedStatement ps = null; ResultSet rs = null; try { conexion = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); ps = conexion.prepareStatement(sql); ps.setInt(1, s.getCodigoSede()); ps.setInt(2, a.getCodigoArea()); rs = ps.executeQuery(); rs.next(); int existeArea = 0; existeArea = rs.getInt("existeArea"); if (existeArea > 0) { response.setStatus(true); response.setMessage("La área seleccionada existe"); } else { response.setStatus(false); response.setMessage("Error! La área seleccionada no existe"); } } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " Error Code: [" + e.getErrorCode() + "]"); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (conexion != null) { conexion.close(); } } catch (SQLException e) { e.printStackTrace(); } } JObjectValidarExistenciaArea = new JSONObject(response); return JObjectValidarExistenciaArea; } @Override public JSONObject registrar(JSONObject datos) { System.out.println("AreaSqlserverDAO: registrar"); JSONObject jObject = null; ResponseHelper response = new ResponseHelper(); Connection cnx = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "insert into area (nombre, estado_registro) values (?, 1)"; int resultado; try { cnx = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); cnx.setAutoCommit(false); ps = cnx.prepareStatement(sql); ps.setString(1, datos.getString("area")); resultado = ps.executeUpdate(); if (resultado == 1) { cnx.commit(); response.setStatus(true); response.setMessage("Se registro el área correctamente!"); } else { cnx.rollback(); response.setStatus(false); response.setMessage("No se puedo registrar el área"); } } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " Error Code: [" + e.getErrorCode() + "]"); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (cnx != null) { cnx.close(); } } catch (SQLException e) { e.printStackTrace(); } } jObject = new JSONObject(response); return jObject; } @Override public JSONObject editar(JSONObject datos) { System.out.println("AreaSqlserverDAO: editar"); throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public JSONObject estado(JSONObject datos) { System.out.println("AreaSqlserverDAO: estado"); throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public JSONObject validarNombreAdd(JSONObject datos) { System.out.println("AreaSqlserverDAO: validarNombreAdd"); JSONObject jObject; ResponseHelper response = new ResponseHelper(); Connection cnx = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "select count(1) cantidad " + "FROM area " + "where area.nombre = ?"; int resultado; try { cnx = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); ps = cnx.prepareStatement(sql); ps.setString(1, datos.getString("area")); rs = ps.executeQuery(); if (rs.next()) { resultado = rs.getInt("cantidad"); if (resultado == 1) { response.setStatus(false); response.setMessage("Ya existe un área con ese nombre"); } else { response.setStatus(true); response.setMessage("Puede proceder a registrar el área"); } } else { response.setStatus(false); response.setMessage("No se pudo encontrar el área"); } } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " Error Code: [" + e.getErrorCode() + "]"); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (cnx != null) { cnx.close(); } } catch (SQLException e) { e.printStackTrace(); } } jObject = new JSONObject(response); return jObject; } @Override public JSONObject validarNombreEdit(JSONObject datos) { System.out.println("AreaSqlserverDAO: validarNombreEdit"); JSONObject jObject; ResponseHelper response = new ResponseHelper(); Connection cnx = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "select count(1) " + "FROM area " + "where area.nombre = ? " + "and area.codigo_area not in (?)"; int resultado; try { cnx = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); ps = cnx.prepareStatement(sql); ps.setString(1, datos.getString("area")); ps.setInt(2, datos.getInt("codigoArea")); rs = ps.executeQuery(); if (rs.next()) { resultado = rs.getInt("cantidad"); if (resultado == 1) { response.setStatus(false); response.setMessage("Ya existe un área con ese nombre"); } else { response.setStatus(true); response.setMessage("Puede proceder a actualizar el área"); } } else { response.setStatus(false); response.setMessage("No se pudo encontrar el área"); } } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " Error Code: [" + e.getErrorCode() + "]"); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (cnx != null) { cnx.close(); } } catch (SQLException e) { e.printStackTrace(); } } jObject = new JSONObject(response); return jObject; } }