package com.tarisan.control; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Vector; import com.tarisan.data.Tamedico; import com.tarisan.data.VTtbancosTamedico; import com.tarisan.excepcion.ExcepcionTarisan; import com.tarisan.log.LogTarisan; import com.tarisan.log.NivelLog; import com.tarisan.util.Utilidades; public class PersistenciaVTTbancosTamedico { /** * El objeto Paginacion que controla el número de filas a mostrar por cada página. */ private Paginacion objPaginacion = new Paginacion(); /** * Obtiene el valor del objeto Paginacion para saber que página se está visualizando. * @return El objeto Paginacion. */ public Paginacion getPaginacion() { return objPaginacion; } /** * Selecciona los registros de la JOIN entre tablas TTMEDICO y TTBANCOS en función de la sentencia SELECT indicada. * @param sqlSelect La sentencia SELECT de selección. * @param pagina Número de página a mostrar. * @param aCondiciones Array que contiene los parámetros utilizados en la sentencia SELECT. * @return El Vector con los registros seleccionados (todos pertenencientes a la clase ). * @throws */ public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan { int elementosPaginacion=1; Vector vResultado = new Vector(); VTtbancosTamedico vTtbancosTamedico = null; try { Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones); objPaginacion.inicializarPaginacion(rs); if (objPaginacion.getNumeroRegistrosTotales()!=0) { objPaginacion.realizarPaginacion(rs, pagina); while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina())) { vTtbancosTamedico = new VTtbancosTamedico(); vTtbancosTamedico.setNif(rs.getString("NIF")); vTtbancosTamedico.setNombre(rs.getString("NOMBRE")); vTtbancosTamedico.setApellidos(rs.getString("APELLIDOS")); vTtbancosTamedico.setDireccion(rs.getString("DIRECCION")); vTtbancosTamedico.setCp(rs.getString("CP")); vTtbancosTamedico.setPoblacion(rs.getString("POBLACION")); vTtbancosTamedico.setDescripcion(rs.getString("DESCRIPCION")); vTtbancosTamedico.setIban_sucursal(rs.getInt("IBAN_SUCURSAL")); vTtbancosTamedico.setIban_cuenta(rs.getString("IBAN_CUENTA")); vTtbancosTamedico.setMes(rs.getString("MES")); vTtbancosTamedico.setFecha_factura(rs.getDate("FECHA_FACTURA")); vTtbancosTamedico.setFactura(rs.getInt("FACTURA")); vTtbancosTamedico.setCla(rs.getString("CLA")); vResultado.addElement(vTtbancosTamedico); if (pagina!=0) //Se quiere realizar la paginacion elementosPaginacion++; } } rs.close(); ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de las tablas TTBANCOS, TTMEDICO y TALIQUIMEDI (" + sqlSelect + ")"); } catch (ExcepcionTarisan sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS, TTMEDICO y TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")"); throw (ExcepcionTarisan)sqle; } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS, TTMEDICO y TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Exception sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS, TTMEDICO y TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Throwable sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS, TTMEDICO y TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } return vResultado; } public Vector seleccionar_reducido(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan { int elementosPaginacion=1; Vector vResultado = new Vector(); VTtbancosTamedico vTtbancosTamedico = null; try { Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones); objPaginacion.inicializarPaginacion(rs); if (objPaginacion.getNumeroRegistrosTotales()!=0) { objPaginacion.realizarPaginacion(rs, pagina); while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina())) { vTtbancosTamedico = new VTtbancosTamedico(); vTtbancosTamedico.setNif(rs.getString("NIF")); vTtbancosTamedico.setNombre(rs.getString("NOMBRE")); vTtbancosTamedico.setApellidos(rs.getString("APELLIDOS")); vTtbancosTamedico.setDireccion(rs.getString("DIRECCION")); vTtbancosTamedico.setCp(rs.getString("CP")); vTtbancosTamedico.setPoblacion(rs.getString("POBLACION")); vTtbancosTamedico.setDescripcion(rs.getString("DESCRIPCION")); vTtbancosTamedico.setIban_sucursal(rs.getInt("IBAN_SUCURSAL")); vTtbancosTamedico.setIban_cuenta(rs.getString("IBAN_CUENTA")); vResultado.addElement(vTtbancosTamedico); if (pagina!=0) //Se quiere realizar la paginacion elementosPaginacion++; } } rs.close(); ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de las tablas TTBANCOS y TTMEDICO (" + sqlSelect + ")"); } catch (ExcepcionTarisan sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS y TTMEDICO: " + sqle + " (" + sqlSelect + ")"); throw (ExcepcionTarisan)sqle; } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS y TTMEDICO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Exception sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS y TTMEDICO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Throwable sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS y TTMEDICO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } return vResultado; } public Vector obtenerMedico_por_medico_origen(int medico, int intPagina) { Vector resul = null; StringBuffer strSql = new StringBuffer(); Object [] aCondiciones = new Object[1]; String consulta = ""; strSql.append("select distinct(ttmedico.nombre), ttmedico.apellidos, ttmedico.direccion, ttmedico.cp, ttmedico.poblacion, nif, ttbancos.descripcion, iban_sucursal, iban_cuenta"); strSql.append(" from ttmedico, TTBANCOS"); strSql.append(" where ttmedico.medico = ?"); strSql.append(" and ttmedico.iban_banco = ttbancos.iban_banco"); aCondiciones[0] = Integer.valueOf(medico); try { resul = this.seleccionar_reducido(strSql.toString(),intPagina, aCondiciones); consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones); } catch (ExcepcionTarisan e) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS_TTMEDICO (obtenerMedico): " + e + " (" + consulta + ")"); } return resul; } public Vector obtenerMedico_por_medico_y_mes(int medico, String mes, int intPagina) { Vector resul = null; StringBuffer strSql = new StringBuffer(); Object [] aCondiciones = new Object[2]; String consulta = ""; strSql.append("select distinct(ttmedico.nombre), ttmedico.apellidos, ttmedico.direccion, ttmedico.cp, ttmedico.poblacion, concat(mes, concat('/',año)) mes, fecha_factura, factura, nif, ttbancos.descripcion, iban_sucursal, iban_cuenta, (select ttmedico.cla from ttmedico where ttmedico.medico = taliquimedi.medico_origen) cla"); strSql.append(" from ttmedico, taliquimedi,TTBANCOS"); strSql.append(" where ttmedico.medico = ?"); strSql.append(" AND ttmedico.MEDICO = TALIQUIMEDI.MEDICO"); strSql.append(" and concat(mes, concat('/',año)) = ?"); strSql.append(" and ttmedico.iban_banco = ttbancos.iban_banco"); aCondiciones[0] = Integer.valueOf(medico); aCondiciones[1] = new String(mes); try { resul = this.seleccionar(strSql.toString(),intPagina, aCondiciones); consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones); } catch (ExcepcionTarisan e) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTBANCOS_TTMEDICO_TALIQUIMEDI (obtenerMedico): " + e + " (" + consulta + ")"); } return resul; } }