package gcom.gui.cadastro.funcionario; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.Funcionario; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ComparacaoTextoCompleto; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Map; 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 funcion�rio * * @author Vivianne Sousa * @created 02/03/2006 */ public class PesquisarFuncionarioAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Inicializacoes de variaveis ActionForward retorno = actionMapping.findForward("retornoPesquisa"); HttpSession sessao = httpServletRequest.getSession(false); //Fachada fachada = Fachada.getInstancia(); boolean peloMenosUmParametroInformado = false; PesquisarFuncionarioActionForm form = (PesquisarFuncionarioActionForm) actionForm; String id = form.getId(); String nome = form.getNome(); String idUnidadeEmpresa = form.getIdUnidadeEmpresa(); String tipoPesquisa = form.getTipoPesquisa(); //Matr�cula mair q zero if (id.equals("0")){ throw new ActionServletException("atencao.matricula_usuario_maior_zero"); } FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional"); filtroFuncionario.adicionarCaminhoParaCarregamentoEntidade("funcionarioCargo"); //Pesquisa id if(id != null && !id.equals("")){ filtroFuncionario.adicionarParametro(new ParametroSimples(FiltroFuncionario.ID, id)); peloMenosUmParametroInformado = true; } //Pesquisa nome if(nome != null && !nome.equals("")){ if (tipoPesquisa != null && tipoPesquisa .equals(ConstantesSistema.TIPO_PESQUISA_COMPLETA .toString())) { filtroFuncionario .adicionarParametro(new ComparacaoTextoCompleto( FiltroFuncionario.NOME, nome)); } else { filtroFuncionario.adicionarParametro(new ComparacaoTexto( FiltroFuncionario.NOME, nome)); } //filtroFuncionario.adicionarParametro(new ComparacaoTexto(FiltroFuncionario.NOME, nome)); peloMenosUmParametroInformado = true; } //Pesquisa idUnidadeEmpresa if(idUnidadeEmpresa != null && !idUnidadeEmpresa.equals("")){ filtroFuncionario.adicionarParametro(new ParametroSimples(FiltroFuncionario.UNIDADE_ORGANIZACIONAL_ID, idUnidadeEmpresa)); peloMenosUmParametroInformado = true; } // [FS0002] Verificar preenchimento dos campos if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } // // Collection<Funcionario> collectionFuncionario = fachada.pesquisar(filtroFuncionario, Funcionario.class.getName()); filtroFuncionario.setCampoOrderBy(FiltroFuncionario.NOME, FiltroFuncionario.ID); Map resultado = controlarPaginacao(httpServletRequest, retorno, filtroFuncionario, Funcionario.class.getName()); Collection collectionFuncionario = (Collection) resultado .get("colecaoRetorno"); retorno = (ActionForward) resultado.get("destinoActionForward"); //Validacoes if (collectionFuncionario == null || collectionFuncionario.isEmpty()) { // [FS0004] Nenhum registro encontrado throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "funcionario"); } else if (collectionFuncionario.size() > ConstantesSistema.NUMERO_MAXIMO_REGISTROS_PESQUISA) { // [FS0003] Muitos registros encontrados throw new ActionServletException("atencao.pesquisa.muitosregistros"); } else { sessao.setAttribute("collectionFuncionario", collectionFuncionario); } return retorno; } }