package gcom.gui.seguranca.acesso.usuario; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.Funcionario; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.FiltroUsuarioTipo; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioTipo; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Action que define o pr�-processamento da p�gina de pesquisa de usu�rio * * @author Vivianne Sousa * @created 24/02/2006 */ public class UsuarioPesquisarAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Inicializando Variaveis ActionForward retorno = actionMapping.findForward("usuarioPesquisar"); PesquisarUsuarioActionForm pesquisarUsuarioActionForm = (PesquisarUsuarioActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); // Inicializando Variaveis // Pesquisando usuarios tipo FiltroUsuarioTipo filtroUsuarioTipo = new FiltroUsuarioTipo(); Collection<Usuario> collectionUsuarioTipo = fachada.pesquisar( filtroUsuarioTipo, UsuarioTipo.class.getName()); httpServletRequest.setAttribute("collectionUsuarioTipo", collectionUsuarioTipo); // Fim de pesquisando usuarios tipo if ((httpServletRequest.getParameter("desfazer") != null && httpServletRequest .getParameter("desfazer").equalsIgnoreCase("S"))) { pesquisarUsuarioActionForm.setTipoUsuario(null); pesquisarUsuarioActionForm.setNome(""); pesquisarUsuarioActionForm.setMatriculaFuncionario(""); pesquisarUsuarioActionForm.setNomeFuncionario(""); pesquisarUsuarioActionForm.setLogin(""); pesquisarUsuarioActionForm.setIdUnidadeOrganizacional(""); pesquisarUsuarioActionForm.setNomeUnidadeOrganizacional(""); sessao.removeAttribute("caminhoRetornoTelaPesquisa"); } if (httpServletRequest.getParameter("mostrarLogin") != null) { sessao.setAttribute("mostrarLogin", "S"); } // -------Parte que trata do c�digo quando o usu�rio tecla enter String idDigitadoEnterFuncionario = pesquisarUsuarioActionForm .getMatriculaFuncionario(); if (idDigitadoEnterFuncionario != null && !idDigitadoEnterFuncionario.trim().equals("") && Integer.parseInt(idDigitadoEnterFuncionario) > 0) { FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarParametro(new ParametroSimples( FiltroFuncionario.ID, idDigitadoEnterFuncionario)); Collection<Funcionario> funcionarioEncontrado = fachada.pesquisar( filtroFuncionario, Funcionario.class.getName()); if (funcionarioEncontrado != null && !funcionarioEncontrado.isEmpty()) { // O funcionario foi encontrado pesquisarUsuarioActionForm.setMatriculaFuncionario("" + ((Funcionario) ((List) funcionarioEncontrado).get(0)) .getId()); pesquisarUsuarioActionForm .setNomeFuncionario(((Funcionario) ((List) funcionarioEncontrado) .get(0)).getNome()); httpServletRequest.setAttribute("idFuncionarioNaoEncontrado", "true"); } else { pesquisarUsuarioActionForm.setMatriculaFuncionario(""); httpServletRequest.setAttribute("idFuncionarioNaoEncontrado", "exception"); pesquisarUsuarioActionForm .setNomeFuncionario("FUNCION�RIO INEXISTENTE"); } } String idUnidadeOrganizacional = pesquisarUsuarioActionForm .getIdUnidadeOrganizacional(); if (idUnidadeOrganizacional != null && !idUnidadeOrganizacional.trim().equals("") && Integer.parseInt(idUnidadeOrganizacional) > 0) { // Faz a consulta de Unidade Organizacional pesquisarUnidadeOrganizacional(httpServletRequest, retorno, pesquisarUsuarioActionForm); } // -------Fim de parte que trata do c�digo quando o usu�rio tecla enter if (httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta").equals("")) { // se for os parametros de enviarDadosParametros ser�o mandados para // a pagina usuario_pesquisar.jsp pesquisarUsuarioActionForm .setMatriculaFuncionario(httpServletRequest .getParameter("idCampoEnviarDados")); pesquisarUsuarioActionForm.setNomeFuncionario(httpServletRequest .getParameter("descricaoCampoEnviarDados")); } if (httpServletRequest .getParameter("caminhoRetornoTelaPesquisaUsuario") != null) { sessao.setAttribute("caminhoRetornoTelaPesquisaUsuario", httpServletRequest .getParameter("caminhoRetornoTelaPesquisaUsuario")); } sessao.removeAttribute("caminhoRetornoTelaPesquisaFuncionario"); if (httpServletRequest.getParameter("limpaForm") != null) { pesquisarUsuarioActionForm.setMatriculaFuncionario(""); pesquisarUsuarioActionForm.setNome(""); pesquisarUsuarioActionForm.setNomeFuncionario(""); pesquisarUsuarioActionForm.setLogin(""); pesquisarUsuarioActionForm.setIdUnidadeOrganizacional(""); pesquisarUsuarioActionForm.setNomeUnidadeOrganizacional(""); pesquisarUsuarioActionForm.setTipoUsuario((new Integer( ConstantesSistema.NUMERO_NAO_INFORMADO)).toString()); sessao.removeAttribute("bloquearUnidadeOrganizacional"); } if (httpServletRequest.getParameter("idUnidadeOrganizacional") != null && !httpServletRequest.getParameter("idUnidadeOrganizacional") .trim().equals("")) { sessao.setAttribute("bloquearUnidadeOrganizacional", true); pesquisarUsuarioActionForm .setIdUnidadeOrganizacional(httpServletRequest .getParameter("idUnidadeOrganizacional").trim()); // Faz a consulta de Unidade Organizacional pesquisarUnidadeOrganizacional(httpServletRequest, retorno, pesquisarUsuarioActionForm); } String popup = (String) sessao.getAttribute("popup"); if (popup != null && popup.equals("2")) { sessao.setAttribute("popup", popup); } else { sessao.removeAttribute("popup"); } return retorno; } private void pesquisarUnidadeOrganizacional( HttpServletRequest httpServletRequest, ActionForward retorno, PesquisarUsuarioActionForm pesquisarUsuarioActionForm) { // Filtro para obter o local de armazenagem ativo de id informado FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, new Integer(pesquisarUsuarioActionForm .getIdUnidadeOrganizacional()))); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoUnidadeOrganizacional = Fachada.getInstancia() .pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoUnidadeOrganizacional != null && !colecaoUnidadeOrganizacional.isEmpty()) { // Obt�m o objeto da cole��o pesquisada UnidadeOrganizacional unidadeOrganizacional = (UnidadeOrganizacional) Util .retonarObjetoDeColecao(colecaoUnidadeOrganizacional); // Exibe o c�digo e a descri��o pesquisa na p�gina pesquisarUsuarioActionForm .setIdUnidadeOrganizacional(unidadeOrganizacional.getId() .toString()); pesquisarUsuarioActionForm .setNomeUnidadeOrganizacional(unidadeOrganizacional .getDescricao()); } else { // Exibe mensagem de c�digo inexiste e limpa o campo de c�digo httpServletRequest.setAttribute("unidadeOrganizacionalInexistente", true); pesquisarUsuarioActionForm.setIdUnidadeOrganizacional(""); pesquisarUsuarioActionForm .setNomeUnidadeOrganizacional("Unidade inexistente"); } } }