package gcom.gui.cadastro.localidade; import java.util.Collection; import java.util.Map; import gcom.cadastro.localidade.FiltroQuadra; import gcom.cadastro.localidade.Quadra; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.FiltroRota; import gcom.micromedicao.Rota; import gcom.util.ConstantesSistema; import gcom.util.Util; 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; import org.apache.struts.validator.DynaValidatorForm; /** * Action que define o pr�-processamento da p�gina de pesquisa de Quadra * * @author Fl�vio */ public class ExibirPesquisarQuadraAction 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) { ActionForward retorno = actionMapping.findForward("pesquisarQuadra"); Fachada fachada = Fachada.getInstancia(); //obtendo uma instancia da sessao HttpSession sessao = httpServletRequest.getSession(false); DynaValidatorForm pesquisarActionForm = (DynaValidatorForm) actionForm; // Verifica se o pesquisar quadra foi chamado a partir do inserir quadra // e em caso afirmativo recebe o par�metro e manda-o pela sess�o para // ser verificado no quadra_resultado_pesquisa e depois retirado da // sess�o no ExibirFiltrarQuadraAction if (httpServletRequest.getParameter("consulta") != null) { String consulta = httpServletRequest.getParameter("consulta"); sessao.setAttribute("consulta", consulta); } String tipo = (String) httpServletRequest.getParameter("tipo"); String idSetorComercial = null; String codigoSetorComercial = null; String idLocalidade = null; if(httpServletRequest .getParameter("idSetorComercial") != null && !httpServletRequest .getParameter("idSetorComercial").trim().equalsIgnoreCase("")){ idSetorComercial = (String) httpServletRequest.getParameter("idSetorComercial"); sessao.setAttribute("idSetorComercial", idSetorComercial); }else{ idSetorComercial = (String) sessao.getAttribute("idSetorComercial"); } if(httpServletRequest .getParameter("idLocalidade") != null && !httpServletRequest .getParameter("idLocalidade").trim().equalsIgnoreCase("")){ idLocalidade = (String) httpServletRequest.getParameter("idLocalidade"); sessao.setAttribute("idLocalidade", idLocalidade); }else{ idLocalidade = (String) sessao.getAttribute("idLocalidade"); } if(httpServletRequest .getParameter("codigoSetorComercial") != null && !httpServletRequest .getParameter("codigoSetorComercial").trim().equalsIgnoreCase("")){ codigoSetorComercial = (String) httpServletRequest .getParameter("codigoSetorComercial"); sessao.setAttribute("codigoSetorComercial", codigoSetorComercial); }else{ codigoSetorComercial = (String) sessao.getAttribute("codigoSetorComercial"); } if(tipo != null && !tipo.trim().equalsIgnoreCase("")){ sessao.setAttribute("tipoPesquisa", tipo); }else{ pesquisarActionForm.set("tipoPesquisa", ConstantesSistema.TIPO_PESQUISA_INICIAL.toString()); } FiltroQuadra filtroQuadra = new FiltroQuadra(); // Objetos que ser�o retornados pelo Hibernate filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); filtroQuadra.setCampoOrderBy(FiltroQuadra.NUMERO_QUADRA); if (idSetorComercial != null && !idSetorComercial.trim().equalsIgnoreCase("")) { filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.ID_SETORCOMERCIAL, new Integer( idSetorComercial))); } if (idLocalidade != null && !idLocalidade.trim().equalsIgnoreCase("")) { filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.ID_LOCALIDADE, new Integer( idLocalidade))); } if (codigoSetorComercial != null && !codigoSetorComercial.trim().equalsIgnoreCase("")) { filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.CODIGO_SETORCOMERCIAL, new Integer( codigoSetorComercial))); } if (sessao.getAttribute("indicadorUsoTodos") == null) { filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); } Collection quadras = fachada.pesquisar(filtroQuadra, Quadra.class .getName()); if (quadras != null && !quadras.isEmpty()) { // Aciona o controle de pagina��o para que sejam pesquisados apenas // os registros que aparecem na p�gina Map resultado = controlarPaginacao(httpServletRequest, retorno, filtroQuadra, Quadra.class.getName()); quadras = (Collection) resultado.get("colecaoRetorno"); retorno = (ActionForward) resultado.get("destinoActionForward"); sessao.setAttribute("quadras", quadras); } else { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "quadra"); } // Passa parametros para distinguir o tipo de retorno sessao.setAttribute("tipoPesquisa", sessao .getAttribute("tipoPesquisa")); String idRota = (String) pesquisarActionForm.get("idRota"); if (idRota != null && !idRota.trim().equals("")) { FiltroRota filtroRota = new FiltroRota(); filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.ID_ROTA, idRota)); Collection colecaoRotas = fachada.pesquisar(filtroRota, Rota.class.getName()); if (colecaoRotas != null && !colecaoRotas.isEmpty()) { Rota rota = (Rota) Util.retonarObjetoDeColecao(colecaoRotas); pesquisarActionForm.set("codigoRota", rota.getCodigo().toString()); } } //envia uma flag que ser� verificado no quadra_resultado_pesquisa.jsp //para saber se ir� usar o enviar dados ou o enviar dados parametros if(httpServletRequest.getParameter("caminhoRetornoTelaPesquisa") != null){ sessao.setAttribute("caminhoRetornoTelaPesquisaQuadra", httpServletRequest .getParameter("caminhoRetornoTelaPesquisa")); } if( httpServletRequest.getParameter("indicadorUsoTodos") == null ){ sessao.removeAttribute("indicadorUsoTodos"); } else { sessao.setAttribute("indicadorUsoTodos", httpServletRequest.getParameter("indicadorUsoTodos")); } return retorno; } }