package gcom.gui.cadastro.imovel; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.ImovelSubcategoria; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.filtro.FiltroParametro; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; 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 respons�vel pelo pre-processamento de inserir economia * * @author S�vio Luiz * @created 1 de Junho de 2004 */ public class ExibirInformarEconomiaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("informarEconomia"); EconomiaActionForm economiaActionForm = (EconomiaActionForm) actionForm; // obtendo uma instancia da sessao HttpSession sessao = httpServletRequest.getSession(false); if (httpServletRequest.getParameter("menu") != null && httpServletRequest.getParameter("menu").equalsIgnoreCase( "sim")) { httpServletRequest.setAttribute("nomeCampo", "idImovel"); } // Cria Cole�ao Collection colecaoImovelSubCategoriasCadastradas = null; Collection colecaoImovelEconomiasModificadas = null; // int i = 1; // Cole��o vinda do exibirInserirEconomiaAcion // nessa cole��o est�o todos os imoveis sub categorias que foi // pesquisado no economia_inserir_jsp if (sessao.getAttribute("colecaoImovelSubCategoriasCadastradas") != null && !sessao .getAttribute("colecaoImovelSubCategoriasCadastradas") .equals("")) { colecaoImovelSubCategoriasCadastradas = (Collection) sessao .getAttribute("colecaoImovelSubCategoriasCadastradas"); } else { colecaoImovelSubCategoriasCadastradas = new ArrayList(); } // cria uma cole��o para os imoveis economias inseridos e/ou modificado // essa cole��o ser� respons�vel pela inser��o ou modifica��o na base if (sessao.getAttribute("colecaoImovelEconomiasModificadas") != null && !sessao.getAttribute("colecaoImovelEconomiasModificadas") .equals("")) { colecaoImovelEconomiasModificadas = (Collection) sessao .getAttribute("colecaoImovelEconomiasModificadas"); } else { colecaoImovelEconomiasModificadas = new ArrayList(); } // caso venha do popup de inserir_economia_popup n�o faz // nada so manda a cole��o para a pagina de economia inserir if (httpServletRequest.getParameter("retornaDoPopup") == null) { FiltroImovel filtroImovel = new FiltroImovel(); Fachada fachada = Fachada.getInstancia(); String idImovel = null; // Verifica se o tipoConsulta � diferente de nulo ou vazio esse tipo // consulta vem do // imovel_resultado_pesquisa.jsp. // � feita essa verifica��o pois pode ser que ainda n�o tenha // feito a pesquisa de imovel. if (httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta").equals( "")) { // Verifica se vem algum parametro do tipo consulta, que pode // vim do removerEconomiaAction, // ou da pagina economia_informar,ou pelo enter ou pela pesquisa // da lupa idImovel = (String) economiaActionForm.getIdImovel(); // remove da sessao o caminho da pesquisa pela lupa de im�vel sessao.removeAttribute("caminhoRetornoTelaPesquisaImovel"); sessao .removeAttribute("colecaoClientesImoveisEconomiaRemovidas"); if (!httpServletRequest.getParameter("tipoConsulta").equals( "remover")) { colecaoImovelEconomiasModificadas = new ArrayList(); } } else { sessao.removeAttribute("colecaoImovelSubCategoriasCadastradas"); colecaoImovelSubCategoriasCadastradas = new ArrayList(); sessao.removeAttribute("colecaoClientesImoveisEconomia"); sessao .removeAttribute("clientesImoveisEconomiaSemDataFimRelacao"); sessao.removeAttribute("colecaoImovelEconomiasModificadas"); sessao.removeAttribute("imovel"); sessao .removeAttribute("colecaoClientesImoveisEconomiaRemovidas"); colecaoImovelEconomiasModificadas = new ArrayList(); economiaActionForm.setIdImovel(null); economiaActionForm.setEnderecoImovel(null); } // -------Parte que trata do c�digo quando o usu�rio tecla enter // se o id do cliente for diferente de nulo if (idImovel != null && !idImovel.toString().trim().equalsIgnoreCase("")) { if (sessao.getAttribute("colecaoRemovidas") != null) { sessao.removeAttribute("colecaoRemovidas"); } filtroImovel.adicionarParametro(new ParametroSimples( FiltroImovel.ID, idImovel)); // adiciona o indicador de exclus�o do imovel filtroImovel .adicionarParametro(new ParametroSimplesDiferenteDe( FiltroImovel.INDICADOR_IMOVEL_EXCLUIDO, Imovel.IMOVEL_EXCLUIDO, FiltroParametro.CONECTOR_OR, 2)); filtroImovel.adicionarParametro(new ParametroNulo( FiltroImovel.INDICADOR_IMOVEL_EXCLUIDO)); /* * filtroImovel * .adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo"); * filtroImovel * .adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo"); * filtroImovel * .adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia"); * * filtroImovel * .adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro"); * filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra"); * * filtroImovel * .adicionarCaminhoParaCarregamentoEntidade("logradouroCep"); * filtroImovel * .adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep"); * * filtroImovel.adicionarCaminhoParaCarregamentoEntidade("lote"); * filtroImovel.adicionarCaminhoParaCarregamentoEntidade("subLote"); * * filtroImovel * .adicionarCaminhoParaCarregamentoEntidade("localidade"); * filtroImovel * .adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro"); * filtroImovel * .adicionarCaminhoParaCarregamentoEntidade("logradouroCep"); */ filtroImovel .adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroImovel .adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra"); Collection imoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName()); if (imoveis == null || imoveis.isEmpty()) { // Caso a cole��o n�o tenha retornado objetos economiaActionForm .setMatriculaImovel("MATRICULA INEXISTENTE"); httpServletRequest.setAttribute("matInexistente", "ok"); sessao .removeAttribute("colecaoImovelSubCategoriasCadastradas"); colecaoImovelSubCategoriasCadastradas = new ArrayList(); sessao.removeAttribute("colecaoClientesImoveisEconomia"); sessao .removeAttribute("clientesImoveisEconomiaSemDataFimRelacao"); sessao.removeAttribute("colecaoImovelEconomiasModificadas"); sessao.removeAttribute("imovel"); colecaoImovelEconomiasModificadas = new ArrayList(); economiaActionForm.setIdImovel(null); economiaActionForm.setEnderecoImovel(null); } else { // retorna o im�vel que veio da cole��o Imovel imovel = (Imovel) ((List) imoveis).get(0); Collection imoveisSubCategorias = fachada .obterColecaoImovelSubcategorias(imovel, 2); Iterator colecaoimoveisSubCategoriasIterator = imoveisSubCategorias .iterator(); Collection colecao = new ArrayList(); ImovelSubcategoria imovelSubcategoriaAux = null; while (colecaoimoveisSubCategoriasIterator.hasNext()) { ImovelSubcategoria imovelSubcategoria = (ImovelSubcategoria) colecaoimoveisSubCategoriasIterator .next(); imovelSubcategoriaAux = imovelSubcategoria; // idImovel // FiltroImovelEconomia filtroImovelEconomia = new FiltroImovelEconomia(); // // filtroImovelEconomia.adicionarParametro(new ParametroSimples( // FiltroImovelEconomia.IMOVEL_ID, idImovel)); // // filtroImovelEconomia.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelEconomia.AREA_CONSTRUIDA_FAIXA); // filtroImovelEconomia.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelEconomia.IMOVEL_SUB_CATEGORIA); // filtroImovelEconomia.adicionarCaminhoParaCarregamentoEntidade("imovelSubcategoria.comp_id.subcategoria.categoria"); // filtroImovelEconomia.adicionarCaminhoParaCarregamentoEntidade("imovelSubcategoria.comp_id.imovel.imovelPerfil"); // // filtroImovelEconomia.adicionarParametro(new ParametroSimples( // FiltroImovelEconomia.SUB_CATEGORIA_ID, imovelSubcategoria.getComp_id().getSubcategoria().getId())); // // Collection colecaoImovelEconomia = fachada.pesquisar( // filtroImovelEconomia, ImovelEconomia.class.getName()); Collection colecaoImovelEconomia = fachada.pesquisarImovelEconomia( new Integer(idImovel), imovelSubcategoria.getComp_id().getSubcategoria().getId()); HashSet colecaoImovelEconomiaSet = new HashSet(); colecaoImovelEconomiaSet.addAll(colecaoImovelEconomia); imovelSubcategoriaAux.setImovelEconomias(colecaoImovelEconomiaSet); colecao.add(imovelSubcategoriaAux); } // Imovel imovel = fachada.pe String enderecoFormatado = fachada .pesquisarEndereco(new Integer(idImovel)); if (enderecoFormatado != null && !enderecoFormatado.trim().equals("")) { economiaActionForm.setEnderecoImovel(enderecoFormatado); } else { economiaActionForm .setEnderecoImovel("Im�vel sem endere�o"); } colecaoImovelSubCategoriasCadastradas = new ArrayList(); colecaoImovelSubCategoriasCadastradas.addAll(colecao); economiaActionForm.setMatriculaImovel(imovel .getInscricaoFormatada()); sessao.setAttribute("imovel", imovel); } } // fim da parte que trata do codigo do usuario que tecla enter } else { sessao.removeAttribute("imovelEconomia"); } sessao.setAttribute("colecaoImovelSubCategoriasCadastradas", colecaoImovelSubCategoriasCadastradas); // manda a cole��o para os imoveis economias inseridos e/ou modificado sessao.setAttribute("colecaoImovelEconomiasModificadas", colecaoImovelEconomiasModificadas); return retorno; } }