package gcom.gui.cadastro.imovel; import gcom.cadastro.imovel.AreaConstruidaFaixa; import gcom.cadastro.imovel.FiltroAreaConstruidaFaixa; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.ImovelEconomia; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.MaiorQue; import gcom.util.filtro.MenorQue; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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 responsavel para atualizar o im�vel economia na cole��o do cliente * im�vel economia * * @author S�vio Luiz * @created 20 de Maio de 2004 */ public class AtualizarEconomiaPopupAction 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) { // localiza o action no objeto actionmapping ActionForward retorno = actionMapping .findForward("atualizarEconomiaPopup"); // Obt�m o action form EconomiaPopupActionForm economiaPopupActionForm = (EconomiaPopupActionForm) actionForm; // Obt�m a inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); Collection colecaoClientesImoveisEconomia = null; Collection colecaoImovelEconomiasModificadas = null; ImovelEconomia imovelEconomia = (ImovelEconomia) sessao .getAttribute("imovelEconomia"); Fachada fachada = Fachada.getInstancia(); // Cole��o vinda do imovel_inserir_economia_popup // com a cole��o de cliente, imovel e tipo da rela��o if (sessao.getAttribute("colecaoClientesImoveisEconomia") != null) { colecaoClientesImoveisEconomia = (Collection) sessao .getAttribute("colecaoClientesImoveisEconomia"); } else { colecaoClientesImoveisEconomia = new ArrayList(); } Imovel imovel = (Imovel) sessao.getAttribute("imovel"); // pega da sess�o a cole��o para os imoveis economias inseridos e/ou // modificados colecaoImovelEconomiasModificadas = (Collection) sessao .getAttribute("colecaoImovelEconomiasModificadas"); // Cria objeto areaConstruida AreaConstruidaFaixa areaConstruidaFaixa = null; BigDecimal areaConstruida = null; Integer areaContruidaFaixaForm = (new Integer(economiaPopupActionForm .getIdAreaConstruidaFaixa())); if (areaContruidaFaixaForm != null && areaContruidaFaixaForm.intValue() != ConstantesSistema.NUMERO_NAO_INFORMADO) { areaConstruidaFaixa = new AreaConstruidaFaixa(); areaConstruidaFaixa.setId(areaContruidaFaixaForm); imovelEconomia.setAreaConstruidaFaixa(areaConstruidaFaixa); if (economiaPopupActionForm.getAreaConstruida() != null && !economiaPopupActionForm.getAreaConstruida().equals("")) { String areaConstuidaPrrv = economiaPopupActionForm.getAreaConstruida().replace(".", ""); areaConstruida = (new BigDecimal(areaConstuidaPrrv.replace(",","."))); imovelEconomia.setAreaConstruida(areaConstruida); } else { imovelEconomia.setAreaConstruida(null); } } else { if (economiaPopupActionForm.getAreaConstruida() != null && !economiaPopupActionForm.getAreaConstruida().equals("")) { Collection areasConstruidasFaixas = null; String areaConstuidaPrrv = economiaPopupActionForm.getAreaConstruida().replace(".", ""); areaConstruida = (new BigDecimal(areaConstuidaPrrv.replace(",","."))); // areaConstruida = (new BigDecimal(economiaPopupActionForm // .getAreaConstruida().toString().replace(",","."))); imovelEconomia.setAreaConstruida(areaConstruida); // Filtro AreaConstruidaFaixa FiltroAreaConstruidaFaixa filtroAreaConstruidaFaixa = new FiltroAreaConstruidaFaixa(); // fazer a parte de filtro adicionar parametro maior que // e filtro adicionar parametro menos que filtroAreaConstruidaFaixa .adicionarParametro(new ParametroSimples( FiltroAreaConstruidaFaixa.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroAreaConstruidaFaixa.adicionarParametro(new MaiorQue( FiltroAreaConstruidaFaixa.MAIOR_FAIXA, areaConstruida)); filtroAreaConstruidaFaixa.adicionarParametro(new MenorQue( FiltroAreaConstruidaFaixa.MENOR_FAIXA, areaConstruida)); areasConstruidasFaixas = fachada.pesquisar( filtroAreaConstruidaFaixa, AreaConstruidaFaixa.class .getName()); if (areasConstruidasFaixas != null && !areasConstruidasFaixas.isEmpty()) { Iterator areaContruidaFaixaIterator = areasConstruidasFaixas .iterator(); areaConstruidaFaixa = (AreaConstruidaFaixa) areaContruidaFaixaIterator .next(); imovelEconomia.setAreaConstruidaFaixa(areaConstruidaFaixa); } else { imovelEconomia.setAreaConstruidaFaixa(null); } } else { imovelEconomia.setAreaConstruidaFaixa(null); imovelEconomia.setAreaConstruida(null); } } // recupera os dados do form imovelEconomia.setComplementoEndereco(economiaPopupActionForm .getComplementoEndereco()); if (economiaPopupActionForm.getNumeroMorador() != null && !economiaPopupActionForm.getNumeroMorador().equalsIgnoreCase("")){ imovelEconomia.setNumeroMorador(new Short(economiaPopupActionForm .getNumeroMorador().toString())); } else { imovelEconomia.setNumeroMorador(null); } if (economiaPopupActionForm.getNumeroPontosUtilizacao() != null && !economiaPopupActionForm.getNumeroPontosUtilizacao().equalsIgnoreCase("")){ imovelEconomia .setNumeroPontosUtilizacao(new Short(economiaPopupActionForm .getNumeroPontosUtilizacao().toString())); }else{ imovelEconomia.setNumeroPontosUtilizacao(null); } // verifica se existe um numero de iptu if (economiaPopupActionForm.getNumeroIptu() != null && !economiaPopupActionForm.getNumeroIptu().equals("")) { // verifica se existe no imovel, no imovelEconomia ou na cole��o que // ser� // inserida se existe algum iptu cadastrado com o numero do iptu // digitado no // mesmo municipio. fachada.verificarExistenciaIPTU(colecaoImovelEconomiasModificadas, imovel, economiaPopupActionForm.getNumeroIptu(), imovelEconomia.getUltimaAlteracao()); imovelEconomia.setNumeroIptu(Util.formatarIPTU(economiaPopupActionForm .getNumeroIptu())); } else { imovelEconomia.setNumeroIptu(null); } if (economiaPopupActionForm.getNumeroCelpe() != null && !economiaPopupActionForm.getNumeroCelpe().equals("")) { // verifica se existe no imovel, no imovelEconomia ou na cole��o que // ser� // inserida se existe algum iptu cadastrado com o numero da celpe // digitado. fachada.verificarExistenciaCelpe(colecaoImovelEconomiasModificadas, imovel, economiaPopupActionForm.getNumeroCelpe(), imovelEconomia.getUltimaAlteracao()); imovelEconomia.setNumeroCelpe(new Long(economiaPopupActionForm .getNumeroCelpe())); } else { imovelEconomia.setNumeroCelpe(null); } imovelEconomia.getClienteImovelEconomias().addAll( colecaoClientesImoveisEconomia); if (imovelEconomia.getCodigoModificado() == 0) { imovelEconomia.setCodigoModificado(imovelEconomia.getHashCode()); colecaoImovelEconomiasModificadas.add(imovelEconomia); } // para incluir mais rela��es entre cliente e imoveis, se preciso sessao.setAttribute("colecaoClientesImoveisEconomia", new ArrayList()); // inicializa o property idClienteImovelUsuarioEconomias para a inclus�o // de // novas rela��es entre cliente imovel do tipo usu�rio economiaPopupActionForm.setIdClienteImovelUsuario(null); if (httpServletRequest.getParameter("testeInserir").equalsIgnoreCase( "true")) { httpServletRequest.setAttribute("testeInserir", "true"); } // inicializa todos os propertys para nulo economiaPopupActionForm.setComplementoEndereco(null); economiaPopupActionForm.setNumeroPontosUtilizacao(null); economiaPopupActionForm.setNumeroMorador(null); economiaPopupActionForm.setNumeroIptu(null); economiaPopupActionForm.setNumeroCelpe(null); economiaPopupActionForm.setAreaConstruida(null); economiaPopupActionForm.setIdAreaConstruidaFaixa(null); return retorno; } }