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.SedeBean; import trismegistoplanilla.dao.SedeDAO; import trismegistoplanilla.utilities.ResponseHelper; import trismegistoplanilla.utilities.Variables; public class SedeSqlserverDAO implements SedeDAO { @Override public JSONObject listarSede() { System.out.println("SedeSqlserverDAO: listarSede"); JSONObject JObjectSede = null; JSONArray jArraySede = new JSONArray(); ResponseHelper response = new ResponseHelper(); String sql = "" + "select " + "sede_area.codigo_sede codigoSede, " + "sede.nombre nombre, " + "sede.direccion direccion, " + "razon_social.codigo_razon_social codigoRazonSocial, " + "razon_social.abreviatura nombreRazonSocial " + "from sede_area " + "inner join dbo.sede ON dbo.sede.codigo_sede = dbo.sede_area.codigo_sede " + "inner join dbo.razon_social ON dbo.razon_social.codigo_razon_social = dbo.sede.codigo_razon_social " + "where sede_area.estado_registro = 1 and sede.estado_registro = 1 " + "group by sede_area.codigo_sede, sede.nombre, sede.direccion, razon_social.codigo_razon_social, razon_social.abreviatura, sede.estado_registro"; Connection conexion = null; PreparedStatement ps = null; ResultSet rs = null; try { conexion = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); ps = conexion.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { SedeBean s = new SedeBean(); s.setCodigoSede(rs.getInt("codigoSede")); s.setNombre(rs.getString("nombre")); s.setDireccion(rs.getString("direccion")); s.setCodigoRazonSocial(rs.getInt("codigoRazonSocial")); s.setNombreRazonSocial(rs.getString("nombreRazonSocial")); JSONObject objSede = new JSONObject(s); jArraySede.put(objSede); } JSONObject objSede = new JSONObject(); objSede.put("sedes", jArraySede); response.setStatus(true); response.setMessage("Las sedes se listaron correctamente"); response.setData(objSede); } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " \n 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(); } } JObjectSede = new JSONObject(response); return JObjectSede; } @Override public JSONObject validarExistenciaSede(SedeBean s) { System.out.println("SedeSqlserverDAO: validarExistenciaSede"); JSONObject JObjectValidarExistenciaSede = null; ResponseHelper response = new ResponseHelper(); String sql = "" + "select " + "count(1) existeSede " + "from sede_area " + "where sede_area.estado_registro = 1 and sede_area.codigo_sede = ?"; 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(); rs.next(); int existeSede = 0; existeSede = rs.getInt("existeSede"); if (existeSede > 0) { response.setStatus(true); response.setMessage("La sede seleccionada existe"); } else { response.setStatus(false); response.setMessage("Error! La sede seleccionada no existe"); } } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " \n 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(); } } JObjectValidarExistenciaSede = new JSONObject(response); return JObjectValidarExistenciaSede; } @Override public JSONObject registrar(JSONObject datos) { System.out.println("SedeSqlserverDAO: registrar"); JSONObject jObject = null; ResponseHelper response = new ResponseHelper(); Connection cnx = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "" + "insert into sede (nombre, direccion, codigo_razon_social, 1) " + "values (?, ?, ?, 1)"; int resultado = 0; try { cnx = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); cnx.setAutoCommit(false); ps = cnx.prepareStatement(sql); int c = 1; ps.setString(c++, datos.getString("sede")); ps.setString(c++, datos.getString("direccion")); ps.setInt(c++, datos.getInt("codigoRazonSocial")); resultado = ps.executeUpdate(); if (resultado == 1) { cnx.commit(); response.setStatus(true); response.setMessage("Se registro la sede correctamente!"); } else { cnx.rollback(); response.setStatus(false); response.setMessage("No se puedo registrar la sede"); } } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " \n 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("SedeSqlserverDAO: 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("SedeSqlserverDAO: 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("SedeSqlserverDAO: validarNombreAdd"); JSONObject jObject; ResponseHelper response = new ResponseHelper(); Connection cnx = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "select count(1) cantidad " + "FROM sede " + "where sede.nombre = ?"; int resultado; try { cnx = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); ps = cnx.prepareStatement(sql); ps.setString(1, datos.getString("sede")); rs = ps.executeQuery(); if (rs.next()) { resultado = rs.getInt("cantidad"); if (resultado == 1) { response.setStatus(false); response.setMessage("Ya existe una sede con ese nombre"); } else { response.setStatus(true); response.setMessage("Puede proceder a registrar la sede"); } } else { response.setStatus(false); response.setMessage("No se pudo encontrar la sede"); } } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " \n 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("SedeSqlserverDAO: validarNombreEdit"); JSONObject jObject; ResponseHelper response = new ResponseHelper(); Connection cnx = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "select count(1) " + "FROM sede " + "where sede.nombre = ? " + "and sede.codigo_sede not in (?)"; int resultado; try { cnx = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); ps = cnx.prepareStatement(sql); ps.setString(1, datos.getString("sede")); ps.setInt(2, datos.getInt("codigoSede")); rs = ps.executeQuery(); if (rs.next()) { resultado = rs.getInt("cantidad"); if (resultado == 1) { response.setStatus(false); response.setMessage("Ya existe una sede con ese nombre"); } else { response.setStatus(true); response.setMessage("Puede proceder a actualizar la sede"); } } else { response.setStatus(false); response.setMessage("No se pudo encontrar la sede"); } } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " \n 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; } }