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.cliente.FiltroClienteTipo; import gcom.cadastro.imovel.AreaConstruidaFaixa; import gcom.cadastro.imovel.FiltroAreaConstruidaFaixa; import gcom.cadastro.imovel.ImovelEconomia; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.imovel.ImovelSubcategoria; 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.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; 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 para exibir a p�gina de economia popup * * @author S�vio Luiz * @created 19 de Maio de 2004 */ public class ExibirAtualizarEconomiaPopupAction extends GcomAction { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Prepara o retorno da A��o ActionForward retorno = actionMapping .findForward("atualizarEconomiaPopup"); // Cria a sess�o HttpSession sessao = httpServletRequest.getSession(false); 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(); ImovelEconomia imovelEconomia = null; // incicializa o achou para false e caso entre no loop do while ele // passa a ser true boolean achou = false; // 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("codigoImovelEconomia") != null && !httpServletRequest.getParameter("codigoImovelEconomia") .equals("")) { // para incluir mais rela��es entre cliente e imoveis, se preciso sessao.setAttribute("colecaoClientesImoveisEconomia", new ArrayList()); Iterator imovelSubCategoriaIterator = colecaoImovelSubCategoriasCadastradas .iterator(); String codigoImovelEconomia = (String) httpServletRequest .getParameter("codigoImovelEconomia"); while (imovelSubCategoriaIterator.hasNext()) { if (!achou) { ImovelSubcategoria imovelSubcategoria = (ImovelSubcategoria) imovelSubCategoriaIterator .next(); Iterator imovelEconomiaIterator = imovelSubcategoria .getImovelEconomias().iterator(); while (imovelEconomiaIterator.hasNext()) { imovelEconomia = (ImovelEconomia) imovelEconomiaIterator .next(); if (imovelEconomia.getUltimaAlteracao().getTime() == Long .parseLong(codigoImovelEconomia)) { sessao.setAttribute("imovelEconomia", imovelEconomia); // manda os parametros para o form economiaPopupActionForm .setComplementoEndereco(formatarResultado(imovelEconomia .getComplementoEndereco())); economiaPopupActionForm .setNumeroPontosUtilizacao(formatarResultado("" + imovelEconomia .getNumeroPontosUtilizacao())); economiaPopupActionForm .setNumeroMorador(formatarResultado("" + imovelEconomia.getNumeroMorador())); economiaPopupActionForm .setNumeroIptu(formatarResultado("" + imovelEconomia.getNumeroIptu())); economiaPopupActionForm .setNumeroCelpe(formatarResultado("" + imovelEconomia.getNumeroCelpe())); economiaPopupActionForm.setAreaConstruida(Util .formatarMoedaReal(imovelEconomia .getAreaConstruida())); economiaPopupActionForm.setIdCliente(""); economiaPopupActionForm.setNomeCliente(""); SimpleDateFormat dataFormatoAtual = new SimpleDateFormat( "dd/MM/yyyy"); // joga em dataInicial a parte da data String dataAtual = dataFormatoAtual .format(new Date()); economiaPopupActionForm .setDataInicioClienteImovelRelacao(dataAtual); // verifica se o im�vel � de tarifa social caso seja // desabilita alguns campos. if (imovelEconomia.getImovelSubcategoria() .getComp_id().getImovel().getImovelPerfil() .getId().equals(ImovelPerfil.TARIFA_SOCIAL)) { sessao.setAttribute("tarifaSocial", "1"); } else { sessao.removeAttribute("tarifaSocial"); } achou = true; break; } } } else { break; } } } // parametro que testa se dar� um reload(true) ou nao(false) httpServletRequest.setAttribute("testeInserir", new Boolean(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 HashSet(); } // caso o parametro de pesquisa enter que � colocado no jsp de // atualizar_economia_popup estiver nulo ent�o // n�o foi feita a pesquisa de enter e entra no if. if (httpServletRequest.getParameter("pesquisaEnter") == null || httpServletRequest.getParameter("pesquisaEnter") .equalsIgnoreCase("")) { // Cria��o das cole��es Collection areasConstruidasFaixas = null; Collection clientesRelacoesTipos = null; // caso venha do jsp imovel_economia_fim_relacao_cliente e n�o entre // do if do codigoImovelEconomia que � onde o achou // fica true. if (!achou) { if (sessao.getAttribute("imovelEconomia") != null && !sessao.getAttribute("imovelEconomia").equals("")) { imovelEconomia = (ImovelEconomia) sessao .getAttribute("imovelEconomia"); // manda os parametros para o form economiaPopupActionForm .setComplementoEndereco(formatarResultado(imovelEconomia .getComplementoEndereco())); economiaPopupActionForm .setNumeroPontosUtilizacao(formatarResultado("" + imovelEconomia .getNumeroPontosUtilizacao())); economiaPopupActionForm .setNumeroMorador(formatarResultado("" + imovelEconomia.getNumeroMorador())); economiaPopupActionForm.setNumeroIptu(formatarResultado("" + imovelEconomia.getNumeroIptu())); economiaPopupActionForm.setNumeroCelpe(formatarResultado("" + imovelEconomia.getNumeroCelpe())); economiaPopupActionForm .setAreaConstruida(formatarResultado("" + imovelEconomia.getAreaConstruida())); SimpleDateFormat dataFormatoAtual = new SimpleDateFormat( "dd/MM/yyyy"); // joga em dataInicial a parte da data String dataAtual = dataFormatoAtual.format(new Date()); economiaPopupActionForm .setDataInicioClienteImovelRelacao(dataAtual); } } // Verifica se o tipoConsulta � diferente de nulo ou vazio esse tipo // consulta vem do // cliente_resultado_pesquisa.jsp. // � feita essa verifica��o pois pode ser que ainda n�o tenha // feito a pesquisa de cliente. if (httpServletRequest.getParameter("tipoConsulta") == null || httpServletRequest.getParameter("tipoConsulta").equals( "")) { // 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 TipoClienteImovel FiltroClienteRelacaoTipo filtroClienteRelacaoTipo = new FiltroClienteRelacaoTipo( FiltroClienteTipo.DESCRICAO); filtroClienteRelacaoTipo .adicionarParametro(new ParametroSimples( FiltroClienteRelacaoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroClienteRelacaoTipo .adicionarParametro(new ParametroSimples( FiltroClienteRelacaoTipo.CLIENTE_RELACAO_TIPO_ID, ClienteRelacaoTipo.USUARIO, ParametroSimples.CONECTOR_OR)); filtroClienteRelacaoTipo .adicionarParametro(new ParametroSimples( FiltroClienteRelacaoTipo.CLIENTE_RELACAO_TIPO_ID, ClienteRelacaoTipo.PROPRIETARIO)); 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 tipo"); } else { if (economiaPopupActionForm.getTextoSelecionadoEconomia() == null || economiaPopupActionForm .getTextoSelecionadoEconomia().equals("")) { economiaPopupActionForm .setTextoSelecionadoEconomia(((ClienteRelacaoTipo) ((List) clientesRelacoesTipos) .get(0)).getDescricao()); } } if (imovelEconomia.getAreaConstruidaFaixa() != null && !imovelEconomia.getAreaConstruidaFaixa().equals("")) { economiaPopupActionForm .setIdAreaConstruidaFaixa(imovelEconomia .getAreaConstruidaFaixa().getId() .toString()); } // Envia os objetos no request sessao.setAttribute("areasConstruidasFaixas", areasConstruidasFaixas); sessao.setAttribute("clientesRelacoesTipos", clientesRelacoesTipos); // caso venha algum parametro do tipoConsulta ent�o } else { // Verifica se o tipo da consulta � de cliente // se for os parametros de enviarDadosParametros ser�o mandados // para // a pagina atualizar_economia_popup.jsp if (httpServletRequest.getParameter("tipoConsulta").equals( "cliente")) { economiaPopupActionForm.setIdCliente(httpServletRequest .getParameter("idCampoEnviarDados")); economiaPopupActionForm.setNomeCliente(httpServletRequest .getParameter("descricaoCampoEnviarDados")); } } // Realiza a pesquisa de Cliente se necess�rio (caso o usu�rio // informou um c�digo do cliente e teclou <enter>) } else { Collection clientes; // Cria��o dos objetos String idCliente = null; // Cliente cliente = null; 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(""); } } sessao.setAttribute("colecaoClientesImoveisEconomia", colecaoClientesImoveisEconomia); if (httpServletRequest.getParameter("limpa") != null) { economiaPopupActionForm .setClienteRelacaoTipo(ConstantesSistema.NUMERO_NAO_INFORMADO + ""); } return retorno; } /** * < <Descri��o do m�todo>> * * @param parametro * Descri��o do par�metro * @return Descri��o do retorno */ private String formatarResultado(String parametro) { if (parametro != null && !parametro.trim().equals("")) { if (parametro.equals("null")) { return ""; } else { return parametro.trim(); } } else { return ""; } } }