package gcom.gui.cadastro.unidade; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; 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 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; /** * < <Descri��o da Classe>> * * @author Ana Maria * @date 20/11/2006 */ public class FiltrarUnidadeOrganizacionalAction extends GcomAction { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { HttpSession sessao = httpServletRequest.getSession(false); UnidadeOrganizacionalActionForm form = (UnidadeOrganizacionalActionForm) actionForm; ActionForward retorno = actionMapping.findForward("retornarFiltroUnidadeOrganizacional"); // Recupera os par�metros do form String idUnidade = form.getIdUnidade(); String unidadeTipo = form.getIdTipoUnidade(); String nivel = form.getNivelHierarquico(); String localidade = form.getIdLocalidade(); String gerenciaRegional = form.getIdGerenciaRegional(); String descricao = form.getDescricao(); String sigla = form.getSigla(); String empresa = form.getIdEmpresa(); String unidadeSuperior = form.getIdUnidadeSuperior(); String unidadeCentralizadora = form.getIdUnidadeCentralizadora(); String unidadeRepavimentadora = form.getIdUnidadeRepavimentadora(); String meioSolicitacao = form.getIdMeioSolicitacao(); String unidadeEsgoto = form.getUnidadeEsgoto(); String unidadeAbreRegistro = form.getUnidadeAbreRA(); String unidadeAceita = form.getUnidadeTramitacao(); String indicadorAtualizar = httpServletRequest.getParameter("atualizar"); String indicadorUso = form.getIndicadorUso(); String tipoPesquisa = form.getTipoPesquisa(); String ordernarPor = form.getOrdernarPor(); // filtro para a pesquisa da unidade organizacional FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); if (ordernarPor != null && ordernarPor.equals(ConstantesSistema.ORDENAR_POR_CODIGO)) { filtroUnidadeOrganizacional.setCampoOrderBy(FiltroUnidadeOrganizacional.ID); } else { filtroUnidadeOrganizacional.setCampoOrderBy(FiltroUnidadeOrganizacional.DESCRICAO); } boolean peloMenosUmParametroInformado = false; // Insere os par�metros informados no filtro if (idUnidade != null && !idUnidade.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID, idUnidade)); } if (unidadeTipo != null && !unidadeTipo.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID_UNIDADE_TIPO, unidadeTipo)); } if (nivel != null && !nivel.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.UNIDADE_TIPO_NIVEL, nivel)); } if (localidade != null && !localidade.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID_LOCALIDADE, localidade)); } if (gerenciaRegional != null && !gerenciaRegional.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.GERENCIAL_REGIONAL, gerenciaRegional)); } if (descricao != null && !descricao.equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; if (tipoPesquisa != null && tipoPesquisa.equals(ConstantesSistema.TIPO_PESQUISA_COMPLETA.toString())) { filtroUnidadeOrganizacional.adicionarParametro( new ComparacaoTextoCompleto(FiltroUnidadeOrganizacional.DESCRICAO, descricao)); } else { filtroUnidadeOrganizacional.adicionarParametro( new ComparacaoTexto(FiltroUnidadeOrganizacional.DESCRICAO, descricao)); } } if (sigla != null && !sigla.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ComparacaoTexto(FiltroUnidadeOrganizacional.SIGLA, sigla)); } if (empresa != null && !empresa.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.EMPRESA, empresa)); } if (unidadeSuperior != null && !unidadeSuperior.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID_UNIDADE_SUPERIOR, unidadeSuperior)); } if (unidadeCentralizadora != null && !unidadeCentralizadora.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID_UNIDADE_CENTRALIZADORA, unidadeCentralizadora)); } if (unidadeRepavimentadora != null && !unidadeRepavimentadora.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID_UNIDADE_REPAVIMENTADORA, unidadeRepavimentadora)); } if (unidadeEsgoto != null && !unidadeEsgoto.trim().equals("")) { peloMenosUmParametroInformado = true; if(!unidadeEsgoto.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.INDICADOR_ESGOTO,unidadeEsgoto)); } } if (unidadeAbreRegistro != null && !unidadeAbreRegistro.trim().equals("")) { peloMenosUmParametroInformado = true; if(!unidadeAbreRegistro.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.INDICADOR_ABERTURA_RA,unidadeAbreRegistro)); } } if (unidadeAceita != null && !unidadeAceita.trim().equals("")) { peloMenosUmParametroInformado = true; if(!unidadeAceita.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.INDICADOR_TRAMITE,unidadeAceita)); } } if (meioSolicitacao != null && !meioSolicitacao.trim().equals("")) { peloMenosUmParametroInformado = true; filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.MEIO_SOLICITACAO, meioSolicitacao)); } if (indicadorUso != null && !indicadorUso.trim().equals("")) { peloMenosUmParametroInformado = true; if(!indicadorUso.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.INDICADOR_USO, indicadorUso)); } } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException("atencao.filtro.nenhum_parametro_informado"); } // Manda o filtro pela sess�o para o ExibirManterUnidadeOrganizacionalAction sessao.setAttribute("filtroUnidadeOrganizacional", filtroUnidadeOrganizacional); if(indicadorAtualizar != null && !indicadorAtualizar.trim().equals("")){ sessao.setAttribute("indicadorAtualizar", indicadorAtualizar); }else{ sessao.removeAttribute("indicadorAtualizar"); } return retorno; } }