package gcom.gui.operacional; import gcom.arrecadacao.FiltroArrecadador; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.operacional.FiltroDistritoOperacional; 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; /** * [UC0523] FILTRAR DISTRITO OPERACIONAL * * @author Eduardo Bianchi * @date 01/02/2007 */ public class FiltrarDistritoOperacionalAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("exibirManterDistritoOperacional"); HttpSession sessao = httpServletRequest.getSession(false); FiltrarDistritoOperacionalActionForm form = (FiltrarDistritoOperacionalActionForm) actionForm; //Recupera todos os campos da p�gina para ser colocada no filtro posteriormente String descricao = form.getDescricao(); String setorAbastecimento = form.getSetorAbastecimento(); String sistemaAbastecimento = form.getSistemaAbastecimento(); String tipoPesquisa = form.getTipoPesquisa(); String indicadorUso = form.getIndicadorUso(); //Indicador Atualizar String indicadorAtualizar = httpServletRequest.getParameter("indicadorAtualizar"); if (indicadorAtualizar != null && !indicadorAtualizar.equals("")) { sessao.setAttribute("indicadorAtualizar", indicadorAtualizar); } else { sessao.removeAttribute("indicadorAtualizar"); } FiltroDistritoOperacional filtroDistritoOperacional = new FiltroDistritoOperacional(FiltroDistritoOperacional.DESCRICAO); //Objetos secundarios que ser�o carregados filtroDistritoOperacional.adicionarCaminhoParaCarregamentoEntidade("zonaAbastecimento"); filtroDistritoOperacional.adicionarCaminhoParaCarregamentoEntidade("setorAbastecimento"); boolean peloMenosUmParametroInformado = false; //Adiciona a Descri��o do Distrito Operacional ao filtro if (descricao != null && !descricao.equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; if (tipoPesquisa != null && tipoPesquisa.equals(ConstantesSistema.TIPO_PESQUISA_COMPLETA.toString())) { filtroDistritoOperacional.adicionarParametro(new ComparacaoTextoCompleto(FiltroDistritoOperacional.DESCRICAO, descricao)); } else { filtroDistritoOperacional.adicionarParametro(new ComparacaoTexto(FiltroDistritoOperacional.DESCRICAO, descricao)); } } //Adiciona o Setor Abastecimento if (setorAbastecimento != null && !setorAbastecimento.equals("-1")) { peloMenosUmParametroInformado = true; filtroDistritoOperacional.adicionarParametro(new ParametroSimples(FiltroDistritoOperacional.SETORABASTECIMENTO, setorAbastecimento)); } //Adiciona o Sistema Abastecimento if (sistemaAbastecimento != null && !sistemaAbastecimento.equals("-1")) { peloMenosUmParametroInformado = true; filtroDistritoOperacional.adicionarParametro(new ParametroSimples(FiltroDistritoOperacional.SISTEMAABASTECIMENTO, sistemaAbastecimento)); } if ( indicadorUso != null && !indicadorUso.trim().equals("") ){ peloMenosUmParametroInformado = true; filtroDistritoOperacional.adicionarParametro(new ParametroSimples(FiltroArrecadador.INDICADOR_USO, indicadorUso)); } //Verifica se pelo menos um parametro foi informado if (!peloMenosUmParametroInformado) { throw new ActionServletException("atencao.filtro.nenhum_parametro_informado"); } // Manda o filtro pela sessao para o // ExibirManterDistritoOperacionalAction sessao.setAttribute("filtroDistritoOperacional", filtroDistritoOperacional); return retorno; } }