package trismegistoplanilla.sqlserverdao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.json.JSONArray; import org.json.JSONObject; import trismegistoplanilla.beans.TipoExpedienteBean; import trismegistoplanilla.dao.TipoExpedienteDAO; import trismegistoplanilla.utilities.ResponseHelper; import trismegistoplanilla.utilities.Variables; public class TipoExpedienteSqlserverDAO implements TipoExpedienteDAO { @Override public JSONObject listarTipoExpediente() { System.out.println("TipoExpedienteSqlserverDAO: listarTipoExpediente"); JSONObject JOlistarTipoExpediente = null; JSONArray JArrayArea = new JSONArray(); ResponseHelper response = new ResponseHelper(); String sql = "" + "select " + "codigo_tipo_expediente codigoTipoExpediente, " + "nombre, " + "estado_registro estado " + "from tipo_expediente"; 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()) { TipoExpedienteBean te = new TipoExpedienteBean(); te.setCodigoTipoExpediente(rs.getInt("codigoTipoExpediente")); te.setNombre(rs.getString("nombre")); JSONObject obj = new JSONObject(te); JArrayArea.put(obj); } JSONObject obj = new JSONObject(); obj.put("tipoexpedientes", JArrayArea); response.setStatus(true); response.setMessage("Los tipo de expediente se listaron correctamente"); response.setData(obj); } 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(); } } JOlistarTipoExpediente = new JSONObject(response); return JOlistarTipoExpediente; } @Override public JSONObject registrarTipoExpediente(TipoExpedienteBean te) { System.out.println("TipoExpedienteSqlserverDAO: registrarTipoExpediente"); JSONObject JOregistrarTipoExpediente = null; ResponseHelper response = new ResponseHelper(); String sql = "insert into tipo_expediente (nombre, estado_registro) values (upper(?) ,1)"; Connection conexion = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); PreparedStatement ps = null; ResultSet rs = null; try { conexion.setAutoCommit(false); // validar existencia de tipo de expediente JSONObject validarExistenciaTipoExpediente = validarExistenciaTipoExpediente(te); if (validarExistenciaTipoExpediente.getBoolean("status")) { response.setStatus(false); response.setMessage("El tipo de expediente ingresado, ya existe en el sistema"); conexion.rollback(); } else { ps = conexion.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, te.getNombre()); int resultadoRegistroTipoExpediente = ps.executeUpdate(); if (resultadoRegistroTipoExpediente > 0) { rs = ps.getGeneratedKeys(); rs.next(); int codigoTipoExpediente = rs.getInt(1); JSONObject objTipoExpediente = new JSONObject(); objTipoExpediente.put("id", codigoTipoExpediente); objTipoExpediente.put("data", te.getNombre()); response.setStatus(true); response.setMessage("El tipo de expediente ha sido registrado con exito"); response.setData(objTipoExpediente); conexion.commit(); } else { response.setStatus(false); response.setMessage("Error: no se pudo registrar el tipo de expediente ingresado"); conexion.rollback(); } } } catch (SQLException e) { e.printStackTrace(); response.setStatus(false); response.setMessage("Error: " + e.getMessage() + " \n Error Code: [" + e.getErrorCode() + "]"); try { conexion.rollback(); } catch (SQLException ex) { ex.printStackTrace(); } } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (conexion != null) { conexion.close(); } } catch (SQLException e) { e.printStackTrace(); } } JOregistrarTipoExpediente = new JSONObject(response); return JOregistrarTipoExpediente; } @Override public JSONObject validarExistenciaTipoExpediente(TipoExpedienteBean te) { System.out.println("TipoExpedienteSqlserverDAO: validarExistenciaTipoExpediente"); JSONObject JOvalidarExistenciaTipoExpediente = null; ResponseHelper response = new ResponseHelper(); String sql = "select count(1) existe from tipo_expediente where nombre = upper(?)"; Connection conexion = null; PreparedStatement ps = null; ResultSet rs = null; try { conexion = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); ps = conexion.prepareStatement(sql); ps.setString(1, te.getNombre()); rs = ps.executeQuery(); rs.next(); int existeTipoExpediente = rs.getInt("existe"); if (existeTipoExpediente > 0) { response.setStatus(true); } else { response.setStatus(false); } } 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(); } } JOvalidarExistenciaTipoExpediente = new JSONObject(response); return JOvalidarExistenciaTipoExpediente; } @Override public JSONObject validarTipoExpedienteSeleccionadoByID(JSONArray ja) { System.out.println("TipoExpedienteSqlserverDAO: validarTipoExpedienteSeleccionadoByID"); JSONObject JOvalidarExistenciaTipoExpediente = null; ResponseHelper response = new ResponseHelper(); String sql = "" + "select " + "count(1) existe " + "from tipo_expediente " + "where codigo_tipo_expediente = ?"; Connection conexion = null; PreparedStatement ps = null; ResultSet rs = null; try { conexion = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME); ps = conexion.prepareStatement(sql); int existe = 0; for (int i = 0; i < ja.length(); i++) { JSONObject obj = ja.getJSONObject(i); ps.setInt(1, obj.getInt("id")); rs = ps.executeQuery(); rs.next(); existe = rs.getInt("existe"); if (existe == 0) { break; } } if (existe > 0) { response.setStatus(true); } else { response.setStatus(false); response.setMessage("Al parecer ha seleccionado un tipo de expediente que no se encuentra registrardo, por favor seleccione un elemento correcto y vuelva a intentarlo"); } } 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(); } } JOvalidarExistenciaTipoExpediente = new JSONObject(response); return JOvalidarExistenciaTipoExpediente; } }