package com.evolute.siprp.pagina;
import java.io.IOException;
import java.sql.Connection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class doGetFuncionariosFicheiros extends siprpServlet
{
	private static final long serialVersionUID = 1L;
	
	public doGetFuncionariosFicheiros( HttpServletRequest req, HttpServletResponse res ) throws IOException
	{
		ServletOutputStream out = res.getOutputStream();
		Connection con = null;
		StringBuffer dbQuery, sBuffer;
		String userRole, empresaId, estabelecimentoId;
		HttpSession session = req.getSession( false );
		List< String > links = new LinkedList< String >();
		List< String > desc = new LinkedList< String >();
		try
		{
			userRole = ( String ) session.getAttribute( sessionUserRole );
			empresaId = ( String ) session.getAttribute( sessionEmpresaId );
			estabelecimentoId = ( String ) session.getAttribute( sessionEstabelecimentoId );
			
			if ( userRole.equals( superUserRole ) || userRole.equals( empresaId ) )
			{
				dbQuery = new StringBuffer();
				dbQuery.append( "/" + servletName + "/?" + empresaId + "/" + estabelecimentoId + "/func" ); // contruir url
				links.add( dbQuery.toString() );
				desc.add( "Funcionários" );
				
				dbQuery = new StringBuffer();
				dbQuery.append( "/" + servletName + "/?" + empresaId + "/" + estabelecimentoId + "/fich" ); // contruir url
				links.add( dbQuery.toString() );
				desc.add( "Ficheiros" );
				
				sBuffer = new StringBuffer();
				sBuffer.append( "" + nomeEmpresa( con, empresaId ) + "
" + nomeEstabelecimento( con, estabelecimentoId ) + "" );
				if ( userRole.equals( "manager" ) )
				{
					session.setAttribute( sessionCompanyName, nomeEmpresa( con, ( String ) session.getAttribute( sessionEmpresaId ) ) );
				}
				else
				{
					session.setAttribute( sessionCompanyName, nomeEmpresa( con, userRole ) );
				}
				Map< String, Object > hmValues = new HashMap< String, Object >();
				hmValues.put( "empresa_nome", session.getAttribute( sessionCompanyName ) );
				hmValues.put( "empresa_id", session.getAttribute( sessionEmpresaId ) );
				hmValues.put( "estabelecimento_nome", nomeEstabelecimento( con, estabelecimentoId ) );
				hmValues.put( "estabelecimento_id", session.getAttribute( sessionEstabelecimentoId ) );
				hmValues.put( "userRole", userRole );
				hmValues.put( "userName", session.getAttribute( sessionUser ) );
				hmValues.put( msgTemplate, sBuffer.toString() );
				hmValues.put( templateUserRole, userRole );
				hmValues.put( templateQuery, queryStringOpcoes );
				hmValues.put( templateVector1, links );
				hmValues.put( templateVector2, desc );
				hmValues.put( templateVector3, null );
				out.println( mergeTemplate( hmValues, authenticatedUserTemplate ) );
			}
			else
			{
				out.println( mergeTemplate( msgAcessoNegado, userRole, errorTemplate ) );
			}
		}
		catch ( Exception e )
		{
			SiprpWebLogger.logException( e );
			out.println( mergeTemplate( msgGenericError, errorTemplate ) );
		}
	}
	
}