package gcom.gui.operacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.operacional.FiltroFonteCaptacao; import gcom.operacional.FiltroSistemaAbastecimento; import gcom.operacional.FonteCaptacao; import gcom.operacional.SistemaAbastecimento; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ComparacaoTextoCompleto; import gcom.util.filtro.ParametroSimples; import java.util.Collection; 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; /** * FILTRAR Sistema Abastecimento * * @author Fernando Fontelles Filho * @date 29/10/2009 */ public class FiltrarSistemaAbastecimentoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("exibirManterSistemaAbastecimento"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); FiltrarSistemaAbastecimentoActionForm form = (FiltrarSistemaAbastecimentoActionForm) actionForm; // Recupera todos os campos da p�gina para ser colocada no filtro // posteriormente String codigo = form.getCodigo(); String idFonteCaptacao = form.getIdFonteCaptacao(); String descricao = form.getDescricao(); String descricaoAbreviada = form.getDescricaoAbreviada(); String indicadorUso = form.getIndicadorUso(); String tipoPesquisa = form.getTipoPesquisa(); String tipoCaptacao = form.getTipoCaptacao(); // Indicador Atualizar String indicadorAtualizar = httpServletRequest .getParameter("indicadorAtualizar"); if (indicadorAtualizar != null && !indicadorAtualizar.equals("")) { sessao.setAttribute("indicadorAtualizar", indicadorAtualizar); } else { sessao.removeAttribute("indicadorAtualizar"); } boolean peloMenosUmParametroInformado = false; FiltroSistemaAbastecimento filtroSistemaAbastecimento = new FiltroSistemaAbastecimento(); // C�digo Sistema Abastecimento if (codigo != null && !codigo.trim().equals("")) { peloMenosUmParametroInformado = true; filtroSistemaAbastecimento.adicionarParametro(new ParametroSimples( FiltroSistemaAbastecimento.ID, codigo)); } //Descricao if (descricao != null && !descricao.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; if (tipoPesquisa != null && tipoPesquisa .equals(ConstantesSistema.TIPO_PESQUISA_COMPLETA .toString())) { filtroSistemaAbastecimento .adicionarParametro(new ComparacaoTextoCompleto( FiltroSistemaAbastecimento.DESCRICAO, descricao)); } else { filtroSistemaAbastecimento.adicionarParametro(new ComparacaoTexto( FiltroSistemaAbastecimento.DESCRICAO, descricao)); } } // Descri��o Abreviada if (descricaoAbreviada != null && !descricaoAbreviada.trim().equals("")) { peloMenosUmParametroInformado = true; filtroSistemaAbastecimento.adicionarParametro(new ParametroSimples( FiltroSistemaAbastecimento.DESCRICAO_ABREVIADA, descricaoAbreviada)); } //C�digo Tipo Captacao if (tipoCaptacao != null && !tipoCaptacao.trim().equals("")){ peloMenosUmParametroInformado = true; FiltroFonteCaptacao filtroFonteCaptacao = new FiltroFonteCaptacao(); filtroFonteCaptacao.adicionarParametro(new ParametroSimples( FiltroFonteCaptacao.ID_TIPO_CAPTACAO,tipoCaptacao)); if (idFonteCaptacao != null && !idFonteCaptacao.trim().equals("")){ filtroFonteCaptacao.adicionarParametro(new ParametroSimples (FiltroFonteCaptacao.ID, idFonteCaptacao)); } Collection colecaoTipo = fachada.pesquisar(filtroFonteCaptacao, FonteCaptacao.class.getName()); FonteCaptacao fonteCaptacao = (FonteCaptacao)colecaoTipo.iterator().next(); filtroSistemaAbastecimento.adicionarParametro(new ParametroSimples( FiltroSistemaAbastecimento.ID_FONTE_CAPTACAO, fonteCaptacao.getId())); } // Fonte Captacao if ((tipoCaptacao == null || tipoCaptacao.trim().equals("")) && idFonteCaptacao != null && !idFonteCaptacao.trim().equals("")) { peloMenosUmParametroInformado = true; FiltroFonteCaptacao filtroFonteCaptacao = new FiltroFonteCaptacao(); filtroFonteCaptacao.adicionarParametro(new ParametroSimples (FiltroFonteCaptacao.ID, idFonteCaptacao)); Collection colecaoFonte = fachada.pesquisar(filtroFonteCaptacao, FonteCaptacao.class.getName()); FonteCaptacao fonteCaptacao = (FonteCaptacao)colecaoFonte.iterator().next(); filtroSistemaAbastecimento.adicionarParametro(new ParametroSimples( FiltroSistemaAbastecimento.ID_FONTE_CAPTACAO, fonteCaptacao.getId())); } if (indicadorUso != null && !indicadorUso.equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; if (indicadorUso.equalsIgnoreCase(String .valueOf(ConstantesSistema.INDICADOR_USO_ATIVO))) { filtroSistemaAbastecimento.adicionarParametro(new ParametroSimples( FiltroSistemaAbastecimento.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); } else { filtroSistemaAbastecimento.adicionarParametro(new ParametroSimples( FiltroSistemaAbastecimento.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_DESATIVO)); } } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } filtroSistemaAbastecimento.adicionarCaminhoParaCarregamentoEntidade("fonteCaptacao"); filtroSistemaAbastecimento.setCampoOrderBy(FiltroSistemaAbastecimento.ID); Collection<SistemaAbastecimento> colecaoSistemaAbastecimento = fachada.pesquisar( filtroSistemaAbastecimento, SistemaAbastecimento.class.getName()); if (colecaoSistemaAbastecimento == null || colecaoSistemaAbastecimento.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "Sistema de Abastecimento"); } else { httpServletRequest.setAttribute("colecaoSistemaAbastecimento", colecaoSistemaAbastecimento); SistemaAbastecimento sistemaAbastecimento = new SistemaAbastecimento(); sistemaAbastecimento = (SistemaAbastecimento) Util .retonarObjetoDeColecao(colecaoSistemaAbastecimento); String idRegistroAtualizacao = sistemaAbastecimento.getId().toString(); sessao.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao); } sessao.setAttribute("filtroSistemaAbastecimento", filtroSistemaAbastecimento); httpServletRequest.setAttribute("filtroSistemaAbastecimento", filtroSistemaAbastecimento); return retorno; } }