359 lines
12 KiB
Java
359 lines
12 KiB
Java
/**
|
|
* @(#) PersistenciaTapolfac.java
|
|
*/
|
|
|
|
package com.tarisan.control;
|
|
|
|
import com.tarisan.data.Tapolfac;
|
|
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 <code>Tapolfac</code>.
|
|
* @author <a href="mailto:sistemas@imqnavarra.com">Dpto. Informática</a>.
|
|
* @version 1.0, 24/09/2003
|
|
*/
|
|
public class PersistenciaTapolfac
|
|
{
|
|
|
|
/**
|
|
* El objeto <code>Paginacion</code> que controla el número de filas a mostrar por cada página.
|
|
*/
|
|
private Paginacion objPaginacion = new Paginacion();
|
|
|
|
/**
|
|
* Obtiene el valor del objeto <code>Paginacion</code> para saber que página se está visualizando.
|
|
* @return El objeto <code>Paginacion</code>.
|
|
*/
|
|
public Paginacion getPaginacion()
|
|
{
|
|
return objPaginacion;
|
|
}
|
|
|
|
/**
|
|
* Selecciona los registros de la tabla TAPOLFAC 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 <code>Tapolfac</code>).
|
|
* @throws
|
|
*/
|
|
public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan
|
|
{
|
|
|
|
int elementosPaginacion=1;
|
|
|
|
Vector vResultado = new Vector();
|
|
Tapolfac tapolfac = 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()))
|
|
{
|
|
tapolfac = new Tapolfac();
|
|
tapolfac.setTitular(rs.getString("TITULAR"));
|
|
tapolfac.setColec(rs.getInt("COLEC"));
|
|
tapolfac.setPoliza(rs.getDouble("POLIZA"));
|
|
tapolfac.setBeneficiarios(rs.getInt("BENEFICIARIOS"));
|
|
vResultado.addElement(tapolfac);
|
|
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 TAPOLFAC (" + sqlSelect + ")");
|
|
|
|
}
|
|
|
|
catch (ExcepcionTarisan sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAPOLFAC: " + sqle + " (" + sqlSelect + ")");
|
|
throw (ExcepcionTarisan)sqle;
|
|
}
|
|
catch(SQLException sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAPOLFAC: " + sqle + " (" + sqlSelect + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
}
|
|
catch(Exception sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAPOLFAC: " + sqle + " (" + sqlSelect + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
}
|
|
catch(Throwable sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAPOLFAC: " + sqle + " (" + sqlSelect + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
|
|
}
|
|
|
|
return vResultado;
|
|
}
|
|
|
|
|
|
public int obtenerNumerPolizasMedicos(int medico)
|
|
{
|
|
int resul = 0;
|
|
String strSql = "";
|
|
try
|
|
{
|
|
strSql = "Select count(*) from tapolfac where medico = " + medico +" group by colec, poliza";
|
|
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
|
|
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql);
|
|
if(rs.next())
|
|
{
|
|
rs.last();
|
|
resul = rs.getRow();
|
|
}
|
|
|
|
}
|
|
catch (ExcepcionTarisan sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección obtenerNumerPolizasMedicos: " + sqle + " (" + strSql + ")");
|
|
} catch (SQLException e) {
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección obtenerNumerPolizasMedicos: " + e + " (" + strSql + ")");
|
|
}
|
|
|
|
return resul;
|
|
}
|
|
|
|
/**
|
|
* Obtiene el número total de beneficiarios del total de pólizas de la tabla TAPOLFAC dependiendo del médico que este conectado.
|
|
* @param medico El código del médico conectado a la aplicación.
|
|
* @return El número total de beneficiarios del total de pólizas pertenecientes al médico conectado.
|
|
* @throws
|
|
*/
|
|
public int obtenerNumTotalBeneficiarios(int medico) throws ExcepcionTarisan
|
|
{
|
|
String strSql="";
|
|
int intTotalBeneficiarios=0;
|
|
|
|
try
|
|
{
|
|
strSql = "select count(*) as totalBeneficiarios from tapolfac where medico=" + medico;
|
|
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
|
|
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql);
|
|
|
|
if (rs.next())
|
|
intTotalBeneficiarios = rs.getInt("totalBeneficiarios");
|
|
|
|
rs.close();
|
|
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
|
|
LogTarisan.logger.log(NivelLog.DEBUG, "Total beneficiarios " + intTotalBeneficiarios + " de la tabla TAPOLFAC (" + strSql + ")");
|
|
|
|
}
|
|
|
|
catch (ExcepcionTarisan sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección obtenerNumTotalBeneficiarios: " + sqle + " (" + strSql + ")");
|
|
throw (ExcepcionTarisan)sqle;
|
|
}
|
|
catch(SQLException sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección obtenerNumTotalBeneficiarios: " + sqle + " (" + strSql + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
}
|
|
catch(Exception sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección obtenerNumTotalBeneficiarios: " + sqle + " (" + strSql + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
}
|
|
catch(Throwable sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección obtenerNumTotalBeneficiarios: " + sqle + " (" + strSql + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
|
|
}
|
|
|
|
return intTotalBeneficiarios;
|
|
}
|
|
|
|
|
|
/**
|
|
* Indica si la póliza es una de las igualas de un determinado médico.
|
|
* @param medico El código del médico.
|
|
* @param colectivo El código del colectivo.
|
|
* @param poliza El código de la póliza.
|
|
* @return Valor entero que indica si la póliza es una de las igualas del médico (1), es iguala de otro médico (2) o no es
|
|
* iguala (0)
|
|
* @throws
|
|
*
|
|
*/
|
|
public Integer esPolizaIgualaMedico(int medico, long colectivo, double poliza) throws ExcepcionTarisan
|
|
{
|
|
StringBuffer strSql = new StringBuffer();
|
|
Object aCondiciones[]=null;
|
|
Integer blnEsPolizaIgualaMedico = 0;
|
|
Integer blnEsMutualista = 0;
|
|
/*
|
|
* Manda el Dr. Indave una incidencia:
|
|
* https://incidencias.imqnavarra.com/soporte/scp/tickets.php?id=52142
|
|
* para que los mutualistas puedan ir al médico de cabecera que quieran
|
|
* pero solo los mutualistas, no los directos.
|
|
*/
|
|
|
|
strSql.append("Select count(*) from TTCOLECT where ");
|
|
strSql.append("COLECTIVO=? and ");
|
|
strSql.append("contrato in (711, 712,713)");
|
|
|
|
aCondiciones = new Object[1];
|
|
aCondiciones[0]=Long.valueOf(colectivo);
|
|
|
|
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
|
|
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
|
|
try{
|
|
LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a comprobar si es mutualista");
|
|
if(rs.next())
|
|
{
|
|
LogTarisan.logger.log(NivelLog.DEBUG, "Es mutualista ");
|
|
blnEsMutualista = 1;
|
|
rs.close();
|
|
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
|
|
aCondiciones=null;
|
|
}
|
|
else{
|
|
rs.close();
|
|
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
|
|
LogTarisan.logger.log(NivelLog.DEBUG, "No es mutualista, seguimos comprobando");
|
|
aCondiciones=null;
|
|
}
|
|
}
|
|
catch(SQLException sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAPOLFAC: " + sqle + " (" + strSql.toString() + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
}
|
|
|
|
try
|
|
{
|
|
strSql = new StringBuffer();
|
|
strSql.append("SELECT *");
|
|
strSql.append(" FROM tapolfac");
|
|
//strSql.append(" WHERE medico=?");
|
|
//strSql.append(" AND colec=?");
|
|
strSql.append(" where colec=?");
|
|
strSql.append(" AND poliza=?");
|
|
//strSql.append(" and medico != 0");
|
|
|
|
/*
|
|
* El médico 0 es el sns, si ponemos la excepcion consideramos que los que tienen SNS pueden ir a los medicos de cabecera del cuadro.
|
|
* Si la quitamos, los que van a SNS no pueden ir a los médicos del cuadro.
|
|
*
|
|
*/
|
|
|
|
aCondiciones = new Object[2];
|
|
/*aCondiciones[0]=Integer.valueOf(medico);
|
|
aCondiciones[1]=Integer.valueOf(colectivo);
|
|
aCondiciones[2]=Double.valueOf(poliza);*/
|
|
aCondiciones[0]=Long.valueOf(colectivo);
|
|
aCondiciones[1]=Double.valueOf(poliza);
|
|
|
|
/*
|
|
* No necesitamos volver a definir las variables, ya que las hemos definido arriba para comprobar si es mutualista.
|
|
*/
|
|
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
|
|
rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
|
|
|
|
//nos posicionamos en el registro
|
|
if (rs.next()){
|
|
int sql_medico = rs.getInt("medico");
|
|
if(sql_medico == medico){
|
|
//la poliza se trata de una iguala del medico
|
|
blnEsPolizaIgualaMedico = 1;
|
|
LogTarisan.logger.log(NivelLog.DEBUG, "La poliza es una de las igualas del medico " + blnEsPolizaIgualaMedico + " (" + strSql.toString() + ")");
|
|
}
|
|
else{
|
|
//la poliza es iguala de otro médico
|
|
if(blnEsMutualista == 1){
|
|
//Los mutualistas pueden ir a cualquier médico de cabecera.
|
|
blnEsPolizaIgualaMedico = 0;
|
|
}
|
|
else{
|
|
blnEsPolizaIgualaMedico = 2;
|
|
}
|
|
LogTarisan.logger.log(NivelLog.DEBUG, "La poliza es una de las igualas pero de otro medico " + blnEsPolizaIgualaMedico + " (" + strSql.toString() + ")");
|
|
}
|
|
}
|
|
|
|
|
|
rs.close();
|
|
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
|
|
|
|
}
|
|
catch (ExcepcionTarisan sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAPOLFAC: " + sqle + " (" + strSql.toString() + ")");
|
|
throw (ExcepcionTarisan)sqle;
|
|
}
|
|
catch(SQLException sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAPOLFAC: " + sqle + " (" + strSql.toString() + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
}
|
|
catch(Exception sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAPOLFAC: " + sqle + " (" + strSql.toString() + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
}
|
|
catch(Throwable sqle)
|
|
{
|
|
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAPOLFAC: " + sqle + " (" + strSql.toString() + ")");
|
|
throw new ExcepcionTarisan(sqle.getMessage());
|
|
|
|
}
|
|
|
|
|
|
return blnEsPolizaIgualaMedico;
|
|
}
|
|
|
|
public Vector listado_igualados(String igualado, int medico, int intPagina)
|
|
{
|
|
Vector resul = new Vector();
|
|
StringBuffer strSql = new StringBuffer();
|
|
|
|
Object [] aCondiciones = new Object[1];
|
|
String consulta = "";
|
|
|
|
if(igualado.length()==0)
|
|
{
|
|
strSql.append("SELECT TITULAR, COLEC, POLIZA, BENEFICIARIOS");
|
|
strSql.append(" FROM TAPOLFAC");
|
|
strSql.append(" WHERE MEDICO=?");
|
|
strSql.append(" ORDER BY TITULAR");
|
|
}
|
|
else
|
|
{
|
|
strSql.append("SELECT TITULAR, COLEC, POLIZA, BENEFICIARIOS");
|
|
strSql.append(" FROM TAPOLFAC");
|
|
strSql.append(" WHERE MEDICO=?");
|
|
strSql.append(" AND TITULAR LIKE '%"+igualado+"%'");
|
|
strSql.append(" ORDER BY TITULAR");
|
|
|
|
}
|
|
aCondiciones[0] = Integer.valueOf(medico);
|
|
|
|
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 Tapolfac (listado_igualados): " + e + " (" + consulta + ")");
|
|
}
|
|
|
|
return resul;
|
|
}
|
|
|
|
}
|