package gcom.gui.cadastro.imovel; 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 gcom.cadastro.endereco.FiltroLogradouro; import gcom.cadastro.endereco.Logradouro; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; /** * Pesquisar Im�veis de acordo com o logradouro informado pelo usu�rio. * * @author Davi Menezes * @date 03/08/2011 */ public class PesquisarImovelLogradouroAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("transferirImovel"); HttpSession session = httpServletRequest.getSession(false); TransferirImovelLogradouroActionForm form = (TransferirImovelLogradouroActionForm) actionForm; Collection imoveis = null; String idLogradouro = (String) form.getLogradouroImovelOrigemFiltro(); if(form.getLogradouroImovelDestinoFiltro() == null || form.getLogradouroImovelDestinoFiltro().equals("")){ session.removeAttribute("quantidadeBairros"); session.removeAttribute("quantidadeCep"); session.removeAttribute("colecaoBairros"); session.removeAttribute("colecaoCep"); } if(idLogradouro == null || idLogradouro.equals("")){ session.removeAttribute("collImoveis"); return retorno; } if(form.getDescricaoLogradouroImovelOrigemFiltro() == null || form.getDescricaoLogradouroImovelOrigemFiltro().equals("")){ this.exibirLogradouroOrigem(form, httpServletRequest); } FiltroImovel filtro = new FiltroImovel(FiltroImovel.ID); filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.UNIDADE_FEDERACAO); filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_BAIRRO); filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_CEP); filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_TIPO); filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_TITULO); filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.ENDERECO_REFERENCIA); filtro.adicionarParametro(new ParametroSimples(FiltroImovel.LOGRADOURO_ID, idLogradouro)); imoveis = this.getFachada().pesquisar(filtro, Imovel.class.getName()); if (!Util.isVazioOrNulo(imoveis)) { session.setAttribute("collImoveis", imoveis); }else { if(!form.getDescricaoLogradouroImovelOrigemFiltro().equalsIgnoreCase("Logradouro Inexistente")){ throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } } return retorno; } private void exibirLogradouroOrigem(TransferirImovelLogradouroActionForm form, HttpServletRequest httpServletRequest) { FiltroLogradouro filtroLogradouro = new FiltroLogradouro(); filtroLogradouro.adicionarCaminhoParaCarregamentoEntidade(FiltroLogradouro.LOGRADOUROTIPO); filtroLogradouro.adicionarCaminhoParaCarregamentoEntidade(FiltroLogradouro.LOGRADOUROTITULO); filtroLogradouro.adicionarParametro(new ParametroSimples(FiltroLogradouro.ID, Integer.parseInt(form.getLogradouroImovelOrigemFiltro()))); Collection logradouroEncontrado = this.getFachada().pesquisar(filtroLogradouro, Logradouro.class.getName()); Logradouro logradouro = (Logradouro) Util.retonarObjetoDeColecao(logradouroEncontrado); httpServletRequest.removeAttribute("idLogradouroNaoEncontrado"); if(logradouro != null){ String logradouroFormatado = ""; if(logradouro.getLogradouroTipo() != null){ logradouroFormatado = logradouro.getLogradouroTipo().getDescricaoAbreviada(); } if(logradouro.getLogradouroTitulo() != null){ logradouroFormatado = logradouroFormatado + " " + logradouro.getLogradouroTitulo().getDescricaoAbreviada(); } logradouroFormatado = logradouroFormatado + " " + logradouro.getNome(); form.setLogradouroImovelOrigemFiltro(String.valueOf(logradouro.getId())); form.setDescricaoLogradouroImovelOrigemFiltro(logradouroFormatado); httpServletRequest.setAttribute("idLogradouroNaoEncontrado", "false"); } else { form.setLogradouroImovelOrigemFiltro(""); form.setDescricaoLogradouroImovelOrigemFiltro("Logradouro Inexistente"); httpServletRequest.setAttribute("idLogradouroNaoEncontrado", "true"); } } }