package trismegistoplanilla.mysqldao; 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.CargoBean; import trismegistoplanilla.dao.CargoDAO; import trismegistoplanilla.utilities.ResponseHelper; import trismegistoplanilla.utilities.Variables; public class CargoMysqlDAO implements CargoDAO { @Override public JSONObject listarCargo(AreaBean a) { System.out.println("CargoMysqlDAO: listarCargo"); JSONObject JOListarCargo = null; JSONArray JArrayCargo = new JSONArray(); ResponseHelper response = new ResponseHelper(); String sql = "SELECT " + " area_cargo.codigo_cargo codigoCargo, " + " cargo.descargo nombre " + "FROM " + " area_cargo " + "INNER JOIN cargo ON cargo.codigo_cargo = area_cargo.codigo_cargo " + "WHERE " + " area_cargo.estado_registro = 1 " + "AND area_cargo.codigo_area = ?"; Connection conexion = null; PreparedStatement ps = null; ResultSet rs = null; try { conexion = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME); ps = conexion.prepareStatement(sql); ps.setInt(1, a.getCodigoArea()); rs = ps.executeQuery(); while (rs.next()) { CargoBean c = new CargoBean(); c.setCodigoCargo(rs.getInt("codigoCargo")); c.setNombre(rs.getString("nombre")); JSONObject objCargo = new JSONObject(c); JArrayCargo.put(objCargo); } JSONObject objCargo = new JSONObject(); objCargo.put("cargos", JArrayCargo); response.setStatus(true); response.setMessage("Los cargos se listaron correctamente"); response.setData(objCargo); } 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(); } } JOListarCargo = new JSONObject(response); return JOListarCargo; } @Override public JSONObject validarExistenciaCargo(AreaBean a, CargoBean c) { System.out.println("CargoMysqlDAO: validarExistenciaCargo"); JSONObject JOValidarExistenciaCargo = null; ResponseHelper response = new ResponseHelper(); String sql = "" + "select " + "count(1) existeCargo " + "from area_cargo " + "where area_cargo.estado_registro = 1 and area_cargo.codigo_area = ? and area_cargo.codigo_cargo = ?"; Connection conexion = null; PreparedStatement ps = null; ResultSet rs = null; try { conexion = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME); ps = conexion.prepareStatement(sql); ps.setInt(1, a.getCodigoArea()); ps.setInt(2, c.getCodigoCargo()); rs = ps.executeQuery(); rs.next(); int existeCargo = 0; existeCargo = rs.getInt("existeCargo"); if (existeCargo > 0) { response.setStatus(true); response.setMessage("El cargo seleccionada existe"); } else { response.setStatus(false); response.setMessage("Error! El cargo 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(); } } JOValidarExistenciaCargo = new JSONObject(response); return JOValidarExistenciaCargo; } @Override public JSONObject registrar(JSONObject datos) { System.out.println("CargoMysqlDAO: registrar"); JSONObject jObject = null; ResponseHelper response = new ResponseHelper(); Connection cnx = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "insert into cargo (nombre, estado_registro) values (?, 1)"; int resultado; try { cnx = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME); cnx.setAutoCommit(false); ps = cnx.prepareStatement(sql); ps.setString(1, datos.getString("cargo")); resultado = ps.executeUpdate(); if (resultado == 1) { cnx.commit(); response.setStatus(true); response.setMessage("Se registró el cargo correctamente!"); } else { cnx.rollback(); response.setStatus(false); response.setMessage("No se pudo registrar el cargo."); } } 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("CargoMysqlDAO: 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("CargoMysqlDAO: 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("CargoMysqlDAO: validarNombreAdd"); JSONObject jObject; ResponseHelper response = new ResponseHelper(); Connection cnx = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "select count(1) cantidad " + "FROM cargo " + "where cargo.nombre = ?"; int resultado; try { cnx = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME); ps = cnx.prepareStatement(sql); ps.setString(1, datos.getString("cargo")); rs = ps.executeQuery(); if (rs.next()) { resultado = rs.getInt("cantidad"); if (resultado == 1) { response.setStatus(false); response.setMessage("Ya existe un cargo con ese nombre"); } else { response.setStatus(true); response.setMessage("Puede proceder a registrar el cargo"); } } else { response.setStatus(false); response.setMessage("No se pudo encontrar el cargo"); } } 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("CargoMysqlDAO: validarNombreEdit"); JSONObject jObject; ResponseHelper response = new ResponseHelper(); Connection cnx = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "select count(1) " + "FROM area " + "where cargo.nombre = ? " + "and cargo.codigo_cargo not in (?)"; int resultado; try { cnx = MysqlDAOFactory.obtenerConexion(Variables.MYSQL_NUEVO_BD_NAME); ps = cnx.prepareStatement(sql); ps.setString(1, datos.getString("cargo")); ps.setInt(2, datos.getInt("codigoCargo")); rs = ps.executeQuery(); if (rs.next()) { resultado = rs.getInt("cantidad"); if (resultado == 1) { response.setStatus(false); response.setMessage("Ya existe un cargo con ese nombre"); } else { response.setStatus(true); response.setMessage("Puede proceder a actualizar el cargo"); } } else { response.setStatus(false); response.setMessage("No se pudo encontrar el cargo"); } } 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; } }