package gcom.gui.cadastro.imovel; import java.util.Collection; import java.util.Iterator; import gcom.cadastro.endereco.FiltroLogradouroBairro; import gcom.cadastro.endereco.FiltroLogradouroCep; import gcom.cadastro.endereco.LogradouroBairro; import gcom.cadastro.endereco.LogradouroCep; import gcom.cadastro.imovel.Imovel; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; 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; /** * Action que transfere os im�veis selecionados para o * logradouro informado pelo usu�rio. As atualiza��es * dos im�veis s�o registradas com os dados usu�rio logado. * * @author Davi Menezes * @date 04/08/2011 */ public class TransferirImovelLogradouroAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); TransferirImovelLogradouroActionForm form = (TransferirImovelLogradouroActionForm) actionForm; String [] ids = form.getIdsRegistro(); String idBairro = null, idCep = null; Integer qtdBairros = 0, qtdCep = 0; if (ids == null || ids.length == 0) { throw new ActionServletException("atencao.registros.nao_selecionados"); } HttpSession session = httpServletRequest.getSession(); Usuario usuarioLogado = (Usuario) session.getAttribute("usuarioLogado"); if(session.getAttribute("quantidadeBairros") != null){ qtdBairros = (Integer) session.getAttribute("quantidadeBairros"); } if(session.getAttribute("quantidadeCep") != null){ qtdCep = (Integer) session.getAttribute("quantidadeCep"); } if(form.getLogradouroImovelOrigemFiltro().equals("")){ throw new ActionServletException("atencao.logradouro_nao_informado"); } if(form.getLogradouroImovelDestinoFiltro().equals("")){ throw new ActionServletException("atencao.logradouro_nao_informado"); } if(form.getLogradouroImovelOrigemFiltro().equals(form.getLogradouroImovelDestinoFiltro())){ throw new ActionServletException("atencao.logradouros_iguais"); } if(qtdBairros > 1 && form.getBairroImovelFiltro().equals("-1")){ throw new ActionServletException("atencao.bairro_nao_informado"); } if(qtdCep > 1 && form.getCepImovelFiltro().equals("-1")){ throw new ActionServletException("atencao.cep_nao_informado"); } LogradouroBairro logradouroBairro = null; LogradouroCep logradouroCep = null; FiltroLogradouroBairro filtroLogradouroBairro = new FiltroLogradouroBairro(); filtroLogradouroBairro.adicionarCaminhoParaCarregamentoEntidade(FiltroLogradouroBairro.BAIRRO); filtroLogradouroBairro.adicionarCaminhoParaCarregamentoEntidade(FiltroLogradouroBairro.LOGRADOURO); filtroLogradouroBairro.adicionarParametro(new ParametroSimples(FiltroLogradouroBairro.ID_LOGRADOURO, form.getLogradouroImovelDestinoFiltro())); FiltroLogradouroCep filtroLogradouroCep = new FiltroLogradouroCep(); filtroLogradouroCep.adicionarCaminhoParaCarregamentoEntidade(FiltroLogradouroCep.CEP); filtroLogradouroCep.adicionarCaminhoParaCarregamentoEntidade(FiltroLogradouroCep.LOGRADOURO); filtroLogradouroCep.adicionarParametro(new ParametroSimples(FiltroLogradouroCep.ID_LOGRADOURO, form.getLogradouroImovelDestinoFiltro())); if(Integer.parseInt(form.getBairroImovelFiltro()) != -1){ idBairro = form.getBairroImovelFiltro(); filtroLogradouroBairro.adicionarParametro(new ParametroSimples(FiltroLogradouroBairro.ID_BAIRRO, idBairro)); } if(Integer.parseInt(form.getCepImovelFiltro()) != -1){ idCep = form.getCepImovelFiltro(); filtroLogradouroCep.adicionarParametro(new ParametroSimples(FiltroLogradouroCep.ID_CEP, idCep)); } Collection colecaoLogradouroBairro = getFachada().pesquisar(filtroLogradouroBairro, LogradouroBairro.class.getName()); Iterator iteratorBairro = colecaoLogradouroBairro.iterator(); if(iteratorBairro.hasNext()){ logradouroBairro = (LogradouroBairro) iteratorBairro.next(); } Collection colecaoLogradouroCep = getFachada().pesquisar(filtroLogradouroCep, LogradouroCep.class.getName()); Iterator iteratorCep = colecaoLogradouroCep.iterator(); if(iteratorCep.hasNext()){ logradouroCep = (LogradouroCep) iteratorCep.next(); } //Atualiza os im�veis selecionados for (int i = 0; i < ids.length; i++) { String dadosImovel = ids[i]; String[] idUltimaAlteracao = dadosImovel.split("-"); String idImovel = idUltimaAlteracao[0].trim(); Imovel imovel = getFachada().pesquisarImovel(Integer.parseInt(idImovel)); imovel.setLogradouroBairro(logradouroBairro); imovel.setLogradouroCep(logradouroCep); try{ getFachada().transferirImovel(imovel, usuarioLogado); }catch (Exception ex){ throw new ActionServletException("erro.sistema"); } } //Monta a p�gina de sucesso if (retorno.getName().equalsIgnoreCase("telaSucesso")) { montarPaginaSucesso(httpServletRequest, ids.length + " Im�vel(is) transferido(s) com sucesso.", "Realizar outra Transfer�ncia de Im�vel", "exibirTransferirImovelLogradouroAction.do"); } //Remove os dados do formul�rio form.setBairroImovelFiltro(""); form.setCepImovelFiltro(""); form.setDescricaoLogradouroImovelDestinoFiltro(""); form.setDescricaoLogradouroImovelOrigemFiltro(""); form.setLogradouroImovelDestinoFiltro(""); form.setLogradouroImovelOrigemFiltro(""); form.setIdsRegistro(null); //Remove os dados da sess�o session.removeAttribute("quantidadeBairros"); session.removeAttribute("quantidadeCep"); session.removeAttribute("collImoveis"); session.removeAttribute("colecaoBairros"); session.removeAttribute("colecaoCep"); return retorno; } }