forked from Coded/SIPRP
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							731 lines
						
					
					
						
							21 KiB
						
					
					
				
			
		
		
	
	
							731 lines
						
					
					
						
							21 KiB
						
					
					
				| package com.evolute.siprp.pagina;
 | |
| 
 | |
| import java.io.IOException;
 | |
| import java.io.StringWriter;
 | |
| import java.sql.Connection;
 | |
| import java.sql.ResultSet;
 | |
| import java.sql.Statement;
 | |
| import java.util.Iterator;
 | |
| import java.util.Map;
 | |
| import java.util.Properties;
 | |
| import java.util.StringTokenizer;
 | |
| import java.util.Vector;
 | |
| 
 | |
| import javax.servlet.ServletContext;
 | |
| import javax.servlet.ServletOutputStream;
 | |
| import javax.servlet.http.HttpServlet;
 | |
| import javax.servlet.http.HttpServletRequest;
 | |
| import javax.servlet.http.HttpServletResponse;
 | |
| import javax.servlet.http.HttpSession;
 | |
| 
 | |
| import org.apache.velocity.VelocityContext;
 | |
| import org.apache.velocity.app.Velocity;
 | |
| 
 | |
| import com.evolute.utils.Singleton;
 | |
| import com.evolute.utils.arrays.ResultSet2DArray;
 | |
| import com.evolute.utils.arrays.Virtual2DArray;
 | |
| import com.evolute.utils.db.DBManager;
 | |
| import com.evolute.utils.db.Executer;
 | |
| import com.evolute.utils.db.JDBCManager;
 | |
| import com.evolute.utils.sql.Select;
 | |
| 
 | |
| public class siprpServlet extends HttpServlet implements GlobalConstants
 | |
| {
 | |
| 	private static final long serialVersionUID = 1L;
 | |
| 
 | |
| 	// MSG
 | |
| 	public static final String msgErroNoUser = "Tem+de+especificar+um+utilizador.";
 | |
| 	public static final String msgErroAuthFail = "Utilizador+inexistente+e/ou+Password+errada.";
 | |
| 	public static final String msgErroBd = "Erro+na+ligaç&atiolde;o+à+base+de+dados.";
 | |
| 	public static final String msgGenericError = "Erro";
 | |
| 	public static final String msgListaEmpresas = "Empresas";
 | |
| 	public static final String msgAcessoNegado = "Acesso+Negado.";
 | |
| 	public static final String msgLinkFormatError = "URL+inválido.";
 | |
| 	public static final String msgLogin = "Login";
 | |
| 	public static final String msgNovaPasswordErrada = "Erro+ao+criar+a+nova+password,+nova+password+inválida.";
 | |
| 	public static final String msgButtonNotSuported = "funcionalidade+ainda+não+suportada.";
 | |
| 	public static final String msgSessionTimeout = "Por+razões+de+segurança+o+tempo+da+sua+sessão+expirou<br>"
 | |
| 		+ "Por+favor+efectue+novamente+o+seu+login.<br>";
 | |
| 
 | |
| 	// Templates - Nomes e valores
 | |
| 	// public static final String loginTemplate = "login.html";
 | |
| 
 | |
| 	public static final String indexTemplate = "index.html";
 | |
| 	public static final String authenticatedUserTemplate = "user.html";
 | |
| 	public static final String authenticatedUserPrintTemplate = "user_print.html";
 | |
| 	public static final String errorTemplate = "erro.html";
 | |
| 	// public static final String errorTemplate = "frame_erro.html";
 | |
| 	// public static final String innerErrorTemplate = "erro.html";
 | |
| 
 | |
| 	public static final String mainTemplate = "main.html";
 | |
| 	// public static final String criticalErrorTemplate = "critical.html";
 | |
| 	public static final String templateVector1 = "v1";
 | |
| 	public static final String templateVector2 = "v2";
 | |
| 	public static final String templateVector3 = "v3";
 | |
| 	public static final String templateUserRole = "userRole";
 | |
| 	public static final String msgTemplate = "msg";
 | |
| 	public static final String templateQuery = "query";
 | |
| 	public static final String buttonPressedTemplate = "buttonPressed";
 | |
| 
 | |
| 	// Query Strings , usadas para na template do velocity saber o que mostar
 | |
| 	public static final String queryStringErro = "erro";
 | |
| 	public static final String queryStringEmpresas = "empresas";
 | |
| 	public static final String queryStringEstabelecimentos = "estabelecimentos";
 | |
| 	public static final String queryStringOpcoes = "opcoes";
 | |
| 	public static final String queryStringFicheiros = "ficheiros";
 | |
| 	public static final String queryStringTrabalhadores = "trabalhadores";
 | |
| 	public static final String queryStringTrabalhador = "trabalhador";
 | |
| 
 | |
| 	// Botoes, saber qual o botao escholido, campo value dos forms
 | |
| 	public static final String botaoLogin = "Entrar";
 | |
| 	public static final String botaoMarcarProximoExame = "Marcar Exame";
 | |
| 
 | |
| 	// Var da Session
 | |
| 	public static final String sessionUser = "user";
 | |
| 	public static final String sessionUserRole = "userRole";
 | |
| 	public static final String sessionPassword = "password";
 | |
| 	public static final String sessionEmpresaId = "empresaId";
 | |
| 	public static final String sessionEstabelecimentoId = "estabelecimentoId";
 | |
| 	public static final String sessionTrabalhadorId = "trabalhadorId";
 | |
| 	public static final String sessionCompanyName = "sessionCompanyName";
 | |
| 	public static final String sessionCompanyEmail = "sessionCompanyEmail";
 | |
| 	public static final int sessionTimeout = 3600; // segundos
 | |
| 
 | |
| 	public static final String servletName = "siprpWeb";
 | |
| 	public static final String superUserRole = "manager";
 | |
| 
 | |
| 	// // BD
 | |
| 	// public static final String bdHost = "127.0.0.1";
 | |
| 	// public static final String bdPort = "5436";
 | |
| 	// public static final String bdUsername = "siprp";
 | |
| 	// public static final String bdPassword = "";
 | |
| 	// public static final String bdDriver = "org.postgresql.Driver";
 | |
| 	// public static final String bdUrl = "jdbc:postgresql://" + bdHost + ":" +
 | |
| 	// bdPort + "/siprp";
 | |
| 
 | |
| 	public static final String bdEmpresaIdRef = "id"; // campo que contem id da empresa
 | |
| 	public static final String bdEmpresaNomeRef = "designacao_social"; // campo que contem nome da empresa
 | |
| 	public static final String bdEstIdRef = "id"; // campo que contem nome do estabelecimento
 | |
| 	public static final String bdEstNomeRef = "nome"; // campo que contem nome do estabelecimento
 | |
| 	public static final String bdTrabIdRef = "id"; // campo que contem id do trabalhador
 | |
| 	public static final String bdTrabNomeRef = "nome"; // campo que contem nome do trabalhador
 | |
| 	public static final String bdNullString = ""; // String a mostrar quando o campo lido da BD e' null
 | |
| 	public static final String bdEmailEmpresa = "email"; // campo que contem email da empresa
 | |
| 
 | |
| 	protected static ServletContext CONTEXT;
 | |
| 
 | |
| 	// Arrays 
 | |
| 	// nome que o user ve, nome do campo na tabela
 | |
| 	public static final String[][] trabalhadorDescFields = new String[][] {
 | |
| 	{ "Nome", "nome" }, { "N\u00ba", "numero_mecanografico", }, { "\u00DAltimo Exame", "ultimo_exame" }, { "Realizado", "realizado" },
 | |
| 		{ "Pr\u00F3ximo Exame", "proximo_exame" }, { "\u00DAltima Consulta", "ultima_consulta" }, { "Realizada", "realizada" },
 | |
| 		{ "Pr\u00F3xima Consulta", "proxima_consulta" } };
 | |
| 
 | |
| 	public void init()
 | |
| 	{
 | |
| 
 | |
| 		try
 | |
| 		{
 | |
| 			CONTEXT = this.getServletContext();
 | |
| 			String TEMPLATE_DIR = this.getServletContext().getRealPath( "/" ) + "html/";
 | |
| 			System.out.println( "DIR: " + TEMPLATE_DIR );
 | |
| 			Properties props = new Properties();
 | |
| 			props.setProperty( "file.resource.loader.path", TEMPLATE_DIR );
 | |
| 			Velocity.init( props );
 | |
| 			Class.forName( bdDriver );
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public void doGet( HttpServletRequest req, HttpServletResponse res ) throws IOException
 | |
| 	{
 | |
| 		String queryString = req.getQueryString();
 | |
| 		String backUri = req.getRequestURI();
 | |
| 		ServletOutputStream out = res.getOutputStream();
 | |
| 		// res.setContentType( "text/html" );
 | |
| 		res.setContentType( "text/html" );
 | |
| 		try
 | |
| 		{
 | |
| 			System.out.println( "query: " + queryString );
 | |
| 			HttpSession session = req.getSession( true );
 | |
| 			session.setMaxInactiveInterval( sessionTimeout );
 | |
| 
 | |
| 			if ( queryString == null ) // Reload, 1a vez, etc ...
 | |
| 			{
 | |
| 				session.invalidate();
 | |
| 				out.println( mergeTemplate( "", indexTemplate ) );
 | |
| 			}
 | |
| 			else if ( session.isNew() && !( queryString.indexOf( queryStringErro ) == 0 ) ) // session
 | |
| 																							// timeout
 | |
| 			{
 | |
| 				session.invalidate();
 | |
| 				String msgErro = msgSessionTimeout.replace( '+', ' ' );
 | |
| 				out.println( mergeTemplate( msgErro, indexTemplate ) );
 | |
| 				// doErro(queryString, out);
 | |
| 			}
 | |
| 			else if ( queryString.equals( queryStringEmpresas ) ) // Listar
 | |
| 																	// Empresas
 | |
| 			{
 | |
| 				new doGetListaEmpresas( req, res );
 | |
| 			}
 | |
| 			else if ( queryString.indexOf( queryStringErro ) == 0 ) // Listar
 | |
| 																	// Empresas
 | |
| 			{
 | |
| 				// System.out.println( "entrou" );
 | |
| 				doErro( queryString, out );
 | |
| 			}
 | |
| 			else
 | |
| 			// interpretar query string
 | |
| 			{
 | |
| 				String empresa = null, estabelecimentoOuFicheiros = null, opcao = null, trabalhador = null, ficheiro = null;
 | |
| 				String query = null;
 | |
| 				int checkInt;
 | |
| 
 | |
| 				StringTokenizer sToken = new StringTokenizer( queryString, "/" );
 | |
| 				empresa = sToken.nextToken(); // empresa ID
 | |
| 				checkInt = Integer.parseInt( empresa ); // check int,
 | |
| 														// NumberFormatException
 | |
| 
 | |
| 				if ( sToken.hasMoreElements() )
 | |
| 				{
 | |
| 					estabelecimentoOuFicheiros = sToken.nextToken(); // estabelecimento ID
 | |
| 					
 | |
| 					if(!estabelecimentoOuFicheiros.equals("fich"))
 | |
| 					{
 | |
| 						checkInt = Integer.parseInt( estabelecimentoOuFicheiros ); // check
 | |
| 						// int,
 | |
| 						// NumberFormatException
 | |
| 						if ( sToken.hasMoreElements() )
 | |
| 						{
 | |
| 							opcao = sToken.nextToken();
 | |
| 							if( sToken.hasMoreElements() )
 | |
| 							{
 | |
| 								if(opcao.equals("fich"))
 | |
| 								{
 | |
| 									ficheiro = sToken.nextToken();
 | |
| 								}
 | |
| 								else
 | |
| 								{
 | |
| 									trabalhador = sToken.nextToken(); // trabalhador ID
 | |
| 									try
 | |
| 									{
 | |
| 										checkInt = Integer.parseInt( trabalhador ); // check
 | |
| 										// int,
 | |
| 										// NumberFormatException
 | |
| 									}
 | |
| 									catch ( NumberFormatException nfex )
 | |
| 									{
 | |
| 										query = trabalhador;
 | |
| 										if ( query.indexOf( "trabalhadores_tudo" ) != 0 && query.indexOf( "trabalhadores_pendentes" ) != 0
 | |
| 												&& query.indexOf( "_print" ) == -1 )
 | |
| 										{
 | |
| 											throw nfex;
 | |
| 										}
 | |
| 									}	
 | |
| 								}
 | |
| 							}
 | |
| 						}
 | |
| 					}
 | |
| 					else
 | |
| 					{
 | |
| 						if ( sToken.hasMoreElements() )
 | |
| 						{
 | |
| 							ficheiro = sToken.nextToken();
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 
 | |
| 				if ( estabelecimentoOuFicheiros == null ) // empresa query
 | |
| 				{
 | |
| 					session.setAttribute( sessionEmpresaId, empresa ); // update
 | |
| 																		// HTTP
 | |
| 																		// Session
 | |
| 
 | |
| 					new doGetListaEstabelecimentos( req, res );
 | |
| 
 | |
| 					// out.println( mergeTemplate ( empresa, loginTemplate ) ) ;
 | |
| 				}
 | |
| 				else if ( opcao == null )//opcao query
 | |
| 				{
 | |
| 					session.setAttribute( sessionEmpresaId, empresa ); // update
 | |
| 																		// HTTP
 | |
| 																		// Session
 | |
| 					session.setAttribute( sessionEstabelecimentoId, estabelecimentoOuFicheiros );
 | |
| 					
 | |
| 					if(estabelecimentoOuFicheiros.equals("fich") && ficheiro != null)
 | |
| 					{
 | |
| 						new doGetFicheiro(req, res, ficheiro);
 | |
| 					}
 | |
| 					else if(estabelecimentoOuFicheiros.equals("fich"))
 | |
| 					{
 | |
| 						new doGetListaFicheiros(req, res, true);
 | |
| 					}
 | |
| 					else
 | |
| 					{
 | |
| 						new doGetFuncionariosFicheiros( req, res );	
 | |
| 					}
 | |
| 				}
 | |
| 				else if ( trabalhador == null || query != null ) // estabelecimento query
 | |
| 				{
 | |
| 					session.setAttribute( sessionEmpresaId, empresa ); // update
 | |
| 																		// HTTP
 | |
| 																		// Session
 | |
| 					session.setAttribute( sessionEstabelecimentoId, estabelecimentoOuFicheiros );
 | |
| 
 | |
| 					//new doGetFuncionariosFicheiros( req, res );
 | |
| 					if(opcao.equals("func"))
 | |
| 					{
 | |
| 						new doGetListaTrabalhadores( req, res, query );						
 | |
| 					}
 | |
| 					else if(opcao.equals("fich") && ficheiro != null)
 | |
| 					{
 | |
| 						new doGetFicheiro(req, res, ficheiro);
 | |
| 					}
 | |
| 					else if(opcao.equals("fich"))
 | |
| 					{						
 | |
| 						new doGetListaFicheiros(req, res, false);
 | |
| 					}
 | |
| 
 | |
| 					// out.println( mergeTemplate (
 | |
| 					// " chama oGeHashtabletListaTrabalhadores", loginTemplate )
 | |
| 					// ) ;
 | |
| 				}
 | |
| 				else
 | |
| 				// trabalhador query
 | |
| 				{
 | |
| 					session.setAttribute( sessionEmpresaId, empresa ); // update
 | |
| 																		// HTTP
 | |
| 																		// Session
 | |
| 					session.setAttribute( sessionEstabelecimentoId, estabelecimentoOuFicheiros );
 | |
| 					session.setAttribute( sessionTrabalhadorId, trabalhador );
 | |
| 
 | |
| 					new doGetTrabalhador( req, res );
 | |
| 
 | |
| 					// out.println( mergeTemplate ( trabalhador, loginTemplate )
 | |
| 					// ) ;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		catch ( NumberFormatException e ) // argumentos invalidos
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 			out.println( mergeTemplate( msgLinkFormatError, backUri, errorTemplate ) );
 | |
| 		}
 | |
| 		catch ( IllegalStateException e ) // session timeout
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 			out.println( mergeTemplate( msgSessionTimeout, errorTemplate ) );
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 			// out.println( mergeTemplate( msgGenericError , backUri,
 | |
| 			// errorTemplate ) );
 | |
| 			out.println( mergeTemplate( msgGenericError, errorTemplate ) );
 | |
| 		}
 | |
| 		// System.out.println( "fim - " + queryString + " bu " + backUri );
 | |
| 	}
 | |
| 
 | |
| 	public void doPost( HttpServletRequest req, HttpServletResponse res ) throws IOException
 | |
| 	{
 | |
| 		ServletOutputStream out = res.getOutputStream();
 | |
| 		// StringBuffer dbQuery;
 | |
| 		// ResultSet2DArray rs;
 | |
| 		// Connection con = null ;
 | |
| 		// Statement stmt = null ;
 | |
| 		// String user, userRole, password;
 | |
| 		String buttonPressed = req.getParameter( "form" );
 | |
| 		res.setContentType( "text/html" );
 | |
| 		try
 | |
| 		{
 | |
| 			if ( buttonPressed.equals( botaoLogin ) )
 | |
| 			{
 | |
| 				new doPostLogin( req, res );
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				out.println( mergeTemplate( msgButtonNotSuported, errorTemplate ) );
 | |
| 			}
 | |
| 		}
 | |
| 		/*
 | |
| 		 * catch ( SQLException e ) { SiprpWebLogger.logException( e ); out.println(
 | |
| 		 * mergeTemplate( msgErroBd , criticalErrorTemplate) ); }
 | |
| 		 */
 | |
| 		catch ( IllegalStateException e ) // session timeout
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 			out.println( mergeTemplate( msgSessionTimeout, errorTemplate ) );
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 			out.println( mergeTemplate( msgGenericError, errorTemplate ) );
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public String mergeTemplate( Map< String, Object > values, String template )
 | |
| 	{
 | |
| 		VelocityContext context = new VelocityContext();
 | |
| 		StringWriter output = new StringWriter();
 | |
| 
 | |
| 		try
 | |
| 		{
 | |
| 			Iterator< String > it = values.keySet().iterator();
 | |
| 			while ( it.hasNext() )
 | |
| 			{
 | |
| 				String key = it.next();
 | |
| 				context.put( key, values.get( key ) );
 | |
| 			}
 | |
| 			Velocity.mergeTemplate( template, Velocity.ENCODING_DEFAULT, context, output );
 | |
| 			return output.toString();
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	public String mergeTemplate( String msg, String template ) // #1
 | |
| 	{
 | |
| 		VelocityContext context = new VelocityContext();
 | |
| 		StringWriter output = new StringWriter();
 | |
| 
 | |
| 		try
 | |
| 		{
 | |
| 			context.put( msgTemplate, msg );
 | |
| 			Velocity.mergeTemplate( template, Velocity.ENCODING_DEFAULT, context, output );
 | |
| 			return output.toString();
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	public String mergeTemplate( String msg, String userRole, String template ) // #1
 | |
| 	{
 | |
| 
 | |
| 		VelocityContext context = new VelocityContext();
 | |
| 		StringWriter output = new StringWriter();
 | |
| 
 | |
| 		try
 | |
| 		{
 | |
| 			context.put( msgTemplate, msg );
 | |
| 			context.put( templateUserRole, userRole );
 | |
| 			Velocity.mergeTemplate( template, Velocity.ENCODING_DEFAULT, context, output );
 | |
| 			return output.toString();
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	public String mergeTemplate( String msg, String userRole, String querySelected, Vector vector1, Vector vector2, Vector vector3, String template ) // #2
 | |
| 	{
 | |
| 		VelocityContext context = new VelocityContext();
 | |
| 		StringWriter output = new StringWriter();
 | |
| 
 | |
| 		try
 | |
| 		{
 | |
| 			context.put( msgTemplate, msg );
 | |
| 			context.put( templateUserRole, userRole );
 | |
| 			context.put( templateQuery, querySelected );
 | |
| 			context.put( templateVector1, vector1 );
 | |
| 			context.put( templateVector2, vector2 );
 | |
| 			context.put( templateVector3, vector3 );
 | |
| 			Velocity.mergeTemplate( template, Velocity.ENCODING_DEFAULT, context, output );
 | |
| 			return output.toString();
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	public void destroy()
 | |
| 	{
 | |
| 	}
 | |
| 
 | |
| 	public void handleSessionTimeout( HttpServletResponse res, String template ) throws IOException
 | |
| 	{
 | |
| 		ServletOutputStream out = res.getOutputStream();
 | |
| 		try
 | |
| 		{
 | |
| 			out.println( mergeTemplate( msgSessionTimeout, template ) );
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public boolean verificaEstabelecimento( Connection con, java.lang.String empresaId, java.lang.String estabelecimentoId )
 | |
| 	// verifica se o establecimento pertence 'a empresa
 | |
| 	{
 | |
| 		// Connection con = null ;
 | |
| 		Statement stmt = null;
 | |
| 		Virtual2DArray rs;
 | |
| 		String query;
 | |
| 		try
 | |
| 		{
 | |
| 			// con = DriverManager.getConnection( bdUrl, bdUsername, bdPassword
 | |
| 			// );
 | |
| 			query = "SELECT empresa_id FROM estabelecimentos where id='" + estabelecimentoId + "'";
 | |
| 			if ( con != null )
 | |
| 			{
 | |
| 				stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
 | |
| 				rs = new ResultSet2DArray( stmt.executeQuery( query ) );
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				rs = getExecuter().executeQuery( new Select( query ) );
 | |
| 			}
 | |
| 			String temp = "" + rs.get( 0, 0 ); // converter de int para String
 | |
| 			if ( con != null )
 | |
| 			{
 | |
| 				stmt.close();
 | |
| 			}
 | |
| 			if ( empresaId.equals( temp ) ) // estabelecimento pertence 'a
 | |
| 											// empresa
 | |
| 			{
 | |
| 				return true;
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				return false;
 | |
| 			}
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	public boolean verificaTrabalhador( Connection con, java.lang.String estabelecimentoId, java.lang.String trabalhadorId )
 | |
| 	// verifica se o trabalhador pertence ao estabelecimento
 | |
| 	{
 | |
| 		// Connection con = null ;
 | |
| 		Statement stmt = null;
 | |
| 		ResultSet2DArray rs;
 | |
| 		StringBuffer dbQuery;
 | |
| 		try
 | |
| 		{
 | |
| 			// con = DriverManager.getConnection( bdUrl, bdUsername, bdPassword
 | |
| 			// );
 | |
| 			dbQuery = new StringBuffer();
 | |
| 			dbQuery.append( "SELECT estabelecimento_id FROM trabalhadores where id='" + trabalhadorId + "'" );
 | |
| 			stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
 | |
| 			rs = new ResultSet2DArray( stmt.executeQuery( dbQuery.toString() ) );
 | |
| 			String temp = "" + rs.get( 0, 0 ); // converter de int para String
 | |
| 			stmt.close();
 | |
| 			if ( estabelecimentoId.equals( temp ) ) // estabelecimento pertence
 | |
| 													// 'a empresa
 | |
| 			{
 | |
| 				return true;
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				return false;
 | |
| 			}
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	public void closeSqlCon( Connection con )
 | |
| 	{
 | |
| 		try
 | |
| 		{
 | |
| 			if ( con != null )
 | |
| 				con.close();
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	public String emailEmpresa( Connection con, String empresaId )
 | |
| 	{
 | |
| 		Statement stmt = null;
 | |
| 		ResultSet2DArray rs;
 | |
| 		StringBuffer dbQuery;
 | |
| 		String returnString;
 | |
| 
 | |
| 		try
 | |
| 		{
 | |
| 			dbQuery = new StringBuffer();
 | |
| 			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 )
 | |
| 			{
 | |
| 				returnString = ( String ) rs.get( 0, 0 );
 | |
| 				stmt.close();
 | |
| 				return returnString;
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				return null;
 | |
| 			}
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	public String nomeEmpresa( Connection con, String empresaId )
 | |
| 	{
 | |
| 		Statement stmt = null;
 | |
| 		Virtual2DArray rs;
 | |
| 		String returnString;
 | |
| 
 | |
| 		try
 | |
| 		{
 | |
| 			String query = "SELECT designacao_social FROM empresas WHERE id ='" + empresaId + "'";
 | |
| 			if ( con != null )
 | |
| 			{
 | |
| 				stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
 | |
| 				rs = new ResultSet2DArray( stmt.executeQuery( query ) );
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				rs = getExecuter().executeQuery( new Select( query ) );
 | |
| 			}
 | |
| 			if ( rs.columnLength() > 0 )
 | |
| 			{
 | |
| 				returnString = ( String ) rs.get( 0, 0 );
 | |
| 				if ( con != null )
 | |
| 				{
 | |
| 					stmt.close();
 | |
| 				}
 | |
| 				return returnString;
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				return null;
 | |
| 			}
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	public String nomeEstabelecimento( Connection con, String estabelecimentoId )
 | |
| 	{
 | |
| 		Statement stmt = null;
 | |
| 		Virtual2DArray rs;
 | |
| 		StringBuffer dbQuery;
 | |
| 		String returnString;
 | |
| 
 | |
| 		try
 | |
| 		{
 | |
| 			String query = "SELECT nome FROM estabelecimentos WHERE id ='" + estabelecimentoId + "'";
 | |
| 			if ( con != null )
 | |
| 			{
 | |
| 				stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
 | |
| 				rs = new ResultSet2DArray( stmt.executeQuery( query ) );
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				rs = getExecuter().executeQuery( new Select( query ) );
 | |
| 			}
 | |
| 			if ( rs.columnLength() > 0 )
 | |
| 			{
 | |
| 				returnString = ( String ) rs.get( 0, 0 );
 | |
| 				if ( con != null )
 | |
| 				{
 | |
| 					stmt.close();
 | |
| 				}
 | |
| 				return returnString;
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				return null;
 | |
| 			}
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	public String nomeTrabalhador( Connection con, java.lang.String trabalhadorId )
 | |
| 	{
 | |
| 		Statement stmt = null;
 | |
| 		ResultSet2DArray rs;
 | |
| 		StringBuffer dbQuery;
 | |
| 		String returnString;
 | |
| 
 | |
| 		try
 | |
| 		{
 | |
| 			dbQuery = new StringBuffer();
 | |
| 			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 )
 | |
| 			{
 | |
| 				returnString = ( String ) rs.get( 0, 0 );
 | |
| 				stmt.close();
 | |
| 				return returnString;
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				return null;
 | |
| 			}
 | |
| 		}
 | |
| 		catch ( Exception e )
 | |
| 		{
 | |
| 			SiprpWebLogger.logException( e );
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	public void doErro( String queryString, ServletOutputStream out ) throws Exception
 | |
| 	{
 | |
| 		String split[] = queryString.split( "=" );
 | |
| 		String err;
 | |
| 		if ( split.length > 1 )
 | |
| 		{
 | |
| 			err = split[ 1 ];
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			err = "Erro";
 | |
| 		}
 | |
| 		err = err.replace( '+', ' ' );
 | |
| 		// out.println( mergeTemplate( err, innerErrorTemplate) );
 | |
| 		out.println( mergeTemplate( err, errorTemplate ) );
 | |
| 	}
 | |
| 
 | |
| 	protected Executer getExecuter() throws Exception
 | |
| 	{
 | |
| 		ServletContext context = CONTEXT;
 | |
| 		DBManager dbm = ( DBManager ) context.getAttribute( Singleton.DEFAULT_DBMANAGER );
 | |
| 		if ( dbm == null )
 | |
| 		{
 | |
| 			dbm = new JDBCManager( bdLocalUrl, bdLocalUsername, bdLocalPassword, 500, 499, 1, null );
 | |
| 			context.setAttribute( Singleton.DEFAULT_DBMANAGER, dbm );
 | |
| 		}
 | |
| 		return dbm.getSharedExecuter( this );
 | |
| 	}
 | |
| }
 |