package gcom.gui.cadastro.imovel; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.cliente.FiltroCliente; import gcom.cadastro.cliente.FiltroClienteRelacaoTipo; import gcom.cadastro.imovel.AreaConstruidaFaixa; import gcom.cadastro.imovel.FiltroAreaConstruidaFaixa; import gcom.cadastro.imovel.ImovelSubcategoria; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; 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 para exibir a p�gina de economia popup * * @author S�vio Luiz * @created 19 de Maio de 2004 */ public class ExibirInserirEconomiaPopupAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Prepara o retorno da A��o ActionForward retorno = actionMapping.findForward("inserirEconomiaPopup"); // Cria a sess�o HttpSession sessao = httpServletRequest.getSession(false); Collection colecaoClientesImoveisEconomia = null; // HashSet verifica se existe objeto igual na collection if (sessao.getAttribute("colecaoClientesImoveisEconomia") != null) { colecaoClientesImoveisEconomia = (Collection) sessao.getAttribute("colecaoClientesImoveisEconomia"); } else { colecaoClientesImoveisEconomia = new ArrayList(); } Collection colecaoImovelSubCategoriasCadastradas = null; // 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) { colecaoImovelSubCategoriasCadastradas = (Collection) sessao.getAttribute("colecaoImovelSubCategoriasCadastradas"); } else { colecaoImovelSubCategoriasCadastradas = new ArrayList(); } // Obt�m o action form EconomiaPopupActionForm economiaPopupActionForm = (EconomiaPopupActionForm) actionForm; // Obt�m a fachada Fachada fachada = Fachada.getInstancia(); // Verifica se veio algum parametro no economia_inserir.jsp // caso tenha vindo pega o parametro e procura na cole��o um objeto // que tenha um hashCode igual ao do parametro if (httpServletRequest.getParameter("codigoImovelSubCategoria") != null && !httpServletRequest.getParameter("codigoImovelSubCategoria").equals("")) { String codigoImovelSubCategoria = (String) httpServletRequest.getParameter("codigoImovelSubCategoria"); Iterator imovelSubCategoriaIterator = colecaoImovelSubCategoriasCadastradas.iterator(); while (imovelSubCategoriaIterator.hasNext()) { ImovelSubcategoria imovelSubCategoria = (ImovelSubcategoria) imovelSubCategoriaIterator.next(); if (imovelSubCategoria.getUltimaAlteracao().getTime() == Long.parseLong(codigoImovelSubCategoria)) { sessao.setAttribute("imovelSubCategoria",imovelSubCategoria); if (imovelSubCategoria.getImovelEconomias() != null && !imovelSubCategoria.getImovelEconomias().equals("")) { if (imovelSubCategoria.getImovelEconomias().size() == imovelSubCategoria.getQuantidadeEconomias()) { throw new ActionServletException("atencao.ja_existe_dados_economia"); } else { sessao.setAttribute("contIdentificadorTemp", new Integer(imovelSubCategoria.getImovelEconomias().size() + 1)); } } else { sessao.setAttribute("contIdentificadorTemp",new Integer(1)); } colecaoClientesImoveisEconomia = new ArrayList(); break; } } economiaPopupActionForm.setComplementoEndereco(""); economiaPopupActionForm.setNumeroPontosUtilizacao(""); economiaPopupActionForm.setNumeroMorador(""); economiaPopupActionForm.setNumeroIptu(""); economiaPopupActionForm.setNumeroCelpe(""); economiaPopupActionForm.setAreaConstruida(""); economiaPopupActionForm.setIdCliente(""); economiaPopupActionForm.setNomeCliente(""); economiaPopupActionForm.setIdClienteImovelUsuario(""); } // Cria��o das cole��es Collection areasConstruidasFaixas = null; Collection clientesRelacoesTipos = null; Collection clientes; // parametro que testa se dar� um reload(true) ou nao(false) httpServletRequest.setAttribute("testeInserir", "false"); // Cria��o dos objetos String idCliente = null; if (economiaPopupActionForm.getIdCliente() == null || economiaPopupActionForm.getIdCliente().toString().trim().equalsIgnoreCase("")) { // Filtro AreaConstruidaFaixa FiltroAreaConstruidaFaixa filtroAreaConstruidaFaixa = new FiltroAreaConstruidaFaixa(FiltroAreaConstruidaFaixa.MENOR_FAIXA); filtroAreaConstruidaFaixa.adicionarParametro( new ParametroSimples(FiltroAreaConstruidaFaixa.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); areasConstruidasFaixas = fachada.pesquisar(filtroAreaConstruidaFaixa, AreaConstruidaFaixa.class.getName()); // Filtro cleintesRelacoesTipos FiltroClienteRelacaoTipo filtroClienteRelacaoTipo = new FiltroClienteRelacaoTipo(FiltroClienteRelacaoTipo.DESCRICAO); filtroClienteRelacaoTipo.adicionarParametro( new ParametroSimples(FiltroClienteRelacaoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroClienteRelacaoTipo.adicionarParametro( new ParametroSimples(FiltroClienteRelacaoTipo.CLIENTE_RELACAO_TIPO_ID, ClienteRelacaoTipo.PROPRIETARIO,ParametroSimples.CONECTOR_OR)); filtroClienteRelacaoTipo.adicionarParametro(new ParametroSimples( FiltroClienteRelacaoTipo.CLIENTE_RELACAO_TIPO_ID,ClienteRelacaoTipo.USUARIO)); clientesRelacoesTipos = fachada.pesquisar(filtroClienteRelacaoTipo,ClienteRelacaoTipo.class.getName()); // a cole��o de clientesImoveisTipos � obrigat�rio if (clientesRelacoesTipos == null || clientesRelacoesTipos.equals("")) { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "cliente rela��o tipo"); } else { if (economiaPopupActionForm.getTextoSelecionadoEconomia() == null || economiaPopupActionForm.getTextoSelecionadoEconomia().equals("")) { economiaPopupActionForm.setTextoSelecionadoEconomia(((ClienteRelacaoTipo) ((List) clientesRelacoesTipos).get(0)).getDescricao()); } } SimpleDateFormat dataFormato = new SimpleDateFormat("dd/MM/yyyy"); // joga em dataInicial a parte da data String dataInicial = dataFormato.format(new Date()); economiaPopupActionForm.setDataInicioClienteImovelRelacao(dataInicial); // Envia os objetos no request sessao.setAttribute("areasConstruidasFaixas",areasConstruidasFaixas); sessao.setAttribute("clientesRelacoesTipos", clientesRelacoesTipos); // Realiza a pesquisa de Cliente se necess�rio (caso o usu�rio // informou um c�digo do cliente e teclou <enter>) } else { idCliente = economiaPopupActionForm.getIdCliente(); FiltroCliente filtroCliente = new FiltroCliente(); // Adiciona parametro filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, idCliente)); // Realiza a pesquisa de cliente clientes = fachada.pesquisar(filtroCliente, Cliente.class.getName()); if (clientes != null && !clientes.isEmpty()) { // O cliente foi encontrado economiaPopupActionForm.setIdCliente(((Cliente) ((List) clientes).get(0)).getId().toString()); economiaPopupActionForm.setNomeCliente(((Cliente) ((List) clientes).get(0)).getNome()); //cliente = new Cliente(); /*cliente = (Cliente)*/ clientes.iterator().next(); } else { httpServletRequest.setAttribute("codigoClienteNaoEncontrado","true"); economiaPopupActionForm.setNomeCliente("C�digo Inexistente"); } } // Verifica se o tipoConsulta � diferente de nulo ou vazio esse tipo // consulta vem do // municipio_resultado_pesquisa.jsp ou do bairro_resultado_pesquisa.jsp. // � feita essa verifica��o pois pode ser que ainda n�o tenha // feito a pesquisa de municipio ou bairro. if (httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta").equals("")) { // Verifica se o tipo da consulta de cliente � de municipio // se for os parametros de enviarDadosParametros ser�o mandados para // a pagina cliente_pesuisar.jsp if (httpServletRequest.getParameter("tipoConsulta").equals("cliente")) { economiaPopupActionForm.setIdCliente(httpServletRequest.getParameter("idCampoEnviarDados")); economiaPopupActionForm.setNomeCliente(httpServletRequest.getParameter("descricaoCampoEnviarDados")); } } sessao.setAttribute("colecaoClientesImoveisEconomia",colecaoClientesImoveisEconomia); if (!colecaoClientesImoveisEconomia.isEmpty()){ economiaPopupActionForm.setColecaoCliente("SIM"); } else { economiaPopupActionForm.setColecaoCliente(null); } if (httpServletRequest.getAttribute("i") == null){ economiaPopupActionForm.setClienteRelacaoTipo("-1"); } return retorno; } }