package gcom.gui.cadastro.imovel; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoEsgotamento; import gcom.atendimentopublico.ordemservico.FiltroOrdemServico; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimento; import gcom.atendimentopublico.registroatendimento.RegistroAtendimento; import gcom.cadastro.endereco.Cep; import gcom.cadastro.endereco.EnderecoReferencia; import gcom.cadastro.endereco.Logradouro; import gcom.cadastro.endereco.LogradouroCep; import gcom.cadastro.funcionario.Funcionario; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.Despejo; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.FiltroImovelInscricaoAlterada; import gcom.cadastro.imovel.FiltroSubCategoria; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.ImovelContaEnvio; import gcom.cadastro.imovel.ImovelInscricaoAlterada; import gcom.cadastro.imovel.ImovelSubcategoria; import gcom.cadastro.imovel.ImovelTipoCobertura; import gcom.cadastro.imovel.ImovelTipoConstrucao; import gcom.cadastro.imovel.ImovelTipoHabitacao; import gcom.cadastro.imovel.ImovelTipoPropriedade; import gcom.cadastro.imovel.PiscinaVolumeFaixa; import gcom.cadastro.imovel.PocoTipo; import gcom.cadastro.imovel.ReservatorioVolumeFaixa; import gcom.cadastro.imovel.Subcategoria; import gcom.cadastro.imovel.bean.ImovelAbaCaracteristicasHelper; import gcom.cadastro.imovel.bean.ImovelAbaCaracteristicasRetornoHelper; import gcom.cadastro.imovel.bean.ImovelAbaConclusaoHelper; import gcom.cadastro.imovel.bean.ImovelAbaConclusaoRetornoHelper; import gcom.cadastro.imovel.bean.ImovelAbaEnderecoHelper; import gcom.cadastro.imovel.bean.ImovelAbaLocalidadeHelper; import gcom.cadastro.imovel.bean.ImovelAbaLocalidadeRetornoHelper; import gcom.cadastro.imovel.bean.InserirImovelHelper; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.faturamento.FaturamentoGrupo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.Rota; import gcom.seguranca.acesso.Funcionalidade; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.Collection; import java.util.Date; 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; import org.apache.struts.validator.DynaValidatorForm; /** * Classe respon�vel pela conclus�o do cadastro de um im�vel * * @author Raphael Rossiter * @date 12/05/2009 */ public class AtualizarImovelAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // localiza o action no objeto actionmapping ActionForward retorno = actionMapping.findForward("telaSucesso"); // Obtendo uma instancia da sessao HttpSession sessao = httpServletRequest.getSession(false); DynaValidatorForm inserirImovelActionForm = (DynaValidatorForm) actionForm; Fachada fachada = Fachada.getInstancia(); if (httpServletRequest.getParameter("confirmado") != null && httpServletRequest.getParameter("confirmado").equalsIgnoreCase("ok")) { sessao.setAttribute("confirmou", "sim"); } // Cria Variaveis Imovel imovelAtualizar = (Imovel) sessao.getAttribute("imovelAtualizacao"); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); Collection colecaoImovelSubcategoriasRemovidas = (Collection) sessao.getAttribute("colecaoImovelSubcategoriasRemoviadas"); Collection colecaoImovelRamosAtividadesRemovidos = (Collection) sessao.getAttribute("colecaoImovelRamosAtividadesRemovidos"); Collection colecaoClientesImoveisRemovidos = (Collection) sessao.getAttribute("colecaoClientesImoveisRemovidos"); String idLocalidade = (String) inserirImovelActionForm.get("idLocalidade"); String idSetorComercial = (String) inserirImovelActionForm.get("idSetorComercial"); String idQuadra = (String) inserirImovelActionForm.get("idQuadra"); String idQuadraFace = (String) inserirImovelActionForm.get("idQuadraFace"); String lote = (String) inserirImovelActionForm.get("lote"); String subLote = (String) inserirImovelActionForm.get("subLote"); String testadaLote = (String) inserirImovelActionForm.get("testadaLote"); String areaConstruida = (String) inserirImovelActionForm.get("areaConstruida"); String faixaAreaConstruida = (String) inserirImovelActionForm.get("faixaAreaConstruida"); String volumeReservatorioSuperior = (String) inserirImovelActionForm.get("reservatorioSuperior"); String faixaVolumeReservatorioSuperior = (String) inserirImovelActionForm.get("faixaResevatorioSuperior"); String volumeReservatorioInferior = (String) inserirImovelActionForm.get("reservatorioInferior"); String faixaVolumeReservaotirio = (String) inserirImovelActionForm.get("faixaReservatorioInferior"); String piscina = (String) inserirImovelActionForm.get("piscina"); String jardim = (String) inserirImovelActionForm.get("jardim"); String faixaPiscina = (String) inserirImovelActionForm.get("faixaPiscina"); String pavimentoCalcada = (String) inserirImovelActionForm.get("pavimentoCalcada"); String pavimentoRua = (String) inserirImovelActionForm.get("pavimentoRua"); String fonteAbastecimento = (String) inserirImovelActionForm.get("fonteAbastecimento"); String situacaoLigacaoAgua = (String) inserirImovelActionForm.get("situacaoLigacaoAgua"); String situacaoLigacaoEsgoto = (String) inserirImovelActionForm.get("situacaoLigacaoEsgoto"); String perfilImovel = (String) inserirImovelActionForm.get("perfilImovel"); String poco = (String) inserirImovelActionForm.get("poco"); String idLigacaoEsgotoEsgotamento = (String) inserirImovelActionForm.get("idLigacaoEsgotoEsgotamento"); String tipoHabitacao = (String) inserirImovelActionForm.get("imovelTipoHabitacao"); String tipoPropriedade = (String) inserirImovelActionForm.get("imovelTipoPropriedade"); String tipoConstrucao = (String) inserirImovelActionForm.get("imovelTipoConstrucao"); String tipoCobertura = (String) inserirImovelActionForm.get("imovelTipoCobertura"); String pontoUtilizaco = (String) inserirImovelActionForm.get("numeroPontos"); String numeroMoradores = (String) inserirImovelActionForm.get("numeroMoradores"); String numeroIptu = (String) inserirImovelActionForm.get("numeroIptu"); String numeroContratoCelpe = (String) inserirImovelActionForm.get("numeroContratoCelpe"); String imovelContaEnvioForm = (String) inserirImovelActionForm.get("imovelContaEnvio"); String cordenadasX = (String) inserirImovelActionForm.get("cordenadasUtmX"); String cordenadasY = (String) inserirImovelActionForm.get("cordenadasUtmY"); String extratoResponsavel = (String) inserirImovelActionForm.get("extratoResponsavel"); // String nomeContaForm = (String) inserirImovelActionForm.get("tipoOcupacao"); String tipoDespejo = (String) inserirImovelActionForm.get("tipoDespejo"); String idImovelPrincipal = (String) inserirImovelActionForm.get("idImovel"); String sequencialRota = (String) inserirImovelActionForm.get("sequencialRota"); String sequencialRotaEntrega = (String) inserirImovelActionForm.get("sequencialRotaEntrega"); String idRotaEntrega = (String) inserirImovelActionForm.get("idRota"); String idRotaAlternativa = (String) inserirImovelActionForm.get("idRotaAlternativa"); String idFuncionario = (String) inserirImovelActionForm.get("idFuncionario"); String numeroMedidorEnergia = (String) inserirImovelActionForm.get("numeroMedidorEnergia"); String dataVisitaComercialInformada = (String) inserirImovelActionForm.get("dataVisitaComercial"); String informacoesComplementares = (String) inserirImovelActionForm.get("informacoesComplementares"); /** * Disponibilizar o campo nome do Im�vel no cadastro do Im�vel * * @author Wellington Rocha * @date 14/11/2012*/ String nomeDoImovel = (String) inserirImovelActionForm.get("nomeDoImovel"); String numeroQuadraEntrega = (String) inserirImovelActionForm.get("numeroQuadraEntrega"); String indicadorNivelInstalacaoEsgoto = (String) inserirImovelActionForm.get("indicadorNivelInstalacaoEsgoto"); Imovel imovel = imovelAtualizar; // ABA LOCALIDADE ImovelAbaLocalidadeHelper helperLocalidade = new ImovelAbaLocalidadeHelper(); helperLocalidade.setIdImovel(imovelAtualizar.getId()); helperLocalidade.setIdLocalidade(idLocalidade); helperLocalidade.setCodigoSetorComercial(idSetorComercial); helperLocalidade.setNumeroQuadra(idQuadra); helperLocalidade.setIdQuadraFace(idQuadraFace); helperLocalidade.setLote(lote); helperLocalidade.setSublote(subLote); ImovelAbaLocalidadeRetornoHelper resultadoAbaLocalidade = fachada.validarImovelAbaLocalidade(helperLocalidade); //imovel.setLote(new Short(lote)); if (Util.verificarNaoVazio(testadaLote)) { imovel.setTestadaLote(new Short(testadaLote).shortValue()); } else { imovel.setTestadaLote(null); } if (Util.verificarNaoVazio(sequencialRota)) { imovel.setNumeroSequencialRota(new Integer(sequencialRota)); } else { imovel.setNumeroSequencialRota(null); } // ABA ENDERECO Collection colecaoEnderecos = (Collection) sessao.getAttribute("colecaoEnderecos"); //********************************************************************** // Autor: Ivan Sergio // Data: 23/07/2009 // CRC2103 // Guarda o endereco do Imovel para o caso em que o Inserir/Manter // cliente � invocado pelo Inserir/Manter Imovel como PopUp //********************************************************************** if (sessao.getAttribute("POPUP") != null) { if (sessao.getAttribute("POPUP").equals("true")) { if (colecaoEnderecos != null && !colecaoEnderecos.isEmpty()) { Object obj = (Object) colecaoEnderecos.iterator().next(); if (!(obj instanceof Imovel)) { sessao.removeAttribute("colecaoEnderecos"); } if (sessao.getAttribute("colecaoEnderecosImovel") != null) { colecaoEnderecos = (Collection) sessao.getAttribute("colecaoEnderecosImovel"); } }else if (sessao.getAttribute("colecaoEnderecosImovel") != null) { colecaoEnderecos = (Collection) sessao.getAttribute("colecaoEnderecosImovel"); } } } //********************************************************************** ImovelAbaEnderecoHelper helperEndereco = new ImovelAbaEnderecoHelper(); helperEndereco.setImovelEnderecos(colecaoEnderecos); helperEndereco.setSetorComercial(resultadoAbaLocalidade.getSetorComercial()); helperEndereco.setUsuarioLogado(usuario); helperEndereco.setIdFuncionalidade(Funcionalidade.MANTER_IMOVEL); fachada.validarImovelAbaEndereco(helperEndereco); Imovel imovelEndereco = (Imovel) Util.retonarObjetoDeColecao(colecaoEnderecos); Logradouro logradouro = null; if (imovelEndereco.getLogradouroCep() != null && imovelEndereco.getLogradouroCep().getLogradouro() != null && !imovelEndereco.getLogradouroCep().getLogradouro().equals("")) { Integer idLogradouro = imovelEndereco.getLogradouroCep().getLogradouro().getId(); logradouro = new Logradouro(); logradouro.setId(idLogradouro); } else { // ALTERA��O FEITTA PARA FUNCIONAMENTO DA APLICA��O, APAGAR // A CONDI��O DO "SE N�O", // ALTERA��O DO VALOR DO LOGRADOURO ESTA SENDO ANALIZADA POR ARYED, // ANA E LEO NARDO NO DIA 16/03/2006 logradouro = new Logradouro(); logradouro.setId(new Integer("0")); } LogradouroCep logradouroCep = null; if (imovelEndereco.getLogradouroCep() != null && imovelEndereco.getLogradouroCep().getCep() != null) { Integer cep = imovelEndereco.getLogradouroCep().getCep().getCepId(); Cep cepObj = new Cep(); cepObj.setCepId(cep); logradouroCep = fachada.pesquisarAssociacaoLogradouroCep(cepObj.getCepId(), logradouro.getId()); } EnderecoReferencia enderecoReferencia = null; if (imovelEndereco.getEnderecoReferencia() != null) { Integer idEnderecoReferencia = imovelEndereco.getEnderecoReferencia().getId(); if (idEnderecoReferencia != null && !idEnderecoReferencia.toString().trim().equals("")) { enderecoReferencia = new EnderecoReferencia(); enderecoReferencia.setId(idEnderecoReferencia); } } imovel.setNumeroImovel(imovelEndereco.getNumeroImovel()); imovel.setComplementoEndereco(imovelEndereco.getComplementoEndereco()); imovel.setLogradouroCep(logradouroCep); imovel.setEnderecoReferencia(enderecoReferencia); imovel.setLogradouroBairro(imovelEndereco.getLogradouroBairro()); imovel.setPerimetroInicial(imovelEndereco.getPerimetroInicial()); imovel.setPerimetroFinal(imovelEndereco.getPerimetroFinal()); imovel.setNomeImovel(nomeDoImovel); // ABA CLIENTES Collection clientes = (Collection) sessao.getAttribute("imovelClientesNovos"); fachada.validarImovelAbaCliente(clientes, usuario); // ABA SUBCATEGORIA ECONOMIAS Collection subcategorias = (Collection) sessao.getAttribute("colecaoImovelSubCategorias"); fachada.validarAbaInserirImovelSubcategoria( subcategorias, PermissaoEspecial.INSERIR_IMOVEL_PARA_ORGAO_PUBLICO, usuario); // ABA CARACTERISTICA ImovelAbaCaracteristicasHelper helperCaracteristica = new ImovelAbaCaracteristicasHelper(); helperCaracteristica.setImovelAtualizar(imovel); helperCaracteristica.setAreaConstruida(areaConstruida); helperCaracteristica.setIdAreaConstruidaFaixa(faixaAreaConstruida); helperCaracteristica.setIdPavimentoCalcada(pavimentoCalcada); helperCaracteristica.setIdPavimentoRua(pavimentoRua); helperCaracteristica.setIdFonteAbastecimento(fonteAbastecimento); helperCaracteristica.setIdLigacaoAguaSituacao(situacaoLigacaoAgua); helperCaracteristica.setIdLigacaoEsgotoSituacao(situacaoLigacaoEsgoto); helperCaracteristica.setIdLigacaoEsgotoEsgotamento(idLigacaoEsgotoEsgotamento); helperCaracteristica.setIdImovelPerfil(perfilImovel); //************************************************* // Autor: Ivan Sergio // Data: 23/04/2009 // CRC1657 //************************************************* // [FS0023] - Verificar Setor e Quadra //************************************************* helperCaracteristica.setIdSetorComercial(idSetorComercial); helperCaracteristica.setIdQuadra(idQuadra); //************************************************* // Autor: Nathalia Santos // Data: 12/07/2011 // RR201106690 - Verifica se Existe n�vel para instala��o de esgoto caso a empresa seja CAER. helperCaracteristica.setIdNivelInstalacaoEsgoto(indicadorNivelInstalacaoEsgoto); //***************************************************** ImovelAbaCaracteristicasRetornoHelper resultadoAbaCaracteristicas = fachada.validarImovelAbaCaracteristicas(helperCaracteristica); if (Util.verificarNaoVazio(areaConstruida)) { imovel.setAreaConstruida(Util.formatarMoedaRealparaBigDecimal(areaConstruida)); } imovel.setAreaConstruidaFaixa(resultadoAbaCaracteristicas.getAreaConstruidaFaixa()); if (Util.verificarIdNaoVazio(faixaVolumeReservaotirio)) { ReservatorioVolumeFaixa reservatorioVolumeFaixaInf = new ReservatorioVolumeFaixa(); reservatorioVolumeFaixaInf.setId(new Integer(faixaVolumeReservaotirio)); imovel.setReservatorioVolumeFaixaInferior(reservatorioVolumeFaixaInf); } if (Util.verificarNaoVazio(volumeReservatorioInferior)) { imovel.setVolumeReservatorioInferior(Util.formatarMoedaRealparaBigDecimal(volumeReservatorioInferior)); } if (Util.verificarIdNaoVazio(faixaVolumeReservatorioSuperior)) { ReservatorioVolumeFaixa reservatorioVolumeFaixaSup = new ReservatorioVolumeFaixa(); reservatorioVolumeFaixaSup.setId(new Integer(faixaVolumeReservatorioSuperior)); imovel.setReservatorioVolumeFaixaSuperior(reservatorioVolumeFaixaSup); } if (Util.verificarNaoVazio(volumeReservatorioSuperior)) { imovel.setVolumeReservatorioSuperior(Util.formatarMoedaRealparaBigDecimal(volumeReservatorioSuperior)); } if (Util.verificarIdNaoVazio(faixaPiscina)) { PiscinaVolumeFaixa piscinaVolumeFaixa = new PiscinaVolumeFaixa(); piscinaVolumeFaixa.setId(new Integer(faixaPiscina)); imovel.setPiscinaVolumeFaixa(piscinaVolumeFaixa); } if (Util.verificarNaoVazio(piscina)) { imovel.setVolumePiscina(Util.formatarMoedaRealparaBigDecimal(piscina)); } if (Util.verificarNaoVazio(jardim)) { imovel.setIndicadorJardim(new Short(jardim)); } imovel.setPavimentoCalcada(resultadoAbaCaracteristicas.getPavimentoCalcada()); imovel.setPavimentoRua(resultadoAbaCaracteristicas.getPavimentoRua()); imovel.setFonteAbastecimento(resultadoAbaCaracteristicas.getFonteAbastecimento()); imovel.setLigacaoAguaSituacao(resultadoAbaCaracteristicas.getLigacaoAguaSituacao()); imovel.setLigacaoEsgotoSituacao(resultadoAbaCaracteristicas.getLigacaoEsgotoSituacao()); imovel.setImovelPerfil(resultadoAbaCaracteristicas.getImovelPerfil()); imovel.setIndicadorNivelInstalacaoEsgoto(new Short(indicadorNivelInstalacaoEsgoto)); LigacaoEsgotoEsgotamento ligacaoEsgotoEsgotamento = resultadoAbaCaracteristicas.getLigacaoEsgotoEsgotamento(); if (Util.verificarIdNaoVazio(poco)) { PocoTipo pocoTipo = new PocoTipo(); pocoTipo.setId(new Integer(poco)); imovel.setPocoTipo(pocoTipo); } if(poco.equals("-1")){ imovel.setPocoTipo(null); } if (Util.verificarIdNaoVazio(tipoDespejo)) { Despejo despejo = new Despejo(); despejo.setId(new Integer(tipoDespejo)); imovel.setDespejo(despejo); } if (Util.verificarIdNaoVazio(tipoHabitacao)) { ImovelTipoHabitacao imovelTipoHabitacao = new ImovelTipoHabitacao(); imovelTipoHabitacao.setId(new Integer(tipoHabitacao)); imovel.setImovelTipoHabitacao(imovelTipoHabitacao); } if (Util.verificarIdNaoVazio(tipoPropriedade)) { ImovelTipoPropriedade imovelTipoPropriedade = new ImovelTipoPropriedade(); imovelTipoPropriedade.setId(new Integer(tipoPropriedade)); imovel.setImovelTipoPropriedade(imovelTipoPropriedade); } if (Util.verificarIdNaoVazio(tipoConstrucao)) { ImovelTipoConstrucao imovelTipoConstrucao = new ImovelTipoConstrucao(); imovelTipoConstrucao.setId(new Integer(tipoConstrucao)); imovel.setImovelTipoConstrucao(imovelTipoConstrucao); } if (Util.verificarIdNaoVazio(tipoCobertura)) { ImovelTipoCobertura imovelTipoCobertura = new ImovelTipoCobertura(); imovelTipoCobertura.setId(new Integer(tipoCobertura)); imovel.setImovelTipoCobertura(imovelTipoCobertura); } if (Util.verificarIdNaoVazio(numeroMedidorEnergia)) { imovel.setNumeroMedidorEnergia(numeroMedidorEnergia); } if (dataVisitaComercialInformada !=null && !dataVisitaComercialInformada.equals("")) { Date dataVisitaComercial = Util.converteStringParaDate(dataVisitaComercialInformada); imovel.setDataVisitaComercial(dataVisitaComercial); } // ABA CONCLUSAO ImovelAbaConclusaoHelper helperConclusao = new ImovelAbaConclusaoHelper(); helperConclusao.setSetorComercial(resultadoAbaLocalidade.getSetorComercial()); helperConclusao.setIdQuadraImovel(idQuadra); helperConclusao.setIdImovelPrincipal(idImovelPrincipal); helperConclusao.setNumeroIptu(numeroIptu); helperConclusao.setNumeroContratoCelpe(numeroContratoCelpe); helperConclusao.setCoordenadasUtmX(cordenadasX); helperConclusao.setCoordenadasUtmY(cordenadasY); helperConclusao.setSequencialRotaEntrega(sequencialRotaEntrega); helperConclusao.setNumeroQuadraEntrega(numeroQuadraEntrega); helperConclusao.setIdRotaEntrega(idRotaEntrega); helperConclusao.setIdRotaAlternativa(idRotaAlternativa); helperConclusao.setImoveisClientes(clientes); helperConclusao.setIdImovelAtualizar(imovel.getId()); helperConclusao.setNumeroMedidorEnergia(numeroMedidorEnergia); ImovelAbaConclusaoRetornoHelper resultadoAbaConclusao = fachada.validarImovelAbaConclusao(helperConclusao); if (numeroQuadraEntrega != null && !numeroQuadraEntrega.equals("")){ imovel.setNumeroQuadraEntrega(new Integer(numeroQuadraEntrega)); } else if (numeroQuadraEntrega.equals("")){ imovel.setNumeroQuadraEntrega(null); } if (resultadoAbaConclusao.getSequencialRotaEntrega() != null && !resultadoAbaConclusao.getSequencialRotaEntrega().equals("")) { imovel.setNumeroSequencialRotaEntrega(new Integer(resultadoAbaConclusao.getSequencialRotaEntrega())); }else { imovel.setNumeroSequencialRotaEntrega(null); } if (resultadoAbaConclusao.getRotaEntrega() != null && !resultadoAbaConclusao.getRotaEntrega().equals("")) { imovel.setRotaEntrega(resultadoAbaConclusao.getRotaEntrega()); }else{ imovel.setRotaEntrega(null); } if (resultadoAbaConclusao.getRotaAlternativa() != null) { imovel.setRotaAlternativa(resultadoAbaConclusao.getRotaAlternativa()); } else{ imovel.setRotaAlternativa(null); } imovel.setNumeroPontosUtilizacao(Util.verificarNaoVazio(pontoUtilizaco) ? new Short(pontoUtilizaco) : null); imovel.setNumeroMorador(Util.verificarNaoVazio(numeroMoradores) ? new Short(numeroMoradores) : null); imovel.setNumeroIptu(Util.verificarNaoVazio(numeroIptu) ? Util.formatarIPTU(numeroIptu) : null); imovel.setNumeroCelpe(Util.verificarNaoVazio(numeroContratoCelpe) ? new Long(numeroContratoCelpe) : null); imovel.setCoordenadaX(Util.verificarNaoVazio(cordenadasX) ? new String(cordenadasX.replace(',','.')) : null); imovel.setCoordenadaY(Util.verificarNaoVazio(cordenadasY) ? new String(cordenadasY.replace(',','.')) : null); if (Util.verificarIdNaoVazio(idImovelPrincipal)) { Imovel imovelPrincipal = new Imovel(); imovelPrincipal.setId(new Integer(idImovelPrincipal)); imovel.setImovelPrincipal(imovelPrincipal); } if (Util.verificarIdNaoVazio(idFuncionario)) { Funcionario funcionario = new Funcionario(); funcionario.setId(new Integer(idFuncionario)); imovel.setFuncionario(funcionario); } else { imovel.setFuncionario(null); } if ( Util.verificarNaoVazio(informacoesComplementares) ){ imovel.setInformacoesComplementares(informacoesComplementares); } else { imovel.setInformacoesComplementares(""); } if (Util.verificarIdNaoVazio(numeroMedidorEnergia)) { imovel.setNumeroMedidorEnergia(numeroMedidorEnergia); } if (dataVisitaComercialInformada !=null && !dataVisitaComercialInformada.equals("")) { Date dataVisitaComercial = Util.converteStringParaDate(dataVisitaComercialInformada); imovel.setDataVisitaComercial(dataVisitaComercial); } // OUTROS //imovel.setUltimaAlteracao(new Date()); imovel.setIndicadorEmissaoExtratoFaturamento(Util.verificarNaoVazio(extratoResponsavel) ? new Short(extratoResponsavel) : ConstantesSistema.NAO); if(imovelAtualizar.getIndicadorExclusao() == null){ imovel.setIndicadorExclusao(ConstantesSistema.NAO); }else{ imovel.setIndicadorExclusao(imovelAtualizar.getIndicadorExclusao()); } imovel.setIndicadorImovelCondominio(imovelAtualizar.getIndicadorImovelCondominio()); imovel.setIndicadorDebitoConta(imovelAtualizar.getIndicadorDebitoConta()); imovel.setConsumoTarifa(imovelAtualizar.getConsumoTarifa()); short quantidadeEconomias = 0; Iterator iteratorSubcategorias = subcategorias.iterator(); while (iteratorSubcategorias.hasNext()) { ImovelSubcategoria imovelSubcategoria = (ImovelSubcategoria) iteratorSubcategorias.next(); quantidadeEconomias += imovelSubcategoria.getQuantidadeEconomias(); } imovel.setQuantidadeEconomias(quantidadeEconomias); ImovelContaEnvio imovelContaEnvio = new ImovelContaEnvio(); if (Util.verificarIdNaoVazio(imovelContaEnvioForm)) { imovelContaEnvio = new ImovelContaEnvio(); imovelContaEnvio.setId(new Integer(imovelContaEnvioForm)); } else { imovelContaEnvio = new ImovelContaEnvio(); imovelContaEnvio.setId(new Integer(2)); } imovel.setImovelContaEnvio(imovelContaEnvio); if (imovel.getIndicadorEmissaoExtratoFaturamento() != null){ if (imovel.getIndicadorEmissaoExtratoFaturamento().equals(new Short("0"))){ imovel.setIndicadorEmissaoExtratoFaturamento(new Short("2")); } } else { imovel.setIndicadorEmissaoExtratoFaturamento(new Short("2")); } //CRC2258 solicitacao do analista Adriano Brito //data alteracao: 13/07/2009 if (imovel.getIndicadorVencimentoMesSeguinte() == null){ imovel.setIndicadorVencimentoMesSeguinte(new Short("2")); } //fim da alteracao // CRC3184 // Desenvolvedor:Hugo Amorim Analista:Rosana // Data: 15/12/2009 if(imovel.getImovelPerfil()!=null){ boolean achou = false; if(imovel.getImovelPerfil().getSubcategoria()!=null){ for (Iterator iterator = subcategorias.iterator(); iterator.hasNext();) { ImovelSubcategoria imovelSubcategoria = (ImovelSubcategoria) iterator.next(); Subcategoria subcategoria = imovelSubcategoria.getComp_id().getSubcategoria(); if(subcategoria.getId().compareTo(imovel.getImovelPerfil().getSubcategoria().getId())==0){ achou = true; } } if(!achou || subcategorias.size()>1){ FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria(); filtroSubCategoria.adicionarParametro(new ParametroSimples(FiltroSubCategoria.ID, imovel.getImovelPerfil().getSubcategoria().getId())); Collection<Subcategoria> colecaoSubs = fachada.pesquisar(filtroSubCategoria, Subcategoria.class.getName()); Subcategoria subcategoria = (Subcategoria) Util.retonarObjetoDeColecao(colecaoSubs); throw new ActionServletException("atencao.perfil_exige_subcategoria",subcategoria.getDescricao()); } } } //Fim da Altera��o CRC3184 /** * [SB0004] � Verificar Altera��o da Inscri��o do Im�vel * @author Arthur Carvalho * @date 18/09/2010 */ Imovel imovelSemAtualizacao = pesquisarImovel(imovelAtualizar.getId(), fachada); boolean flagNaoConfirmado = false; boolean inscricaoAlterada = this.verificarInscricaoAlterada(imovelSemAtualizacao,resultadoAbaLocalidade,helperLocalidade); String confirmado = httpServletRequest.getParameter("confirmado"); String confirmacaoDupla = httpServletRequest.getParameter("confirmacaoDupla"); // 1. Caso os dados da inscri��o tenham sido alterados e o im�vel // n�o tenha rota alternativa (ROTA_IDALTERNATIVA com o valor nulo na tabela IMOVEL): if ( inscricaoAlterada && imovelSemAtualizacao.getRotaAlternativa() == null ) { if ( confirmado == null || confirmacaoDupla == null || (confirmacaoDupla != null && confirmacaoDupla.equalsIgnoreCase(""))) { //1.3. Caso a altera��o da inscri��o acarrete a mudan�a do grupo de faturamento do im�vel retorno = this.verificaInscricaoAlteradaAcarretaMudancaDoGrupoFaturamento( imovelSemAtualizacao.getId(), imovelSemAtualizacao.getQuadra().getId(), resultadoAbaLocalidade.getQuadra().getId(), httpServletRequest, actionMapping, fachada, imovel, resultadoAbaLocalidade, helperLocalidade, sessao); } } else { atualizarImovel( imovel, resultadoAbaLocalidade, helperLocalidade); } // Se tiver sido aprensentada a tela confirma��o e o usuario confirmou. if(confirmado != null && confirmado.equalsIgnoreCase("ok") && confirmacaoDupla != null && confirmacaoDupla.equalsIgnoreCase("ok")){ retorno = actionMapping.findForward("telaSucesso"); sessao.removeAttribute("remove"); //[SB0005] � Preparar Altera��o Inscri��o no Encerramento Faturamento prepararAlteracaoInscricaoEncerramentoFaturamento( imovel, imovelSemAtualizacao, resultadoAbaLocalidade, fachada, helperLocalidade, usuario ); } else if (confirmado != null && confirmado.equalsIgnoreCase("nao")) { flagNaoConfirmado = true; retorno = actionMapping.findForward("telaSucesso"); httpServletRequest.removeAttribute("nomeBotao1"); httpServletRequest.removeAttribute("nomeBotao3"); httpServletRequest.removeAttribute("confirmacaoDupla"); sessao.removeAttribute("remove"); //httpServletRequest.setAttribute("url","javascript:window.location.href='/gsan/atualizarImovelWizardAction.do?action=exibirAtualizarImovelLocalidadeAction';"); } // FIM [SB0004] � Verificar Altera��o da Inscri��o do Im�vel //********************************************************************** // Autor: Rodrigo Cabral // Data: 13/09/2011 // Atualizar a Principal Categoria e SubCategoria do Imovel //********************************************************************** Categoria principalCategoria = fachada.obterPrincipalCategoria(subcategorias); if (principalCategoria != null){ imovel.setCategoriaPrincipalId(principalCategoria.getId()); ImovelSubcategoria principalSubCategoria = fachada.obterPrincipalSubcategoria(principalCategoria.getId(), subcategorias); imovel.setSubCategoriaPrincipalId(principalSubCategoria.getComp_id().getSubcategoria().getId()); } /** * alterado por pedro alexandre dia 17/11/2006 Recupera o usu�rio logado * para passar no met�do de atualizar im�vel para verificar se o usu�rio * tem abrang�ncia para atualizar o im�vel informado. */ Collection ramosAtividades = (Collection) sessao.getAttribute("colecaoImovelRamosAtividade"); InserirImovelHelper inserirImovelHelper = new InserirImovelHelper(imovel, subcategorias,ramosAtividades, colecaoEnderecos, clientes, ligacaoEsgotoEsgotamento, usuario); inserirImovelHelper.setColecaoClientesImoveisRemovidos(colecaoClientesImoveisRemovidos); inserirImovelHelper.setColecaoImovelSubcategoriasRemovidas(colecaoImovelSubcategoriasRemovidas); inserirImovelHelper.setColecaoRamoAtividadesRemovidas(colecaoImovelRamosAtividadesRemovidos); fachada.atualizarImovel(inserirImovelHelper); String mensagemSucesso = "Im�vel de matr�cula " + imovelAtualizar.getId().toString() + " atualizado com sucesso."; // Caso im�vel esteja em processo de faturamento, e o usu�rio n�o // tenha confirmado na tela de confirma�ao sera acrescentado a mensagem de conclus�o // aviso de n�o altera��o dos dados da inscri��o. if(flagNaoConfirmado){ mensagemSucesso = "Im�vel de matr�cula " + imovelAtualizar.getId().toString() + " atualizado com sucesso. \n" + " Aten��o! Dados da inscri��o n�o alterados devido ao im�vel estar em processo de faturamento."; } if(sessao.getAttribute("caminhoVoltarPromais")!=null){ montarPaginaSucesso(httpServletRequest, "Im�vel de matr�cula " + imovelAtualizar.getId().toString() + " atualizado com sucesso.", "Realizar outra Manuten��o de Im�vel", "exibirFiltrarImovelAction.do?menu=sim", "exibirInformarOcorrenciaCadastroAnormalidadeEloAction.do?idImovel=" + imovelAtualizar.getId().toString(), "Informar Ocorr�ncias / Anormalidades", "Retornar ao Consultar Im�vel.", (String)sessao.getAttribute("caminhoVoltarPromais")+".do?promais=nao"); sessao.setAttribute("promaisExecutado", "sim"); sessao.setAttribute("idImovelPromaisExecutado", imovelAtualizar.getId()); }else{ montarPaginaSucesso(httpServletRequest, mensagemSucesso, "Realizar outra Manuten��o de Im�vel", "exibirFiltrarImovelAction.do?menu=sim", "exibirInformarOcorrenciaCadastroAnormalidadeEloAction.do?idImovel=" + imovelAtualizar.getId().toString(), "Informar Ocorr�ncias / Anormalidades"); } if ( sessao.getAttribute("remove") == null ){ sessao.removeAttribute("colecaoEnderecos"); sessao.removeAttribute("imovelAtualizacao"); sessao.removeAttribute("localidade"); sessao.removeAttribute("setorComercial"); sessao.removeAttribute("quadra"); sessao.removeAttribute("colecaoImovelSubCategorias"); sessao.removeAttribute("colecaoImovelRamosAtividadesRemovidos"); sessao.removeAttribute("idQuadraInicial"); } if (sessao.getAttribute("colecaoClientesImoveisRemovidos") != null) { sessao.removeAttribute("colecaoClientesImoveisRemovidos"); } if (sessao.getAttribute("colecaoImovelSubcategoriasRemoviadas") != null) { sessao.removeAttribute("colecaoImovelSubcategoriasRemoviadas"); } // [FS0035] � Verifica se existe RA e ordem pendente if (imovelAtualizar != null && imovelAtualizar.getId() != null && retorno.getName().equals("telaSucesso")) { //Caso n�o tenha permiss�o especial verifica se tem apenas �uma� RA pendente (RGAT_CDSITUACAO = 1) FiltroRegistroAtendimento filtroRegistroAtendimento = new FiltroRegistroAtendimento(); filtroRegistroAtendimento.adicionarCaminhoParaCarregamentoEntidade("solicitacaoTipoEspecificacao"); filtroRegistroAtendimento.adicionarCaminhoParaCarregamentoEntidade("solicitacaoTipoEspecificacao.solicitacaoTipo"); filtroRegistroAtendimento.adicionarParametro( new ParametroSimples (FiltroRegistroAtendimento.IMOVEL_ID , imovelAtualizar.getId() )); filtroRegistroAtendimento.adicionarParametro( new ParametroSimples (FiltroRegistroAtendimento.CODIGO_SITUACAO , ConstantesSistema.SITUACAO_PENDENTE )); Collection colecaoRegistroAtendiomento = fachada.pesquisar( filtroRegistroAtendimento, RegistroAtendimento.class.getName()); if ( colecaoRegistroAtendiomento != null && colecaoRegistroAtendiomento.size() == 1 ) { RegistroAtendimento registroAtendimento = (RegistroAtendimento) Util.retonarObjetoDeColecao(colecaoRegistroAtendiomento); //Caso exista OS pendente o RA n�o poder� ser encerrado. Retornar ao fluxo principal FiltroOrdemServico filtroOrdemServico = new FiltroOrdemServico(); filtroOrdemServico.adicionarParametro( new ParametroSimples(FiltroOrdemServico.REGISTRO_ATENDIMENTO_ID, registroAtendimento.getId())); filtroOrdemServico.adicionarParametro( new ParametroSimples(FiltroOrdemServico.SITUACAO, ConstantesSistema.SITUACAO_PENDENTE ) ); Collection colecaoOrdemServico = fachada.pesquisar( filtroOrdemServico, OrdemServico.class.getName()); if ( colecaoOrdemServico == null || colecaoOrdemServico.isEmpty() ) { // grava o "numeroRA" na sessao para ser recuperado // no action "ExibirEncerrarRegistroAtendimentoAction". sessao.setAttribute("numeroRA",registroAtendimento.getId()); // coloca no request a URL do action que sera processado caso // o usuario pressionar o botao confirmar na tela de confirmacao. httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/exibirEncerrarRegistroAtendimentoAction.do"); httpServletRequest.setAttribute("cancelamento", "TRUE"); httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao2", "N�o"); sessao.setAttribute("idImovel",imovelAtualizar.getId().toString()); //Monta o array de variaveis que sera montada na mensagem de confirma��o String[] mensagem = new String[3]; mensagem[0] = registroAtendimento.getId().toString(); mensagem[1] = registroAtendimento.getSolicitacaoTipoEspecificacao(). getSolicitacaoTipo().getDescricao(); mensagem[2] = registroAtendimento.getSolicitacaoTipoEspecificacao().getDescricao(); // Monta a p�gina de confirma��o para perguntar se o usu�rio // deseja encerrar o registro de atendimento. return montarPaginaConfirmacao("atencao.encerrar_ra_atualizar_imovel", httpServletRequest, actionMapping, mensagem); } } } return retorno; } /** * 1.2. Caso a altera��o da inscri��o acarrete a mudan�a do grupo de faturamento do im�vel * (grupo de faturamento origem (FTGR_ID da tabela ROTA para ROTA_ID=ROTA_ID da tabela QUADRA para QDRA_ID=QDRA_IDANTERIOR) * diferente do grupo de faturamento destino (FTGR_ID da tabela ROTA para ROTA_ID=ROTA_ID da tabela QUADRA para QDRA_ID=QDRA_IDATUAL)): * * @author Arthur Carvalho * @date 16/09/2010 * @param imovelSemAtualizacao * @param resultadoAbaLocalidade * @param helperLocalidade * @return */ private boolean verificarInscricaoAlterada(Imovel imovelSemAtualizacao, ImovelAbaLocalidadeRetornoHelper resultadoAbaLocalidade, ImovelAbaLocalidadeHelper helperLocalidade) { boolean retorno = false; if(imovelSemAtualizacao.getLocalidade()!=null && resultadoAbaLocalidade.getLocalidade()!=null){ if(imovelSemAtualizacao.getLocalidade().getId() .compareTo(resultadoAbaLocalidade.getLocalidade().getId())!=0){ retorno = true; } } if(imovelSemAtualizacao.getSetorComercial()!=null && resultadoAbaLocalidade.getSetorComercial()!=null){ if(imovelSemAtualizacao.getSetorComercial().getId() .compareTo(resultadoAbaLocalidade.getSetorComercial().getId())!=0){ retorno = true; } } if(imovelSemAtualizacao.getQuadra()!=null && resultadoAbaLocalidade.getQuadra()!=null){ if(imovelSemAtualizacao.getQuadra().getId() .compareTo(resultadoAbaLocalidade.getQuadra().getId())!=0){ retorno = true; } } if(imovelSemAtualizacao.getQuadraFace()!=null && resultadoAbaLocalidade.getQuadraFace()!=null){ if(imovelSemAtualizacao.getQuadraFace().getId() .compareTo(resultadoAbaLocalidade.getQuadraFace().getId())!=0){ retorno = true; } } if(imovelSemAtualizacao.getLote() != new Short(helperLocalidade.getLote()).shortValue()){ retorno = true; } if(imovelSemAtualizacao.getSubLote() != new Short(helperLocalidade.getSublote()).shortValue()){ retorno = true; } return retorno; } /** * [SB0004] � Verificar Altera��o da Inscri��o do Im�vel * * @author Arthur Carvalho * @date 16/09/2010 * @param imovelSemAtualizacao * @param resultadoAbaLocalidade * @param helperLocalidade * @return */ private ActionForward verificaInscricaoAlteradaAcarretaMudancaDoGrupoFaturamento(Integer idImovel, Integer idQuadraAnterior,Integer idQuadraAtual, HttpServletRequest httpServletRequest, ActionMapping actionMapping, Fachada fachada, Imovel imovel, ImovelAbaLocalidadeRetornoHelper resultadoAbaLocalidade, ImovelAbaLocalidadeHelper helperLocalidade, HttpSession sessao) { SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); FaturamentoGrupo[] faturamentoGrupos = new FaturamentoGrupo[2]; FaturamentoGrupo faturamentoGrupoOrigem = new FaturamentoGrupo(); FaturamentoGrupo faturamentoGrupoDestino = new FaturamentoGrupo(); //boolean retorno = false; //localiza o action no objeto actionmapping ActionForward retorno = actionMapping.findForward("telaSucesso"); /* * 1. Caso os dados da inscri��o tenham sido alterados e o indicador de altera��o da inscri��o esteja ativo * (PARM_ICALTERACAOINSCRICAOIMOVEL=1 da tabela SISTEMA_PARAMETROS): */ if (sistemaParametro.getIndicadorAlteracaoInscricaoImovel().equals(ConstantesSistema.SIM)){ /* * 1.1.Caso o im�vel esteja em processo de faturamento (existe ocorr�ncia na tabela MOVIMENTO_ROTEIRO_EMPRESA para IMOV_ID=IMOV_ID * da tabela IMOVEL e MREM_AMMOVIMENTO=FTGR_AMREFERENCIA da tabela FATURAMENTO_GRUPO para FTGR_ID=FTGR_ID da * tabela MOVIMENTO_ROTEIRO_EMPRESA): */ //if (fachada.verificarImovelEmProcessoDeFaturamento(imovel.getId())){ httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); httpServletRequest.setAttribute("confirmacaoDupla", "ok"); sessao.setAttribute("remove" , "nao"); return montarPaginaConfirmacaoWizard("atencao.imovel_em_processo_de_faturamento", httpServletRequest, actionMapping); //} } /* * 2.Caso os dados da inscri��o tenham sido alterados e o indicador de altera��o da inscri��o esteja inativo * (PARM_ICALTERACAOINSCRICAOIMOVEL=2 da tabela SISTEMA_PARAMETROS) e o im�vel n�o tenha rota alternativa * (ROTA_IDALTERNATIVA com o valor nulo na tabela IMOVEL): */ else{ faturamentoGrupos = fachada.verificaInscricaoAlteradaAcarretaMudancaDoGrupoFaturamento(idQuadraAnterior, idQuadraAtual); faturamentoGrupoOrigem = faturamentoGrupos[0]; faturamentoGrupoDestino = faturamentoGrupos[1]; //verifica se o imovel foi mudado de grupo ao ser alterado a quadra if ( !faturamentoGrupoOrigem.getId().toString().equals(faturamentoGrupoDestino.getId().toString()) ) { //1.3.1 if ( faturamentoGrupoOrigem.getAnoMesReferencia() > sistemaParametro.getAnoMesFaturamento() ) { //1.3.1.1 if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoOrigem) ) { //1.3.1.1.1 //1.3.1.1.2 httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); httpServletRequest.setAttribute("confirmacaoDupla", "ok"); sessao.setAttribute("remove" , "nao"); return montarPaginaConfirmacaoWizard( "atencao.faturamento_grupo_origem_dados_leitura_gerados", httpServletRequest, actionMapping, idImovel.toString(), faturamentoGrupoDestino.getId().toString() ,faturamentoGrupoOrigem.getId().toString() ); }//1.3.1.2 else { //1.3.1.2.1 if ( faturamentoGrupoDestino.getAnoMesReferencia() > sistemaParametro.getAnoMesFaturamento() ) { //1.3.1.2.1.1.1 if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoDestino)) { //1.3.1.2.1.1.1 //1.3.1.2.1.1.2 httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); httpServletRequest.setAttribute("confirmacaoDupla", "ok"); sessao.setAttribute("remove" , "nao"); return montarPaginaConfirmacaoWizard( "atencao.faturamento_grupo_destino_dados_leitura_gerados", httpServletRequest, actionMapping, idImovel.toString(), faturamentoGrupoDestino.getId().toString() ); }//1.3.1.2.1.2 else { //efetivar a altera��o da inscri��o na tabela IMOVEL atualizarImovel( imovel, resultadoAbaLocalidade, helperLocalidade); } }//1.3.1.2.2 else { //1.3.1.2.2.1 if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoDestino)) { //1.3.1.2.2.1.1 //1.3.1.2.2.1.2 httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); httpServletRequest.setAttribute("confirmacaoDupla", "ok"); sessao.setAttribute("remove" , "nao"); return montarPaginaConfirmacaoWizard( "atencao.dados_leituras_gerados_faturamento_grupo_destino", httpServletRequest, actionMapping, idImovel.toString(), faturamentoGrupoDestino.getId().toString() ); //[SB0005 � Preparar Altera��o Inscri��o no Encerramento Faturamento] } else { //1.3.1.2.2.2 //efetivar a altera��o da inscri��o na tabela IMOVEL atualizarImovel( imovel, resultadoAbaLocalidade, helperLocalidade); } } } } //1.3.2 else { //1.3.2.1 if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoOrigem) ) { //1.3.2.1.1 //1.3.2.1.2 httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); httpServletRequest.setAttribute("confirmacaoDupla", "ok"); sessao.setAttribute("remove" , "nao"); return montarPaginaConfirmacaoWizard( "atencao.dados_leituras_gerados_faturamento_grupo_origem", httpServletRequest, actionMapping, idImovel.toString(), faturamentoGrupoDestino.getId().toString(), faturamentoGrupoOrigem.getId().toString() ); }//1.3.2.2 else { //1.3.2.2.1 if ( faturamentoGrupoDestino.getAnoMesReferencia() > sistemaParametro.getAnoMesFaturamento() ) { //1.3.2.2.1.1 //1.3.2.2.1.2 httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); httpServletRequest.setAttribute("confirmacaoDupla", "ok"); sessao.setAttribute("remove" , "nao"); return montarPaginaConfirmacaoWizard( "atencao.faturamento_grupo_destino_ja_faturado", httpServletRequest, actionMapping, idImovel.toString(), faturamentoGrupoDestino.getId().toString() ); }//1.3.2.2.2 else { //1.3.2.2.2.1 if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoDestino) ) { //1.3.2.2.2.1.1 //1.3.2.2.2.1.2 httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); httpServletRequest.setAttribute("confirmacaoDupla", "ok"); sessao.setAttribute("remove" , "nao"); return montarPaginaConfirmacaoWizard( "atencao.faturamento_grupo_destino_nao_faturado", httpServletRequest, actionMapping, idImovel.toString(), faturamentoGrupoDestino.getId().toString() ); }//1.3.2.2.2.2 else { //efetivar a altera��o da inscri��o na tabela IMOVEL atualizarImovel( imovel, resultadoAbaLocalidade, helperLocalidade); } } } } } } //efetivar a altera��o da inscri��o na tabela IMOVEL atualizarImovel( imovel, resultadoAbaLocalidade, helperLocalidade); return retorno; } /** * [SB0004] � Verificar Altera��o da Inscri��o do Im�vel * * @author Arthur Carvalho * @date 16/09/2010 * @param imovelSemAtualizacao * @param resultadoAbaLocalidade * @param helperLocalidade * @return */ private ActionForward verificaInscricaoAlteradaAcarretaMudancaDoGrupoFaturamento( Imovel imovelSemAtualizacao, Integer idQuadraAtual, HttpServletRequest httpServletRequest, ActionMapping actionMapping, Fachada fachada, Imovel imovel, ImovelAbaLocalidadeRetornoHelper resultadoAbaLocalidade, ImovelAbaLocalidadeHelper helperLocalidade, HttpSession sessao) { SistemaParametro sistemaParametro = fachada .pesquisarParametrosDoSistema(); FaturamentoGrupo[] faturamentoGrupos = new FaturamentoGrupo[2]; FaturamentoGrupo faturamentoGrupoOrigem = new FaturamentoGrupo(); FaturamentoGrupo faturamentoGrupoDestino = new FaturamentoGrupo(); // boolean retorno = false; faturamentoGrupos = fachada .verificaInscricaoAlteradaAcarretaMudancaDoGrupoFaturamento( imovelSemAtualizacao.getQuadra().getId(), idQuadraAtual); faturamentoGrupoOrigem = faturamentoGrupos[0]; faturamentoGrupoDestino = faturamentoGrupos[1]; /** * * * Pamela Gatinho - 02/08/2011 * * Adicionando consulta da rota para verificar se ela j� foi gerada ou * n�o * */ // Rota que o im�vel pertence Rota rotaSemAtualizacao = null; //fachada.obterRotaPorLocalidadeSetorComercial( // imovelSemAtualizacao.getLocalidade().getId(), idQuadraAtual); // localiza o action no objeto actionmapping ActionForward retorno = actionMapping.findForward("telaSucesso"); // verifica se o imovel foi mudado de grupo ao ser alterado a quadra if (!faturamentoGrupoOrigem.getId().toString() .equals(faturamentoGrupoDestino.getId().toString())) { // 1.3.1 if (faturamentoGrupoOrigem.getAnoMesReferencia() > sistemaParametro .getAnoMesFaturamento()) { // 1.3.1.1 if (fachada .verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoOrigem)) { // 1.3.1.1.1 // 1.3.1.1.2 httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); sessao.setAttribute("remove", "nao"); return montarPaginaConfirmacaoWizard( "atencao.faturamento_grupo_origem_dados_leitura_gerados", httpServletRequest, actionMapping, imovelSemAtualizacao.getId().toString(), faturamentoGrupoDestino.getId().toString(), faturamentoGrupoOrigem.getId().toString()); } /** * Alteracao para n�o permitir alterar a rota se * ela estiver sigo gerada */ // else if (rotaSemAtualizacao != null && fachada.verificaGeracaoDadosLeituraRota( // faturamentoGrupoOrigem, rotaSemAtualizacao)) { // System.out // .println("Im�vel em rota j� gerada para refer�ncia!"); // } // 1.3.1.2 else { // 1.3.1.2.1 if (faturamentoGrupoDestino.getAnoMesReferencia() > sistemaParametro .getAnoMesFaturamento()) { // 1.3.1.2.1.1.1 if (fachada .verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoDestino)) { // 1.3.1.2.1.1.1 // 1.3.1.2.1.1.2 httpServletRequest .setAttribute("nomeBotao1", "Sim"); httpServletRequest .setAttribute("nomeBotao3", "N�o"); sessao.setAttribute("remove", "nao"); return montarPaginaConfirmacaoWizard( "atencao.faturamento_grupo_destino_dados_leitura_gerados", httpServletRequest, actionMapping, imovelSemAtualizacao.getId().toString(), faturamentoGrupoDestino.getId().toString()); }/** * Alteracao para n�o permitir alterar a * rota se ela estiver sigo gerada */ // else if (rotaSemAtualizacao != null && fachada.verificaGeracaoDadosLeituraRota( // faturamentoGrupoOrigem, rotaSemAtualizacao)) { // System.out // .println("Im�vel em rota j� gerada para refer�ncia!"); // }// 1.3.1.2.1.2 else { // efetivar a altera��o da inscri��o na tabela // IMOVEL atualizarImovel(imovel, resultadoAbaLocalidade, helperLocalidade); } }// 1.3.1.2.2 else { // 1.3.1.2.2.1 if (fachada .verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoDestino)) { // 1.3.1.2.2.1.1 // 1.3.1.2.2.1.2 httpServletRequest .setAttribute("nomeBotao1", "Sim"); httpServletRequest .setAttribute("nomeBotao3", "N�o"); sessao.setAttribute("remove", "nao"); return montarPaginaConfirmacaoWizard( "atencao.dados_leituras_gerados_faturamento_grupo_destino", httpServletRequest, actionMapping, imovelSemAtualizacao.getId().toString(), faturamentoGrupoDestino.getId().toString()); // [SB0005 � Preparar Altera��o Inscri��o no // Encerramento Faturamento] }/** * Alteracao para n�o permitir alterar a * rota se ela estiver sigo gerada */ // else if (rotaSemAtualizacao != null && fachada.verificaGeracaoDadosLeituraRota( // faturamentoGrupoOrigem, rotaSemAtualizacao)) { // System.out // .println("Im�vel em rota j� gerada para refer�ncia!"); // } else { // 1.3.1.2.2.2 // efetivar a altera��o da inscri��o na tabela // IMOVEL atualizarImovel(imovel, resultadoAbaLocalidade, helperLocalidade); } } } } // 1.3.2 else { // 1.3.2.1 if (fachada .verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoOrigem)) { // 1.3.2.1.1 // 1.3.2.1.2 httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); sessao.setAttribute("remove", "nao"); return montarPaginaConfirmacaoWizard( "atencao.dados_leituras_gerados_faturamento_grupo_origem", httpServletRequest, actionMapping, imovelSemAtualizacao.getId().toString(), faturamentoGrupoDestino.getId().toString(), faturamentoGrupoOrigem.getId().toString()); }/** * Alteracao para n�o permitir alterar a rota se * ela estiver sigo gerada */ // else if (rotaSemAtualizacao != null && fachada.verificaGeracaoDadosLeituraRota( // faturamentoGrupoOrigem, rotaSemAtualizacao)) { // System.out // .println("Im�vel em rota j� gerada para refer�ncia!"); // }// 1.3.2.2 else { // 1.3.2.2.1 if (faturamentoGrupoDestino.getAnoMesReferencia() > sistemaParametro .getAnoMesFaturamento()) { // 1.3.2.2.1.1 // 1.3.2.2.1.2 httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao3", "N�o"); sessao.setAttribute("remove", "nao"); return montarPaginaConfirmacaoWizard( "atencao.faturamento_grupo_destino_ja_faturado", httpServletRequest, actionMapping, imovelSemAtualizacao.getId().toString(), faturamentoGrupoDestino.getId().toString()); }// 1.3.2.2.2 else { // 1.3.2.2.2.1 if (fachada .verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoDestino)) { // 1.3.2.2.2.1.1 // 1.3.2.2.2.1.2 httpServletRequest .setAttribute("nomeBotao1", "Sim"); httpServletRequest .setAttribute("nomeBotao3", "N�o"); sessao.setAttribute("remove", "nao"); return montarPaginaConfirmacaoWizard( "atencao.faturamento_grupo_destino_nao_faturado", httpServletRequest, actionMapping, imovelSemAtualizacao.getId().toString(), faturamentoGrupoDestino.getId().toString()); }/** * Alteracao para n�o permitir alterar a * rota se ela estiver sigo gerada */ // else if (rotaSemAtualizacao != null && fachada.verificaGeracaoDadosLeituraRota( // faturamentoGrupoOrigem, rotaSemAtualizacao)) { // System.out // .println("Im�vel em rota j� gerada para refer�ncia!"); // }// 1.3.2.2.2.2 else { // efetivar a altera��o da inscri��o na tabela // IMOVEL atualizarImovel(imovel, resultadoAbaLocalidade, helperLocalidade); } } } } } // efetivar a altera��o da inscri��o na tabela IMOVEL atualizarImovel(imovel, resultadoAbaLocalidade, helperLocalidade); return retorno; } /** * [SB0005] � Preparar Altera��o Inscri��o no Encerramento Faturamento * @author Arthur Carvalho * @date 17/09/2010 */ private void prepararAlteracaoInscricaoEncerramentoFaturamento( Imovel imovel, Imovel imovelSemAtualizacao, ImovelAbaLocalidadeRetornoHelper resultadoAbaLocalidade, Fachada fachada, ImovelAbaLocalidadeHelper helperLocalidade, Usuario usuario ){ //[FS0038 Verificar Exist�ncia de Altera��o de Inscri��o Pendente para o Im�vel] verificarExistenciaAlteracaoInscricaoPendenteImovel(imovel, fachada); //[FS0039] � Verificar Duplicidade de Inscri��o verificarDuplicidadeInscricao( resultadoAbaLocalidade, helperLocalidade, fachada ); ImovelInscricaoAlterada imovelInscricaoAlterada = new ImovelInscricaoAlterada(); imovelInscricaoAlterada.setImovel(imovel); imovelInscricaoAlterada.setFaturamentoGrupo(null); //Dados da inscri��o Anterior imovelInscricaoAlterada.setLocalidadeAnterior(imovelSemAtualizacao.getLocalidade()); imovelInscricaoAlterada.setSetorComercialAnterior(imovelSemAtualizacao.getSetorComercial()); imovelInscricaoAlterada.setQuadraAnterior(imovelSemAtualizacao.getQuadra()); imovelInscricaoAlterada.setQuadraFaceAnterior( imovelSemAtualizacao.getQuadraFace()!=null?imovelSemAtualizacao.getQuadraFace():null); imovelInscricaoAlterada.setLoteAnterior(imovelSemAtualizacao.getLote()); imovelInscricaoAlterada.setSubLoteAnterior(imovelSemAtualizacao.getSubLote()); //Dados da inscri��o Atual imovelInscricaoAlterada.setLocalidadeAtual(resultadoAbaLocalidade.getLocalidade()); imovelInscricaoAlterada.setSetorComercialAtual(resultadoAbaLocalidade.getSetorComercial()); imovelInscricaoAlterada.setQuadraAtual(resultadoAbaLocalidade.getQuadra()); imovelInscricaoAlterada.setQuadraFaceAtual( resultadoAbaLocalidade.getQuadraFace()!=null?resultadoAbaLocalidade.getQuadraFace():null); imovelInscricaoAlterada.setLoteAtual(new Short(helperLocalidade.getLote())); imovelInscricaoAlterada.setSubLoteAtual(new Short(helperLocalidade.getSublote())); imovelInscricaoAlterada.setIndicadorAtualizado(ConstantesSistema.NAO); imovelInscricaoAlterada.setIndicadorAtualizacaoExcluida(ConstantesSistema.NAO); imovelInscricaoAlterada.setIndicadorImovelExcluido(ConstantesSistema.NAO); imovelInscricaoAlterada.setIndicadorErroAlteracao(null); if (this.getSistemaParametro().getIndicadorAlteracaoInscricaoImovel().toString().equals(""+ConstantesSistema.SIM)){ imovelInscricaoAlterada.setIndicadorAutorizado(ConstantesSistema.NAO); } else { imovelInscricaoAlterada.setIndicadorAutorizado(ConstantesSistema.SIM); } imovelInscricaoAlterada.setUsuarioAlteracao(usuario); imovelInscricaoAlterada.setDataAlteracaoOnline(new Date()); imovelInscricaoAlterada.setDataAlteracaoBatch(null); imovelInscricaoAlterada.setUltimaAlteracao(new Date()); fachada.inserir(imovelInscricaoAlterada); } /** * [FS0039] � Verificar Duplicidade de Inscri��o * @author Arthur Carvalho * @date 17/09/2010 * @return */ private void verificarDuplicidadeInscricao( ImovelAbaLocalidadeRetornoHelper resultadoAbaLocalidade, ImovelAbaLocalidadeHelper helperLocalidade, Fachada fachada ) { ImovelInscricaoAlterada imovelInscricaoAlterada = new ImovelInscricaoAlterada(); Integer idQuadraFace = null; if ( resultadoAbaLocalidade.getQuadraFace() != null && resultadoAbaLocalidade.getQuadraFace().getId() != null ) { idQuadraFace = resultadoAbaLocalidade.getQuadraFace().getId(); } imovelInscricaoAlterada = fachada.verificarDuplicidadeImovelInscricaoAlterada(resultadoAbaLocalidade.getLocalidade().getId(), resultadoAbaLocalidade.getSetorComercial().getId(), resultadoAbaLocalidade.getQuadra().getId(), idQuadraFace, new Integer(helperLocalidade.getLote()), new Integer(helperLocalidade.getSublote()) ); if ( imovelInscricaoAlterada != null && imovelInscricaoAlterada.getId() != null ) { String[] idImovelInscricaoAlterada = new String[1]; idImovelInscricaoAlterada[0] = imovelInscricaoAlterada.getImovel().getId().toString(); throw new ActionServletException("atencao.duplicidade_imovel_inscricao_alterada", "atualizarImovelWizardAction.do?action=exibirAtualizarImovelLocalidadeAction", null, idImovelInscricaoAlterada); } } /** * Atualiza Imovel * @author Arthur Carvalho * @date 17/09/2010 * @param imovel */ private void atualizarImovel(Imovel imovel, ImovelAbaLocalidadeRetornoHelper resultadoAbaLocalidade, ImovelAbaLocalidadeHelper helperLocalidade ){ imovel.setLocalidade(resultadoAbaLocalidade.getLocalidade()); imovel.setSetorComercial(resultadoAbaLocalidade.getSetorComercial()); imovel.setQuadra(resultadoAbaLocalidade.getQuadra()); imovel.setQuadraFace(resultadoAbaLocalidade.getQuadraFace()); imovel.setLote(new Short(helperLocalidade.getLote()).shortValue()); imovel.setSubLote(new Short(helperLocalidade.getSublote()).shortValue()); } /** * * @author Arthur Carvalho * @date 18/09/2010 * @param imovelAtualizar * @param fachada * @return */ private Imovel pesquisarImovel(Integer imovelAtualizar, Fachada fachada){ FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, imovelAtualizar)); Collection colecaoImoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName()); Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoImoveis); return imovel; } /** * [FS0038 Verificar Exist�ncia de Altera��o de Inscri��o Pendente para o Im�vel] * @author Arthur Carvalho * @date 17/09/2010 * @param imovelSemAtualizacao * @param fachada */ private void verificarExistenciaAlteracaoInscricaoPendenteImovel(Imovel imovelSemAtualizacao, Fachada fachada) { FiltroImovelInscricaoAlterada filtroImovelInscricaoAlterada = new FiltroImovelInscricaoAlterada(); filtroImovelInscricaoAlterada.adicionarParametro(new ParametroSimples( FiltroImovelInscricaoAlterada.IMOVEL_ID, imovelSemAtualizacao.getId())); filtroImovelInscricaoAlterada.adicionarParametro(new ParametroSimples( FiltroImovelInscricaoAlterada.INDICADOR_ATUALIZADO, ConstantesSistema.NAO)); filtroImovelInscricaoAlterada.adicionarParametro(new ParametroSimples( FiltroImovelInscricaoAlterada.INDICADOR_ALTERACAO_EXCLUIDA,ConstantesSistema.NAO)); filtroImovelInscricaoAlterada.adicionarParametro(new ParametroNulo( FiltroImovelInscricaoAlterada.INDICADOR_ERRO_ALTERACAO)); Collection<ImovelInscricaoAlterada> colecaoImovelInscricaoAlterada = fachada.pesquisar(filtroImovelInscricaoAlterada, ImovelInscricaoAlterada.class.getName()); if(!Util.isVazioOrNulo(colecaoImovelInscricaoAlterada)){ for (ImovelInscricaoAlterada imovelInscricaoAlterada : colecaoImovelInscricaoAlterada) { imovelInscricaoAlterada.setIndicadorAtualizacaoExcluida(ConstantesSistema.SIM); imovelInscricaoAlterada.setUltimaAlteracao(new Date()); fachada.atualizar(imovelInscricaoAlterada); } } } }