/**
* @(#) PersistenciattactmedGPC.java
*/
package com.tarisan.control;
import com.tarisan.data.TtactmedGPC;
import com.tarisan.log.*;
import com.tarisan.util.Utilidades;
import com.tarisan.excepcion.ExcepcionTarisan;
import java.sql.*;
import java.util.Vector;
/**
* Controla los accesos a la persistencia para la entidad ttactmed.
* @author Dpto. Informática.
* @version 1.0, 24/09/2003
*/
public class PersistenciaTtactmedGPC
{
/**
* 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 qué página se está visualizando.
* @return El objeto Paginacion
*/
public Paginacion getPaginacion()
{
return objPaginacion;
}
/**
* Selecciona los registros de la tabla ttactmed 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 parametros utilizados en la sentencia SELECT.
* @return El Vector con los registros seleccionados (todos pertenencientes a la clase ttactmed).
* @throws
*/
public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan
{
int elementosPaginacion=1;
Vector vResultado = new Vector();
TtactmedGPC ttactmed = 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()))
{
ttactmed = new TtactmedGPC();
ttactmed.setDescripcion_gpc(rs.getString("DESCRIPCION"));
ttactmed.setActo(rs.getInt("ACTO"));
ttactmed.setOmc(rs.getInt("PRECIO"));
vResultado.addElement(ttactmed);
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 la tabla TTACTMED_GPC (" + sqlSelect + ")");
}
catch (ExcepcionTarisan sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTACTMED_GPC: " + sqle + " (" + sqlSelect + ")");
throw (ExcepcionTarisan)sqle;
}
catch(SQLException sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTACTMED_GPC: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
catch(Exception sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTACTMED_GPC: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
catch(Throwable sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TTACTMED_GPC: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
return vResultado;
}
public Vector listadoDeterminacionesAnaliticas(String strCampoNombre, int pagina) throws SQLException
{
Vector vResultado = new Vector();
TtactmedGPC ttactmedGPC = null;
StringBuffer strSql = new StringBuffer();
int intPagina=1;
Object aCondiciones[]=null;
String consulta="";
int elementosPaginacion=1;
strSql.append("SELECT *");
strSql.append(" FROM TTACTMED_GPC");
//comprobamos si se trata de una busqueda de determinaciones analiticas
if (!strCampoNombre.equalsIgnoreCase("")) //la sql tiene tres parametros
{
if (strCampoNombre.endsWith("*"))
strCampoNombre=strCampoNombre.replace('*', '%');
else
strCampoNombre ="%" + strCampoNombre + "%";
//el array de objetos sera de tres elementos
aCondiciones = new Object[1];
aCondiciones[0] = strCampoNombre;
strSql.append(" WHERE TTACTMED_GPC.DESCRIPCION_GPC LIKE ?");
}
else //la sql solo tiene dos parametros
aCondiciones = new Object[0];
strSql.append(" ORDER BY TTACTMED_GPC.DESCRIPCION_GPC");
try {
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
objPaginacion.inicializarPaginacion(rs);
if (objPaginacion.getNumeroRegistrosTotales()!=0)
{
objPaginacion.realizarPaginacion(rs, pagina);
while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
{
ttactmedGPC = new TtactmedGPC();
ttactmedGPC.setDescripcion_gpc(rs.getString("DESCRIPCION_GPC"));
ttactmedGPC.setActo(rs.getInt("ACTO"));
ttactmedGPC.setOmc(rs.getInt("OMC"));
vResultado.addElement(ttactmedGPC);
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 la tabla TTACTMED_GPC (" + strSql.toString() + ")");
} catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de las determinaciones analiticas: " + e + " (" + strSql.toString() + ")");
}
return vResultado;
}
public Vector actosPorPeticion(long autorizacion) throws SQLException
{
Vector vResultado = new Vector();
StringBuffer strSql = new StringBuffer();
Object aCondiciones[]=null;
TtactmedGPC ttactmed = null;
//strSql.append("select tapresca_tarisan.acto,descripcion_gpc ");
strSql.append("select *");
strSql.append(" from tapresca_tarisan, ttactmed_gpc ");
strSql.append(" where tapresca_tarisan.acto=ttactmed_gpc.acto");
strSql.append(" and autorizacion=?");
aCondiciones = new Object[1];
aCondiciones[0] = autorizacion;
try {
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
while(rs.next())
{
ttactmed = new TtactmedGPC();
ttactmed.setDescripcion_gpc(rs.getString("DESCRIPCION_GPC"));
ttactmed.setActo(rs.getInt("ACTO"));
ttactmed.setJustificacionInforme(rs.getString("TEXTO"));
ttactmed.setJustificacionPrescripcion(rs.getString("JUSTIFICACION"));
ttactmed.setJustifi_deter(rs.getString("JUSTIFY_DETER"));
vResultado.addElement(ttactmed);
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TTACTMED_GPC (" + strSql.toString() + ")");
} catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de las determinaciones analiticas: " + e + " (" + strSql.toString() + ")");
}
return vResultado;
}
}