package gcom.gui.cadastro.imovel; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.FiltroImovelInscricaoAlterada; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.ImovelInscricaoAlterada; import gcom.cobranca.bean.ObterDebitoImovelOuClienteHelper; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.ManutencaoRegistroActionForm; import gcom.micromedicao.ControladorMicromedicao; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import java.util.Calendar; import java.util.Collection; import java.util.Date; import java.util.GregorianCalendar; 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; /** * < <Descri��o da Classe>> * * @author Administrador */ public class RemoverManterImovelAction 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 * @throws ControladorException */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ControladorException { ManutencaoRegistroActionForm manutencaoRegistroActionForm = (ManutencaoRegistroActionForm) actionForm; String[] ids = manutencaoRegistroActionForm.getIdRegistrosRemocao(); ActionForward retorno = actionMapping.findForward("telaSucesso"); Fachada fachada = Fachada.getInstancia(); //mensagem de erro quando o usu�rio tenta excluir sem ter selecionado // nenhum //registro if (ids == null || ids.length == 0) { throw new ActionServletException( "atencao.registros.nao_selecionados"); } String[] idsFormatado = new String[ids.length]; for (int i = 0; i < ids.length; i++) { String dadosImovel = ids[i]; String[] idUltimaAlteracao = dadosImovel.split("-"); String idImovel = idUltimaAlteracao[0].trim(); idsFormatado[i] = idImovel; Calendar dataInicio = new GregorianCalendar(); dataInicio.set(Calendar.YEAR,1900); dataInicio.set(Calendar.MONTH,0); dataInicio.set(Calendar.DATE,01); Calendar dataFim = new GregorianCalendar(); dataFim.set(Calendar.YEAR,9999); dataFim.set(Calendar.MONTH,11); dataFim.set(Calendar.DATE,31); ObterDebitoImovelOuClienteHelper obterDebitoImovelOuClienteHelper = fachada.obterDebitoImovelOuCliente(1,idImovel,null,null,"190001","999912",dataInicio.getTime(),dataFim.getTime(),1,1,1,1,1,1,1,null); boolean existeDebito = false; if(obterDebitoImovelOuClienteHelper != null){ //contas if(obterDebitoImovelOuClienteHelper.getColecaoContasValores() != null && !obterDebitoImovelOuClienteHelper.getColecaoContasValores().isEmpty()){ existeDebito = true; }else //credito a realizar if(obterDebitoImovelOuClienteHelper.getColecaoCreditoARealizar() != null && !obterDebitoImovelOuClienteHelper.getColecaoCreditoARealizar().isEmpty()){ existeDebito = true; }else //debito a cobrar if(obterDebitoImovelOuClienteHelper.getColecaoDebitoACobrar() != null && !obterDebitoImovelOuClienteHelper.getColecaoDebitoACobrar().isEmpty()){ existeDebito = true; }else //guias pagamento if(obterDebitoImovelOuClienteHelper.getColecaoGuiasPagamentoValores() != null && !obterDebitoImovelOuClienteHelper.getColecaoGuiasPagamentoValores().isEmpty()){ existeDebito = true; } } //Se existir debito para o imovel if(existeDebito){ throw new ActionServletException("atencao.imovel.possui.debito.nao.excluir"); } FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_AGUA_SITUACAO); filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_ESGOTO_SITUACAO); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID,idImovel)); Collection colecaoImovel = fachada.pesquisar(filtroImovel,Imovel.class.getName()); //[FS0004] - Im�vel possui v�nculos no sistema if(colecaoImovel != null && !colecaoImovel.isEmpty()){ Imovel imovel = (Imovel)colecaoImovel.iterator().next(); if((imovel.getLigacaoAguaSituacao().getId().intValue() == LigacaoAguaSituacao.LIGADO.intValue() || imovel.getLigacaoAguaSituacao().getId().intValue() == LigacaoAguaSituacao.CORTADO.intValue()) || (imovel.getLigacaoEsgotoSituacao().getId().intValue() == LigacaoEsgotoSituacao.LIGADO.intValue())){ throw new ActionServletException("atencao.imovel.possui.ligacao_agua.ligacao_esgoto"); } if((imovel.getLigacaoAgua() != null && imovel.getLigacaoAgua().getHidrometroInstalacaoHistorico() != null) || imovel.getHidrometroInstalacaoHistorico() != null){ throw new ActionServletException("atencao.imovel.possui.hidrometro.ligacao.poco"); } FiltroImovel filtroImovelVinculados = new FiltroImovel(); filtroImovelVinculados.adicionarParametro(new ParametroSimples("imovelCondominio.id", imovel.getId())); Collection<Imovel> imovelPesquisadoVinculados = fachada.pesquisar(filtroImovelVinculados, Imovel.class.getName()); if((imovel.getIndicadorImovelCondominio() != null && imovel.getIndicadorImovelCondominio().shortValue() == Imovel.IMOVEL_CONDOMINIO.shortValue()) && (imovelPesquisadoVinculados != null && !imovelPesquisadoVinculados.isEmpty()) ){ //N�o � poss�vel excluir o(s) im�vel(is) selecionado(s) devido a ser(em) im�vel(is) condom�nio, com outros im�veis associados throw new ActionServletException( "atencao.imovel.ser.condominio.outros.imoveis"); } } } /** 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. */ HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO); fachada.removerImovel(ids, usuarioLogado); // [FS0038 Verificar Exist�ncia de Altera��o de Inscri��o Pendente para o Im�vel] Date dataAtual = new Date(); for (int i = 0; i < ids.length; i++) { String dadosImovel = ids[i]; String[] idUltimaAlteracao = dadosImovel.split("-"); String idImovel = idUltimaAlteracao[0].trim(); FiltroImovelInscricaoAlterada filtroImovelInscricaoAlterada = new FiltroImovelInscricaoAlterada(); filtroImovelInscricaoAlterada.adicionarParametro( new ParametroSimples( FiltroImovelInscricaoAlterada.IMOVEL_ID, idImovel)); 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.setIndicadorImovelExcluido(ConstantesSistema.SIM); imovelInscricaoAlterada.setUltimaAlteracao(dataAtual); fachada.atualizar(imovelInscricaoAlterada); } } } //Monta a p�gina de sucesso if (retorno.getName().equalsIgnoreCase("telaSucesso")) { montarPaginaSucesso(httpServletRequest, ids.length + " Im�vel(is) removido(s) com sucesso.", "Realizar outra Manuten��o de Im�vel", "exibirFiltrarImovelAction.do"); } return retorno; } }