mudanca de bd

git-svn-id: https://svn.coded.pt/svn/SIPRP@521 bb69d46d-e84e-40c8-a05a-06db0d633741
lxbfYeaa
Frederico Palma 20 years ago
parent 13cd11dbdb
commit 58d16c1121

@ -28,4 +28,7 @@ public interface GlobalConstants
public static final String bdLocalUrl = "jdbc:postgresql://" + bdHost + ":" + bdPort + "/siprp_local";
public static final String DEFAULT_EMAIL = "geral@siprp.pt";
public static final int TIPO_MARCACAO_EXAMES = 0;
public static final int TIPO_MARCACAO_CONSULTA = 1;
}

@ -40,9 +40,9 @@ empresa_nome = ( String ) session.getAttribute( sessionCompanyName );
{
empresa_nome = null;
Class.forName(super.bdDriver);
con = DriverManager.getConnection( bdUrl, bdUsername, bdPassword );
con = DriverManager.getConnection( bdLocalUrl, bdLocalUsername, bdLocalPassword );
dbQuery = new StringBuffer();
dbQuery.append( "SELECT "+super.bdEmpresaIdRef+" , "+super.bdEmpresaNomeRef+" FROM empresas order by "+super.bdEmpresaNomeRef);
dbQuery.append( "SELECT id, designacao_social FROM empresas WHERE inactivo <> 'y' ORDER BY designacao_social" );
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );

@ -33,9 +33,9 @@ public class doGetListaEstabelecimentos extends siprpServlet{
if ( userRole.equals ( super.superUserRole ) || userRole.equals ( empresaId ) )
{
Class.forName(super.bdDriver);
con = DriverManager.getConnection( super.bdUrl, super.bdUsername, super.bdPassword );
con = DriverManager.getConnection( bdLocalUrl, bdLocalUsername, bdLocalPassword );
dbQuery = new StringBuffer();
dbQuery.append( " SELECT "+super.bdEstIdRef+" , "+super.bdEstNomeRef+" FROM estabelecimentos WHERE empresa_id = '"+empresaId+"' order by "+super.bdEstNomeRef);
dbQuery.append( " SELECT id, nome FROM estabelecimentos WHERE inactivo <> 'y' AND empresa_id = '"+empresaId+"' order by nome" );
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );

@ -50,13 +50,13 @@ public class doGetListaTrabalhadores extends siprpServlet{
if ( userRole.equals ( super.superUserRole ) || userRole.equals ( empresaId ) )
{
Class.forName(super.bdDriver);
con = DriverManager.getConnection( super.bdUrl, super.bdUsername, super.bdPassword );
con = DriverManager.getConnection( bdLocalUrl, bdLocalUsername, bdLocalPassword );
if ( super.verificaEstabelecimento(con, empresaId, estabelecimentoId) ) // estabelecimento pertence à empresa ??
{
//Class.forName(super.bdDriver);
//con = DriverManager.getConnection( super.bdUrl, super.bdUsername, super.bdPassword );
dbQuery = new StringBuffer();
dbQuery.append( " SELECT "+super.bdTrabIdRef+" , "+super.bdTrabNomeRef+" FROM trabalhadores WHERE estabelecimento_id = '"+estabelecimentoId+"' ORDER BY "+super.bdTrabNomeRef);
dbQuery.append( " SELECT id, nome FROM trabalhadores WHERE inactivo <> 'y' AND data_demissao IS NULL AND estabelecimento_id = '"+estabelecimentoId+"' ORDER BY nome" );
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );

@ -23,7 +23,9 @@ import org.apache.velocity.app.*;
public class doGetListaTrabalhadoresPendentes
extends siprpServlet
{
protected java.util.Date today;
protected long todayMillis;
/** Creates a new instance of doGetListaTrabalhadores */
public doGetListaTrabalhadoresPendentes(HttpServletRequest req, HttpServletResponse res, boolean print) throws IOException
{
@ -37,6 +39,9 @@ public class doGetListaTrabalhadoresPendentes
Vector links = new Vector();
Vector desc = new Vector();
Vector descAdicional = new Vector();
today = new java.util.Date();
todayMillis = today.getTime();
try
{
userRole = (String)session.getAttribute(super.sessionUserRole);
@ -46,89 +51,88 @@ public class doGetListaTrabalhadoresPendentes
if ( userRole.equals ( super.superUserRole ) || userRole.equals ( empresaId ) )
{
Class.forName(super.bdDriver);
con = DriverManager.getConnection( super.bdUrl, super.bdUsername, super.bdPassword );
con = DriverManager.getConnection( bdLocalUrl, bdLocalUsername, bdLocalPassword );
if ( super.verificaEstabelecimento(con, empresaId, estabelecimentoId) ) // estabelecimento pertence à empresa ??
{
//Class.forName(super.bdDriver);
//con = DriverManager.getConnection( super.bdUrl, super.bdUsername, super.bdPassword );
dbQuery = new StringBuffer();
dbQuery.append( "SELECT id, nome, ( ultima_consulta IS NOT NULL AND realizada = 'y' ),"
+ " ( ultimo_exame IS NOT NULL AND realizado = 'y' ),"
+ " proxima_consulta IS NOT NULL, proximo_exame IS NOT NULL, "
+ " ( proxima_consulta IS NOT NULL AND proxima_consulta - current_date <= 14 ), "
+ " ( proximo_exame IS NOT NULL AND proximo_exame - current_date <= 14 )"
+ " FROM trabalhadores "
+ " WHERE estabelecimento_id = '"+estabelecimentoId+"'"
+ " AND ( ultima_consulta IS NULL OR realizada = 'n' OR"
+ " ( proxima_consulta IS NOT NULL AND proxima_consulta - current_date <= 14 )"
+ " OR ( proximo_exame IS NOT NULL AND proximo_exame - current_date <= 14 ) )"
+ " ORDER BY nome" );
dbQuery.append( "SELECT trabalhadores.id, trabalhadores.nome, "
+ "marcacoes_trabalhador.tipo, marcacoes_trabalhador.data, marcacoes_trabalhador.realizada "
+ "FROM trabalhadores LEFT JOIN marcacoes_trabalhador ON ( marcacoes_trabalhador.trabalhador_id = trabalhadores.id )"
+ "WHERE estabelecimento_id = " + estabelecimentoId
+ " AND trabalhadores.inactivo <> 'y' AND data_demissao IS NULL "
+ "ORDER BY 2, 3, 4 DESC " );
// dbQuery.append( "SELECT id, nome, ( ultima_consulta IS NOT NULL AND realizada = 'y' ),"
// + " ( ultimo_exame IS NOT NULL AND realizado = 'y' ),"
// + " proxima_consulta IS NOT NULL, proximo_exame IS NOT NULL, "
// + " ( proxima_consulta IS NOT NULL AND proxima_consulta - current_date <= 14 ), "
// + " ( proximo_exame IS NOT NULL AND proximo_exame - current_date <= 14 )"
// + " FROM trabalhadores "
// + " WHERE estabelecimento_id = '"+estabelecimentoId+"'"
// + " AND ( ultima_consulta IS NULL OR realizada = 'n' OR"
// + " ( proxima_consulta IS NOT NULL AND proxima_consulta - current_date <= 14 )"
// + " OR ( proximo_exame IS NOT NULL AND proximo_exame - current_date <= 14 ) )"
// + " ORDER BY nome" );
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );
int index=0;
int max = rs.columnLength();
while ( index < max )
Integer trabalhadorID = new Integer( -1 );
String nomeTrabalhador = "";
Vector consultas = new Vector();
Vector exames = new Vector();
for ( index = 0; index <= max; index++ )
{
temp=""+rs.get(index,0); // converter de int para String
dbQuery = new StringBuffer();
dbQuery.append("/"+super.servletName+"/?"+empresaId+"/"+estabelecimentoId+"/"+temp); // contruir url
links.add(dbQuery.toString());
HashMap trabalhador = new HashMap();
trabalhador.put( "Nome", (String)rs.get(index,1) );
boolean uc = ( (Boolean)rs.get(index,2) ).booleanValue();
boolean ue = ( (Boolean)rs.get(index,3) ).booleanValue();
boolean pc = ( (Boolean)rs.get(index,4) ).booleanValue();
boolean pe = ( (Boolean)rs.get(index,5) ).booleanValue();
boolean quase_c = ( (Boolean)rs.get(index,6) ).booleanValue();
boolean quase_e = ( (Boolean)rs.get(index,7) ).booleanValue();
if( quase_c )
{
trabalhador.put( "Consulta", "yellow" );
trabalhador.put( "Consulta_estado", "marcado" );
}
else if( uc )
{
trabalhador.put( "Consulta", "green" );
trabalhador.put( "Consulta_estado", "tratado" );
}
else if( pc )
Integer id = index < max ? ( Integer ) rs.get( index, 0 ) : new Integer( -1 );
if( !id.equals( trabalhadorID ) )
{
trabalhador.put( "Consulta", "yellow" );
trabalhador.put( "Consulta_estado", "marcado" );
Object listaConsultas[][] = ( Object[][] ) consultas.toArray( new Object[consultas.size()][2] );
Object listaExames[][] = ( Object[][] ) exames.toArray( new Object[exames.size()][2] );
if( trabalhadorID.intValue() > -1 &&
verificarTrabalhador( listaConsultas, listaExames ) )
{
temp=""+rs.get(index - 1,0); // converter de int para String
dbQuery = new StringBuffer();
dbQuery.append("/"+super.servletName+"/?"+empresaId+"/"+estabelecimentoId+"/"+temp); // contruir url
links.add(dbQuery.toString());
desc.add( criarDadosTrabalhador( con, trabalhadorID, nomeTrabalhador, listaConsultas, listaExames ) );
}
exames.clear();
consultas.clear();
}
else
if( index == max )
{
trabalhador.put( "Consulta", "red" );
trabalhador.put( "Consulta_estado", "pendente" );
break;
}
if( quase_e )
Integer tipo = ( Integer ) rs.get( index, 2 );
String nome = ( String ) rs.get( index, 1 );
java.util.Date data = ( java.util.Date ) rs.get( index, 3 );
String realizada = ( String ) rs.get( index, 4 );
trabalhadorID = id;
nomeTrabalhador = nome;
Object marcacao[] = new Object[]{ data, realizada };
if( tipo == null )
{
trabalhador.put( "Exame", "yellow" );
trabalhador.put( "Exame_estado", "marcado" );
continue;
}
else if( ue )
switch( tipo.intValue() )
{
trabalhador.put( "Exame", "green" );
trabalhador.put( "Exame_estado", "tratado" );
case TIPO_MARCACAO_EXAMES:
exames.add( marcacao );
break;
case TIPO_MARCACAO_CONSULTA:
consultas.add( marcacao );
break;
}
else if( pe )
{
trabalhador.put( "Exame", "yellow" );
trabalhador.put( "Exame_estado", "marcado" );
}
else
{
trabalhador.put( "Exame", "red" );
trabalhador.put( "Exame_estado", "pendente" );
}
desc.add( trabalhador );
++index;
}
stmt.close();
sBuffer = new StringBuffer();
sBuffer.append("<b>"+super.nomeEmpresa(con,empresaId)+"</b><br><br><i>"
+super.nomeEstabelecimento(con, estabelecimentoId)+"</i>" );
@ -179,4 +183,156 @@ public class doGetListaTrabalhadoresPendentes
}
}
protected boolean verificarTrabalhador( Object consultas[][], Object exames[][] )
{
boolean estadoConsultas = false;
boolean estadoExames = ( exames.length == 0 ) || ( ( java.util.Date )exames[ 0 ][ 0 ] ).before(today) ||
( ( ( ( java.util.Date )exames[ 0 ][ 0 ] ).getTime() - todayMillis ) / 86400000 > 14 );
if( consultas.length > 0 )
{
int anterior;
int proxima;
if( ( (java.util.Date) consultas[ 0 ][ 0 ] ).after( today ) )
{
proxima = 0;
if( consultas.length >= 2 )
{
anterior = 1;
}
else
{
anterior = -1;
}
}
else
{
proxima = -1;
anterior = 0;
}
estadoConsultas = anterior >= 0 && "y".equals( consultas[ anterior ][ 1 ] ) &&
( proxima == -1 || ( ( ( java.util.Date )consultas[ proxima ][ 0 ] ).getTime() - todayMillis ) / 86400000 > 14 );
}
return !(estadoConsultas && estadoExames);
}
protected HashMap criarDadosTrabalhador( Connection con, Integer id, String nome,
Object consultas[][], Object exames[][] )
throws Exception
{
// dbQuery.append( "SELECT id, nome, ( ultima_consulta IS NOT NULL AND realizada = 'y' ),"
// + " ( ultimo_exame IS NOT NULL AND realizado = 'y' ),"
// + " proxima_consulta IS NOT NULL, proximo_exame IS NOT NULL, "
// + " ( proxima_consulta IS NOT NULL AND proxima_consulta - current_date <= 14 ), "
// + " ( proximo_exame IS NOT NULL AND proximo_exame - current_date <= 14 )"
// + " FROM trabalhadores "
// + " WHERE estabelecimento_id = '"+estabelecimentoId+"'"
// + " AND ( ultima_consulta IS NULL OR realizada = 'n' OR"
// + " ( proxima_consulta IS NOT NULL AND proxima_consulta - current_date <= 14 )"
// + " OR ( proximo_exame IS NOT NULL AND proximo_exame - current_date <= 14 ) )"
// + " ORDER BY nome" );
HashMap trabalhador = new HashMap();
trabalhador.put( "Nome", nome );
boolean uc = false;
boolean ue = false;
boolean pc = false;
boolean pe = false;
boolean quase_c = false;
boolean quase_e = false;
if( consultas.length > 0 )
{
int anterior;
int proxima;
if( ( (java.util.Date) consultas[ 0 ][ 0 ] ).after( today ) )
{
proxima = 0;
if( consultas.length >= 2 )
{
anterior = 1;
}
else
{
anterior = -1;
}
}
else
{
proxima = -1;
anterior = 0;
}
long diff = proxima > -1 ? ( ( ( java.util.Date )consultas[ proxima ][ 0 ] ).getTime() - todayMillis ) / 86400000 : 15;
uc = anterior > -1 && "y".equals( consultas[ anterior ][ 1 ] );
pc = proxima > -1;
quase_c = pc && diff <= 14;
}
if( exames.length > 0 )
{
int anterior;
int proximo;
if( ( (java.util.Date) exames[ 0 ][ 0 ] ).after( today ) )
{
proximo = 0;
if( exames.length >= 2 )
{
anterior = 1;
}
else
{
anterior = -1;
}
}
else
{
proximo = -1;
anterior = 0;
}
long diff = proximo > -1 ? ( ( ( java.util.Date )exames[ proximo ][ 0 ] ).getTime() - todayMillis ) / 86400000 : 15;
ue = anterior > -1 && "y".equals( exames[ anterior ][ 1 ] );
pe = proximo > -1;
quase_e = pe && diff <= 14;
}
if( quase_c )
{
trabalhador.put( "Consulta", "yellow" );
trabalhador.put( "Consulta_estado", "marcado" );
}
else if( uc )
{
trabalhador.put( "Consulta", "green" );
trabalhador.put( "Consulta_estado", "tratado" );
}
else if( pc )
{
trabalhador.put( "Consulta", "yellow" );
trabalhador.put( "Consulta_estado", "marcado" );
}
else
{
trabalhador.put( "Consulta", "red" );
trabalhador.put( "Consulta_estado", "pendente" );
}
if( quase_e )
{
trabalhador.put( "Exame", "yellow" );
trabalhador.put( "Exame_estado", "marcado" );
}
else if( ue )
{
trabalhador.put( "Exame", "green" );
trabalhador.put( "Exame_estado", "tratado" );
}
else if( pe )
{
trabalhador.put( "Exame", "yellow" );
trabalhador.put( "Exame_estado", "marcado" );
}
else
{
trabalhador.put( "Exame", "red" );
trabalhador.put( "Exame_estado", "pendente" );
}
return trabalhador;
}
}

@ -6,24 +6,31 @@
package siprp.pagina;
import com.evolute.utils.arrays.*;
import com.evolute.utils.strings.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import java.lang.reflect.Array;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.velocity.*;
import org.apache.velocity.app.*;
import com.evolute.utils.arrays.*;
import com.evolute.utils.sql.*;
import com.evolute.utils.strings.*;
/**
*
* @author fpalma
*/
public class doGetListaTrabalhadoresTudo
extends siprpServlet
extends siprpServlet
implements GlobalConstants
{
protected java.util.Date today;
protected long todayMillis;
/** Creates a new instance of doGetListaTrabalhadores */
public doGetListaTrabalhadoresTudo(HttpServletRequest req, HttpServletResponse res, boolean print) throws IOException
{
@ -37,6 +44,9 @@ public class doGetListaTrabalhadoresTudo
Vector links = new Vector();
Vector desc = new Vector();
Vector descAdicional = new Vector();
today = new java.util.Date();
todayMillis = today.getTime();
try
{
userRole = (String)session.getAttribute(super.sessionUserRole);
@ -46,40 +56,85 @@ public class doGetListaTrabalhadoresTudo
if ( userRole.equals ( super.superUserRole ) || userRole.equals ( empresaId ) )
{
Class.forName(super.bdDriver);
con = DriverManager.getConnection( super.bdUrl, super.bdUsername, super.bdPassword );
con = DriverManager.getConnection( bdLocalUrl, bdLocalUsername, bdLocalPassword );
if ( super.verificaEstabelecimento(con, empresaId, estabelecimentoId) ) // estabelecimento pertence à empresa ??
{
//Class.forName(super.bdDriver);
//con = DriverManager.getConnection( super.bdUrl, super.bdUsername, super.bdPassword );
dbQuery = new StringBuffer();
dbQuery.append( "SELECT id, nome, data_ficha FROM trabalhadores "
+ "WHERE estabelecimento_id = '"+estabelecimentoId+"'"
+ " AND ultima_consulta IS NOT NULL AND realizada = 'y' AND"
+ " ( proxima_consulta IS NULL OR proxima_consulta - current_date > 14 )"
+ " AND ( proximo_exame IS NULL OR proximo_exame - current_date > 14 )"
+ " ORDER BY nome" );
// dbQuery.append( "SELECT id, nome, data_ficha FROM trabalhadores "
// + "WHERE estabelecimento_id = '"+estabelecimentoId+"'"
// + " AND ultima_consulta IS NOT NULL AND realizada = 'y' AND"
// + " ( proxima_consulta IS NULL OR proxima_consulta - current_date > 14 )"
// + " AND ( proximo_exame IS NULL OR proximo_exame - current_date > 14 )"
// + " ORDER BY nome" );
dbQuery.append( "SELECT trabalhadores.id, trabalhadores.nome, "
+ "marcacoes_trabalhador.tipo, marcacoes_trabalhador.data, marcacoes_trabalhador.realizada "
+ "FROM trabalhadores, marcacoes_trabalhador "
+ "WHERE estabelecimento_id = " + estabelecimentoId
+ " AND marcacoes_trabalhador.trabalhador_id = trabalhadores.id "
+ " AND trabalhadores.inactivo <> 'y' AND data_demissao IS NULL "
+ "ORDER BY 2, 3, 4 DESC " );
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );
int index=0;
int max = rs.columnLength();
while ( index < max )
Integer trabalhadorID = new Integer( -1 );
String nomeTrabalhador = "";
Vector consultas = new Vector();
Vector exames = new Vector();
for ( index = 0; index <= max; index++ )
{
temp=""+rs.get(index,0); // converter de int para String
dbQuery = new StringBuffer();
dbQuery.append("/"+super.servletName+"/?"+empresaId+"/"+estabelecimentoId+"/"+temp); // contruir url
links.add(dbQuery.toString());
HashMap trabalhador = new HashMap();
trabalhador.put( "Nome", (String)rs.get(index,1) );
Object data_ficha = rs.get(index,2);
if( data_ficha == null )
Integer id = index < max ? ( Integer ) rs.get( index, 0 ) : new Integer( -1 );
if( !id.equals( trabalhadorID ) )
{
Object listaConsultas[][] = ( Object[][] ) consultas.toArray( new Object[consultas.size()][2] );
Object listaExames[][] = ( Object[][] ) exames.toArray( new Object[exames.size()][2] );
if( trabalhadorID.intValue() > -1 &&
verificarTrabalhador( listaConsultas, listaExames ) )
{
temp=""+rs.get(index - 1,0); // converter de int para String
dbQuery = new StringBuffer();
dbQuery.append("/"+super.servletName+"/?"+empresaId+"/"+estabelecimentoId+"/"+temp); // construir url
links.add(dbQuery.toString());
java.util.Date dataUltimaConsulta = null;
for( int c = 0; c < listaConsultas.length; c++ )
{
if( "y".equals( listaConsultas[ c ][ 1 ] ) )
{
dataUltimaConsulta = ( java.util.Date ) listaConsultas[ c ][ 0 ];
break;
}
}
desc.add( criarDadosTrabalhador( con, trabalhadorID, nomeTrabalhador, dataUltimaConsulta ) );
}
exames.clear();
consultas.clear();
}
if( index == max )
{
break;
}
Integer tipo = ( Integer ) rs.get( index, 2 );
String nome = ( String ) rs.get( index, 1 );
java.util.Date data = ( java.util.Date ) rs.get( index, 3 );
String realizada = ( String ) rs.get( index, 4 );
trabalhadorID = id;
nomeTrabalhador = nome;
Object marcacao[] = new Object[]{ data, realizada };
switch( tipo.intValue() )
{
data_ficha = "";
case TIPO_MARCACAO_EXAMES:
exames.add( marcacao );
break;
case TIPO_MARCACAO_CONSULTA:
consultas.add( marcacao );
break;
}
trabalhador.put( "Data", data_ficha );
desc.add( trabalhador );
++index;
}
stmt.close();
@ -132,6 +187,60 @@ public class doGetListaTrabalhadoresTudo
out.println( mergeTemplate( super.msgGenericError , super.errorTemplate) );
}
}
protected boolean verificarTrabalhador( Object consultas[][], Object exames[][] )
{
boolean estadoConsultas = false;
boolean estadoExames = ( exames.length == 0 ) || ( ( java.util.Date )exames[ 0 ][ 0 ] ).before(today) ||
( ( ( ( java.util.Date )exames[ 0 ][ 0 ] ).getTime() - todayMillis ) / 86400000 > 14 );
if( consultas.length > 0 )
{
int anterior;
int proxima;
if( ( (java.util.Date) consultas[ 0 ][ 0 ] ).after( today ) )
{
proxima = 0;
if( consultas.length >= 2 )
{
anterior = 1;
}
else
{
anterior = -1;
}
}
else
{
proxima = -1;
anterior = 0;
}
estadoConsultas = anterior >= 0 && "y".equals( consultas[ anterior ][ 1 ] ) &&
( proxima == -1 || ( ( ( java.util.Date )consultas[ proxima ][ 0 ] ).getTime() - todayMillis ) / 86400000 > 14 );
}
return estadoConsultas && estadoExames;
}
protected HashMap criarDadosTrabalhador( Connection con, Integer id, String nome, java.util.Date ultimaConsulta )
throws Exception
{
HashMap trabalhador = new HashMap();
trabalhador.put( "Nome", nome );
Select select =
new Select( new String[]{ "exames" }, new String[]{ "data" },
new Field( "trabalhador_id" ).isEqual( id ).and(
new Field( "data" ).isGreaterOrEqual( ultimaConsulta ) ),
new String[]{ "data" }, null );
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet2DArray rs = new ResultSet2DArray( stmt.executeQuery( select.toString() ) );
Object data_ficha = rs.columnLength() > 0 ? rs.get( 0, 0 ) : null;
stmt.close();
if( data_ficha == null )
{
data_ficha = "";
}
trabalhador.put( "Data", data_ficha );
return trabalhador;
}
}

@ -26,6 +26,7 @@ public class doGetTrabalhador extends siprpServlet
HttpSession session = req.getSession(false);
Vector names = new Vector();
Vector values = new Vector();
java.util.Date today = new java.util.Date();
try
{
@ -35,7 +36,7 @@ public class doGetTrabalhador extends siprpServlet
trabalhadorId = (String)session.getAttribute(super.sessionTrabalhadorId);
Class.forName(super.bdDriver);
con = DriverManager.getConnection( super.bdUrl, super.bdUsername, super.bdPassword );
con = DriverManager.getConnection( bdLocalUrl, bdLocalUsername, bdLocalPassword );
if ( ( userRole.equals ( super.superUserRole ) || userRole.equals ( empresaId ) )
&& super.verificaEstabelecimento(con, empresaId, estabelecimentoId)
@ -43,7 +44,8 @@ public class doGetTrabalhador extends siprpServlet
{
dbQuery = new StringBuffer();
dbQuery.append( " SELECT * FROM trabalhadores where id='"+trabalhadorId+"'");
dbQuery.append( " SELECT sexo, categoria, data_nascimento, nome, numero_mecanografico "
+ "FROM trabalhadores where id='"+trabalhadorId+"'");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );
@ -59,69 +61,192 @@ public class doGetTrabalhador extends siprpServlet
hmFuncionario.put( "data_nascimento", rs.get( 0, "data_nascimento" ) );
hmFuncionario.put( "nome", rs.get( 0, "nome" ) );
hmFuncionario.put( "numero", rs.get( 0, "numero_mecanografico" ) );
hmFuncionario.put( "ultimo_exame", rs.get( 0, "ultimo_exame" ) );
hmFuncionario.put( "resultado", rs.get( 0, "resultado" ) );
tmp = ( String ) rs.get( 0, "realizado" );
if( tmp != null )
stmt.close();
String query = "SELECT id, data, realizada, data_relatorio FROM marcacoes_trabalhador "
+ "WHERE tipo = 0 and trabalhador_id = " + trabalhadorId
+ " ORDER BY data DESC";
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( query ) );
if( rs.columnLength() > 0 )
{
if( tmp.equals( "n" ) )
java.util.Date dataExame2 = ( java.util.Date ) rs.get( 0, 1 );
String realizado2 = ( String ) rs.get( 0, 2 );
java.util.Date dataExame1;
String realizado1;
if( rs.columnLength() > 1 )
{
hmFuncionario.put( "realizado", "n&atilde;o" );
dataExame1 = ( java.util.Date ) rs.get( 1, 1 );
realizado1 = ( String ) rs.get( 1, 2 );
}
else if( tmp.equals( "s" ) || tmp.equals( "y" ) )
else
{
hmFuncionario.put( "realizado", "sim" );
dataExame1 = dataExame2;
realizado1 = realizado2;
}
if( "y".equals( realizado2 ) || today.after( dataExame2 ) )
{
hmFuncionario.put( "ultimo_exame", dataExame2 );
if( realizado2.equals( "n" ) )
{
realizado2 = "n&atilde;o";
}
else if( realizado2.equals( "s" ) || realizado2.equals( "y" ) )
{
realizado2 = "sim";
}
hmFuncionario.put( "realizado", realizado2 );
hmFuncionario.put( "proximo_exame", null );
}
else
{
hmFuncionario.put( "proximo_exame", dataExame2 );
if( !dataExame2.equals( dataExame1 ) )
{
hmFuncionario.put( "ultimo_exame", dataExame1 );
if( realizado1.equals( "n" ) )
{
realizado1 = "n&atilde;o";
}
else if( realizado1.equals( "s" ) || realizado1.equals( "y" ) )
{
realizado1 = "sim";
}
hmFuncionario.put( "realizado", realizado1 );
}
else
{
hmFuncionario.put( "ultimo_exame", null );
hmFuncionario.put( "realizado", null );
}
}
}
else
{
hmFuncionario.put( "ultimo_exame", null );
hmFuncionario.put( "realizado", null );
hmFuncionario.put( "proximo_exame", null );
}
hmFuncionario.put( "proximo_exame", rs.get( 0, "proximo_exame" ) );
hmFuncionario.put( "ultima_consulta", rs.get( 0, "ultima_consulta" ) );
tmp = ( String ) rs.get( 0, "realizada" );
if( tmp != null )
stmt.close();
query = "SELECT MAX(id) FROM exames WHERE trabalhador_id = " + trabalhadorId + " AND inactivo <> 'y'";
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( query ) );
Integer fichaId = null;
if( rs.columnLength() > 0 )
{
if( tmp.equals( "n" ) )
fichaId = ( Integer ) rs.get( 0, 0 );
}
stmt.close();
if( fichaId != null )
{
query = "SELECT data, resultado FROM exames WHERE id = " + fichaId;
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( query ) );
Integer resultadoFicha = (Integer) rs.get( 0, 1 );
stmt.close();
if( resultadoFicha != null )
{
hmFuncionario.put( "realizada", "n\u00E3o" );
switch( resultadoFicha.intValue() )
{
case 1:
hmFuncionario.put( "resultado", "Apto" );
break;
case 2:
hmFuncionario.put( "resultado", "Apto Condicionalmente" );
break;
case 3:
hmFuncionario.put( "resultado", "Inapto Temporariamente" );
break;
case 4:
hmFuncionario.put( "resultado", "Inapto Definitivamente" );
break;
default:
hmFuncionario.put( "resultado", null );
}
}
else if( tmp.equals( "s" ) || tmp.equals( "y" ) )
else
{
hmFuncionario.put( "realizada", "sim" );
hmFuncionario.put( "resultado", null );
}
}
hmFuncionario.put( "proxima_consulta", rs.get( 0, "proxima_consulta" ) );
else
{
hmFuncionario.put( "resultado", null );
}
query = "SELECT id, data, realizada FROM marcacoes_trabalhador "
+ "WHERE tipo = 1 and trabalhador_id = " + trabalhadorId
+ " ORDER BY data DESC";
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( query ) );
if( rs.columnLength() > 0 )
{
java.util.Date dataConsulta2 = ( java.util.Date ) rs.get( 0, 1 );
String realizada2 = ( String ) rs.get( 0, 2 );
java.util.Date dataConsulta1;
// java.util.Date dataRelatorio1;
// java.util.Date dataRelatorio2 = (java.util.Date) rs.get( 0, 3 );
String realizada1;
if( rs.columnLength() >= 2 )
{
dataConsulta1 = ( java.util.Date ) rs.get( 1, 1 );
realizada1 = ( String ) rs.get( 1, 2 );
// dataRelatorio1 = (java.util.Date) rs.get( 1, 3 );
}
else
{
dataConsulta1 = dataConsulta2;
realizada1 = realizada2;
// dataRelatorio1 = dataRelatorio2;
}
if( "y".equals( realizada2 ) || today.after( dataConsulta2 ) )
{
hmFuncionario.put( "ultima_consulta", dataConsulta2 );
if( realizada2.equals( "n" ) )
{
realizada2 = "n&atilde;o";
}
else if( realizada2.equals( "s" ) || realizada2.equals( "y" ) )
{
realizada2 = "sim";
}
hmFuncionario.put( "realizada", realizada2 );
hmFuncionario.put( "proxima_consulta", null );
}
else
{
hmFuncionario.put( "proxima_consulta", dataConsulta2 );
if( !dataConsulta2.equals( dataConsulta1 ) )
{
if( realizada1.equals( "n" ) )
{
realizada1 = "n&atilde;o";
}
else if( realizada1.equals( "s" ) || realizada1.equals( "y" ) )
{
realizada1 = "sim";
}
hmFuncionario.put( "realizada", realizada1 );
hmFuncionario.put( "ultima_consulta", dataConsulta1 );
}
else
{
hmFuncionario.put( "ultima_consulta", null );
hmFuncionario.put( "realizada", null );
}
}
}
else
{
hmFuncionario.put( "ultima_consulta", null );
hmFuncionario.put( "realizada", null );
hmFuncionario.put( "proxima_consulta", null );
}
stmt.close();
}
// while ( index < max )
// {
// dbQuery = new StringBuffer();
// dbQuery.append( " SELECT "+super.trabalhadorDescFields[index][1]+" FROM trabalhadores where id='"+trabalhadorId+"'");
// stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
// rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );
// names.add(trabalhadorDescFields[index][0]);
//
// if (rs.get(0,0) == null )
// {
// values.add(super.bdNullString);
// }
// else
// {
//// values.add(rs.get(0,0).toString());
// temp=rs.get(0,0).toString();
//
// if ( temp.equals("n") )
// {
// temp="n\u00E3o";
// }
// else if ( temp.equals("y") )
// {
// temp="sim";
// }
// values.add(temp); }
//
// ++index;
//
// }
stmt.close();
sBuffer = new StringBuffer();
sBuffer.append("<b>"+super.nomeEmpresa(con,empresaId)+"</b><br><br><i>"
+super.nomeEstabelecimento(con, estabelecimentoId)+"</i>" );

@ -468,8 +468,9 @@ System.out.println( "query: " + queryString );
try
{
dbQuery = new StringBuffer();
dbQuery.append( "SELECT "+bdEmailEmpresa+" FROM empresas WHERE "+bdEmpresaIdRef+" ='"+empresaId+"'");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
dbQuery.append( "SELECT email FROM empresas, contactos "
+ "WHERE empresas.id ='"+empresaId+"' AND empresas.contacto_1 = contactos.id");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );
if( rs.columnLength() > 0 )
{
@ -498,9 +499,9 @@ System.out.println( "query: " + queryString );
try
{
dbQuery = new StringBuffer();
dbQuery.append( "SELECT "+bdEmpresaNomeRef+" FROM empresas WHERE "+bdEmpresaIdRef+" ='"+empresaId+"'");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
dbQuery = new StringBuffer();
dbQuery.append( "SELECT designacao_social FROM empresas WHERE id ='"+empresaId+"'");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );
if( rs.columnLength() > 0 )
{
@ -513,7 +514,7 @@ System.out.println( "query: " + queryString );
return null;
}
}
catch ( Exception e )
catch ( Exception e )
{
e.printStackTrace();
}
@ -530,7 +531,7 @@ System.out.println( "query: " + queryString );
try
{
dbQuery = new StringBuffer();
dbQuery.append( "SELECT "+bdEstNomeRef+" FROM estabelecimentos WHERE "+bdEstIdRef+" ='"+estabelecimentoId+"'");
dbQuery.append( "SELECT nome FROM estabelecimentos WHERE id ='"+estabelecimentoId+"'");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );
if( rs.columnLength() > 0 )
@ -561,7 +562,7 @@ System.out.println( "query: " + queryString );
try
{
dbQuery = new StringBuffer();
dbQuery.append( "SELECT "+bdTrabNomeRef+" FROM trabalhadores where id='"+trabalhadorId+"'");
dbQuery.append( "SELECT nome FROM trabalhadores where id='"+trabalhadorId+"'");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString()) );
if( rs.columnLength() > 0 )

Loading…
Cancel
Save