package gcom.gui.cadastro.endereco; import gcom.atendimentopublico.ordemservico.OSProgramacaoCalibragem; import gcom.cadastro.endereco.FiltroOSProgramaCalibragem; import gcom.cadastro.endereco.Logradouro; import gcom.cadastro.endereco.LogradouroCep; import gcom.cadastro.endereco.bean.ManterLogradouroHelper; import gcom.cadastro.geografico.Bairro; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; 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; import org.apache.struts.validator.DynaValidatorForm; /** * Action para a pr�-exibi��o da p�gina de Manter Logradouro * * @author S�vio Luiz * @date 28/06/2006 */ public class ExibirManterLogradouroAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("manterLogradouro"); Fachada fachada = Fachada.getInstancia(); DynaValidatorForm pesquisarActionForm = (DynaValidatorForm) actionForm; // Mudar isso quando implementar a parte de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // Verifica se o filtro foi informado pela p�gina de filtragem de // logradouro String idMunicipio = (String) pesquisarActionForm.get("idMunicipioFiltro"); String idBairro = (String) pesquisarActionForm.get("idBairro"); String nomeLogradouro = (String) pesquisarActionForm .get("nomeLogradouro"); String nomePopularLogradouro = (String) pesquisarActionForm .get("nomePopularLogradouro"); String idLogradouro = (String) pesquisarActionForm.get("idLogradouro"); String codigoCep = (String) pesquisarActionForm.get("cep"); String tipoPesquisa = (String) pesquisarActionForm.get("tipoPesquisa"); String tipoPesquisaPopular = (String) pesquisarActionForm.get("tipoPesquisaPopular"); String idTipoLogradouro = null; String idTituloLogradouro = null; if (pesquisarActionForm.get("idTipo") != null){ idTipoLogradouro = (String) pesquisarActionForm.get("idTipo").toString(); } if (pesquisarActionForm.get("idTitulo") != null){ idTituloLogradouro = (String) pesquisarActionForm.get("idTitulo").toString(); } String indicadorUso = (String) pesquisarActionForm.get("indicadorUso"); String indicadorImportanciaLogradouro = (String) pesquisarActionForm.get("indicadorImportanciaLogradouro"); if(indicadorImportanciaLogradouro!=null && indicadorImportanciaLogradouro.equals("1")){ httpServletRequest.setAttribute("indicadorImportanciaLogradouro", "true"); } if (httpServletRequest.getAttribute("filtroLogradouro") != null) { } else { // Caso o exibirManterLogradouro n�o tenha passado por algum esquema // de filtro, // a quantidade de registros � verificada para avaliar a necessidade // de filtragem if (fachada.registroMaximo(LogradouroCep.class) > ConstantesSistema.NUMERO_MAXIMO_REGISTROS_MANUTENCAO) { // Se o limite de registros foi atingido, a p�gina de filtragem // � chamada retorno = actionMapping.findForward("filtrarLogradouro"); // limpa os parametros do form pesquisar sessao.removeAttribute("PesquisarActionForm"); } } // A pesquisa de logradouros s� ser� feita se o forward estiver // direcionado // para a p�gina de manterLogradouro if (retorno.getName().equalsIgnoreCase("manterLogradouro")) { // 1� Passo - Pegar o total de registros atrav�s de um count da // consulta que aparecer� na tela Integer totalRegistros = fachada.pesquisarLogradouroCompletoCount( idMunicipio, idBairro, nomeLogradouro, nomePopularLogradouro, idTipoLogradouro, idTituloLogradouro, codigoCep, idLogradouro, indicadorUso, tipoPesquisa, tipoPesquisaPopular); if (totalRegistros.intValue() <= 0 || totalRegistros == null) { throw new ActionServletException( "atencao.pesquisa.nenhumresultado"); } // 2� Passo - Chamar a fun��o de Pagina��o passando o total de // registros retorno = this.controlarPaginacao(httpServletRequest, retorno, totalRegistros); // 3� Passo - Obter a cole��o da consulta que aparecer� na tela // passando o numero de paginas // da pesquisa que est� no request Collection<Logradouro> colecaoLogradouro = fachada.pesquisarLogradouroCompleto(idMunicipio, idBairro, nomeLogradouro, nomePopularLogradouro, idTipoLogradouro, idTituloLogradouro, codigoCep, idLogradouro, indicadorUso, tipoPesquisa, tipoPesquisaPopular, (Integer) httpServletRequest .getAttribute("numeroPaginasPesquisa")); Collection<ManterLogradouroHelper> colecaoParaExibicao = new ArrayList<ManterLogradouroHelper>(); for (Logradouro logradouro : colecaoLogradouro){ ManterLogradouroHelper helper = new ManterLogradouroHelper(); helper.setLogradouro(logradouro); Collection<Bairro> colecaoBairros = fachada.obterBairrosPorLogradouro(logradouro); String bairros = ""; if(colecaoBairros!=null && !colecaoBairros.isEmpty()){ for (Bairro bairro : colecaoBairros) { if(bairros.length() > 40){ bairros += "\n"; } bairros += bairro.getNome()+","; } bairros = Util.removerUltimosCaracteres(bairros, 1); } helper.setBairro(bairros); if(logradouro.getProgramaCalibragem() != null){ FiltroOSProgramaCalibragem filtroOSProgramaCalibragem = new FiltroOSProgramaCalibragem(); filtroOSProgramaCalibragem.adicionarParametro( new ParametroSimples(FiltroOSProgramaCalibragem.ID, logradouro.getProgramaCalibragem().getId())); Collection colecCalibragem = fachada.pesquisar(filtroOSProgramaCalibragem, OSProgramacaoCalibragem.class.getName()); OSProgramacaoCalibragem programaCalibragem = (OSProgramacaoCalibragem) Util.retonarObjetoDeColecao(colecCalibragem); helper.setGrauImportancia(programaCalibragem.getGrauImportancia()); } colecaoParaExibicao.add(helper); } sessao.setAttribute("logradouros", colecaoParaExibicao); LogradorouRelatorioHelper helperLogradouroRelatorio = new LogradorouRelatorioHelper(); helperLogradouroRelatorio.setIdMunicipio(idMunicipio); helperLogradouroRelatorio.setIdBairro(idBairro); helperLogradouroRelatorio.setNomePopularLogradouro(nomePopularLogradouro); helperLogradouroRelatorio.setIdTipoLogradouro(idTipoLogradouro); helperLogradouroRelatorio.setIdTituloLogradouro(idTituloLogradouro); helperLogradouroRelatorio.setCodigoCep(codigoCep); helperLogradouroRelatorio.setIdLogradouro(idLogradouro); helperLogradouroRelatorio.setIndicadorUso(indicadorUso); helperLogradouroRelatorio.setTipoPesquisa(tipoPesquisa); helperLogradouroRelatorio.setTipoPesquisaPopular(tipoPesquisaPopular); helperLogradouroRelatorio.setNomeLogradouro( nomeLogradouro ); pesquisarActionForm.set("helperLogradouroRelatorio",helperLogradouroRelatorio); String atualizar = (String) sessao.getAttribute("atualizar"); if (atualizar != null && colecaoLogradouro != null && colecaoLogradouro.size() == 1) { retorno = actionMapping.findForward("atualizarLogradouro"); Logradouro logradouro = (Logradouro) colecaoLogradouro.iterator() .next(); httpServletRequest.setAttribute("idRegistroAtualizacao", logradouro.getId()); } } return retorno; } }