package gcom.atendimentopublico; import gcom.atendimentopublico.bean.ContratoPrestacaoServicoHelper; import gcom.atendimentopublico.bean.DadosLigacoesBoletimCadastroHelper; import gcom.atendimentopublico.bean.EfetuarLigacaoAguaComInstalacaoHidrometroSemRAHelper; import gcom.atendimentopublico.bean.IntegracaoComercialHelper; import gcom.atendimentopublico.bean.UnidadesFilhasHelper; import gcom.atendimentopublico.ligacaoagua.ControladorLigacaoAguaLocal; import gcom.atendimentopublico.ligacaoagua.ControladorLigacaoAguaLocalHome; import gcom.atendimentopublico.ligacaoagua.CorteTipo; import gcom.atendimentopublico.ligacaoagua.FiltroCorteTipo; import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaDiametro; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaMaterial; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoagua.RamalLocalInstalacao; import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgoto; import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoPerfil; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgoto; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoDiametro; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoMaterial; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoPerfil; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao; import gcom.atendimentopublico.ordemservico.Atividade; import gcom.atendimentopublico.ordemservico.BoletimOsConcluida; import gcom.atendimentopublico.ordemservico.ControladorOrdemServicoLocal; import gcom.atendimentopublico.ordemservico.ControladorOrdemServicoLocalHome; import gcom.atendimentopublico.ordemservico.FiltroAtividade; import gcom.atendimentopublico.ordemservico.FiltroMaterial; import gcom.atendimentopublico.ordemservico.FiltroOrdemServico; import gcom.atendimentopublico.ordemservico.FiltroOrdemServicoUnidade; import gcom.atendimentopublico.ordemservico.FiltroServicoPerfilTipo; import gcom.atendimentopublico.ordemservico.FiltroServicoTipo; import gcom.atendimentopublico.ordemservico.FiltroServicoTipoAtividade; import gcom.atendimentopublico.ordemservico.FiltroServicoTipoBoletim; import gcom.atendimentopublico.ordemservico.FiltroServicoTipoMaterial; import gcom.atendimentopublico.ordemservico.FiltroServicoTipoOperacao; import gcom.atendimentopublico.ordemservico.FiltroServicoTipoPrioridade; import gcom.atendimentopublico.ordemservico.FiltroServicoTipoReferencia; import gcom.atendimentopublico.ordemservico.FiltroServicoTipoSubgrupo; import gcom.atendimentopublico.ordemservico.FiscalizacaoSituacaoServicoACobrar; import gcom.atendimentopublico.ordemservico.Material; import gcom.atendimentopublico.ordemservico.MaterialUnidade; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.OrdemServicoFoto; import gcom.atendimentopublico.ordemservico.OrdemServicoProgramacao; import gcom.atendimentopublico.ordemservico.OrdemServicoUnidade; import gcom.atendimentopublico.ordemservico.OsReferidaRetornoTipo; import gcom.atendimentopublico.ordemservico.ServicoCobrancaValor; import gcom.atendimentopublico.ordemservico.ServicoPerfilTipo; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.atendimentopublico.ordemservico.ServicoTipoAtividade; import gcom.atendimentopublico.ordemservico.ServicoTipoAtividadePK; import gcom.atendimentopublico.ordemservico.ServicoTipoBoletim; import gcom.atendimentopublico.ordemservico.ServicoTipoMaterial; import gcom.atendimentopublico.ordemservico.ServicoTipoMaterialPK; import gcom.atendimentopublico.ordemservico.ServicoTipoMotivoEncerramento; import gcom.atendimentopublico.ordemservico.ServicoTipoOperacao; import gcom.atendimentopublico.ordemservico.ServicoTipoOperacaoPK; import gcom.atendimentopublico.ordemservico.ServicoTipoPrioridade; import gcom.atendimentopublico.ordemservico.ServicoTipoReferencia; import gcom.atendimentopublico.ordemservico.ServicoTipoSubgrupo; import gcom.atendimentopublico.ordemservico.SupressaoMotivo; import gcom.atendimentopublico.ordemservico.bean.EmitirOrdemDeFiscalizacaoHelper; import gcom.atendimentopublico.ordemservico.bean.ObterValorDebitoHelper; import gcom.atendimentopublico.registroatendimento.AtendimentoMotivoEncerramento; import gcom.atendimentopublico.registroatendimento.EspecificacaoImovSitCriterio; import gcom.atendimentopublico.registroatendimento.EspecificacaoImovelSituacao; import gcom.atendimentopublico.registroatendimento.FiltroEspecificacaoImovelSituacao; import gcom.atendimentopublico.registroatendimento.FiltroLocalidadeEspecificacaoUnidade; import gcom.atendimentopublico.registroatendimento.LocalidadeEspecificacaoUnidade; import gcom.atendimentopublico.registroatendimento.RegistroAtendimento; import gcom.atendimentopublico.registroatendimento.VisualizacaoRegistroAtendimentoUrgencia; import gcom.batch.ControladorBatchLocal; import gcom.batch.ControladorBatchLocalHome; import gcom.batch.UnidadeProcessamento; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.cliente.ClienteTipo; import gcom.cadastro.cliente.FiltroCliente; import gcom.cadastro.cliente.FiltroClienteImovel; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.endereco.Cep; import gcom.cadastro.endereco.ControladorEnderecoLocal; import gcom.cadastro.endereco.ControladorEnderecoLocalHome; import gcom.cadastro.geografico.Municipio; import gcom.cadastro.imovel.AreaConstruidaFaixa; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.CategoriaTipo; import gcom.cadastro.imovel.ControladorImovelLocal; import gcom.cadastro.imovel.ControladorImovelLocalHome; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.FiltroImovelPerfil; import gcom.cadastro.imovel.FiltroImovelSubCategoria; import gcom.cadastro.imovel.FiltroImovelSuprimido; import gcom.cadastro.imovel.FiltroSubCategoria; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.imovel.ImovelSubcategoria; import gcom.cadastro.imovel.ImovelSuprimido; import gcom.cadastro.imovel.Subcategoria; import gcom.cadastro.localidade.ControladorLocalidadeLocal; import gcom.cadastro.localidade.ControladorLocalidadeLocalHome; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.Quadra; import gcom.cadastro.localidade.SetorComercial; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.cadastro.localidade.bean.IntegracaoQuadraFaceHelper; import gcom.cadastro.sistemaparametro.FiltroSistemaParametro; import gcom.cadastro.sistemaparametro.NacionalFeriado; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.cobranca.CobrancaAcaoAtividadeComandoFiscalizacaoSituacao; import gcom.cobranca.CobrancaBoletimMedicao; import gcom.cobranca.ControladorCobrancaLocal; import gcom.cobranca.ControladorCobrancaLocalHome; import gcom.cobranca.FiltroCobrancaBoletimMedicao; import gcom.cobranca.bean.ContaValoresHelper; import gcom.cobranca.bean.GuiaPagamentoValoresHelper; import gcom.cobranca.bean.ObterDebitoImovelOuClienteHelper; import gcom.fachada.Fachada; import gcom.faturamento.ControladorFaturamentoLocal; import gcom.faturamento.ControladorFaturamentoLocalHome; import gcom.faturamento.autoinfracao.AutoInfracaoSituacao; import gcom.faturamento.autoinfracao.AutosInfracao; import gcom.faturamento.autoinfracao.AutosInfracaoDebitoACobrar; import gcom.faturamento.consumotarifa.ConsumoTarifa; import gcom.faturamento.credito.CreditoARealizar; import gcom.faturamento.credito.CreditoOrigem; import gcom.faturamento.debito.DebitoACobrar; import gcom.faturamento.debito.DebitoACobrarGeral; import gcom.faturamento.debito.DebitoTipo; import gcom.gui.atendimentopublico.registroatendimento.FiltrarAcompanhamentoRegistroAtendimentoHelper; import gcom.gui.relatorio.atendimentopublico.FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper; import gcom.gui.relatorio.atendimentopublico.FiltrarRelatorioOSSituacaoHelper; import gcom.interceptor.RegistradorOperacao; import gcom.micromedicao.ControladorMicromedicaoLocal; import gcom.micromedicao.ControladorMicromedicaoLocalHome; import gcom.micromedicao.consumo.LigacaoTipo; import gcom.micromedicao.hidrometro.FiltroHidrometro; import gcom.micromedicao.hidrometro.FiltroHidrometroCapacidade; import gcom.micromedicao.hidrometro.FiltroHidrometroInstalacaoHistorico; import gcom.micromedicao.hidrometro.Hidrometro; import gcom.micromedicao.hidrometro.HidrometroCapacidade; import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico; import gcom.micromedicao.hidrometro.HidrometroLocalInstalacao; import gcom.micromedicao.hidrometro.HidrometroMarca; import gcom.micromedicao.hidrometro.HidrometroProtecao; import gcom.micromedicao.hidrometro.HidrometroSituacao; import gcom.micromedicao.medicao.MedicaoTipo; import gcom.relatorio.atendimentopublico.RelatorioAcompanhamentoBoletimMedicaoBean; import gcom.relatorio.atendimentopublico.RelatorioAcompanhamentoBoletimMedicaoHelper; import gcom.relatorio.atendimentopublico.RelatorioAcompanhamentoRAHelper; import gcom.relatorio.atendimentopublico.RelatorioCertidaoNegativaClienteBean; import gcom.relatorio.atendimentopublico.RelatorioCertidaoNegativaHelper; import gcom.relatorio.atendimentopublico.RelatorioCertidaoNegativaItemBean; import gcom.relatorio.atendimentopublico.RelatorioContratoPrestacaoServicoJuridicoBean; import gcom.relatorio.atendimentopublico.RelatorioOSSituacaoBean; import gcom.relatorio.atendimentopublico.RelatorioOSSituacaoHelper; import gcom.relatorio.atendimentopublico.ordemservico.FiltrarRelatorioReligacaoClientesInadiplentesHelper; import gcom.relatorio.atendimentopublico.ordemservico.RelatorioReligacaoClientesInadiplentesHelper; import gcom.seguranca.ControladorPermissaoEspecialLocal; import gcom.seguranca.ControladorPermissaoEspecialLocalHome; import gcom.seguranca.acesso.FiltroOperacao; import gcom.seguranca.acesso.Operacao; import gcom.seguranca.acesso.OperacaoEfetuada; import gcom.seguranca.acesso.usuario.FiltroUsuario; import gcom.seguranca.acesso.usuario.IRepositorioUsuario; import gcom.seguranca.acesso.usuario.RepositorioUsuarioHBM; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAcao; import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper; import gcom.seguranca.transacao.ControladorTransacaoLocal; import gcom.seguranca.transacao.ControladorTransacaoLocalHome; import gcom.util.ConstantesJNDI; import gcom.util.ConstantesSistema; import gcom.util.ControladorComum; import gcom.util.ControladorException; import gcom.util.ControladorUtilLocal; import gcom.util.ControladorUtilLocalHome; import gcom.util.ErroRepositorioException; import gcom.util.IRepositorioUtil; import gcom.util.RepositorioUtilHBM; import gcom.util.ServiceLocator; import gcom.util.ServiceLocatorException; import gcom.util.SistemaException; import gcom.util.Util; import gcom.util.ZipUtil; import gcom.util.filtro.Filtro; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.math.BigDecimal; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.zip.ZipOutputStream; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; public class ControladorAtendimentoPublicoSEJB extends ControladorComum { private static final long serialVersionUID = 1L; private IRepositorioAtendimentoPublico repositorioAtendimentoPublico = null; private IRepositorioUtil repositorioUtil = null; private IRepositorioUsuario repositorioUsuario = null; public void ejbCreate() throws CreateException { repositorioAtendimentoPublico = RepositorioAtendimentoPublicoHBM.getInstancia(); repositorioUtil = RepositorioUtilHBM.getInstancia(); repositorioUsuario = RepositorioUsuarioHBM.getInstancia(); } /** * [UC0354] Efetuar Corte de Liga��o de �gua. * * Permite efetuar Liga��o de �gua ou pelo menu ou pela funcionalidade * encerrar a Execu��o da ordem de servi�o. * * [FS0003] Validar Consumo M�nimo. [SB0001] Gerar Liga��o de �gua [SB0002] * Atualizar Im�vel Situa��o do Imovel. * * @author Leandro Cavalcanti. * @date 03/08/2006 * * @param ligacaoAgua * @param imovel * @throws ControladorException */ public void efetuarLigacaoAgua( IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { LigacaoAgua ligacaoAgua = integracaoComercialHelper.getLigacaoAgua(); Imovel imovel = integracaoComercialHelper.getImovel(); OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); String qtdParcelas = integracaoComercialHelper.getQtdParcelas(); Usuario usuarioLogado = integracaoComercialHelper.getUsuarioLogado(); this.getControladorMicromedicao().validarImovelEmCampo(imovel.getId()); if (ligacaoAgua != null && imovel != null) { // [SB0001] Gerar Liga��o de �gua // LAGU_ID ligacaoAgua.setId(imovel.getId()); FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples( FiltroLigacaoAgua.ID, imovel.getId())); Collection colecaoLigacaoAguaBase = getControladorUtil().pesquisar( filtroLigacaoAgua, LigacaoAgua.class.getName()); // LAGU_DTIMPLANTACAO ligacaoAgua.setDataImplantacao(new Date()); // LAGU_TMULTIMAALTERACAO Date dataCorrente = new Date(); ligacaoAgua.setUltimaAlteracao(dataCorrente); // ------------ REGISTRAR TRANSA��O---------------------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_LIGACAO_AGUA_EFETUAR, ligacaoAgua.getId(), ligacaoAgua.getId(), new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(ligacaoAgua); // ------------ REGISTRAR TRANSA��O---------------------------- //Altera��o feita por S�vio Luiz //Data: 25/05/2011 if (!colecaoLigacaoAguaBase.isEmpty()) { getControladorUtil().atualizar(ligacaoAgua); }else{ getControladorUtil().inserir(ligacaoAgua); } LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); ligacaoAguaSituacao.setId(LigacaoAguaSituacao.LIGADO); getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoAgua(imovel, ligacaoAguaSituacao); if (imovel.getLigacaoEsgotoSituacao() != null && imovel.getLigacaoEsgotoSituacao().getId().intValue() == LigacaoEsgotoSituacao.LIG_FORA_DE_USO .intValue()) { LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao(); ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO); imovel.setUltimaAlteracao(new Date()); // [SB0002] Atualizar Im�vel getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto( imovel, ligacaoEsgotoSituacao); } } if (ordemServico != null) { if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { this .getControladorOrdemServico() .verificarOrdemServicoControleConcorrencia(ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(qtdParcelas), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } } /** * [UC0354] Efetuar Liga��o de �gua. * * Permite validar Liga��o de �gua Efetuar ou pelo menu ou pela * funcionalidade encerrar a Execu��o da ordem de servi�o. * * * * @author Leandro Cavalcanti. * @date 12/07/2006 * * * @param imovel * @throws ControladorException */ public void validarLigacaoAguaEfetuar(Imovel imovel, LigacaoAgua ligacaoAgua) throws ControladorException { // [FS0003] Validar Consumo Minimo if (ligacaoAgua != null) { this.validarConsumoMinimoLigacaoAguaImovel(imovel, ligacaoAgua .getNumeroConsumoMinimoAgua().toString()); } } /** * [UC0354] Efetuar Liga��o de �gua. * * Permite validar Liga��o de �gua Exibir ou pelo menu ou pela * funcionalidade encerrar a Execu��o da ordem de servi�o. * * [FS0008] Verificar Situa��o Rede de �gua na Quadra. [FS0007] Verificar * Situa��o do Imovel. [FS0002] Validar Situa��o de �gua do Im�vel * * @author Leandro Cavalcanti. * @date 12/07/2006 * * * @param imovel * @throws ControladorException */ public void validarLigacaoAguaExibir(OrdemServico ordem, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR LIGA��O DE �GUA, n�o ser� necess�rio realizar as * valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao(ordem.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_LIGACAO_AGUA_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordem.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_LIGACAO_AGUA) { throw new ControladorException( "atencao.servico_associado_ligacao_agua_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 e caso 5 // this.getControladorOrdemServico().validaOrdemServico(ordem,veioEncerrarOS); this.getControladorOrdemServico().validaOrdemServicoDiasAditivoPrazo(ordem,veioEncerrarOS); // Caso 4 if (ordem.getRegistroAtendimento().getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordem.getRegistroAtendimento().getId()); } Imovel imovel = ordem.getRegistroAtendimento().getImovel(); // [FS0002] Validar Situa��o de �gua do Im�vel. if (imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.POTENCIAL .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.FACTIVEL .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.EM_FISCALIZACAO .intValue()) { throw new ControladorException( "atencao.situacao_validar_ligacao_agua_invalida_exibir", null, imovel.getLigacaoAguaSituacao().getDescricao()); } /* * [FS0007] Verificar Situa��o Rede de �gua na Quadra * * Integra��o com o conceito de face da quadra Raphael Rossiter em * 21/05/2009 */ IntegracaoQuadraFaceHelper integracao = this.getControladorLocalidade() .integracaoQuadraFace(imovel.getId()); if ((integracao.getIndicadorRedeAgua()).equals(Quadra.SEM_REDE)) { throw new ControladorException( "atencao.seituacao_rede_agua_quadra", null, imovel.getId() + ""); } // [FS0006] Verificar Situa��o do Imovel if (imovel.getIndicadorExclusao() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.situacao_imovel_indicador_exclusao", null, imovel .getId() + ""); } /* * =================================================================================== */ } /** * [UC0353] Efetuar Liga��o de Esgoto. * * Permite validar Liga��o de esgoto Exibir ou pelo menu ou pela * funcionalidade encerrar a Execu��o da ordem de servi�o. * * [FS0008] Verificar Situa��o Rede de Esgoto na Quadra. [FS0007] Verificar * Situa��o do Imovel. [FS0002] Validar Situa��o de Esgoto do Im�vel * * @author Leandro Cavalcanti. * @date 12/07/2006 * * * @param imovel * @throws ControladorException */ public void validarLigacaoEsgotoExibir(OrdemServico ordem, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR LIGA��O DE ESGOTO, n�o ser� necess�rio realizar as * valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao(ordem.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_LIGACAO_ESGOTO_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordem.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_LIGACAO_ESGOTO) { throw new ControladorException( "atencao.servico_associado_ligacao_esgoto_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordem, veioEncerrarOS); // Caso 4 if (ordem.getRegistroAtendimento().getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordem.getRegistroAtendimento().getId()); } Imovel imovel = ordem.getRegistroAtendimento().getImovel(); // [FS0002] Validar Situa��o de �gua do Im�vel. if (imovel.getLigacaoEsgotoSituacao().getId().intValue() != LigacaoEsgotoSituacao.POTENCIAL .intValue() && imovel.getLigacaoEsgotoSituacao().getId().intValue() != LigacaoEsgotoSituacao.FACTIVEL .intValue() && imovel.getLigacaoEsgotoSituacao().getId().intValue() != LigacaoEsgotoSituacao.EM_FISCALIZACAO .intValue()) { throw new ControladorException( "atencao.situacao_validar_ligacao_esgoto_invalida_exibir", null, imovel.getLigacaoAguaSituacao().getDescricao()); } /* * [FS0003] Verificar Situa��o Rede de �gua na Quadra * * Integra��o com o conceito de face da quadra Raphael Rossiter em * 17/09/2009 */ IntegracaoQuadraFaceHelper integracao = this.getControladorLocalidade() .integracaoQuadraFace(imovel.getId()); if ((integracao.getIndicadorRedeEsgoto()).equals(Quadra.SEM_REDE)) { throw new ControladorException( "atencao.percentual_rede_esgoto_quadra", null, imovel .getId() + ""); } // [FS0006] Verificar Situa��o do Imovel if (imovel.getIndicadorExclusao() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "situacao_imovel_indicador_exclusao_esgoto", null, imovel .getId() + ""); } /* * =================================================================================== */ } /** * * Este m�todo se destina a validar todas as situa��es e particularidades da * Liga��o de esgoto do Im�vel no momento da atualiza��o. // [UC0105] - * Obter Consumo M�nimo da Liga��o //[FS0003] Validar Consumo Minimo * * @author Leandro Cavalcanti * @date 20/07/2006 * * @param volumeMinimoFixado * @param ligacaoEsgoto */ public Integer validarConsumoMinimoLigacaoAguaImovel(Imovel imovel, String volumeMinimoFixado) throws ControladorException { // [FS0003] Validar Consumo Minimo /* * atencao.situacao_volume_minimo_fixado_nao_multiplo= Valor do volume * M�nimo Fixado deve ser alterado para {0} valor multiplo de quantidade * de economias {1}. */ // [UC0105] - Obter Consumo M�nimo da Liga��o int consumoMinimoObtido = getControladorMicromedicao() .obterConsumoMinimoLigacao(imovel, null); Integer consumoMinimoObtido1 = new Integer(consumoMinimoObtido); // Verificar se o volume M�nimo informado seja menor que o valor // M�nimo obtido para Im�vel. if (volumeMinimoFixado != null && !volumeMinimoFixado.trim().equals("")) { if (!volumeMinimoFixado.trim().equalsIgnoreCase( ConstantesSistema.SET_ZERO.toString())) { Integer consumoInformado = Integer.parseInt(volumeMinimoFixado); if (consumoInformado.intValue() < consumoMinimoObtido1 .intValue()) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.situacao_volume_minimo_fixado_menor_consumo_calculado", null, consumoMinimoObtido + ""); } } } else { throw new ControladorException("atencao.requerid", null, "Situa��o da Liga��o de Esgoto"); } return new Integer(volumeMinimoFixado); } /** * * Este m�todo se destina a validar todas as situa��es e particularidades da * Liga��o de agua do Im�vel no momento da exibi��o. * * [FS0001] Verificar exist�ncia da matr�cula do Im�vel. [FS0002] Verificar * Situa��o do Imovel. [FS0003] Validar Situa��o de Esgoto do Im�vel. * * @author Rafael Pinto * @date 20/07/2006 * * @param Imovel */ public void validarExibirLigacaoAguaImovel(OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_LIGACAO_AGUA && ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_CONFIRMAR_DADOS_LIGACAO_AGUA && ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_CONFIRMAR_DADOS_CORTE_LIGACAO_AGUA && ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_CORTE_LIGACAO_AGUA && ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_CONFIRMAR_DADOS_SUPRESSAO_LIGACAO_AGUA && ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_SUPRESSAO_LIGACAO_AGUA) { throw new ControladorException( "atencao.servico_associado_atualizar_ligacao_agua_invalida"); } // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordemServico, veioEncerrarOS); // Caso 4 if (ordemServico.getRegistroAtendimento().getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordemServico.getRegistroAtendimento().getId()); } // [FS0004] Validar Data do Encerramento da Ordem de Servico if (ordemServico.getServicoTipo().getId().intValue() == ServicoTipo.TIPO_LIGACAO_AGUA || ordemServico.getServicoTipo().getId().intValue() == ServicoTipo.TIPO_CORTE_LIGACAO_AGUA || ordemServico.getServicoTipo().getId().intValue() == ServicoTipo.TIPO_SUPRESSAO_LIGACAO_AGUA) { Date dataEncerramento = ordemServico.getDataEncerramento(); if (dataEncerramento != null) { GregorianCalendar dtEncerramento = new GregorianCalendar(); dtEncerramento.setTime(dataEncerramento); int qtdDias = Util.obterQuantidadeDiasEntreDuasDatas( dtEncerramento.getTime(), new Date()); FiltroSistemaParametro filtroSistemaParametro = new FiltroSistemaParametro(); Collection colecao = getControladorUtil().pesquisar( filtroSistemaParametro, SistemaParametro.class.getName()); if (colecao != null && !colecao.isEmpty()) { SistemaParametro sistemaParametro = (SistemaParametro) Util .retonarObjetoDeColecao(colecao); int qtdMaximo = sistemaParametro.getDiasMaximoAlterarOS() .intValue(); if (qtdDias > qtdMaximo) { String[] msg = new String[2]; msg[0] = "" + ordemServico.getId(); msg[1] = "" + qtdMaximo; throw new ControladorException( "atencao.ligacao_agua_data_encerramento_os_invalida", null, msg); } } } } Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); // [FS0002] Verificar Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && imovel.getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } if (imovel.getLigacaoAgua() == null) { throw new ControladorException("atencao.naocadastrado", null, "Ligacao de �gua"); } // [FS003] Validar Situa��o de �gua do Im�vel. if (imovel.getLigacaoAguaSituacao().getId().intValue() == LigacaoAguaSituacao.POTENCIAL .intValue() || imovel.getLigacaoAguaSituacao().getId().intValue() == LigacaoAguaSituacao.FACTIVEL .intValue()) { throw new ControladorException( "atencao.atualizar_ligacao_agua_situacao_invalida", null, imovel.getLigacaoAguaSituacao().getDescricao()); } } /** * * Este m�todo se destina a validar todas as situa��es e particularidades da * retirada de hidrometro * * @author Rafael Pinto * @date 25/07/2006 * * @param OrdemServico */ public void validarExibirRetiradaHidrometroAgua(OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR RETIRADA HIDROMETRO, n�o ser� necess�rio realizar as * valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao( ordemServico.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_RETIRADA_HIDROMETRO_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 int servicoTipo = ordemServico.getServicoTipo().getId().intValue(); if (servicoTipo != ServicoTipo.TIPO_RETIRADA_HIDROMETRO) { throw new ControladorException( "atencao.servico_associado_retirada_hidrometro_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordemServico, veioEncerrarOS); // Caso 4 Imovel imovel = null; if ((ordemServico.getRegistroAtendimento() != null && ordemServico .getRegistroAtendimento().getImovel() == null) && ordemServico.getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_imovel_invalida"); } else { if (ordemServico.getImovel() != null) { imovel = ordemServico.getImovel(); } else { imovel = ordemServico.getRegistroAtendimento().getImovel(); } } // [FS0002] Verificar Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && imovel.getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } // // [FS0003] - Verificar Situa��o de Agua ou Esgoto. // // [FS0004] - Verificar a exist�ncia de hidr�metro no Im�vel/Liga��o // de // // �gua // // // Caso 1 // if (servicoTipo == ServicoTipo.TIPO_RETIRADA_HIDROMETRO_POCO) { // // LigacaoEsgotoSituacao ligacaoEsgotoSituacao = imovel // .getLigacaoEsgotoSituacao(); // // if (ligacaoEsgotoSituacao.getId().intValue() != // LigacaoEsgotoSituacao.LIGADO // && ligacaoEsgotoSituacao.getId().intValue() != // LigacaoEsgotoSituacao.LIG_FORA_DE_USO // && ligacaoEsgotoSituacao.getId().intValue() != // LigacaoEsgotoSituacao.TAMPONADO) { // // throw new ControladorException( // "atencao.situacao_retirada_hidrometro_poco_invalida", // null, ligacaoEsgotoSituacao.getDescricao()); // } // // if (imovel.getHidrometroInstalacaoHistorico() == null) { // throw new ControladorException( // "atencao.imovel_poco_sem_hidrometro", null, "" // + imovel.getId()); // } // // // Caso 2 // } else if (servicoTipo == ServicoTipo.TIPO_RETIRADA_HIDROMETRO) { // // LigacaoAguaSituacao ligacaoAguaSituacao = imovel // .getLigacaoAguaSituacao(); // // if (ligacaoAguaSituacao.getId().intValue() != // LigacaoAguaSituacao.LIGADO // && ligacaoAguaSituacao.getId().intValue() != // LigacaoAguaSituacao.CORTADO) { // // throw new ControladorException( // "atencao.situacao_retirada_hidrometro_poco_invalida", // null, ligacaoAguaSituacao.getDescricao()); // } // // if (imovel.getLigacaoAgua().getHidrometroInstalacaoHistorico() == // null) { // throw new ControladorException( // "atencao.imovel_ligacao_agua_sem_hidrometro", null, "" // + imovel.getId()); // } // } /* * =================================================================================== */ } /** * * Este m�todo se destina a validar todas as situa��es e particularidades da * remanejamento de hidrometro * * @author Rafael Pinto * @date 25/07/2006 * * @param OrdemServico */ public void validarExibirRemanejmentoHidrometroAgua( OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR REMANEJAMENTO HIDROMETRO, n�o ser� necess�rio * realizar as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao( ordemServico.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_REMANEJAMENTO_HIDROMETRO_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 int servicoTipo = ordemServico.getServicoTipo().getId().intValue(); if (servicoTipo != ServicoTipo.TIPO_REMANEJAMENTO_HIDROMETRO_LIGACAO_AGUA) { throw new ControladorException( "atencao.servico_associado_remanejamento_hidrometro_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordemServico, veioEncerrarOS); //Caso 4 Imovel imovel = null; if ((ordemServico.getRegistroAtendimento() != null && ordemServico .getRegistroAtendimento().getImovel() == null) && ordemServico.getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_imovel_invalida"); } else { if (ordemServico.getImovel() != null) { imovel = ordemServico.getImovel(); } else { imovel = ordemServico.getRegistroAtendimento().getImovel(); } } // [FS0002] Verificar Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && imovel.getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } if (imovel.getLigacaoAgua() == null) { throw new ControladorException("atencao.naocadastrado", null, "Liga��o de �gua"); } // [FS0003] - Verificar a exist�ncia de hidr�metro no Im�vel // Caso 1 /* * if (servicoTipo == ServicoTipo.TIPO_REMANEJAMENTO_HIDROMETRO_POCO) { * if (imovel.getHidrometroInstalacaoHistorico() == null) { throw new * ControladorException( "atencao.imovel_poco_sem_hidrometro", null, "" + * imovel.getId()); } // Caso 2 } else if (servicoTipo == * ServicoTipo.TIPO_REMANEJAMENTO_HIDROMETRO_LIGACAO_AGUA) { if * (imovel.getLigacaoAgua().getHidrometroInstalacaoHistorico() == null) { * throw new ControladorException( * "atencao.imovel_ligacao_agua_sem_hidrometro", null, "" + * imovel.getId()); } } */ if (ordemServico.getRegistroAtendimento() == null || ordemServico.getRegistroAtendimento() .getSolicitacaoTipoEspecificacao().getIndicadorLigacaoAgua() .equals(MedicaoTipo.LIGACAO_AGUA.shortValue())) { if (imovel.getLigacaoAgua().getHidrometroInstalacaoHistorico() == null) { throw new ControladorException( "atencao.imovel_ligacao_agua_sem_hidrometro", null, "" + imovel.getId()); } } else { if (imovel.getHidrometroInstalacaoHistorico() == null) { throw new ControladorException( "atencao.imovel_poco_sem_hidrometro", null, "" + imovel.getId()); } } /* * =================================================================================== */ } /** * * Este m�todo se destina a validar todas as situa��es e particularidades do * substitui��o de hidrometro * * @author Rafael Pinto * @date 31/07/2006 * * @param OrdemServico */ public void validarExibirSubstituicaoHidrometro(OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR SUBSTITUICAO HIDROMETRO, n�o ser� necess�rio * realizar as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao( ordemServico.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_SUBSTITUICAO_HIDROMETRO_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 int servicoTipo = ordemServico.getServicoTipo().getId().intValue(); if (servicoTipo != ServicoTipo.TIPO_EFETUAR_SUBSTITUICAO_HIDROMETRO) { throw new ControladorException( "atencao.servico_associado_substituicao_hidrometro_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordemServico, veioEncerrarOS); // Caso 4 /* * Autor: Vivianne Sousa Data: 11/12/2007 Analista Responsavel: Denys */ Imovel imovel = null; if ((ordemServico.getRegistroAtendimento() != null && ordemServico .getRegistroAtendimento().getImovel() == null) && ordemServico.getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_imovel_invalida"); } else { if (ordemServico.getImovel() != null) { imovel = ordemServico.getImovel(); } else { imovel = ordemServico.getRegistroAtendimento().getImovel(); } } // [FS0007] Verificar Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && imovel.getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } // [FS0008] - Verificar exist�ncia de hidr�metro no tipo de medi��o // Caso 1 if (ordemServico.getRegistroAtendimento() == null || ordemServico.getRegistroAtendimento() .getSolicitacaoTipoEspecificacao() .getIndicadorLigacaoAgua().equals( MedicaoTipo.LIGACAO_AGUA.shortValue())) { if (imovel.getLigacaoAgua().getHidrometroInstalacaoHistorico() == null) { throw new ControladorException( "atencao.imovel_ligacao_agua_sem_hidrometro", null, "" + imovel.getId()); } } else { if (imovel.getHidrometroInstalacaoHistorico() == null) { throw new ControladorException( "atencao.imovel_poco_sem_hidrometro", null, "" + imovel.getId()); } } // [FS0002] Verificar Situa��o do hidrometro. /* * Hidrometro hidrometro = * hidrometroInstalacaoHistorico.getHidrometro(); * * if (hidrometro.getHidrometroSituacao().getId().intValue() != * HidrometroSituacao.DISPONIVEL .intValue()) { throw new * ControladorException( "atencao.hidrometro_situacao_indisponivel", * null, hidrometro.getHidrometroSituacao().getDescricao()); } */ /* * =================================================================================== */ } /** * * Este m�todo se destina a validar todas as situa��es e particularidades do * restabelecimento Liga��o de agua * * @author Rafael Pinto * @date 29/07/2006 * * @param ordemServico,veioEncerrarOS */ public void validarExibirRestabelecimentoLigacaoAgua( OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR RESTABELECIMENTO LIGA��O DE �GUA, n�o ser� * necess�rio realizar as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao( ordemServico.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_RESTABELECIMENTO_LIGACAO_AGUA_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_RESTABELECIMENTO_LIGACAO_AGUA) { throw new ControladorException( "atencao.servico_associado_restabelecimento_ligacao_agua_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 // this.getControladorOrdemServico().validaOrdemServico(ordemServico,veioEncerrarOS); this.getControladorOrdemServico().validaOrdemServicoDiasAditivoPrazo(ordemServico,veioEncerrarOS); // Caso 4 if (ordemServico.getRegistroAtendimento().getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordemServico.getRegistroAtendimento().getId()); } Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); // [FS0002] Verificar Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && imovel.getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } if (imovel.getLigacaoAgua() == null) { throw new ControladorException("atencao.naocadastrado", null, "Liga��o de �gua"); } // [FS0003] Verificar a situa��o de �gua if (imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.SUPRIMIDO .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.SUPR_PARC_PEDIDO .intValue()) { throw new ControladorException( "atencao.situacao_ligacao_agua_invalida", null, "" + imovel.getId(), "Suprimido ou Suprimido Parcial"); } /* * =================================================================================== */ } /** * * Este m�todo se destina a validar todas as situa��es e particularidades de * corte adimistrativo de Liga��o de �gua * * @author Rafael Pinto * @date 29/07/2006 * * @param ordemServico,veioEncerrarOS */ public void validarExibirCorteAdministrativoLigacaoAgua( OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR CORTE ADMINISTRATIVO LIGA��O DE �GUA, n�o ser� * necess�rio realizar as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao( ordemServico.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_CORTE_ADMINISTRATIVO_LIGACAO_AGUA_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_CORTE_ADMINISTRATIVO_LIGACAO_AGUA) { throw new ControladorException( "atencao.servico_associado_corte_administrativo_ligacao_agua_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordemServico, veioEncerrarOS); // Caso 4 // Comentado por Raphael Rossiter em 26/02/2007 /* * if (ordemServico.getRegistroAtendimento().getImovel() == null) { * throw new ControladorException( * "atencao.ordem_servico_ra_imovel_invalida", null, "" + * ordemServico.getRegistroAtendimento().getId()); } */ if (ordemServico.getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_imovel_invalido"); } // Comentado por Raphael Rossiter em 28/02/2007 // Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); Imovel imovel = ordemServico.getImovel(); // [FS0002] Verificar Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && imovel.getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } if (imovel.getLigacaoAgua() == null) { throw new ControladorException("atencao.naocadastrado", null, "Liga��o de �gua"); } // [FS0003] Verificar a situa��o de �gua int idLigacaoAguaSituacao = imovel.getLigacaoAguaSituacao().getId() .intValue(); if (idLigacaoAguaSituacao != LigacaoAguaSituacao.LIGADO.intValue() && idLigacaoAguaSituacao != LigacaoAguaSituacao.LIGADO_EM_ANALISE .intValue()) { throw new ControladorException( "atencao.situacao_ligacao_agua_invalida", null, "" + imovel.getId(), "Ligado"); } /* * =================================================================================== */ } /** * * Este m�todo se destina a validar todas as situa��es e particularidades de * reLiga��o de �gua * * @author Rafael Pinto * @date 29/07/2006 * * @param ordemServico,veioEncerrarOS */ public void validarExibirReligacaoAgua(OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR RELIGA��O LIGA��O DE �GUA, n�o ser� necess�rio * realizar as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao( ordemServico.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_RELIGACAO_AGUA_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_RELIGACAO_AGUA) { throw new ControladorException( "atencao.servico_associado_religacao_agua_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 // this.getControladorOrdemServico().validaOrdemServico(ordemServico,veioEncerrarOS); this.getControladorOrdemServico().validaOrdemServicoDiasAditivoPrazo(ordemServico,veioEncerrarOS); // Caso 4 if (ordemServico.getRegistroAtendimento().getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordemServico.getRegistroAtendimento().getId()); } Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); // [FS0002] Verificar Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && imovel.getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } if (imovel.getLigacaoAgua() == null) { throw new ControladorException("atencao.naocadastrado", null, "Liga��o de �gua"); } // [FS0003] Verificar a situa��o de �gua if (imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.CORTADO .intValue()) { throw new ControladorException( "atencao.situacao_ligacao_agua_invalida", null, "" + imovel.getId(), "Cortado"); } /* * =================================================================================== */ } /** * * Este m�todo se destina a validar todas as situa��es e particularidades do * supressao Liga��o de agua * * @author Rafael Pinto * @date 28/07/2006 * * @param OrdemServico */ public void validarExibirSupressaoLigacaoAgua(OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR SUPRESS�O LIGA��O DE �GUA, n�o ser� necess�rio * realizar as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao( ordemServico.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_SUPRESSAO_LIGACAO_AGUA_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_SUPRESSAO_LIGACAO_AGUA) { throw new ControladorException( "atencao.servico_associado_supressa_ligacao_agua_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 // this.getControladorOrdemServico().validaOrdemServico(ordemServico,veioEncerrarOS); this.getControladorOrdemServico().validaOrdemServicoDiasAditivoPrazo(ordemServico,veioEncerrarOS); // Caso 4 // Comentado por Raphael Rossiter em 28/02/2007 /* * if (ordemServico.getRegistroAtendimento().getImovel() == null) { * throw new ControladorException( * "atencao.ordem_servico_ra_imovel_invalida", null, "" + * ordemServico.getRegistroAtendimento().getId()); } */ if (ordemServico.getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordemServico.getRegistroAtendimento().getId()); } // Comentado por Raphael Rossiter em 28/02/2007 // Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); Imovel imovel = ordemServico.getImovel(); // [FS0002] Verificar Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && imovel.getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } if (imovel.getLigacaoAgua() == null) { throw new ControladorException("atencao.naocadastrado", null, "Liga��o de �gua"); } // [FS0003] Verificar a situa��o de �gua if (imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.LIGADO .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.LIGADO_EM_ANALISE .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.CORTADO .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.SUPR_PARC_PEDIDO .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.EM_FISCALIZACAO .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.EM_CANCELAMENTO .intValue()) { throw new ControladorException( "atencao.situacao_ligacao_agua_supressao_invalida", null, imovel.getLigacaoAguaSituacao().getDescricao() + ""); } /* * =================================================================================== */ } /** * [UC0367]Atualizar Liga��o de Agua no sistema. * * [SB002] Atualiza Liga��o de agua. * * @author Rafael Pinto * @date 20/07/2006 * * @param ligacaoAgua * @throws ControladorException */ public void atualizarLigacaoAgua(LigacaoAgua ligacaoAgua, Usuario usuario) throws ControladorException { this.getControladorMicromedicao().validarImovelEmCampo(ligacaoAgua.getId()); if (ligacaoAgua != null) { // item [FS0001] Verificar exist�ncia da matr�cula do Im�vel. if (ligacaoAgua.getImovel() != null) { // item [FS0002] Verificar Situa��o do Imovel if (ligacaoAgua.getImovel().getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, ligacaoAgua.getImovel().getId() + ""); } // item [FS0003] Validar Situa��o de Agua do Imovel if (ligacaoAgua.getImovel().getLigacaoAguaSituacao().getId() .intValue() == LigacaoAguaSituacao.POTENCIAL.intValue() || ligacaoAgua.getImovel().getLigacaoAguaSituacao() .getId().intValue() == LigacaoAguaSituacao.FACTIVEL .intValue()) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizar_ligacao_agua_situacao_invalida", null, ligacaoAgua.getImovel().getId() + ""); } if (ligacaoAgua.getImovel().getLigacaoAguaSituacao().getId() .intValue() == LigacaoAguaSituacao.CORTADO.intValue()) { // item [FS0005] Validar Tipo Corte if (ligacaoAgua.getCorteTipo() == null) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizar_ligacao_agua_situacao_tipo_corte", null, ligacaoAgua.getImovel().getId() + ""); // item [FS0006] Validar Motivo Corte } else if (ligacaoAgua.getMotivoCorte() == null) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizar_ligacao_agua_situacao_motivo_corte", null, ligacaoAgua.getImovel().getId() + ""); // item [FS0010] Validar Numero Selo Corte } else if (ligacaoAgua.getNumeroSeloCorte() == null || ligacaoAgua.getNumeroSeloCorte().intValue() == ConstantesSistema.NUMERO_NAO_INFORMADO) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizar_ligacao_agua_situacao_selo_corte", null, ligacaoAgua.getImovel().getId() + ""); } } if (ligacaoAgua.getImovel().getLigacaoAguaSituacao().getId() .intValue() == LigacaoAguaSituacao.SUPRIMIDO.intValue() || ligacaoAgua.getImovel().getLigacaoAguaSituacao() .getId().intValue() == LigacaoAguaSituacao.SUPR_PARC_PEDIDO .intValue()) { // item [FS0007] Validar Motivo Supressao if (ligacaoAgua.getSupressaoMotivo() == null) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizar_ligacao_agua_situacao_motivo_supressao", null, ligacaoAgua.getImovel().getId() + ""); // item [FS0008] Validar Tipo Supressao } else if (ligacaoAgua.getSupressaoTipo() == null) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizar_ligacao_agua_situacao_tipo_supressao", null, ligacaoAgua.getImovel().getId() + ""); // item [FS0011] Validar Numero Selo Supressao } else if (ligacaoAgua.getNumeroSeloSupressao() == null || ligacaoAgua.getNumeroSeloSupressao().intValue() == ConstantesSistema.NUMERO_NAO_INFORMADO) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizar_ligacao_agua_situacao_selo_supressao", null, ligacaoAgua.getImovel().getId() + ""); } } } else { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.situacao_imovel_indicador_exclusao_esgoto", null, ligacaoAgua.getImovel().getId() + ""); } this.verificarLigacaoAguaControleConcorrencia(ligacaoAgua); /* * [UC0107] Registrar Transa��o */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_ATUALIZAR_LIGACAO_AGUA, ligacaoAgua .getId(), ligacaoAgua.getId(), new UsuarioAcaoUsuarioHelper(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // [UC0107] -Fim- Registrar Transa��o registradorOperacao.registrarOperacao(ligacaoAgua); // Efetuando uma Liga��o de Agua getControladorUtil().atualizar(ligacaoAgua); HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = ligacaoAgua .getHidrometroInstalacaoHistorico(); if (hidrometroInstalacaoHistorico != null) { registradorOperacao .registrarOperacao(hidrometroInstalacaoHistorico); getControladorUtil().atualizar(hidrometroInstalacaoHistorico); } } } /** * Faz o controle de concorrencia de ligacao Agua * * @author Rafael Pinto * @throws ControladorException */ private void verificarLigacaoAguaControleConcorrencia( LigacaoAgua ligacaoAgua) throws ControladorException { FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples( FiltroLigacaoAgua.ID, ligacaoAgua.getId())); Collection colecaoLigacao = getControladorUtil().pesquisar( filtroLigacaoAgua, LigacaoAgua.class.getName()); if (colecaoLigacao == null || colecaoLigacao.isEmpty()) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } LigacaoAgua ligacaoAguaAtual = (LigacaoAgua) Util .retonarObjetoDeColecao(colecaoLigacao); if (ligacaoAguaAtual.getUltimaAlteracao().after( ligacaoAgua.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } } /** * Faz o controle de concorrencia de hidrometro instalacao historico * * @author Rafael Pinto * @throws ControladorException */ private void verificarHidrometroInstalacaoHistoricoControleConcorrencia( HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico) throws ControladorException { FiltroHidrometroInstalacaoHistorico filtroHidrometroInstalacaoHistorico = new FiltroHidrometroInstalacaoHistorico(); filtroHidrometroInstalacaoHistorico .adicionarParametro(new ParametroSimples( FiltroHidrometroInstalacaoHistorico.ID, hidrometroInstalacaoHistorico.getId())); Collection colecaoHidrometroInstalacaoHistorico = getControladorUtil() .pesquisar(filtroHidrometroInstalacaoHistorico, HidrometroInstalacaoHistorico.class.getName()); if (colecaoHidrometroInstalacaoHistorico == null || colecaoHidrometroInstalacaoHistorico.isEmpty()) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoAtual = (HidrometroInstalacaoHistorico) Util .retonarObjetoDeColecao(colecaoHidrometroInstalacaoHistorico); // Verificar se categoria j� foi atualizada por outro usu�rio durante // esta atualiza��o if (hidrometroInstalacaoHistoricoAtual.getUltimaAlteracao().after( hidrometroInstalacaoHistorico.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } } /** * Faz o controle de concorrencia de hidrometro * * @author Rafael Pinto * @throws ControladorException */ private void verificarHidrometroControleConcorrencia(Hidrometro hidrometro) throws ControladorException { FiltroHidrometro filtroHidrometro = new FiltroHidrometro(); filtroHidrometro.adicionarParametro(new ParametroSimples( FiltroHidrometro.ID, hidrometro.getId())); Collection colecaoHidrometro = getControladorUtil().pesquisar( filtroHidrometro, Hidrometro.class.getName()); if (colecaoHidrometro == null || colecaoHidrometro.isEmpty()) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } Hidrometro hidrometroAtual = (Hidrometro) Util .retonarObjetoDeColecao(colecaoHidrometro); // Verificar se categoria j� foi atualizada por outro usu�rio durante // esta atualiza��o if (hidrometroAtual.getUltimaAlteracao().after( hidrometro.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } } /** * [UC0354] Efetuar Corte de Liga��o de �gua. * * Permite efetuar Liga��o de Esgoto ou pelo menu ou pela funcionalidade * encerrar a Execu��o da ordem de servi�o. * * @author Leandro Cavalcanti. * @date 12/07/2006 * * @param ligacaoEsgoto * @param imovel * @throws ControladorException */ public void inserirLigacaoEsgoto( IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { LigacaoEsgoto ligacaoEsgoto = integracaoComercialHelper .getLigacaoEsgoto(); Imovel imovel = integracaoComercialHelper.getImovel(); OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); String qtdParcelas = integracaoComercialHelper.getQtdParcelas(); /* * [UC0107] Registrar Transa��o */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_LIGACAO_ESGOTO_EFETUAR, imovel.getId(), imovel.getId(), new UsuarioAcaoUsuarioHelper( integracaoComercialHelper.getUsuarioLogado(), UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // [UC0107] -Fim- Registrar Transa��o getControladorMicromedicao().validarImovelEmCampo(imovel.getId()); ligacaoEsgoto.setId(imovel.getId()); FiltroLigacaoEsgoto filtroLigacaoEsgoto = new FiltroLigacaoEsgoto(); filtroLigacaoEsgoto.adicionarParametro(new ParametroSimples( FiltroLigacaoEsgoto.ID, imovel.getId())); Collection colecaoLigacaoEsgotoBase = getControladorUtil().pesquisar( filtroLigacaoEsgoto, LigacaoEsgoto.class.getName()); registradorOperacao.registrarOperacao(ligacaoEsgoto); if (colecaoLigacaoEsgotoBase != null && !colecaoLigacaoEsgotoBase.isEmpty()) { getControladorUtil().atualizar(ligacaoEsgoto); } else { getControladorUtil().inserir(ligacaoEsgoto); } LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao(); ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO); imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao); registradorOperacao.registrarOperacao(imovel); getControladorTransacao().registrarTransacao(imovel); getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto(imovel, ligacaoEsgotoSituacao); if (ordemServico != null) { if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { getControladorOrdemServico().atualizaOSGeral(ordemServico); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(qtdParcelas), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } } /** * Este m�todo se destina a validar todas as situa��es e particularidades da * inser��o da especificacao situacao criterio imovel. * * [FS0001] Validar especifica��o da situa��oo j� existente [FS0002] Validar * exist�ncia de hidr�metro na Liga��o �gua [FS0003] Validar exist�ncia de * hidr�metro no Po�o * * @author Rafael Pinto * @date 04/08/2006 * * @param equipeComponentes */ public void validarExibirInsercaoEspecificacaoImovSitCriterio( Collection colecaoEspecificacaoImovSitCriterio, EspecificacaoImovSitCriterio especImovSitCriterio) throws ControladorException { // Verificar objeto a ser inserido na base. if (especImovSitCriterio != null) { // [FS0002] Validar exist�ncia de hidr�metro na Liga��o �gua // Caso 1 if (especImovSitCriterio.getLigacaoAguaSituacao() != null) { if (especImovSitCriterio.getLigacaoAguaSituacao().getId() .intValue() != LigacaoAguaSituacao.CORTADO.intValue() && especImovSitCriterio.getLigacaoAguaSituacao() .getId().intValue() != LigacaoAguaSituacao.LIGADO .intValue()) { if (especImovSitCriterio .getIndicadorHidrometroLigacaoAgua() == null || especImovSitCriterio .getIndicadorHidrometroLigacaoAgua() .shortValue() == ConstantesSistema.SIM .shortValue()) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.inserir_especificacao_situacao_imovel_ligacao_agua", null, ""); } } // Caso 2 } else { if (especImovSitCriterio.getIndicadorHidrometroLigacaoAgua() != null) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.inserir_especificacao_situacao_imovel_ligacao_agua", null, ""); } } // [FS0003] Validar exist�ncia de hidr�metro no Po�o // Caso 1 if (especImovSitCriterio.getLigacaoEsgotoSituacao() != null) { if (especImovSitCriterio.getLigacaoEsgotoSituacao().getId() .intValue() != LigacaoEsgotoSituacao.TAMPONADO .intValue() && especImovSitCriterio.getLigacaoEsgotoSituacao() .getId().intValue() != LigacaoEsgotoSituacao.LIGADO .intValue()) { if (especImovSitCriterio.getIndicadorHidrometroPoco() == null || especImovSitCriterio .getIndicadorHidrometroPoco().shortValue() == ConstantesSistema.SIM .shortValue()) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.inserir_especificacao_situacao_imovel_ligacao_esgoto", null, ""); } } // Caso 2 } else { if (especImovSitCriterio.getIndicadorHidrometroPoco() != null) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.inserir_especificacao_situacao_imovel_ligacao_esgoto", null, ""); } } // Testar se nova especificacao pode ser inserido na cole��o if (colecaoEspecificacaoImovSitCriterio != null && !colecaoEspecificacaoImovSitCriterio.isEmpty()) { // Varre cole��o de especificacao da grid (ainda n�o inseridos // na base) for (Iterator iter = colecaoEspecificacaoImovSitCriterio .iterator(); iter.hasNext();) { EspecificacaoImovSitCriterio element = (EspecificacaoImovSitCriterio) iter .next(); // [FS0001] Validar especifica��o da situa��o j� existente if (element.equals(especImovSitCriterio)) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.inserir_especificacao_situacao_imovel_criterio_ja_informado", null, ""); } }// fim do for } } else { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.inserir_especificacao_situacao_imovel_invalida", null, ""); } } /** * [UC0365] Efetuar Remanejamento de hidr�metro [SB0001] Atualizar Hist�rico * de instala��o do hidr�metro * * * * @author R�mulo Aur�lio * @date 30/06/2006 * * @param hidrometroInstalacaoHistorico * @throws ControladorException */ public void efetuarRemanejamentoHidrometro( IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = integracaoComercialHelper .getHidrometroInstalacaoHistorico(); OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); String qtdParcelas = integracaoComercialHelper.getQtdParcelas(); this.getControladorMicromedicao().validarImovelEmCampo(hidrometroInstalacaoHistorico.getLigacaoAgua().getId()); this.verificarHidrometroInstalacaoHistoricoControleConcorrencia(hidrometroInstalacaoHistorico); getControladorUtil().atualizar(hidrometroInstalacaoHistorico); ordemServico.setUltimaAlteracao(new Date()); // [SB006]Atualizar Ordem de Servi�o if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { this.getControladorOrdemServico() .verificarOrdemServicoControleConcorrencia(ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(qtdParcelas).intValue(), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } /** * [UC0357] Efetuar ReLiga��o de �gua * * Permite efetuar reLiga��o da Liga��o de �gua ou pelo menu ou pela * funcionalidade encerrar a Execu��o da ordem de Servi�o. * * [SB0001] Atualizar Im�vel/Liga��o de �gua/Liga��o de Esgoto * * @author R�mulo Aur�lio * @date 07/07/2006 * * @param ordemServico * * @throws ControladorException */ public void efetuarReligacaoAgua( IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); LigacaoAgua ligacaoAgua = integracaoComercialHelper.getLigacaoAgua(); /* * [UC0107] Registrar Transa��o * */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_RELIGACAO_AGUA_EFETUAR, ligacaoAgua.getId(), ligacaoAgua.getId(), new UsuarioAcaoUsuarioHelper( integracaoComercialHelper.getUsuarioLogado(), UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // [UC0107] -Fim- Registrar Transa��o // [SB0001] - Atualizar Im�vel/Liga��o de �gua/Liga��o de Esgoto // Caso 1 Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); ligacaoAguaSituacao.setId(LigacaoAguaSituacao.LIGADO); ligacaoAguaSituacao.setUltimaAlteracao(new Date()); imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao); imovel.setUltimaAlteracao(new Date()); this.getControladorMicromedicao().validarImovelEmCampo(imovel.getId()); this.getControladorImovel().verificarImovelControleConcorrencia(imovel); LigacaoEsgotoSituacao ligacaoEsgotoSituacao = imovel .getLigacaoEsgotoSituacao(); if (ligacaoEsgotoSituacao != null && ligacaoEsgotoSituacao.getId().intValue() == LigacaoEsgotoSituacao.LIG_FORA_DE_USO .intValue()) { ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO); ligacaoEsgotoSituacao.setUltimaAlteracao(new Date()); // Colocado por Raphael Rossiter em 09/05/2007 imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao); // Comentado por Raphael Rossiter em 09/05/2007 // this.getControladorUtil().atualizar(ligacaoEsgotoSituacao); } // Caso 2 ligacaoAgua.setUltimaAlteracao(new Date()); this.verificarLigacaoAguaControleConcorrencia(ligacaoAgua); registradorOperacao.registrarOperacao(ligacaoAgua); getControladorTransacao().registrarTransacao(ligacaoAgua); registradorOperacao.registrarOperacao(imovel); getControladorTransacao().registrarTransacao(imovel); getControladorImovel().atualizarImovelExecucaoOrdemServicoLigacaoAgua( imovel, ligacaoAguaSituacao); getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto(imovel, ligacaoEsgotoSituacao); this.getControladorLigacaoAgua().atualizarLigacaoAguaReligacao( ligacaoAgua); ordemServico.setUltimaAlteracao(new Date()); if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { this.getControladorOrdemServico() .verificarOrdemServicoControleConcorrencia(ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } String qtdParcelas = integracaoComercialHelper.getQtdParcelas(); if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(qtdParcelas), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } /** * [UC0363] Efetuar Retirada de hidr�metro [SB0001] Atualizar Hist�rico de * instala��o do hidr�metro * * @author Thiago Ten�rio * @date 30/06/2006 * * @param hidrometroInstalacaoHistorico * @throws ControladorException */ public void efetuarRetiradaHidrometro( IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = integracaoComercialHelper.getHidrometroInstalacaoHistorico(); hidrometroInstalacaoHistorico.setDataRetirada(new Date()); this.getControladorMicromedicao().validarImovelEmCampo(hidrometroInstalacaoHistorico.getLigacaoAgua().getId()); this.verificarHidrometroInstalacaoHistoricoControleConcorrencia(hidrometroInstalacaoHistorico); getControladorUtil().atualizar(hidrometroInstalacaoHistorico); this.verificarHidrometroControleConcorrencia(hidrometroInstalacaoHistorico.getHidrometro()); getControladorUtil().atualizar(hidrometroInstalacaoHistorico.getHidrometro()); try { // Caso o tipo de medi��o seja igual a Liga��o de �gua, atualiza as // colunas da tabela LIGACAO_AGUA // Integer id = hidrometroInstalacaoHistorico.getId(); if (hidrometroInstalacaoHistorico.getMedicaoTipo().getId().equals( MedicaoTipo.LIGACAO_AGUA)) { repositorioAtendimentoPublico .atualizarHidrometroInstalacaoHistoricoLigacaoAgua( hidrometroInstalacaoHistorico.getLigacaoAgua() .getId(), null); // Caso o tipo de medi��o seja igual a Po�o, atualiza as colunas // da tabela POCO } else if (hidrometroInstalacaoHistorico.getMedicaoTipo().getId() .equals(MedicaoTipo.POCO)) { repositorioAtendimentoPublico .atualizarHidrometroIntalacaoHistoricoImovel( hidrometroInstalacaoHistorico.getImovel() .getId(), null, null); } OrdemServico ordemServico = integracaoComercialHelper .getOrdemServico(); if (ordemServico != null) { // [SB006]Atualizar Ordem de Servi�o if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { getControladorOrdemServico().atualizaOSGeral( integracaoComercialHelper.getOrdemServico()); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo() .getId(), ordemServico.getValorAtual(), new Integer(integracaoComercialHelper .getQtdParcelas()), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC0365] Efetuar Instala��o de hidr�metro * * [SB0001] Gerar Hist�rico de instala��o do hidr�metro [SB0002] Atualizar * Im�vel/Liga��o de �gua [SB0003] Atualizar situa��o de hidr�metro na * tabela HIDROMETRO * * @author Ana Maria, Ivan S�rgio * @date 12/07/2006, 24/03/2008 * @alteracao: Retirar os dois indicadores: indicadorTrocaProtecao e * indicadorTrocaRegistro; Gerar Boletim de Ordens de Servico * Concluidas; * * @param hidrometroInstalacaoHistorico * @param materialImovel * * @throws ControladorException * @throws ErroRepositorioException */ public void efetuarInstalacaoHidrometro( IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { Integer id = null; HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = integracaoComercialHelper .getHidrometroInstalacaoHistorico(); OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); String qtdParcelas = integracaoComercialHelper.getQtdParcelas(); FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, integracaoComercialHelper.getImovel().getId())); Collection colecaoImovel = Fachada.getInstancia().pesquisar(filtroImovel, Imovel.class.getName()); Iterator iColecaoImovel = colecaoImovel.iterator(); Imovel imovel = (Imovel) iColecaoImovel.next(); this.getControladorMicromedicao().validarImovelEmCampo(imovel.getId()); validacaoInstalacaoHidrometro(hidrometroInstalacaoHistorico.getHidrometro().getNumero()); /* * [UC0107] Registrar Transa��o */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_INSTALACAO_HIDROMETRO_EFETUAR, imovel.getId(), imovel.getId(), new UsuarioAcaoUsuarioHelper( integracaoComercialHelper.getUsuarioLogado(), UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // [UC0107] -Fim- Registrar Transa��o // regitrando operacao registradorOperacao.registrarOperacao(hidrometroInstalacaoHistorico); // Retirar os dois indicadores: indicadorTrocaProtecao e // indicadorTrocaRegistro; Short indicadorTrocaProtecao = hidrometroInstalacaoHistorico .getIndicadorTrocaProtecao(); hidrometroInstalacaoHistorico .setIndicadorTrocaProtecao(ConstantesSistema.NAO); Short indicadorTrocaRegistro = hidrometroInstalacaoHistorico .getIndicadorTrocaRegistro(); hidrometroInstalacaoHistorico .setIndicadorTrocaRegistro(ConstantesSistema.NAO); id = (Integer) getControladorUtil().inserir( hidrometroInstalacaoHistorico); // [SB0002]Atualizar Im�vel/Liga��o de �gua try { // Caso o tipo de medi��o seja igual a Liga��o de �gua, atualiza as // colunas da tabela LIGACAO_AGUA if (hidrometroInstalacaoHistorico.getMedicaoTipo().getId().equals( MedicaoTipo.LIGACAO_AGUA)) { repositorioAtendimentoPublico .atualizarHidrometroInstalacaoHistoricoLigacaoAgua( hidrometroInstalacaoHistorico.getLigacaoAgua() .getId(), id); // Caso o tipo de medi��o seja igual a Po�o, atualiza as colunas // da tabela POCO } else if (hidrometroInstalacaoHistorico.getMedicaoTipo().getId() .equals(MedicaoTipo.POCO)) { repositorioAtendimentoPublico .atualizarHidrometroIntalacaoHistoricoImovel( hidrometroInstalacaoHistorico.getImovel() .getId(), id, imovel.getPocoTipo().getId()); } // [SB003]Atualizar situa��o de hidr�metro na tabela HIDROMETRO Integer situacaoHidrometro = HidrometroSituacao.INSTALADO; repositorioAtendimentoPublico.atualizarSituacaoHidrometro( hidrometroInstalacaoHistorico.getHidrometro().getId(), situacaoHidrometro); // [SB006]Atualizar Ordem de Servi�o if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { this .getControladorOrdemServico() .verificarOrdemServicoControleConcorrencia(ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } // Gerar Boletim Ordens de Servico Concluida // Caso a Ordem de Servico nao esteja Associada a Documento de // Cobranca // nem a Registro de Atendimento boolean osAssociadaDOC = getControladorOrdemServico() .verificarOSAssociadaDocumentoCobranca(ordemServico.getId()); boolean osAssociadaRA = getControladorOrdemServico() .verificarOSAssociadaRA(ordemServico.getId()); if (!osAssociadaDOC && !osAssociadaRA) { // Recupera a data de Encerramento da OS FiltroOrdemServico filtroOs = new FiltroOrdemServico(); filtroOs.adicionarParametro(new ParametroSimples( FiltroOrdemServico.ID, ordemServico.getId())); Collection colecaoDados = getControladorUtil().pesquisar( filtroOs, OrdemServico.class.getName()); Iterator iColecaoDados = colecaoDados.iterator(); OrdemServico os = (OrdemServico) iColecaoDados.next(); Date dataEncerramentoOs = os.getDataEncerramento(); // ************************************************************** // Alterado por: Ivan Sergio // Data: 12/02/2009 // CRC1222 - Seta a data de encerramento com o valor do Helper // de // integracao. // ************************************************************** if (dataEncerramentoOs == null) dataEncerramentoOs = ordemServico.getDataEncerramento(); // ************************************************************** BoletimOsConcluida boletim = new BoletimOsConcluida(); boletim.setId(ordemServico.getId()); boletim.setOrdemServico(ordemServico); boletim.setLocalidade(ordemServico.getImovel().getLocalidade()); boletim.setAnoMesReferenciaBoletim(Util .getAnoMesComoInt(dataEncerramentoOs)); boletim.setCodigoFiscalizacao(new Short("0")); boletim.setUsuario(null); boletim.setDataFiscalizacao(null); boletim.setDataEncerramentoBoletim(null); boletim .setIndicadorTrocaProtecaoHidrometro(indicadorTrocaProtecao); boletim .setIndicadorTrocaRegistroHidrometro(indicadorTrocaRegistro); boletim .setHidrometroLocalInstalacao(hidrometroInstalacaoHistorico .getHidrometroLocalInstalacao()); boletim.setUltimaAlteracao(new Date()); getControladorUtil().inserir(boletim); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(qtdParcelas).intValue(), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC0362] Efetuar Instalacao de hidr�metro * * Validar Instalacao de hidr�metro * * @author Ana Maria * @date 13/07/2006 * * @param matriculaImovel, * @param numeroHidrometro, * @param tipoMedicao * * return void * @throws ControladorException */ public void validacaoInstalacaoHidrometro(String numeroHidrometro) throws ControladorException { //Hidrometro hidrometro = getControladorMicromedicao() // .pesquisarHidrometroPeloNumero(numeroHidrometro); FiltroHidrometro filtroHidrometro = new FiltroHidrometro(); filtroHidrometro .adicionarCaminhoParaCarregamentoEntidade("hidrometroSituacao"); filtroHidrometro.adicionarParametro(new ParametroSimples( FiltroHidrometro.NUMERO_HIDROMETRO, numeroHidrometro)); Collection colecaoHidrometro = null; colecaoHidrometro = getControladorUtil().pesquisar(filtroHidrometro, Hidrometro.class.getName()); // [FS002]Caso o hidr�metro informado esteja com a situa��o diferente // de // DISPON�VEL Iterator iteratorHidrometro = colecaoHidrometro.iterator(); while (iteratorHidrometro.hasNext()) { Hidrometro hidrometro = (Hidrometro) iteratorHidrometro.next(); Integer idSituacaoHidrometro = hidrometro.getHidrometroSituacao() .getId(); if (!(idSituacaoHidrometro.equals(HidrometroSituacao.DISPONIVEL))) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.hidrometro_situacao_indisponivel", null, hidrometro.getHidrometroSituacao().getDescricao()); } } } /** * [UC0362] Efetuar Instalacao de hidr�metro * * Validar Instalacao de hidr�metro * * @author Ana Maria * @date 13/07/2006 * * @param matriculaImovel, * @param numeroHidrometro, * @param tipoMedicao * * return void * @throws ControladorException */ public void validarExibirInstalacaoHidrometro(OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR INSTALACAO HIDROMETRO, n�o ser� necess�rio realizar * as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao( ordemServico.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_INSTALACAO_HIDROMETRO_EFETUAR_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 int servicoTipo = ordemServico.getServicoTipo().getId().intValue(); if (servicoTipo != ServicoTipo.TIPO_EFETUAR_INSTALACAO_HIDROMETRO) { throw new ControladorException( "atencao.servico_associado_instalacao_hidrometro_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordemServico, veioEncerrarOS); // Caso 4 /* * Autor: Vivianne Sousa Data: 11/12/2007 Analista Responsavel: Denys */ Imovel imovel = null; if ((ordemServico.getRegistroAtendimento() != null && ordemServico .getRegistroAtendimento().getImovel() == null) && ordemServico.getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_imovel_invalida"); } else { if (ordemServico.getImovel() != null) { imovel = ordemServico.getImovel(); } else { imovel = ordemServico.getRegistroAtendimento().getImovel(); } } // [FS0002] Verificar Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && imovel.getIndicadorExclusao().intValue() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } // [FS0003] - Verificar Situa��o de Agua ou Esgoto. // [FS0004] - Verificar a exist�ncia de hidr�metro no Im�vel/Liga��o de // �gua /* HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = null; */ // Caso 1 if (ordemServico.getRegistroAtendimento() == null || ordemServico.getRegistroAtendimento() .getSolicitacaoTipoEspecificacao() .getIndicadorLigacaoAgua().equals( MedicaoTipo.LIGACAO_AGUA.shortValue())) { LigacaoAguaSituacao ligacaoAguaSituacao = imovel .getLigacaoAguaSituacao(); if (ligacaoAguaSituacao.getId().intValue() != LigacaoAguaSituacao.LIGADO && ligacaoAguaSituacao.getId().intValue() != LigacaoAguaSituacao.LIGADO_EM_ANALISE && ligacaoAguaSituacao.getId().intValue() != LigacaoAguaSituacao.CORTADO) { throw new ControladorException( "atencao.instalacao_hidrometro_situacao_ligacao_agua_invalida", null, ligacaoAguaSituacao.getDescricao()); } if (imovel.getLigacaoAgua() == null) { throw new ControladorException("atencao.naocadastrado", null, "Liga��o de �gua"); } if (imovel.getLigacaoAgua().getHidrometroInstalacaoHistorico() != null) { throw new ControladorException( "atencao.hidrometro_instalado_ligacao_agua", null, "" + imovel.getId()); } } else { LigacaoEsgotoSituacao ligacaoEsgotoSituacao = imovel .getLigacaoEsgotoSituacao(); if (ligacaoEsgotoSituacao.getId().intValue() != LigacaoEsgotoSituacao.LIGADO) { throw new ControladorException( "atencao.situacao_instalacao_hidrometro_poco_invalida", null, ligacaoEsgotoSituacao.getDescricao()); } if (imovel.getHidrometroInstalacaoHistorico() != null) { throw new ControladorException( "atencao.hidrometro_instalado_poco", null, "" + imovel.getId()); } } // [FS0002] Verificar Situa��o do hidrometro. /* * Hidrometro hidrometro = * hidrometroInstalacaoHistorico.getHidrometro(); * * if (hidrometro.getHidrometroSituacao().getId().intValue() != * HidrometroSituacao.DISPONIVEL .intValue()) { throw new * ControladorException( "atencao.hidrometro_situacao_indisponivel", * null, hidrometro.getHidrometroSituacao().getDescricao()); } */ /* * =================================================================================== */ } /** * [UC0356] Efetuar Mudan�a de Situa��o de Faturamento da Liga��o de Esgoto * * Permite Efetuar Mudan�a de Situa��o de Faturamento da Liga��o de Esgoto . * * [FS0001]- Validar Ordem de Servi�o. [FS0002] Verificar Situa��o do * Imovel. [FS0003]- Validar Situa��o da Liga��o de Esgoto do Im�vel. * [FS0007]- Validar Situa��o da Liga��o de �gua do Im�vel. [FS0004 - * Validar Volume M�nimo Fixado. * * * @author Leandro Cavalcanti * @date 18/07/2006 * * @param ordemServicoId * @param imovel * @param dataMudanca * @param volumeMinimoFixado * @param novaSituacaoEsgoto * @throws ControladorException */ public String validarMudancaSituacaoFaturamentoLigacaoesgotoExibir( OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { String retorno = null; /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // [FS0001]- Validar Ordem de Servi�o if (ordemServico == null || ordemServico.equals("")) { throw new ControladorException("atencao.ordem_nao_existente", null); } // [FS0001] Continua��o this.getControladorOrdemServico().validaOrdemServico(ordemServico, veioEncerrarOS); Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); // Caso 4 if (ordemServico.getRegistroAtendimento().getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordemServico.getRegistroAtendimento().getId()); } // [FS0002] Verificar Situa��o do Imovel if (imovel.getIndicadorExclusao() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException("atencao.situacao.imovel.invalida", null, imovel.getId() + ""); } // Validar Tipo de Servi�o. if (ordemServico != null) { if (ordemServico.getServicoTipo().getId() != null) { // Tipo de Servi�o. Integer tipoServico = ordemServico.getServicoTipo().getId(); if (tipoServico.intValue() == ServicoTipo.TIPO_TAMPONAMENTO_LIGACAO_ESGOTO) { // [FS0007]- Validar Situa��o da Liga��o de �gua do Im�vel this.validarSituacaoAguaImovel(imovel, tipoServico); // [FS0003]- Validar Situa��o da Liga��o de Esgoto do Im�vel this.validarSituacaoEsgotoImovel(imovel, tipoServico); return new String("TAMPONADO"); } else if (tipoServico.intValue() == ServicoTipo.TIPO_DESATIVACAO_LIGACAO_ESGOTO) { // [FS0007]- Validar Situa��o da Liga��o de �gua do Im�vel this.validarSituacaoAguaImovel(imovel, tipoServico); // [FS0003]- Validar Situa��o da Liga��o de Esgoto do Im�vel this.validarSituacaoEsgotoImovel(imovel, tipoServico); return new String("LIGADO FORA DE USO"); } else if (tipoServico.intValue() == ServicoTipo.TIPO_RESTABELECIMENTO_LIGACAO_ESGOTO || tipoServico.intValue() == ServicoTipo.TIPO_REATIVACAO_LIGACAO_ESGOTO) { // [FS0004 - Validar Volume M�nimo Fixado] this.validarSituacaoEsgotoImovel(imovel, tipoServico); return new String("LIGADO"); } else { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja * associado a opera��o EFETUAR MUDANCA SITUACAO FATURAMENTO * LIGACAO ESGOTO, n�o ser� necess�rio realizar as * valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao( ordemServico.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_MUDANCA_SITUACAO_FATURAMENTO_LIGACAO_ESGOTO_INT) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.servico_associado_atualizar_ligacao_esgoto_invalida"); } else { return new String(""); } } } } return retorno; } /** * [UC0356] Efetuar Mudan�a de Situa��o de Faturamento da Liga��o de Esgoto * * Permite Atualizar Liga��o de Esgoto do Im�vel. * * [FS0006]-Atualizar Liga��o de Esgoto do Im�vel * * @author Leandro Cavalcanti * @date 18/07/2006 * * @param ordemServico * @param volumeMinimoFixado * * @throws ControladorException */ /* * private void validarMudancaSituacaoFaturamentoLigacaoesgotoEfetuar( * OrdemServico ordemServico) throws ControladorException { * * Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); // * Validar Tipo de Servi�o. if (ordemServico != null) { if * (ordemServico.getServicoTipo().getId() != null) { // Tipo de Servi�o. * Integer tipoServico = ordemServico.getServicoTipo().getId(); if * (tipoServico.intValue() == ServicoTipo.TIPO_TAMPONAMENTO_LIGACAO_ESGOTO) { * * LigacaoEsgotoSituacao ligacaoEsgotoimovel = new LigacaoEsgotoSituacao(); * ligacaoEsgotoimovel.setId(LigacaoEsgotoSituacao.TAMPONADO); * imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoimovel); * imovel.setUltimaAlteracao(new Date()); // 4.2.1.3 Caso usu�rio confirme a * efetiva��o getControladorImovel() * .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto( imovel, * ligacaoEsgotoimovel); } else if (tipoServico.intValue() == * ServicoTipo.TIPO_DESATIVACAO_LIGACAO_ESGOTO) { * * LigacaoEsgotoSituacao ligacaoEsgotoimovel = new LigacaoEsgotoSituacao(); * ligacaoEsgotoimovel .setId(LigacaoEsgotoSituacao.LIG_FORA_DE_USO); * imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoimovel); * imovel.setUltimaAlteracao(new Date()); // 4.2.1.3 Caso usu�rio confirme a * efetiva��o getControladorImovel() * .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto( imovel, * ligacaoEsgotoimovel); } else if (tipoServico.intValue() == * ServicoTipo.TIPO_RESTABELECIMENTO_LIGACAO_ESGOTO) { // [FS0006]-Atualizar * Liga��o de Esgoto do Im�vel LigacaoEsgotoSituacao ligacaoEsgotoimovel = * new LigacaoEsgotoSituacao(); * ligacaoEsgotoimovel.setId(LigacaoEsgotoSituacao.LIGADO); * imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoimovel); * imovel.setUltimaAlteracao(new Date()); // 4.2.1.3 Caso usu�rio confirme a * efetiva��o getControladorImovel() * .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto( imovel, * ligacaoEsgotoimovel); } else if (tipoServico.intValue() == * ServicoTipo.TIPO_REATIVACAO_LIGACAO_ESGOTO) { // [FS0006]-Atualizar * Liga��o de Esgoto do Im�vel LigacaoEsgotoSituacao ligacaoEsgotoimovel = * new LigacaoEsgotoSituacao(); * ligacaoEsgotoimovel.setId(LigacaoEsgotoSituacao.LIGADO); * imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoimovel); * imovel.setUltimaAlteracao(new Date()); // 4.2.1.3 Caso usu�rio confirme a * efetiva��o getControladorImovel() * .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto( imovel, * ligacaoEsgotoimovel); } } } } */ /** * [UC0356] Efetuar Mudan�a de Situa��o de Faturamento da Liga��o de Esgoto * * Permite Efetuar Mudan�a de Situa��o de Faturamento da Liga��o de Esgoto . * * [FS0001]- Validar Ordem de Servi�o [FS0002] Verificar Situa��o do Imovel * [FS0002] Verificar Situa��o do Imovel [FS0003]- Validar Situa��o da * Liga��o de Esgoto do Im�vel * * @author Leandro Cavalcanti * @date 18/07/2006 * * @param ordemServicoId * @param imovel * @param dataMudanca * @param volumeMinimoFixado * @param novaSituacaoEsgoto * @throws ControladorException */ public void efetuarMudancaSituacaoFaturamentoLiagacaoEsgoto( IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { // item 4.2.1 nova Situa��o do Esgoto igual Tamponamento da Liga��o de // Esgoto /* Sistema deve atualizar a situa��o de esgoto do Im�vel para tamponado */ OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); LigacaoEsgoto ligacaoEsgoto = integracaoComercialHelper .getLigacaoEsgoto(); // Controle de concorrencia FiltroLigacaoEsgoto filtroLigacaoEsgoto = new FiltroLigacaoEsgoto(); filtroLigacaoEsgoto.adicionarParametro(new ParametroSimples( FiltroLigacaoEsgoto.ID, ligacaoEsgoto.getId())); Collection colecaoEsgotoBase = getControladorUtil().pesquisar( filtroLigacaoEsgoto, LigacaoEsgoto.class.getName()); if (!colecaoEsgotoBase.isEmpty()) { LigacaoEsgoto ligacaoEsgotoBase = (LigacaoEsgoto) Util .retonarObjetoDeColecao(colecaoEsgotoBase); if (ligacaoEsgotoBase.getUltimaAlteracao().after( ligacaoEsgoto.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } } FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, ordemServico.getRegistroAtendimento().getImovel().getId())); Collection colecaoImovelBase = getControladorUtil().pesquisar( filtroImovel, Imovel.class.getName()); if (!colecaoImovelBase.isEmpty()) { Imovel imovelBase = (Imovel) Util .retonarObjetoDeColecao(colecaoImovelBase); if (imovelBase.getUltimaAlteracao().after( ordemServico.getRegistroAtendimento().getImovel() .getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } } LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao(); switch (ordemServico.getServicoTipo().getId()) { case ServicoTipo.TIPO_TAMPONAMENTO_LIGACAO_ESGOTO: ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.TAMPONADO); break; case ServicoTipo.TIPO_DESATIVACAO_LIGACAO_ESGOTO: ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIG_FORA_DE_USO); break; case ServicoTipo.TIPO_RESTABELECIMENTO_LIGACAO_ESGOTO: ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO); break; case ServicoTipo.TIPO_REATIVACAO_LIGACAO_ESGOTO: ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO); break; } Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao); /* * [UC0107] Registrar Transa��o * */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_MUDANCA_SITUACAO_FATURAMENTO_LIGACAO_ESGOTO, ligacaoEsgoto.getId(), ligacaoEsgoto.getId(), new UsuarioAcaoUsuarioHelper(integracaoComercialHelper .getUsuarioLogado(), UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // regitrando operacao registradorOperacao.registrarOperacao(ordemServico); registradorOperacao.registrarOperacao(imovel); getControladorTransacao().registrarTransacao(imovel); // [UC0107] -Fim- Registrar Transa��o getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto(imovel, ligacaoEsgotoSituacao); ordemServico.setUltimaAlteracao(new Date()); if (!integracaoComercialHelper.isVeioEncerrarOS()) { this.getControladorOrdemServico() .verificarOrdemServicoControleConcorrencia(ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(integracaoComercialHelper.getQtdParcelas()) .intValue(), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } /** * [UC0356]- Efetuar mudan�a de Faturamento na Liga��o de �gua * [FS0006]-Atualizar Liga��o de Esgoto * * Permite atualizar a Tabele de Liga��o Esdoto . Update LIGACAO_ESGOTO * LESG_NNCONSUMOMINIMOESGOTO (volume M�nimo fixado) LESG_TMULTIMAALTERADAO * (data e hora correntes) Where LESG_ID=IMOV_ID da tabela IMOVEL * * @author Leandro Cavalcanti * @date 18/07/2006 * * * @param imovel * @param volumeMinimoFixado * * @throws ControladorException */ public void atualizarLigacaoEsgoto(Imovel imovel, String volumeMinimoFixado) throws ControladorException { // Liga��o de Esgoto String idImovel = imovel.getId().toString(); FiltroLigacaoEsgoto filtroLigacaoEsgoto = new FiltroLigacaoEsgoto(); filtroLigacaoEsgoto.adicionarParametro(new ParametroSimples( FiltroLigacaoEsgoto.ID, idImovel)); // filtroLigacaoEsgoto // .adicionarCaminhoParaCarregamentoEntidade("ligacaoEsgoto"); /* * Collection colecaoLigacaoAgua = getControladorUtil().pesquisar( * filtroLigacaoEsgoto, LigacaoEsgoto.class.getName()); */ Collection colecaoLigacaoEsgoto = new ArrayList(); LigacaoEsgoto ligacaoEsgoto = null; this.getControladorMicromedicao().validarImovelEmCampo(imovel.getId()); if (!Util.isVazioOrNulo(colecaoLigacaoEsgoto)) { ligacaoEsgoto = (LigacaoEsgoto) colecaoLigacaoEsgoto.iterator() .next(); } if (Util.verificarNaoVazio(volumeMinimoFixado) && ligacaoEsgoto != null) { Integer volumeMinimoFixadoInformado = new Integer( volumeMinimoFixado); // Atualizando campos da tabela LigacaoEsgoto ligacaoEsgoto.setConsumoMinimo(volumeMinimoFixadoInformado); ligacaoEsgoto.setUltimaAlteracao(new Date()); // Atualiza tabela LigacaoAgua getControladorUtil().atualizar(ligacaoEsgoto); } else { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.requerid", null, "Volume M�nimo Fixado"); } } /** * [UC0368] Atualizar Instala��o do hidr�metro * * [FS0001] - Verificar a exist�ncia da matr�cula do Im�vel [FS0002] - * Verificar a situa��o do Im�vel [FS0003] - Validar exist�ncia do * hidr�metro [FS0004] - Validar leitura instala��o hidr�metro [FS0005] - * Validar leitura retirada hidr�metro [FS0006] - Validar leitura retirada * corte [FS0007] - Validar Leitura Supress�o [FS0009] - Verificar sucesso * da transa��o * * @author lms * @created 21/07/2006 * @throws ControladorException * */ public void atualizarInstalacaoHidrometro(Imovel imovel, Integer medicaoTipo, Usuario usuario) throws ControladorException { HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = null; Imovel atualizarPocoTipoImovel = null; atualizarPocoTipoImovel = getControladorImovel().pesquisarImovel(imovel.getId()); if (MedicaoTipo.LIGACAO_AGUA.equals(medicaoTipo)) { hidrometroInstalacaoHistorico = imovel.getLigacaoAgua() .getHidrometroInstalacaoHistorico(); } else if (MedicaoTipo.POCO.equals(medicaoTipo)) { hidrometroInstalacaoHistorico = imovel .getHidrometroInstalacaoHistorico(); atualizarPocoTipoImovel.setPocoTipo(imovel.getPocoTipo()); } hidrometroInstalacaoHistorico.setUltimaAlteracao(new Date()); // [FS0001] - Verificar a exist�ncia da matr�cula do Im�vel // [FS0002] - Verificar a situa��o do Im�vel FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, imovel.getId())); getControladorImovel().pesquisarImovelSituacaoAtiva(filtroImovel); // [FS0003] - Validar exist�ncia do hidr�metro getControladorImovel().validarExistenciaHidrometro(imovel, medicaoTipo); // [FS0004] - Validar leitura instala��o hidr�metro /* * Caso a leitura da instal��o do hidr�metro informada seja igual a zero * ou valores negativos, exibir a mensagem: "Leitura instala��o deve * somente conter n�meros positivos" */ if (!Util.validarNumeroMaiorQueZERO(hidrometroInstalacaoHistorico .getNumeroLeituraInstalacao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.long", null, "Leitura de Instala��o"); } // [FS0005] - Validar leitura retirada hidr�metro if (hidrometroInstalacaoHistorico.getDataRetirada() == null) { /* * Caso a data de retirada do hidr�metro n�o esteja informada, o * sistema n�o deve deixar infomar a leitura de retirada do * hidr�metro <<Qual a mensagem???>> */ } else { /* * Caso a data de retirada do hidr�metro esteja informada e o * usu�rio informar a leitura de retirada do hidr�metro igual a * zeros ou valores negativos, exibir a mensagem: "Leitura de * retirada do hidr�metro deve somente conter n�meros positivos" */ if (!Util.validarNumeroMaiorQueZERO(hidrometroInstalacaoHistorico .getNumeroLeituraRetirada())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.long", null, "Leitura de Retirada"); } } // [FS0006] - Validar leitura retirada corte if (imovel.getLigacaoAgua().getDataCorte() == null) { /* * Caso a data do corte n�o esteja informada para o Im�vel, o * sistema n�o deve deixar infomar a leitura de corte do hidr�metro <<Qual * a mensagem???>> */ } else { /* * Caso a data do corte esteja informada para o Im�vel e o usu�rio * informar a leitura de corte da Liga��o de �gua igual a zeros ou * valores negativos, exibir a mensagem: "Leitura de Corte da * Liga��o de �gua deve somente conter n�meros positivos" */ if (!Util.validarNumeroMaiorQueZERO(hidrometroInstalacaoHistorico .getNumeroLeituraCorte())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.long", null, "Leitura de Corte"); } } // ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_INSTALACAO_HIDROMETRO_ATUALIZAR, imovel .getId(), imovel.getId(), new UsuarioAcaoUsuarioHelper( usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(hidrometroInstalacaoHistorico); // ------------ REGISTRAR TRANSA��O ---------------- // [FS0009] - Verificar sucesso da transa��o getControladorUtil().atualizar(hidrometroInstalacaoHistorico); getControladorUtil().atualizar(atualizarPocoTipoImovel); } /** * [UC0356]- Efetuar mudan�a de Faturamento na Liga��o de �gua * * [FS0007]- Validar Situa��o da Liga��o de �gua do Im�vel * * @author Leandro Cavalcanti * @date 18/07/2006 * @param imovel * @param volumeMinimoFixado * * @throws ControladorException */ public String validarSituacaoAguaImovel(Imovel imovel, Integer tipoServico) throws ControladorException { String retorno = null; if (tipoServico.intValue() == ServicoTipo.TIPO_TAMPONAMENTO_LIGACAO_ESGOTO) { if (imovel.getLigacaoAguaSituacao().getId().equals( LigacaoAguaSituacao.LIGADO) || imovel.getLigacaoAguaSituacao().getId().equals( LigacaoAguaSituacao.CORTADO)) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.situacao.ligacaoagua.imovel.tamponamento.invalida", null, imovel.getId().toString()); } else { retorno = new String("TAMPONADO"); } } else if (tipoServico.intValue() == ServicoTipo.TIPO_DESATIVACAO_LIGACAO_ESGOTO) { if (imovel.getLigacaoAguaSituacao().getId().equals( LigacaoAguaSituacao.LIGADO) || imovel.getLigacaoAguaSituacao().getId().equals( LigacaoAguaSituacao.CORTADO)) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.situacao.ligacaoagua.imovel.desativacao.invalida", null, imovel.getId().toString()); } else { retorno = new String("LIGADO FORA DE USO"); } } return retorno; } /** * [UC0356]- Efetuar mudan�a de Faturamento na Liga��o de �gua * * [FS0003]- Validar Situa��o da Liga��o de Esgoto do Im�vel * * @author Leandro Cavalcanti * @date 18/07/2006 * @param imovel * @param volumeMinimoFixado * * @throws ControladorException */ public void validarSituacaoEsgotoImovel(Imovel imovel, Integer tipoServico) throws ControladorException { if (tipoServico.intValue() == LigacaoEsgotoSituacao.SITUACAO_TAMPONADO .intValue() && (imovel.getLigacaoEsgotoSituacao().getId() != LigacaoEsgotoSituacao.LIGADO)) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.situacao_tamponamento_ligacao_esgoto_imovel_invalida", null, tipoServico.toString()); } else if (tipoServico.intValue() == LigacaoEsgotoSituacao.SITUACAO_DESATIVACAO .intValue() && (imovel.getLigacaoEsgotoSituacao().getId() != LigacaoEsgotoSituacao.LIGADO)) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.situacao_desativacao_ligacao_esgoto_imovel_invalida", null, tipoServico.toString()); } else if (tipoServico.intValue() == LigacaoEsgotoSituacao.SITUACAO_RESTABELECIMENTO .intValue() && (imovel.getLigacaoEsgotoSituacao().getId() != LigacaoEsgotoSituacao.TAMPONADO)) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.situacao_restabelecimento_ligacao_esgoto_imovel_invalida", null, tipoServico.toString()); } else if (tipoServico.intValue() == LigacaoEsgotoSituacao.SITUACAO_REATIVACAO .intValue() && (imovel.getLigacaoEsgotoSituacao().getId() != LigacaoEsgotoSituacao.LIG_FORA_DE_USO)) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.situacao_restabelecimento_ligacao_esgoto_imovel_invalida", null, tipoServico.toString()); } } /** * [UC0364] Efetuar Substitui��o de hidr�metro * [SB0001] Atualizar o hist�rico da instala��o do hidr�metro substituido * [SB0002] Gerar Hist�rico de instala��o do hidr�metro [SB0003] Atualizar * Im�vel/Liga��o de �gua [SB0004] Atualizar situa��o de hidr�metro na * tabela HIDROMETRO [SB0005] Atualizar situa��o do hidr�metro substituido * na tabela HIDROMETRO */ @SuppressWarnings("rawtypes") public void efetuarSubstituicaoHidrometro(IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = integracaoComercialHelper.getHidrometroInstalacaoHistorico(); String matriculaImovel = integracaoComercialHelper.getMatriculaImovel(); HidrometroInstalacaoHistorico hidrometroSubstituicaoHistorico = integracaoComercialHelper.getHidrometroSubstituicaoHistorico(); String situacaoHidrometroSubstituido = integracaoComercialHelper.getSituacaoHidrometroSubstituido(); Integer localArmazenagemHidrometro = null; if(integracaoComercialHelper != null && integracaoComercialHelper.getLocalArmazenagemHidrometro() != null){ localArmazenagemHidrometro = integracaoComercialHelper.getLocalArmazenagemHidrometro(); } OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); Integer id = null; validacaoSubstituicaoHidrometro(matriculaImovel, hidrometroInstalacaoHistorico.getHidrometro().getNumero(), situacaoHidrometroSubstituido); if ( integracaoComercialHelper.getUsuarioLogado() != null ){ hidrometroSubstituicaoHistorico.setUsuarioRetirada( integracaoComercialHelper.getUsuarioLogado() ); }else{ hidrometroSubstituicaoHistorico.setUsuarioRetirada(null); } RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_SUBSTITUICAO_HIDROMETRO_EFETUAR, Integer.parseInt(matriculaImovel), Integer.parseInt(matriculaImovel), new UsuarioAcaoUsuarioHelper(integracaoComercialHelper.getUsuarioLogado(), UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); try { registradorOperacao.registrarOperacao(hidrometroInstalacaoHistorico); if ( integracaoComercialHelper.getUsuarioLogado() != null ){ hidrometroSubstituicaoHistorico.setUsuarioRetirada(integracaoComercialHelper.getUsuarioLogado()); }else{ hidrometroSubstituicaoHistorico.setUsuarioRetirada(null); } repositorioAtendimentoPublico.atualizarHidrometroInstalacoHistorico(hidrometroSubstituicaoHistorico); Short indicadorTrocaProtecao = hidrometroInstalacaoHistorico.getIndicadorTrocaProtecao(); hidrometroInstalacaoHistorico.setIndicadorTrocaProtecao(ConstantesSistema.NAO); Short indicadorTrocaRegistro = hidrometroInstalacaoHistorico.getIndicadorTrocaRegistro(); hidrometroInstalacaoHistorico.setIndicadorTrocaRegistro(ConstantesSistema.NAO); hidrometroInstalacaoHistorico.setIndicadorInstalcaoSubstituicao(ConstantesSistema.NAO); if ( integracaoComercialHelper.getUsuarioLogado() != null ){ hidrometroInstalacaoHistorico.setUsuarioInstalacao(integracaoComercialHelper.getUsuarioLogado()); }else{ hidrometroInstalacaoHistorico.setUsuarioInstalacao(null); } hidrometroInstalacaoHistorico.setUsuarioRetirada(null); id = (Integer) getControladorUtil().inserir(hidrometroInstalacaoHistorico); // [SB0003]Atualizar Im�vel/Liga��o de �gua if (hidrometroInstalacaoHistorico.getMedicaoTipo().getId().equals(MedicaoTipo.LIGACAO_AGUA)) { repositorioAtendimentoPublico.atualizarHidrometroInstalacaoHistoricoLigacaoAgua(hidrometroInstalacaoHistorico.getLigacaoAgua().getId(), id); } else if (hidrometroInstalacaoHistorico.getMedicaoTipo().getId().equals(MedicaoTipo.POCO)) { repositorioAtendimentoPublico.atualizarHidrometroIntalacaoHistoricoImovel(hidrometroInstalacaoHistorico.getImovel().getId(), id, null); } // [SB004]Atualizar situa��o de hidr�metro na tabela HIDROMETRO Integer situacaoHidrometro = HidrometroSituacao.INSTALADO; repositorioAtendimentoPublico.atualizarSituacaoHidrometro(hidrometroInstalacaoHistorico.getHidrometro().getId(),situacaoHidrometro); situacaoHidrometro = new Integer(situacaoHidrometroSubstituido); repositorioAtendimentoPublico.atualizarSituacaoHidrometro(hidrometroSubstituicaoHistorico.getHidrometro().getId(), situacaoHidrometro); if(localArmazenagemHidrometro != null){ repositorioAtendimentoPublico.atualizarLocalArmazanagemHidrometro(hidrometroSubstituicaoHistorico.getHidrometro().getId(), localArmazenagemHidrometro); } if (!integracaoComercialHelper.isVeioEncerrarOS()) { this.getControladorOrdemServico().verificarOrdemServicoControleConcorrencia(ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } boolean osAssociadaDOC = getControladorOrdemServico().verificarOSAssociadaDocumentoCobranca(ordemServico.getId()); boolean osAssociadaRA = getControladorOrdemServico().verificarOSAssociadaRA(ordemServico.getId()); if (!osAssociadaDOC && !osAssociadaRA) { FiltroOrdemServico filtroOs = new FiltroOrdemServico(); filtroOs.adicionarParametro(new ParametroSimples(FiltroOrdemServico.ID, ordemServico.getId())); Collection colecaoDados = getControladorUtil().pesquisar(filtroOs, OrdemServico.class.getName()); Iterator iColecaoDados = colecaoDados.iterator(); OrdemServico os = (OrdemServico) iColecaoDados.next(); Date dataEncerramentoOs = os.getDataEncerramento(); if (dataEncerramentoOs == null) dataEncerramentoOs = ordemServico.getDataEncerramento(); BoletimOsConcluida boletim = new BoletimOsConcluida(); boletim.setId(ordemServico.getId()); boletim.setOrdemServico(ordemServico); boletim.setLocalidade(ordemServico.getImovel().getLocalidade()); boletim.setAnoMesReferenciaBoletim(Util.getAnoMesComoInt(dataEncerramentoOs)); boletim.setCodigoFiscalizacao(new Short("0")); boletim.setUsuario(null); boletim.setDataFiscalizacao(null); boletim.setDataEncerramentoBoletim(null); boletim.setIndicadorTrocaProtecaoHidrometro(indicadorTrocaProtecao); boletim.setIndicadorTrocaRegistroHidrometro(indicadorTrocaRegistro); boletim.setHidrometroLocalInstalacao(hidrometroInstalacaoHistorico.getHidrometroLocalInstalacao()); boletim.setUltimaAlteracao(new Date()); getControladorUtil().inserir(boletim); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(integracaoComercialHelper.getQtdParcelas()), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC0364] Efetuar Substitui��o de hidr�metro * * Validar Substitui��o de hidr�metro * * @author Ana Maria * @date 25/07/2006 * * @param matriculaImovel, * @param numeroHidrometro, * @param situacaoHidrometroSubstituido * * return void * @throws ControladorException */ @SuppressWarnings("rawtypes") public void validacaoSubstituicaoHidrometro(String matriculaImovel, String numeroHidrometro, String situacaoHidrometroSubstituido) throws ControladorException { this.getControladorMicromedicao().validarImovelEmCampo(new Integer(matriculaImovel)); // Caso o hidr�metro substituido esteja com situacao igual a DISPON�VEL if (situacaoHidrometroSubstituido.equals(-1) || situacaoHidrometroSubstituido.equals(HidrometroSituacao.INSTALADO.toString())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.hidrometro_situacao_disponivel"); } FiltroHidrometro filtroHidrometro = new FiltroHidrometro(); filtroHidrometro.adicionarCaminhoParaCarregamentoEntidade("hidrometroSituacao"); filtroHidrometro.adicionarParametro(new ParametroSimples(FiltroHidrometro.NUMERO_HIDROMETRO, numeroHidrometro)); Collection colecaoHidrometro = null; colecaoHidrometro = getControladorUtil().pesquisar(filtroHidrometro,Hidrometro.class.getName()); // [FS002]Caso o hidr�metro informado esteja com a situa��o diferente de DISPON�VEL Iterator iteratorHidrometro = colecaoHidrometro.iterator(); while (iteratorHidrometro.hasNext()) { Hidrometro hidrometro = (Hidrometro) iteratorHidrometro.next(); Integer idSituacaoHidrometro = hidrometro.getHidrometroSituacao().getId(); if (!(idSituacaoHidrometro.equals(HidrometroSituacao.DISPONIVEL))) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.hidrometro_situacao_indisponivel", null,hidrometro.getHidrometroSituacao().getDescricao()); } } FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID,matriculaImovel)); Collection colecaoImoveis = null; colecaoImoveis = getControladorUtil().pesquisar(filtroImovel,Imovel.class.getName()); Iterator iteratorImovel = colecaoImoveis.iterator(); Imovel imovel = (Imovel) iteratorImovel.next(); // [FS008]Caso situ��o do Im�vel n�o seja ativo(IMOV_ICEXCLUSAO da tabela IMOVEL correspondete a "n�o") if (imovel.getIndicadorExclusao() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.situacao_imovel_indicador_exclusao", null, imovel.getId().toString()); } } /** * [UC0360]- Efetuar Supress�o da Liga��o de �gua * * [SB0001]- Atualizar Liga��o de �gua [SB0002]- Atualizar Im�vel [SB0004]- * Atualizar Hist�tico de Instala��o de hidr�metro * * @author R�mulo Aur�lio * @date 28/07/2006 * @param imovel * * @throws ControladorException */ public void efetuarSupressaoLigacaoAgua(IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { Imovel imovel = integracaoComercialHelper.getImovel(); OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); LigacaoAgua ligacaoAgua = integracaoComercialHelper.getLigacaoAgua(); HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = integracaoComercialHelper.getHidrometroInstalacaoHistorico(); SistemaParametro sistemaParametro = getControladorUtil().pesquisarParametrosDoSistema(); // 4.3.1 Caso PARM_ICSUPRESSAO = 1 if (sistemaParametro.getIndicadorSupressao().equals(ConstantesSistema.SIM)) { // 4.3.1.1 caso o motivo de supress�o selecionado seja igual a "A PEDIDO DO CLIENTE", // verificar se existe d�bito para o im�vel SupressaoMotivo supressaoMotivo = ligacaoAgua.getSupressaoMotivo(); if (supressaoMotivo.getId() != null && supressaoMotivo.getId().equals(SupressaoMotivo.A_PEDIDO_DO_CLIENTE)) { // FS0015 - Verificar existencia de d�bitos ObterDebitoImovelOuClienteHelper colecaoDebitoImovel = getControladorCobranca() .obterDebitoImovelOuCliente(1, // Indicador d�bito im�vel imovel.getId().toString(), // Matr�cula do im�vel null, // C�digo do cliente null, // Tipo de rela��o do cliento com o im�vel "190101", // Refer�ncia inicial do d�bito "999912", // Refer�ncia final do d�bito Util.converteStringParaDate("01/01/1901"), // Inicio Vencimento Util.converteStringParaDate("31/12/9999"), // Final Vencimento 1, // Indicador pagamento 1, // Indicador conta em revis�o 1, // Indicador d�bito a cobrar 1, // Indicador cr�dito a realizar 1, // Indicador notas promiss�rias 1, // Indicador guias de pagamento 1, // Indicador acr�scimos por impontualidade null); // Indicador Contas if ((colecaoDebitoImovel.getColecaoContasValoresImovel() != null && colecaoDebitoImovel.getColecaoContasValoresImovel().size() > 0) || (colecaoDebitoImovel.getColecaoGuiasPagamentoValores() != null && colecaoDebitoImovel.getColecaoGuiasPagamentoValores().size() > 0) || (colecaoDebitoImovel.getColecaoDebitoACobrar() != null && colecaoDebitoImovel.getColecaoDebitoACobrar().size() > 0)) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.nao_e_possivel_efetuar_supressao"); } } // 4.3.1.2 caso contrario, // se o usu�rio n�o tiver permiss�o especial para efetuar supress�o, // exibir a mensagem "Necess�rio permiss�o especial para efetuar // supress�o else { boolean temPermissaoEfetuarSupressaoAgua = getControladorPermissaoEspecial().verificarPermissaoEfetuarSupressaoAgua(integracaoComercialHelper.getUsuarioLogado()); if (!temPermissaoEfetuarSupressaoAgua) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.necessario_permissao_para_efetuar_supressao"); } } } /* * [UC0107] Registrar Transa��o * */ RegistradorOperacao registradorOperacao = new RegistradorOperacao(Operacao.OPERACAO_SUPRESSAO_LIGACAO_AGUA_EFETUAR, imovel.getId(), imovel.getId(), new UsuarioAcaoUsuarioHelper(integracaoComercialHelper.getUsuarioLogado(), UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // [UC0107] -Fim- Registrar Transa��o // [SB0001] Atualizar Liga��o de �gua this.verificarLigacaoAguaControleConcorrencia(ligacaoAgua); registradorOperacao.registrarOperacao(ligacaoAgua); getControladorUtil().atualizar(ligacaoAgua); // [SB0001] Atualizar Imovel this.getControladorImovel().verificarImovelControleConcorrencia(imovel); registradorOperacao.registrarOperacao(imovel); imovel.setUsuarioParaHistorico(integracaoComercialHelper.getUsuarioLogado()); getControladorAtualizacaoCadastro().atualizar(imovel); if (hidrometroInstalacaoHistorico != null) { hidrometroInstalacaoHistorico.setUsuarioRetirada(integracaoComercialHelper.getUsuarioLogado()); registradorOperacao.registrarOperacao(hidrometroInstalacaoHistorico); /** * Alterado por Arthur Carvalho * Analista: Rosana Carvalho * Data: 18/05/2010 * Devido a duplicidade da gera��o de debito na supressao do im�vel, * � efetuada a retirada do hidrometro sem gera��o de d�bito. */ this.efetuarRetiradaHidrometroSemGeracaoDebito(integracaoComercialHelper); getControladorUtil().atualizar(hidrometroInstalacaoHistorico); } // Atualiza Ordem de Servico FiltroOrdemServico filtroOrdemServico = new FiltroOrdemServico(); filtroOrdemServico.adicionarParametro(new ParametroSimples(FiltroOrdemServico.ID, ordemServico.getId())); Collection colecaoOrdemServico = getControladorUtil().pesquisar(filtroOrdemServico, OrdemServico.class.getName()); if (!colecaoOrdemServico.isEmpty()) { OrdemServico ordemServicoBase = (OrdemServico) Util.retonarObjetoDeColecao(colecaoOrdemServico); if (ordemServicoBase.getUltimaAlteracao().after(ordemServico.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } } // [SB006]Atualizar Ordem de Servi�o if (!integracaoComercialHelper.isVeioEncerrarOS()) { getControladorOrdemServico().atualizaOSGeral(ordemServico); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(integracaoComercialHelper.getQtdParcelas()), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } // atencao.situacao_volume_minimo_fixado_nao_multiplo= Valor do volume // M�nimo Fixado deve ser alterado para {0} valor multiplo de quantidade de // economias {1}. public Integer validarVolumeMinimoFixadoEsgoto(Imovel imovel, String volumeMinimoFixado) throws ControladorException { // [UC0105] - Obter Consumo M�nimo da Liga��o int consumoMinimoObtido = getControladorMicromedicao() .obterConsumoMinimoLigacao(imovel, null); Integer consumoMinimoObtido1 = new Integer(consumoMinimoObtido); // Verificar se o volume M�nimo informado seja menor que o valor // M�nimo obtido para Im�vel. if (volumeMinimoFixado != null && !volumeMinimoFixado.trim().equals("")) { if (!volumeMinimoFixado.trim().equalsIgnoreCase( ConstantesSistema.SET_ZERO.toString())) { Integer consumoInformado = Integer.parseInt(volumeMinimoFixado); if (consumoInformado.intValue() < consumoMinimoObtido1 .intValue()) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.situacao_volume_minimo_fixado_menor_consumo_calculado", null, consumoMinimoObtido + ""); } } } else { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.requerid", null, "Situa��o da Liga��o de Esgoto"); } return new Integer(volumeMinimoFixado); } /** * [UC0359] Efetuar Restabelecimento Liga��o de �gua * * Permite efetuar restabelecimento da Liga��o de �gua ou pelo menu ou pela * funcionalidade encerrar a Execu��o da ordem de Servi�o. * * * [SB0001] Atualizar Im�vel/Liga��o de �gua/Liga��o de Esgoto * * * * @author R�mulo Aur�lio * @date 12/07/2006 * * @param idImovel,idOrdemServico * * @throws ControladorException */ public void efetuarRestabelecimentoLigacaoAgua( IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { // [SB0001] - Atualizar Im�vel/Liga��o de �gua OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); // Caso 1 Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); this.getControladorMicromedicao().validarImovelEmCampo(imovel.getId()); /* * [UC0107] Registrar Transa��o */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_RESTABELECIMENTO_LIGACAO_AGUA_EFETUAR, imovel .getId(), imovel.getId(), new UsuarioAcaoUsuarioHelper( integracaoComercialHelper.getUsuarioLogado(), UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, ordemServico.getRegistroAtendimento().getImovel().getId())); Collection colecaoImovelBase = getControladorUtil().pesquisar( filtroImovel, Imovel.class.getName()); Imovel imovelBase = null; if (!colecaoImovelBase.isEmpty()) { imovelBase = (Imovel) Util .retonarObjetoDeColecao(colecaoImovelBase); if (imovelBase.getUltimaAlteracao().after( ordemServico.getRegistroAtendimento().getImovel() .getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } } LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); ligacaoAguaSituacao.setId(LigacaoAguaSituacao.LIGADO); ligacaoAguaSituacao.setUltimaAlteracao(new Date()); imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao); imovel.setUltimaAlteracao(new Date()); this.getControladorImovel().verificarImovelControleConcorrencia(imovel); // regitrando operacao registradorOperacao.registrarOperacao(imovel); getControladorTransacao().registrarTransacao(imovel); // [SB0002] Atualizar Im�vel getControladorImovel().atualizarImovelExecucaoOrdemServicoLigacaoAgua( imovel, ligacaoAguaSituacao); LigacaoEsgotoSituacao ligacaoEsgotoSituacao = imovel .getLigacaoEsgotoSituacao(); if (ligacaoEsgotoSituacao != null && ligacaoEsgotoSituacao.getId().intValue() == LigacaoEsgotoSituacao.LIG_FORA_DE_USO .intValue()) { ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO); ligacaoEsgotoSituacao.setUltimaAlteracao(new Date()); getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto(imovel, ligacaoEsgotoSituacao); } // Caso 2 LigacaoAgua ligacaoAgua = imovel.getLigacaoAgua(); ligacaoAgua.setDataRestabelecimentoAgua(ordemServico .getDataEncerramento()); this.verificarLigacaoAguaControleConcorrencia(ligacaoAgua); // regitrando operacao registradorOperacao.registrarOperacao(ligacaoAgua); getControladorTransacao().registrarTransacao(ligacaoAgua); this.getControladorLigacaoAgua().atualizarLigacaoAguaRestabelecimento( ligacaoAgua); if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { this.getControladorOrdemServico() .verificarOrdemServicoControleConcorrencia(ordemServico); // regitrando operacao registradorOperacao.registrarOperacao(ordemServico); getControladorTransacao().registrarTransacao(ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(integracaoComercialHelper.getQtdParcelas()), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } /** * [UC0396] Inserir Tipo de Retorno da OS Referida * * [FS0003] - Validar atendimento do motivo de encerramento. * * @author lms * @created 28/07/2006 * @throws ControladorException * */ public void validarAtendimentoMotivoEncerramento( OsReferidaRetornoTipo osReferidaRetornoTipo) throws ControladorException { // [FS0003] - Validar atendimento do motivo de encerramento. /* * Caso o indicador de deferimento esteja preenchido com n�o, o * indicador de Execu��o do motivo de encerramento informado dever� * estar com n�o, caso contr�rio, exibir a mensagem: "Motivo de * encerramento do atendimento incompat�vel com o indicador de * deferimento informado" */ if (osReferidaRetornoTipo.getAtendimentoMotivoEncerramento() != null) { if (ConstantesSistema.NAO.equals(osReferidaRetornoTipo .getIndicadorDeferimento()) && ConstantesSistema.NAO.equals(osReferidaRetornoTipo .getAtendimentoMotivoEncerramento() .getIndicadorExecucao())) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atendimento_motivo_encerramento.incompativel"); } } } /** * [UC0396] Inserir Tipo de Retorno da OS Referida * * [FS0002] - Solicitar o indicador de troca de Servi�o, situa��o e motivo * de encerramento [FS0003] - Validar atendimento do motivo de encerramento * [FS0005] - Validar indicador de deferimento [FS0006] - Validar indicador * de deferimento x indicador de troca de Servi�o [FS0007] - Verificar * sucesso da transa��o * * @author lms * @created 21/07/2006 * @throws ControladorException * */ public Integer inserirOSReferidaRetornoTipo( OsReferidaRetornoTipo osReferidaRetornoTipo) throws ControladorException { // [FS0002] - Solicitar o indicador de troca de Servi�o, situa��o e // motivo de encerramento /* * Caso a Refer�ncia do tipo Servi�o escolhido possuir o indicador de * exist�ncia da Refer�ncia preenchido com n�o, as seguintes informa��es * dever�o estar desabilitadas para preenchimento e os seus conte�dos * dever�o estar preenchidos com: * * ORRT_ICTROCASERVICO = 2 ORRT_CDSITUACAOOSREFERENCIA = null AMEN_ID = * null * */ if (ConstantesSistema.NAO.equals(osReferidaRetornoTipo .getServicoTipoReferencia() .getIndicadorExistenciaOsReferencia())) { osReferidaRetornoTipo .setIndicadorTrocaServico(ConstantesSistema.NAO); osReferidaRetornoTipo.setSituacaoOsReferencia(null); osReferidaRetornoTipo.setAtendimentoMotivoEncerramento(null); } // [FS0003] - Validar atendimento do motivo de encerramento this.validarAtendimentoMotivoEncerramento(osReferidaRetornoTipo); // [FS0005] - Validar indicador de deferimento /* * Apenas uma das descri��es dos tipos de retorno da OS referida, por * Refer�ncia do tipo de Servi�o cujo identificador de uso esteja ATIVO, * pode ter este indicador com o valor UM, o resto dever� possuir o * valor igual a DOIS, caso contr�rio, exibir a mensagem: "Existe mais * de um indicador de deferimento com situa��o de deferido para a mesma * Refer�ncia do tipo Servi�o informado." */ try { if (ConstantesSistema.SIM.equals(osReferidaRetornoTipo .getIndicadorDeferimento())) { int total = this.repositorioAtendimentoPublico .consultarTotalIndicadorDeferimentoAtivoPorServicoTipoReferencia(osReferidaRetornoTipo); if (total > 0) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.deferimento.incompativel"); } } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } // [FS0006] - Validar indicador de deferimento x indicador de troca de // Servi�o /* * Caso o indicador de deferimento estiver marcando deferido, o * indicador da troca de Servi�o deve estar marcado como n�o, caso * contr�rio, exibir a mensagem: "Indicador de troca de Servi�o * incompat�vel com o indicador de deferimento informado." */ if (ConstantesSistema.SIM.equals(osReferidaRetornoTipo .getIndicadorDeferimento()) && ConstantesSistema.SIM.equals(osReferidaRetornoTipo .getIndicadorTrocaServico())) { throw new ControladorException("atencao.troca_servico.incompativel"); } osReferidaRetornoTipo .setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO); osReferidaRetornoTipo.setUltimaAlteracao(new Date()); // [FS0007] - Verificar sucesso da transa��o return (Integer) getControladorUtil().inserir(osReferidaRetornoTipo); } /** * [UC0381] Inserir Material com Unidade * * Permite a inclusao de um novo material * * * [SB0001] Gerar Material com Unidade * * 1.1Inclui o material na tabela Material * * * * @author R�mulo Aur�lio, Diogo Peixoto * @date 31/07/2006, 18/08/2011 * * @param codigoMaterial * @param descricao * @param descricaoAbreviada * @param unidadeMaterial * * @throws ControladorException */ public Integer inserirMaterial(String codigoMaterial, String descricao, String descricaoAbreviada, String unidadeMaterial, Usuario usuarioLogado) throws ControladorException { Material material = new Material(); material.setDescricao(descricao); material.setDescricaoAbreviada(descricaoAbreviada); String idUnidadeMaterial = unidadeMaterial; if (Util.verificarIdNaoVazio(idUnidadeMaterial)){ MaterialUnidade materialUnidade = new MaterialUnidade(); materialUnidade.setId(new Integer(idUnidadeMaterial)); material.setMaterialUnidade(materialUnidade); } material.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO); // [FS0001] Verificar existencia da Descri��o FiltroMaterial filtroMaterial = new FiltroMaterial(); filtroMaterial.adicionarParametro(new ParametroSimples(FiltroMaterial.DESCRICAO, material.getDescricao())); Collection<Material> colecaoMaterial = getControladorUtil().pesquisar(filtroMaterial, Material.class.getName()); if (!Util.isVazioOrNulo(colecaoMaterial)) { throw new ControladorException("atencao.descricao_ja_existente_material", null, "" + material.getDescricao() + ""); } if (Util.verificarNaoVazio(material.getDescricaoAbreviada())) { filtroMaterial = new FiltroMaterial(); // [FS0002]- Verificar exist�ncia da Descri��o abreviada filtroMaterial.adicionarParametro(new ParametroSimples(FiltroMaterial.DESCRICAO_ABREVIADA, material.getDescricao())); colecaoMaterial = getControladorUtil().pesquisar(filtroMaterial, Material.class.getName()); if (!Util.isVazioOrNulo(colecaoMaterial)) { throw new ControladorException("atencao.descricao_abreviada_ja_existente_material"); } } if (Util.verificarIdNaoVazio(codigoMaterial)) { try{ Integer codigo = Integer.valueOf(codigoMaterial); filtroMaterial.limparListaParametros(); //[FS0005]- Verificar exist�ncia do c�digo filtroMaterial.adicionarParametro(new ParametroSimples(FiltroMaterial.CODIGO, codigo)); colecaoMaterial = getControladorUtil().pesquisar(filtroMaterial, Material.class.getName()); if (!Util.isVazioOrNulo(colecaoMaterial)) { throw new ControladorException("atencao.codigo_ja_existente_material"); } material.setCodigo(codigo); }catch (NumberFormatException e) { throw new ControladorException("atencao.codigo_formato_invalido"); } } material.setUltimaAlteracao(new Date()); // ------------ REGISTRAR TRANSa��o---------------------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_MATERIAL_INSERIR, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_MATERIAL_INSERIR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); material.setOperacaoEfetuada(operacaoEfetuada); material.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(material); // --------FIM---- REGISTRAR TRANSa��o---------------------------- Integer idMaterial = (Integer) getControladorUtil().inserir(material); return idMaterial; } /** * [UC0385] Inserir Tipo Perfil Servi�o * * @author Ana Maria * @date 01/08/2006 * * @pparam servicoPerfilTipo * @throws ControladorException */ public Integer inserirServicoTipoPerfil(ServicoPerfilTipo servicoPerfilTipo) throws ControladorException { // [FS0004] Verificar existencia da Descri��o FiltroServicoPerfilTipo filtroServicoPerfilTipo = new FiltroServicoPerfilTipo(); filtroServicoPerfilTipo.adicionarParametro(new ParametroSimples( FiltroServicoPerfilTipo.DESCRICAO, servicoPerfilTipo .getDescricao())); filtroServicoPerfilTipo.adicionarParametro(new ParametroSimples( FiltroServicoPerfilTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoServicoPerfilTipo = getControladorUtil().pesquisar( filtroServicoPerfilTipo, ServicoPerfilTipo.class.getName()); if (colecaoServicoPerfilTipo != null && !colecaoServicoPerfilTipo.isEmpty()) { throw new ControladorException( "atencao.descricao_ja_existente_tipo_perfil_servico", null, "" + servicoPerfilTipo.getDescricao() + ""); } getControladorUtil().inserir(servicoPerfilTipo); // ------------ REGISTRAR TRANSa��o---------------------------- /* * RegistradorOperacao registradorOperacao = new RegistradorOperacao( * Operacao.OPERACAO_SERVICO_TIPO_INSERIR, new * UsuarioAcaoUsuarioHelper(Usuario.USUARIO_TESTE, * UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); * * Operacao operacao = new Operacao(); * operacao.setId(Operacao.OPERACAO_SERVICO_TIPO_PERFIL_INSERIR); * * OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); * operacaoEfetuada.setOperacao(operacao); * * servicoPerfilTipo.setOperacaoEfetuada(operacaoEfetuada); * servicoPerfilTipo.adicionarUsuario(Usuario.USUARIO_TESTE, * UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); * registradorOperacao.registrarOperacao(servicoPerfilTipo); */ // ------------ REGISTRAR TRANSa��o---------------------------- return servicoPerfilTipo.getId(); } /** * * [UC0410] - Inserir Tipo de Servi�o * * [FS0004] - Validar Perfil do Servi�o * * @author lms * @date 01/08/2006 */ public ServicoPerfilTipo pesquisarServicoPerfilTipo( Integer idServicoPerfilTipo) throws ControladorException { FiltroServicoPerfilTipo filtro = new FiltroServicoPerfilTipo(); filtro.adicionarParametro(new ParametroSimples( FiltroServicoPerfilTipo.ID, idServicoPerfilTipo)); return pesquisar(filtro, ServicoPerfilTipo.class, "Tipo do Perfil"); } /** * * [UC0410] - Inserir Operacao * * [FS0004] - Validar Operacao * * @author lms * @date 01/08/2006 */ public Operacao pesquisarOperacao(Integer idOperacao) throws ControladorException { FiltroOperacao filtro = new FiltroOperacao(); filtro.adicionarParametro(new ParametroSimples(FiltroOperacao.ID, idOperacao)); return pesquisar(filtro, Operacao.class, "Opera��o"); } /** * * [UC0410] - Inserir Tipo de Servi�o * * [FS0005] - Validar Tipo de Servi�o de Refer�ncia * * @author lms * @date 02/08/2006 */ public ServicoTipoReferencia pesquisarServicoTipoReferencia( Integer idServicoTipoReferencia) throws ControladorException { FiltroServicoTipoReferencia filtro = new FiltroServicoTipoReferencia(); filtro.adicionarParametro(new ParametroSimples( FiltroServicoTipoReferencia.ID, idServicoTipoReferencia)); return pesquisar(filtro, ServicoTipoReferencia.class, "Tipo do Servi�o de Refer�ncia"); } /** * * [UC0410] - Inserir Tipo de Servi�o * * [FS0009] - Validar Atividade * * @author lms * @date 05/08/2006 */ public Atividade pesquisarAtividade(Integer idAtividade, String atividadeUnica) throws ControladorException { FiltroAtividade filtro = new FiltroAtividade(); filtro.adicionarParametro(new ParametroSimples(FiltroAtividade.ID, idAtividade)); if (atividadeUnica != null && !atividadeUnica.trim().equals("")) { filtro.adicionarParametro(new ParametroSimples(FiltroAtividade.INDICADORATIVIDADEUNICA, ConstantesSistema.INDICADOR_USO_ATIVO)); } return pesquisar(filtro, Atividade.class, "Atividade"); } /** * * [UC0410] - Inserir Tipo de Servi�o * * [FS0010] - Validar Material * * @author lms * @date 08/08/2006 */ public Material pesquisarMaterial(Integer idMaterial) throws ControladorException { FiltroMaterial filtro = new FiltroMaterial(); filtro.adicionarParametro(new ParametroSimples(FiltroMaterial.ID, idMaterial)); return pesquisar(filtro, Material.class, "Material"); } private <T> T pesquisar(Filtro filtro, Class clazz, String label) throws ControladorException { T objeto = null; Collection colecao = getControladorUtil().pesquisar(filtro, clazz.getName()); if (colecao == null || colecao.isEmpty()) { throw new ControladorException("atencao.pesquisa_inexistente", null, label); } else { objeto = (T) colecao.iterator().next(); } return objeto; } /** * * [UC0410] - Inserir Tipo de Servi�o * * [FS0006] - Validar Ordem de Execu��o * * @author lms * @date 05/08/2006 */ public void validarOrdemExecucao(Collection colecaoServicoTipoAtividade, Short ordemExecucao) throws ControladorException { Set ordensExecucao = new TreeSet(); if (colecaoServicoTipoAtividade != null && !colecaoServicoTipoAtividade.isEmpty()) { for (Iterator iter = colecaoServicoTipoAtividade.iterator(); iter .hasNext();) { ordensExecucao.add(((ServicoTipoAtividade) iter.next()) .getNumeroExecucao()); } } if (ordensExecucao.contains(ordemExecucao)) { throw new ControladorException( "atencao.ordem_execucao.ja_existente", null, ordemExecucao + ""); } ordensExecucao.add(ordemExecucao); Short pred = 0; Short succ; for (Iterator iter = ordensExecucao.iterator(); iter.hasNext();) { succ = (Short) iter.next(); if (succ - pred > 1) { throw new ControladorException( "atencao.ordem_execucao.invalida", null, ordemExecucao + ""); } pred = succ; } } /** * * [UC0410] - Inserir Tipo de Servi�o * * @author lms * @date 07/08/2006 */ public Integer inserirServicoTipo(ServicoTipo servicoTipo, Usuario usuarioLogado,ServicoTipoBoletim servicoTipoBoletim) throws ControladorException { // [FS0001] - Verificar exist�ncia da Descri��o FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.DESCRICAO, servicoTipo.getDescricao())); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); ServicoTipo st = null; try { st = pesquisar(filtroServicoTipo, ServicoTipo.class, ""); } catch (ControladorException e) { } if (st != null) { throw new ControladorException( "atencao.servico_tipo.descricao_ja_existente"); } // ------------ REGISTRAR TRANSa��o---------------------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_TIPO_SERVICO_INSERIR, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_TIPO_SERVICO_INSERIR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); servicoTipo.setOperacaoEfetuada(operacaoEfetuada); servicoTipo.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(servicoTipo); // ------------ REGISTRAR TRANSa��o---------------------------- // [FS0002] - Verificar exist�ncia da Descri��o abreviada if (servicoTipo.getDescricaoAbreviada() != null && !servicoTipo.getDescricaoAbreviada().equals("")) { filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.DESCRICAO_ABREVIADA, servicoTipo .getDescricaoAbreviada())); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); try { st = pesquisar(filtroServicoTipo, ServicoTipo.class, ""); } catch (ControladorException e) { } if (st != null) { throw new ControladorException( "atencao.servico_tipo.descricao_abreviada_ja_existente"); } } // [FS0003] - Validar Tipo de D�bito if (servicoTipo.getDebitoTipo() != null) { getControladorFaturamento().pesquisarDebitoTipo( servicoTipo.getDebitoTipo().getId()); } // [FS0004] - Validar Perfil do Servi�o if (servicoTipo.getServicoPerfilTipo() != null) { pesquisarServicoPerfilTipo(servicoTipo.getServicoPerfilTipo() .getId()); } // [FS0006] - Validar Ordem de Execu��o // [FS0009] - Validar Atividade // [FS0010] - Validar Material Date dataUltimaAlteracao = new Date(); servicoTipo.setUltimaAlteracao(dataUltimaAlteracao); servicoTipo.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO); Collection colecaoServicoTipoAtividades = servicoTipo .getServicoTipoAtividades(); Collection colecaoServicoTipoMateriais = servicoTipo .getServicoTipoMateriais(); Collection <AtendimentoMotivoEncerramento> colecaoServicoTipoMotivoEncerramentos = servicoTipo .getServicoTipoMotivoEncerramentos(); Integer id = null; // inseri tipo servico referencia try { if (servicoTipo.getServicoTipoReferencia() != null && servicoTipo.getServicoTipoReferencia().getId() == null) { ServicoTipoReferencia servicoTipoReferencia = servicoTipo .getServicoTipoReferencia(); servicoTipoReferencia.setUltimaAlteracao(new Date()); Integer referencia = (Integer) getControladorUtil().inserir( servicoTipoReferencia); servicoTipo.getServicoTipoReferencia().setId(referencia); } else if (servicoTipo.getServicoTipoReferencia() != null && servicoTipo.getServicoTipoReferencia().getId() != null) { // [FS0005] - Validar Tipo de Servi�o Refer�ncia if (servicoTipo.getServicoTipoReferencia() != null) { servicoTipo.getServicoTipoReferencia().setUltimaAlteracao( new Date()); pesquisarServicoTipoReferencia(servicoTipo .getServicoTipoReferencia().getId()); } } // [FS0008] - Verificar Sucesso da Opera��o id = inserirServicoTipoSemColecoes(servicoTipo); if (colecaoServicoTipoAtividades != null && !colecaoServicoTipoAtividades.isEmpty()) { // Servi�o Tipo Atividade (1..n) for (Iterator iter = colecaoServicoTipoAtividades.iterator(); iter .hasNext();) { ServicoTipoAtividade sta = (ServicoTipoAtividade) iter.next(); sta.setServicoTipo(servicoTipo); sta.setAtividade(sta.getAtividade()); sta.setUltimaAlteracao(dataUltimaAlteracao); sta.setComp_id(new ServicoTipoAtividadePK(servicoTipo.getId(), sta .getAtividade().getId())); getControladorUtil().inserir(sta); } } if (servicoTipo.getOperacao() != null) { ServicoTipoOperacao sto = new ServicoTipoOperacao(); sto.setOperacao(servicoTipo.getOperacao()); sto.setServicoTipo(servicoTipo); sto.setUltimaAlteracao(dataUltimaAlteracao); sto.setComp_id(new ServicoTipoOperacaoPK(servicoTipo.getId(), sto.getOperacao().getId())); getControladorUtil().inserir(sto); } if (colecaoServicoTipoMateriais != null && !colecaoServicoTipoMateriais.isEmpty()) { // Servi�o Tipo Material (1..n) for (Iterator iter = colecaoServicoTipoMateriais.iterator(); iter .hasNext();) { ServicoTipoMaterial stm = (ServicoTipoMaterial) iter.next(); stm.setServicoTipo(servicoTipo); stm.setMaterial(stm.getMaterial()); stm.setUltimaAlteracao(dataUltimaAlteracao); stm.setComp_id(new ServicoTipoMaterialPK(id, stm.getMaterial() .getId())); getControladorUtil().inserir(stm); } } if (colecaoServicoTipoMotivoEncerramentos != null && !colecaoServicoTipoMotivoEncerramentos.isEmpty()) { for (AtendimentoMotivoEncerramento encerramento : colecaoServicoTipoMotivoEncerramentos) { if (encerramento != null) { ServicoTipoMotivoEncerramento servicoTipoMotivoEncerramento = new ServicoTipoMotivoEncerramento(); servicoTipoMotivoEncerramento .setMotivoEncerramento(encerramento); servicoTipoMotivoEncerramento .setServicoTipo(servicoTipo); servicoTipoMotivoEncerramento .setUltimaAlteracao(new Date()); getControladorOrdemServico() .inserirServicoTipoMotivoEncerramento( servicoTipoMotivoEncerramento); } } } //RM93 - adicionado por Vivianne Sousa - 07/01/2011 - analista:Rosana Carvalho if(servicoTipoBoletim != null){ servicoTipoBoletim.setId(servicoTipo.getId()); servicoTipoBoletim.setServicoTipo(servicoTipo); servicoTipoBoletim.setUltimaAlteracao(new Date()); getControladorUtil().inserir(servicoTipoBoletim); } } catch (ControladorException e) { if(servicoTipo.getServicoTipoReferencia()!=null){ servicoTipo.getServicoTipoReferencia().setId(null); } sessionContext.setRollbackOnly(); e.printStackTrace(); } return id; } /** * * [UC0410] - Inserir Tipo de Servi�o * * @author Fl�vio * @date 08/12/2006 */ public Integer atualizarServicoTipo(ServicoTipo servicoTipo,ServicoTipoBoletim servicoTipoBoletim) throws ControladorException { // [FS0001] - Verificar exist�ncia da Descri��o FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.DESCRICAO, servicoTipo.getDescricao())); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); // [FS0002] - Verificar exist�ncia da Descri��o abreviada if (servicoTipo.getDescricaoAbreviada() != null) { filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.DESCRICAO_ABREVIADA, servicoTipo .getDescricaoAbreviada())); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); } // [FS0003] - Validar Tipo de D�bito if (servicoTipo.getDebitoTipo() != null) { getControladorFaturamento().pesquisarDebitoTipo( servicoTipo.getDebitoTipo().getId()); } // [FS0004] - Validar Perfil do Servi�o if (servicoTipo.getServicoPerfilTipo() != null) { pesquisarServicoPerfilTipo(servicoTipo.getServicoPerfilTipo() .getId()); } // Validar Operacao if (servicoTipo.getOperacao() != null) { pesquisarOperacao(servicoTipo.getOperacao().getId()); FiltroServicoTipoOperacao filtroServicoTipoOperacao = new FiltroServicoTipoOperacao(); filtroServicoTipoOperacao.adicionarParametro(new ParametroSimples(FiltroServicoTipoOperacao.ID_SERVICO_TIPO, servicoTipo.getId())); Collection collection = getControladorUtil().pesquisar(filtroServicoTipoOperacao, ServicoTipoOperacao.class.getName()); if (collection != null && !collection.isEmpty()) { //atualiza a operacao do servico tipo ServicoTipoOperacao sto = (ServicoTipoOperacao) collection.iterator().next(); if (sto != null) { getControladorUtil().remover(sto); ServicoTipoOperacao stoNovo = new ServicoTipoOperacao(); stoNovo.setOperacao(servicoTipo.getOperacao()); stoNovo.setServicoTipo(servicoTipo); stoNovo.setUltimaAlteracao(new Date()); stoNovo.setComp_id(new ServicoTipoOperacaoPK(servicoTipo.getId(), stoNovo.getOperacao().getId())); getControladorUtil().inserir(stoNovo); } } else { //insere a operacao do servico tipo ServicoTipoOperacao stoNovo = new ServicoTipoOperacao(); stoNovo.setOperacao(servicoTipo.getOperacao()); stoNovo.setServicoTipo(servicoTipo); stoNovo.setUltimaAlteracao(new Date()); stoNovo.setComp_id(new ServicoTipoOperacaoPK(servicoTipo.getId(), stoNovo.getOperacao().getId())); getControladorUtil().inserir(stoNovo); } } else { FiltroServicoTipoOperacao filtroServicoTipoOperacao = new FiltroServicoTipoOperacao(); filtroServicoTipoOperacao.adicionarParametro(new ParametroSimples(FiltroServicoTipoOperacao.ID_SERVICO_TIPO, servicoTipo.getId())); Collection colecao = getControladorUtil().pesquisar(filtroServicoTipoOperacao, ServicoTipoOperacao.class.getName()); if (colecao != null && !colecao.isEmpty()) { ServicoTipoOperacao sto = (ServicoTipoOperacao) colecao.iterator().next(); getControladorUtil().remover(sto); } } // [FS0006] - Validar Ordem de Execu��o // [FS0009] - Validar Atividade // [FS0010] - Validar Material Date dataUltimaAlteracao = new Date(); servicoTipo.setUltimaAlteracao(dataUltimaAlteracao); servicoTipo.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO); Collection colecaoServicoTipoAtividades = servicoTipo .getServicoTipoAtividades(); Collection colecaoServicoTipoMateriais = servicoTipo .getServicoTipoMateriais(); Integer id = servicoTipo.getId(); // inseri tipo servico referencia try { if (servicoTipo.getServicoTipoReferencia() != null && servicoTipo.getServicoTipoReferencia().getId() == null) { ServicoTipoReferencia servicoTipoReferencia = servicoTipo .getServicoTipoReferencia(); servicoTipoReferencia.setUltimaAlteracao(new Date()); Integer referencia = (Integer) getControladorUtil().inserir( servicoTipoReferencia); servicoTipo.getServicoTipoReferencia().setId(referencia); } else if (servicoTipo.getServicoTipoReferencia() != null && servicoTipo.getServicoTipoReferencia().getId() != null) { // [FS0005] - Validar Tipo de Servi�o Refer�ncia if (servicoTipo.getServicoTipoReferencia() != null) { servicoTipo.getServicoTipoReferencia().setUltimaAlteracao( new Date()); pesquisarServicoTipoReferencia(servicoTipo .getServicoTipoReferencia().getId()); } } // [FS0008] - Verificar Sucesso da Opera��o atualizarServicoTipoSemColecoes(servicoTipo); } catch (ControladorException e) { servicoTipo.getServicoTipoReferencia().setId(null); sessionContext.setRollbackOnly(); } // FiltroServicoTipoAtividade filtroServicoTipoAtividade = new // FiltroServicoTipoAtividade(); // filtroServicoTipoAtividade.adicionarParametro(new // ParametroSimples(FiltroServicoTipoAtividade.)); // Servi�o Tipo Atividade (1..n) FiltroServicoTipoAtividade filtroServicoTipoAtividade = new FiltroServicoTipoAtividade(); filtroServicoTipoAtividade .adicionarParametro(new ParametroSimples( FiltroServicoTipoAtividade.SERVICO_TIPO_ID, servicoTipo .getId())); filtroServicoTipoAtividade .adicionarCaminhoParaCarregamentoEntidade("atividade"); FiltroServicoTipoMaterial filtroServicoTipoMaterial = new FiltroServicoTipoMaterial(); filtroServicoTipoMaterial .adicionarParametro(new ParametroSimples( FiltroServicoTipoMaterial.ID_SERVICO_TIPO, servicoTipo .getId())); filtroServicoTipoMaterial .adicionarCaminhoParaCarregamentoEntidade("material"); Collection colecaoServicoTipoMaterialBASE = getControladorUtil() .pesquisar(filtroServicoTipoMaterial, ServicoTipoMaterial.class.getName()); Collection colecaoServicoTipoAtividadeBASE = getControladorUtil() .pesquisar(filtroServicoTipoAtividade, ServicoTipoAtividade.class.getName()); for (Iterator iter = colecaoServicoTipoAtividadeBASE.iterator(); iter .hasNext();) { ServicoTipoAtividade sta = (ServicoTipoAtividade) iter.next(); getControladorUtil().remover(sta); } for (Iterator iter = colecaoServicoTipoMaterialBASE.iterator(); iter .hasNext();) { ServicoTipoMaterial sta = (ServicoTipoMaterial) iter.next(); getControladorUtil().remover(sta); } if (colecaoServicoTipoAtividades != null) { for (Iterator iter = colecaoServicoTipoAtividades.iterator(); iter .hasNext();) { ServicoTipoAtividade sta = (ServicoTipoAtividade) iter.next(); sta.setServicoTipo(servicoTipo); sta.setAtividade(sta.getAtividade()); sta.setUltimaAlteracao(dataUltimaAlteracao); sta.setComp_id(new ServicoTipoAtividadePK(id, sta .getAtividade().getId())); getControladorUtil().inserir(sta); } } // Servi�o Tipo Material (1..n) if (colecaoServicoTipoMateriais != null) { for (Iterator iter = colecaoServicoTipoMateriais.iterator(); iter .hasNext();) { ServicoTipoMaterial stm = (ServicoTipoMaterial) iter.next(); stm.setServicoTipo(servicoTipo); stm.setMaterial(stm.getMaterial()); stm.setUltimaAlteracao(dataUltimaAlteracao); stm.setComp_id(new ServicoTipoMaterialPK(id, stm.getMaterial() .getId())); getControladorUtil().inserir(stm); } } //RM93 - adicionado por Vivianne Sousa - 07/01/2011 - analista:Rosana Carvalho if(servicoTipo.getIndicadorBoletim().equals(ConstantesSistema.NAO)){ removerServicoTipoBoletim(servicoTipo.getId()); } if(servicoTipoBoletim != null){ servicoTipoBoletim.setId(servicoTipo.getId()); servicoTipoBoletim.setServicoTipo(servicoTipo); servicoTipoBoletim.setUltimaAlteracao(new Date()); FiltroServicoTipoBoletim filtroServicoTipoBoletim = new FiltroServicoTipoBoletim(); filtroServicoTipoBoletim.adicionarParametro(new ParametroSimples( FiltroServicoTipoBoletim.ID, servicoTipo.getId())); Collection colecaoServicoTipoBoletim = this.getControladorUtil().pesquisar( filtroServicoTipoBoletim, ServicoTipoBoletim.class.getName()); if (colecaoServicoTipoBoletim != null && !colecaoServicoTipoBoletim.isEmpty()) { getControladorUtil().atualizar(servicoTipoBoletim); } else { getControladorUtil().inserir(servicoTipoBoletim); } } return id; } private Integer inserirServicoTipoSemColecoes(ServicoTipo servicoTipo) throws ControladorException { servicoTipo.setServicoTipoAtividades(null); servicoTipo.setServicoTipoMateriais(null); return (Integer) getControladorUtil().inserir(servicoTipo); } private void atualizarServicoTipoSemColecoes(ServicoTipo servicoTipo) throws ControladorException { servicoTipo.setServicoTipoAtividades(null); servicoTipo.setServicoTipoMateriais(null); getControladorUtil().atualizar(servicoTipo); } /** * * [UC0410] - Inserir Tipo de Servi�o * * @author lms * @date 07/08/2006 */ public ServicoTipoSubgrupo pesquisarServicoTipoSubgrupo( Integer idServicoTipoSubgrupo) throws ControladorException { FiltroServicoTipoSubgrupo filtro = new FiltroServicoTipoSubgrupo(); filtro.adicionarParametro(new ParametroSimples( FiltroServicoTipoReferencia.ID, idServicoTipoSubgrupo)); filtro.adicionarParametro(new ParametroSimples( FiltroServicoTipoReferencia.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); return pesquisar(filtro, ServicoTipoSubgrupo.class, "Servi�o Tipo Subgrupo"); } /** * * [UC0410] - Inserir Tipo de Servi�o * * @author lms * @date 07/08/2006 */ public ServicoTipoPrioridade pesquisarServicoTipoPrioridade( Integer idServicoTipoPrioridade) throws ControladorException { FiltroServicoTipoPrioridade filtro = new FiltroServicoTipoPrioridade(); filtro.adicionarParametro(new ParametroSimples( FiltroServicoTipoPrioridade.ID, idServicoTipoPrioridade)); filtro.adicionarParametro(new ParametroSimples( FiltroServicoTipoPrioridade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); return pesquisar(filtro, ServicoTipoPrioridade.class, "Servi�o Tipo Prioridade"); } /** * * [UC0410] - Inserir Tipo de Servi�o * * @author lms * @date 07/08/2006 */ public void validarAdicionarAtividade( Collection colecaoServicoTipoAtividade, Integer idAtividade) throws ControladorException { if (colecaoServicoTipoAtividade != null && !colecaoServicoTipoAtividade.isEmpty()) { for (Iterator iter = colecaoServicoTipoAtividade.iterator(); iter .hasNext();) { ServicoTipoAtividade element = (ServicoTipoAtividade) iter .next(); if (idAtividade.equals(element.getAtividade().getId())) { throw new ControladorException( "atencao.atividade.ja_existente"); } } } } /** * * [UC0410] - Inserir Tipo de Servi�o * * @author lms * @date 07/08/2006 */ public void validarAdicionarMaterial(Collection colecaoServicoTipoMaterial, Integer idMaterial) throws ControladorException { if (colecaoServicoTipoMaterial != null && !colecaoServicoTipoMaterial.isEmpty()) { for (Iterator iter = colecaoServicoTipoMaterial.iterator(); iter .hasNext();) { ServicoTipoMaterial element = (ServicoTipoMaterial) iter.next(); if (idMaterial.equals(element.getMaterial().getId())) { throw new ControladorException( "atencao.material.ja_existente"); } } } } /** * [UC0436] Inserir Tipo de Servi�o de Refer�ncia. * * Permite a inclus�o de um tipo de Servi�o de Refer�ncia. * * [FS0001] Verificar existencia da Descri��o [FS0002]- Verificar exist�ncia * da Descri��o abreviada [FS0003] Validar indicador de existencia x * Situa��o da Os de referencia * * @author R�mulo Aur�lio. * @date 05/08/2006 * * * @param servicoTipoReferencia * @throws ControladorException */ public Integer inserirTipoServicoReferencia( ServicoTipoReferencia servicoTipoReferencia, Usuario usuarioLogado) throws ControladorException { this.validarTipoServicoReferenciaParaInsercao(servicoTipoReferencia); // ------------------- Final [FS0003]-------------------------- servicoTipoReferencia.setUltimaAlteracao(new Date()); // ------------ REGISTRAR TRANSa��o---------------------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_SERVICO_TIPO_REFERENCIA_INSERIR, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_SERVICO_TIPO_REFERENCIA_INSERIR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); servicoTipoReferencia.setOperacaoEfetuada(operacaoEfetuada); servicoTipoReferencia.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(servicoTipoReferencia); // --------FIM---- REGISTRAR TRANSa��o---------------------------- Integer idTipoServicoReferencia = (Integer) getControladorUtil() .inserir(servicoTipoReferencia); return idTipoServicoReferencia; } /** * * Este m�todo valida os dados que s�o necessarios para a inser��o do * Servi�o tipo referencia. * * * @author Fl�vio Leonardo * @date 31/10/2006 * * @param servicoTipoReferencia * @return * @throws ControladorException */ public void validarTipoServicoReferenciaParaInsercao( ServicoTipoReferencia servicoTipoReferencia) throws ControladorException { // [FS0001] Verificar existencia da Descri��o FiltroServicoTipoReferencia filtroServicoTipoReferencia = new FiltroServicoTipoReferencia(); filtroServicoTipoReferencia.adicionarParametro(new ParametroSimples( FiltroServicoTipoReferencia.DESCRICAO, servicoTipoReferencia .getDescricao())); Collection colecaoServicoTipoReferencia = getControladorUtil() .pesquisar(filtroServicoTipoReferencia, ServicoTipoReferencia.class.getName()); if (colecaoServicoTipoReferencia != null && !colecaoServicoTipoReferencia.isEmpty()) { throw new ControladorException( "atencao.descricao_ja_existente_servico_referencia", null, "" + servicoTipoReferencia.getDescricao() + ""); } if (servicoTipoReferencia.getDescricaoAbreviada() != null && !servicoTipoReferencia.getDescricaoAbreviada().equals("")) { filtroServicoTipoReferencia.limparListaParametros(); // [FS0002]- Verificar exist�ncia da Descri��o abreviada filtroServicoTipoReferencia .adicionarParametro(new ParametroSimples( FiltroServicoTipoReferencia.DESCRICAO_ABREVIADA, servicoTipoReferencia.getDescricaoAbreviada())); colecaoServicoTipoReferencia = getControladorUtil().pesquisar( filtroServicoTipoReferencia, ServicoTipoReferencia.class.getName()); if (colecaoServicoTipoReferencia != null && !colecaoServicoTipoReferencia.isEmpty()) { throw new ControladorException( "atencao.descricao_abreviada_ja_existente_servico_referencia", null, "" + servicoTipoReferencia.getDescricaoAbreviada() + ""); } } // [FS0003]- Validar indicador de exist�ncia x Situa��o da Os de // Refer�ncia Short indicadorExistenciaOS = servicoTipoReferencia .getIndicadorExistenciaOsReferencia(); if (indicadorExistenciaOS.equals(ConstantesSistema.INDICADOR_USO_ATIVO)) { if (!(servicoTipoReferencia.getSituacaoOsReferenciaAntes() .equals(new Integer("1"))) && (servicoTipoReferencia.getSituacaoOsReferenciaAntes() .intValue() != 2)) { throw new ControladorException( "atencao.indicador_os_incompativel_os_antes", null); } if ((servicoTipoReferencia.getSituacaoOsReferenciaApos().intValue() != 2) && (servicoTipoReferencia.getSituacaoOsReferenciaApos() .intValue() != 4)) { throw new ControladorException( "atencao.indicador_ordem_servico_incompativel", null); } } if (indicadorExistenciaOS .equals(ConstantesSistema.INDICADOR_USO_DESATIVO)) { if (servicoTipoReferencia.getSituacaoOsReferenciaAntes() != null) { throw new ControladorException( "atencao.indicador_os_nao_permitido", null); } if (servicoTipoReferencia.getSituacaoOsReferenciaApos() != null) { throw new ControladorException( "atencao.indicador_os_nao_permitido", null); } } } /** * [UC0449] Inserir Prioridade do Tipo de Servi�o * * Permite a inclus�o de uma prioridade do tipo de Servi�o. * * [FS0001] Verificar existencia da Descri��o [FS0003]- Verificar exist�ncia * da Descri��o abreviada [FS0002] Validar quantidade de horas in�cio e * quantidade de horas fim * * @author R�mulo Aur�lio. * @date 11/08/2006 * * * @param servicoTipoPrioridade * @throws ControladorException */ public Integer inserirPrioridadeTipoServico( ServicoTipoPrioridade servicoTipoPrioridade, Usuario usuarioLogado) throws ControladorException { // [FS0001] Verificar existencia da Descri��o FiltroServicoTipoPrioridade filtroServicoTipoPrioridade = new FiltroServicoTipoPrioridade(); filtroServicoTipoPrioridade.adicionarParametro(new ParametroSimples( FiltroServicoTipoPrioridade.DESCRICAO, servicoTipoPrioridade .getDescricao())); Collection colecaoServicoTipoPrioridade = getControladorUtil() .pesquisar(filtroServicoTipoPrioridade, ServicoTipoPrioridade.class.getName()); // ajeitar no apliccation a msg if (colecaoServicoTipoPrioridade != null && !colecaoServicoTipoPrioridade.isEmpty()) { throw new ControladorException( "atencao.descricao_ja_existente_servico_referencia", null, "" + servicoTipoPrioridade.getDescricao() + ""); } if (servicoTipoPrioridade.getDescricaoAbreviada() != null && !servicoTipoPrioridade.getDescricaoAbreviada().equals("")) { filtroServicoTipoPrioridade.limparListaParametros(); // [FS0002]- Verificar exist�ncia da Descri��o abreviada filtroServicoTipoPrioridade .adicionarParametro(new ParametroSimples( FiltroServicoTipoPrioridade.DESCRICAO_ABREVIADA, servicoTipoPrioridade.getDescricaoAbreviada())); colecaoServicoTipoPrioridade = getControladorUtil().pesquisar( filtroServicoTipoPrioridade, ServicoTipoPrioridade.class.getName()); if (colecaoServicoTipoPrioridade != null && !colecaoServicoTipoPrioridade.isEmpty()) { throw new ControladorException( "atencao.descricao_abreviada_ja_existente_servico_referencia", null, "" + servicoTipoPrioridade.getDescricaoAbreviada() + ""); } } // [FS0002] Validar quantidade de horas in�cio e quantidade de horas fim if (servicoTipoPrioridade.getPrazoExecucaoInicio() != null) { if ((servicoTipoPrioridade.getPrazoExecucaoInicio() < 0) || (servicoTipoPrioridade.getPrazoExecucaoInicio() == 0)) { throw new ControladorException( "atencao.quantidade_hora_invalida", null, "in�cio de "); } } if (servicoTipoPrioridade.getPrazoExecucaoFim() != null) { if ((servicoTipoPrioridade.getPrazoExecucaoFim() < 0) || (servicoTipoPrioridade.getPrazoExecucaoFim() == 0)) { throw new ControladorException( "atencao.quantidade_hora_invalida", null, "finalizar a "); } } servicoTipoPrioridade .setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO); servicoTipoPrioridade.setTmCadastramento(new Date()); servicoTipoPrioridade.setUltimaAlteracao(new Date()); // ------------ REGISTRAR TRANSa��o---------------------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_SERVICO_TIPO_PRIORIDADE_INSERIR, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_SERVICO_TIPO_PRIORIDADE_INSERIR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); servicoTipoPrioridade.setOperacaoEfetuada(operacaoEfetuada); servicoTipoPrioridade.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(servicoTipoPrioridade); // --------FIM---- REGISTRAR TRANSa��o---------------------------- Integer idTPrioridadeipoServico = (Integer) getControladorUtil() .inserir(servicoTipoPrioridade); return idTPrioridadeipoServico; } /** * * Este m�todo se destina a validar todas as situa��es e particularidades da * atualiza��o da instala��o de hidr�metro do Im�vel no momento da exibi��o. * * @author Rafael Pinto * @date 20/07/2006 * * @param OrdemServico */ public void validarExibirAtualizarInstalacaoHidrometro( OrdemServico ordemServico, boolean menu) throws ControladorException { // [FS0001] Validar Ordem de Servico this.getControladorOrdemServico().validaOrdemServicoAtualizacao( ordemServico, menu); Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); if (imovel == null) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, ordemServico.getRegistroAtendimento().getId().toString()); } int servicoTipo = ordemServico.getServicoTipo().getId().intValue(); if (servicoTipo != ServicoTipo.TIPO_EFETUAR_INSTALACAO_HIDROMETRO && servicoTipo != ServicoTipo.TIPO_CONFIRMAR_DADOS_INSTALACAO_HIDROMETRO && servicoTipo != ServicoTipo.TIPO_EFETUAR_SUBSTITUICAO_HIDROMETRO && servicoTipo != ServicoTipo.TIPO_CONFIRMAR_DADOS_SUBSTITUICAO_HIDROMETRO) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.servico_associado_atualizar_instalacao_hidrometro_invalida"); } // [FS0002] Verificar Situa��o do Imovel. if (ConstantesSistema.INDICADOR_IMOVEL_EXCLUIDO == imovel .getIndicadorExclusao()) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizar_imovel_situacao_invalida", null, imovel .getId().toString()); } // [FS0004] Validar Data do Encerramento da Ordem de Servico if (servicoTipo == ServicoTipo.TIPO_EFETUAR_INSTALACAO_HIDROMETRO || servicoTipo == ServicoTipo.TIPO_EFETUAR_SUBSTITUICAO_HIDROMETRO) { Date dataEncerramento = ordemServico.getDataEncerramento(); if (dataEncerramento != null) { Calendar calendar = Calendar.getInstance(); calendar.setTime(dataEncerramento); int qtdDias = Util.obterQuantidadeDiasEntreDuasDatas(calendar .getTime(), new Date()); FiltroSistemaParametro filtroSistemaParametro = new FiltroSistemaParametro(); Collection colecao = getControladorUtil().pesquisar( filtroSistemaParametro, SistemaParametro.class.getName()); if (colecao != null && !colecao.isEmpty()) { SistemaParametro sistemaParametro = (SistemaParametro) Util .retonarObjetoDeColecao(colecao); int qtdMaximo = sistemaParametro.getDiasMaximoAlterarOS() .intValue(); if (qtdDias > qtdMaximo) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.instalacao_hidrometro_data_encerramento_os_invalida", null, new String[] { ordemServico.getId().toString(), qtdMaximo + "" }); } } } } } /** * [UC0475] Obter Valor do D�bito * * @author Leonardo Regis * @date 09/09/2006 * * @param servicoTipoId * @param imovelId * @param tipoMedicao * @return valor do D�bito * * @throws ControladorException */ public BigDecimal obterValorDebito(Integer servicoTipoId, Integer imovelId, Short tipoMedicao) throws ControladorException { BigDecimal valorDebito = null; try { FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo .adicionarParametro( new ParametroSimples(FiltroServicoTipo.ID, servicoTipoId)); Collection colecaoServicoTipo = getControladorUtil().pesquisar(filtroServicoTipo, ServicoTipo.class.getName()); ServicoTipo servicoTipo = (ServicoTipo) Util.retonarObjetoDeColecao(colecaoServicoTipo); ObterValorDebitoHelper obterValorDebitoHelper = new ObterValorDebitoHelper(); obterValorDebitoHelper.setServicoTipo(servicoTipo); ImovelPerfil imovelPerfil = this.getControladorImovel().obterImovelPerfil(imovelId); obterValorDebitoHelper.setImovelPerfil(imovelPerfil); if(servicoTipo.getIndicativoTipoSevicoEconomias()!=null && servicoTipo.getIndicativoTipoSevicoEconomias().compareTo(ConstantesSistema.SIM)==0){ // [UC0062] - Obter Quantidade de Economias Imovel imovel = new Imovel(imovelId); Integer qtdEconomiaImovel = this.getControladorImovel().obterQuantidadeEconomias(imovel); obterValorDebitoHelper.setQuantidadeEconomia(qtdEconomiaImovel); } if (tipoMedicao.intValue() == MedicaoTipo.LIGACAO_AGUA.intValue()) { if (this.repositorioAtendimentoPublico .verificarExistenciaHidrometroEmLigacaoAgua(imovelId)) { obterValorDebitoHelper .setSituacaoMedicao(ServicoCobrancaValor.INDICADOR_MEDICAO_SIM); HidrometroCapacidade hidrometroCapacidade = this.repositorioAtendimentoPublico .obterHidrometroCapacidadeEmLigacaoAgua(imovelId); obterValorDebitoHelper .setHidrometroCapacidade(hidrometroCapacidade); } else { obterValorDebitoHelper .setSituacaoMedicao(ServicoCobrancaValor.INDICADOR_MEDICAO_NAO); } } else if (tipoMedicao.intValue() == MedicaoTipo.POCO.intValue()) { if (this.repositorioAtendimentoPublico .verificarExistenciaHidrometroEmImovel(imovelId)) { obterValorDebitoHelper .setSituacaoMedicao(ServicoCobrancaValor.INDICADOR_MEDICAO_SIM); HidrometroCapacidade hidrometroCapacidade = this.repositorioAtendimentoPublico .obterHidrometroCapacidadeEmImovel(imovelId); obterValorDebitoHelper .setHidrometroCapacidade(hidrometroCapacidade); } else { obterValorDebitoHelper .setSituacaoMedicao(ServicoCobrancaValor.INDICADOR_MEDICAO_NAO); } } Collection<Subcategoria> colecaoSubs = this.getControladorImovel().obterQuantidadeEconomiasSubCategoria(imovelId); List listaSubcategorias = (List) colecaoSubs; Collections.sort(listaSubcategorias, new Comparator() { public int compare(Object left, Object right) { Subcategoria leftKey = (Subcategoria) left; Subcategoria rightKey = (Subcategoria) right; return leftKey.getQuantidadeEconomias().compareTo(rightKey.getQuantidadeEconomias()); } }); Subcategoria principalSubcategoria = (Subcategoria) listaSubcategorias.get(listaSubcategorias.size()-1); obterValorDebitoHelper.setSubcategoria(principalSubcategoria); Categoria categoria = this.getControladorImovel().obterPrincipalCategoriaImovel(imovelId); obterValorDebitoHelper.setCategoria(categoria); valorDebito = this.repositorioAtendimentoPublico .obterValorDebito(obterValorDebitoHelper); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } return valorDebito; } /** * m�todo que retorna o n�mero do hidr�metro da Liga��o de �gua * * @throws ErroRepositorioException */ public String pesquisarNumeroHidrometroLigacaoAgua(Integer idLigacaoAgua) throws ControladorException { try { return repositorioAtendimentoPublico .pesquisarNumeroHidrometroLigacaoAgua(idLigacaoAgua); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * m�todo que retorna o tipo da Liga��o de �gua e a data do corte da Liga��o * de �gua * * @throws ErroRepositorioException */ public Object[] pesquisarDadosLigacaoAgua(Integer idLigacaoAgua) throws ControladorException { try { return repositorioAtendimentoPublico .pesquisarDadosLigacaoAgua(idLigacaoAgua); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * Consulta os dados das ordens de Servi�o para a gera��o do relat�rio * * @author Rafael Corr�a * @created 07/10/2006 * * @return * @throws ControladorException */ public Collection pesquisarOrdemServicoProgramacaoRelatorio( Integer idEquipe, Date dataRoteiro) throws ControladorException { try { Collection colecaoDadosOrdemServicoProgramacao = this.repositorioAtendimentoPublico .pesquisarOrdemServicoProgramacaoRelatorio(idEquipe, dataRoteiro); Collection colecaoOrdensServicoProgramacao = new ArrayList(); Iterator colecaoDadosOrdemServicoProgramacaoIterator = colecaoDadosOrdemServicoProgramacao .iterator(); while (colecaoDadosOrdemServicoProgramacaoIterator.hasNext()) { OrdemServicoProgramacao ordemServicoProgramacao = new OrdemServicoProgramacao(); // Obt�m os dados do cr�dito realizado Object[] dadosArray = (Object[]) colecaoDadosOrdemServicoProgramacaoIterator .next(); // Sequencial if (dadosArray[0] != null) { ordemServicoProgramacao .setNnSequencialProgramacao((Short) dadosArray[0]); } RegistroAtendimento registroAtendimento = new RegistroAtendimento(); // n�mero do RA if (dadosArray[1] != null) { registroAtendimento.setId((Integer) dadosArray[1]); } OrdemServico ordemServico = new OrdemServico(); // n�mero da OS if (dadosArray[2] != null) { ordemServico.setId((Integer) dadosArray[2]); } // Tipo de Servi�o if (dadosArray[3] != null) { ServicoTipo servicoTipo = new ServicoTipo(); servicoTipo.setId((Integer) dadosArray[3]); ordemServico.setServicoTipo(servicoTipo); } // Observa��o if (dadosArray[4] != null) { ordemServico.setObservacao((String) dadosArray[4]); } else { ordemServico.setObservacao(""); } ordemServico.setRegistroAtendimento(registroAtendimento); ordemServicoProgramacao.setOrdemServico(ordemServico); colecaoOrdensServicoProgramacao.add(ordemServicoProgramacao); } return colecaoOrdensServicoProgramacao; } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } } /** * [UC0475] Obter Valor do D�bito * * Verificar exist�ncia de hidr�metro na Liga��o de �gua. * * @author Leonardo Regis * @date 09/09/2006 * * @param imovelId * @return existencia de hidrometro ou n�o * @throws ErroRepositorioException */ public boolean verificarExistenciaHidrometroEmLigacaoAgua(Integer imovelId) throws ControladorException { try { return repositorioAtendimentoPublico .verificarExistenciaHidrometroEmLigacaoAgua(imovelId); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC0475] Obter Valor do D�bito * * Verificar exist�ncia de hidr�metro na Liga��o de �gua. * * @author Leonardo Regis * @date 09/09/2006 * * @param imovelId * @return existencia de hidrometro ou n�o * @throws ErroRepositorioException */ public boolean verificarExistenciaHidrometroEmImovel(Integer imovelId) throws ControladorException { try { return repositorioAtendimentoPublico .verificarExistenciaHidrometroEmImovel(imovelId); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC0387] Manter Tipo Perfil Servi�o [SB0002] Remover Tipo Perfil Servi�o * * @author Kassia Albuquerque * @date 08/11/2006 * * @pparam servicoPerfilTipo * @throws ControladorException */ public void removerServicoTipoPerfil(String[] ids, Usuario usuarioLogado) throws ControladorException { // ------------ REGISTRAR TRANSa��o ---------------- Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_TIPO_PERFIL_SERVICO_REMOVER); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelper = new UsuarioAcaoUsuarioHelper( usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); Collection<UsuarioAcaoUsuarioHelper> colecaoUsuarios = new ArrayList(); colecaoUsuarios.add(usuarioAcaoUsuarioHelper); // ------------ REGISTRAR TRANSa��o ---------------- this.getControladorUtil().remover(ids, ServicoPerfilTipo.class.getName(), operacaoEfetuada, colecaoUsuarios); } /** * [UC0387] Manter Tipo Perfil Servi�o [SB0001] Atualizar Tipo Perfil * Servi�o * * @author Kassia Albuquerque * @date 01/11/2006 * * @pparam servicoPerfilTipo * @throws ControladorException */ public void atualizarServicoTipoPerfil(ServicoPerfilTipo servicoPerfilTipo, Usuario usuarioLogado) throws ControladorException { // [UC0107] - Registrar Transa��o // ------------ REGISTRAR TRANSa��o---------------------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_TIPO_PERFIL_SERVICO_ATUALIZAR, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_TIPO_PERFIL_SERVICO_ATUALIZAR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); servicoPerfilTipo.setOperacaoEfetuada(operacaoEfetuada); servicoPerfilTipo.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(servicoPerfilTipo); // ------------ REGISTRAR TRANSa��o---------------------------- // [FS0003] - Atualiza��o realizada por outro usu�rio FiltroServicoPerfilTipo filtroServicoPerfilTipo = new FiltroServicoPerfilTipo(); // Seta o filtro para buscar o servicoPerfilTipo na base filtroServicoPerfilTipo.adicionarParametro(new ParametroSimples( FiltroServicoPerfilTipo.ID, servicoPerfilTipo.getId())); // Procura servicoPerfilTipo na base Collection servicoPerfilTipoAtualizadas = getControladorUtil() .pesquisar(filtroServicoPerfilTipo, ServicoPerfilTipo.class.getName()); ServicoPerfilTipo servicoPerfilTipoNaBase = (ServicoPerfilTipo) Util .retonarObjetoDeColecao(servicoPerfilTipoAtualizadas); if (servicoPerfilTipoNaBase == null) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.registro_remocao_nao_existente"); } // Verificar se o servicoPerfilTipo j� foi atualizado por outro usu�rio // durante esta atualiza��o if (servicoPerfilTipoNaBase.getUltimaAlteracao().after( servicoPerfilTipo.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } servicoPerfilTipo.setUltimaAlteracao(new Date()); // Atualiza o objeto na base getControladorUtil().atualizar(servicoPerfilTipo); } /** * Faz o controle de concorrencia de ligacao Agua * * @author Rafael Pinto * @throws ControladorException */ private void verificarEspecificacaoImovelSituacaoControleConcorrencia( EspecificacaoImovelSituacao especificacaoImovelSituacao) throws ControladorException { FiltroEspecificacaoImovelSituacao filtro = new FiltroEspecificacaoImovelSituacao(); filtro.adicionarParametro(new ParametroSimples( FiltroEspecificacaoImovelSituacao.ID, especificacaoImovelSituacao.getId())); Collection colecao = getControladorUtil().pesquisar(filtro, EspecificacaoImovelSituacao.class.getName()); if (colecao == null || colecao.isEmpty()) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } EspecificacaoImovelSituacao especificacaoImovelSituacaoAtual = (EspecificacaoImovelSituacao) Util .retonarObjetoDeColecao(colecao); if (especificacaoImovelSituacaoAtual.getUltimaAlteracao().after( especificacaoImovelSituacao.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } } /** * [UC0404] Manter Especifica��o da Situa��o do Imovel * * Este caso de uso remove a especifica��o e os crit�rio * * [SB0002] Remover Especifica��o da situacao * * @author Rafael Pinto * @created 08/11/2006 * * @throws ControladorException * Controlador Exception */ public void removerEspecificacaoSituacaoImovel( String[] idsEspecificacaoSituacaoImovel, Usuario usuario, Date ultimaAlteracao) throws ControladorException { try { for (int i = 0; i < idsEspecificacaoSituacaoImovel.length; i++) { String id = idsEspecificacaoSituacaoImovel[i]; EspecificacaoImovelSituacao especificacaoImovelSituacao = new EspecificacaoImovelSituacao(); especificacaoImovelSituacao.setId(new Integer(id)); especificacaoImovelSituacao.setUltimaAlteracao(ultimaAlteracao); this .verificarEspecificacaoImovelSituacaoControleConcorrencia(especificacaoImovelSituacao); } Operacao operacao = new Operacao(); operacao .setId(Operacao.OPERACAO_ESPECIFICACAO_SITUACAO_IMOVEL_REMOVER); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); repositorioAtendimentoPublico .removerEspecificacaoSituacaoImovelCriterio(idsEspecificacaoSituacaoImovel); UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelper = new UsuarioAcaoUsuarioHelper( usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); Collection<UsuarioAcaoUsuarioHelper> colecaoUsuarios = new ArrayList(); colecaoUsuarios.add(usuarioAcaoUsuarioHelper); getControladorUtil().remover(idsEspecificacaoSituacaoImovel, EspecificacaoImovelSituacao.class.getName(), operacaoEfetuada, colecaoUsuarios); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC0383] Manter Material [SB0003] Remover Material * * @author Kassia Albuquerque * @date 16/11/2006 * * @pparam material * @throws ControladorException */ public void removerMaterial(String[] ids, Usuario usuarioLogado) throws ControladorException { // ------------ REGISTRAR TRANSa��o ---------------- Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_MATERIAL_REMOVER); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelper = new UsuarioAcaoUsuarioHelper( usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); Collection<UsuarioAcaoUsuarioHelper> colecaoUsuarios = new ArrayList(); colecaoUsuarios.add(usuarioAcaoUsuarioHelper); // ------------ REGISTRAR TRANSa��o ---------------- this.getControladorUtil().remover(ids, Material.class.getName(), operacaoEfetuada, colecaoUsuarios); } /** * [UC0383] Manter Material [SB0001] Atualizar Material * * @param Material * @param Usuario Logado * * @author Diogo Peixoto * @date 18/08/2011 */ public void atualizarMaterial(Material material, Usuario usuarioLogado) throws ControladorException{ Integer codigoMaterial = material.getCodigo(); String descricaoMaterial = material.getDescricao(); String descricaoAbreviadaMaterial = material.getDescricaoAbreviada(); // [FS0001] Verificar existencia da Descri��o FiltroMaterial filtroMaterial = new FiltroMaterial(); filtroMaterial.adicionarParametro(new ParametroSimples(FiltroMaterial.DESCRICAO, descricaoMaterial)); filtroMaterial.adicionarParametro(new ParametroSimplesDiferenteDe(FiltroMaterial.ID, material.getId())); Collection<Material> colecaoMaterial = getControladorUtil().pesquisar(filtroMaterial, Material.class.getName()); if (!Util.isVazioOrNulo(colecaoMaterial)) { throw new ControladorException("atencao.descricao_ja_existente_material"); } if (Util.verificarNaoVazio(descricaoAbreviadaMaterial)) { filtroMaterial.limparListaParametros(); // [FS0002]- Verificar exist�ncia da Descri��o abreviada filtroMaterial.adicionarParametro(new ParametroSimples(FiltroMaterial.DESCRICAO_ABREVIADA, descricaoAbreviadaMaterial)); filtroMaterial.adicionarParametro(new ParametroSimplesDiferenteDe(FiltroMaterial.ID, material.getId())); colecaoMaterial = getControladorUtil().pesquisar(filtroMaterial, Material.class.getName()); if (!Util.isVazioOrNulo(colecaoMaterial)) { throw new ControladorException("atencao.descricao_abreviada_ja_existente_material"); } } if(codigoMaterial != null){ filtroMaterial.limparListaParametros(); //[FS0008]- Verificar exist�ncia do c�digo filtroMaterial.adicionarParametro(new ParametroSimples(FiltroMaterial.CODIGO, codigoMaterial)); filtroMaterial.adicionarParametro(new ParametroSimplesDiferenteDe(FiltroMaterial.ID, material.getId())); colecaoMaterial = getControladorUtil().pesquisar(filtroMaterial, Material.class.getName()); if (!Util.isVazioOrNulo(colecaoMaterial)) { throw new ControladorException("atencao.codigo_ja_existente_material"); } } material.setUltimaAlteracao(new Date()); // ------------ INICIO REGISTRAR TRANSa��o---------------------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_MATERIAL_ATUALIZAR, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_MATERIAL_ATUALIZAR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); material.setOperacaoEfetuada(operacaoEfetuada); material.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(material); // ------------ FIM REGISTRAR TRANSa��o---------------------------- // [FS0005] - Atualiza��o realizada por outro usu�rio FiltroMaterial filtroMaterialBase = new FiltroMaterial(); // Seta o filtro para buscar o material na base filtroMaterialBase.adicionarParametro(new ParametroSimples(FiltroMaterial.ID, material.getId())); // Procura material na base Collection<Material> materialAtualizadas = getControladorUtil().pesquisar(filtroMaterialBase, Material.class.getName()); Material materialNaBase = (Material) Util.retonarObjetoDeColecao(materialAtualizadas); if (materialNaBase == null) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.registro_remocao_nao_existente"); } // Verificar se o material j� foi atualizado por outro usu�rio // durante esta atualiza��o if (materialNaBase.getUltimaAlteracao().after(material.getUltimaAlteracao())){ sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } material.setUltimaAlteracao(new Date()); // Atualiza o objeto na base this.getControladorUtil().atualizar(material); } /** * [UC0498] Efetuar Liga��o de �gua com Instala��o de hidr�metro. * * Permite validar o efetuar Liga��o de �gua com Instala��o de hidr�metro * Exibir ou pelo menu ou pela funcionalidade encerrar a Execu��o da ordem * de servi�o. * * [FS0008] Verificar Situa��o Rede de �gua na Quadra. [FS0007] Verificar * Situa��o do Imovel. [FS0002] Validar Situa��o de �gua do Im�vel * * @author Rafael Corr�a * @date 27/11/2006 * * * @param imovel * @throws ControladorException */ public void validarLigacaoAguaComInstalacaoHidrometroExibir( OrdemServico ordem, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR LIGACAO AGUA COM INSTALACAO HIDROMETRO, n�o ser� * necess�rio realizar as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao(ordem.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_EFETUAR_LIGACAO_AGUA_COM_INSTALACAO_HIDROMETRO_INT) { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordem.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_LIGACAO_AGUA_COM_INSTALACAO_HIDROMETRO) { throw new ControladorException( "atencao.servico_associado_ligacao_agua_instalacao_hidrometro_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordem, veioEncerrarOS); // Caso 4 if (ordem.getRegistroAtendimento().getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordem.getRegistroAtendimento().getId()); } Imovel imovel = ordem.getRegistroAtendimento().getImovel(); // [FS0002] Validar Situa��o de �gua do Im�vel. if (imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.POTENCIAL .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.FACTIVEL .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.EM_FISCALIZACAO .intValue()) { throw new ControladorException( "atencao.situacao_validar_ligacao_agua_invalida_exibir", null, imovel.getLigacaoAguaSituacao().getDescricao()); } /* * [FS0007] Verificar Situa��o Rede de �gua na Quadra * * Integra��o com o conceito de face da quadra Raphael Rossiter em * 21/05/2009 */ IntegracaoQuadraFaceHelper integracao = this.getControladorLocalidade() .integracaoQuadraFace(imovel.getId()); if ((integracao.getIndicadorRedeAgua()).equals(Quadra.SEM_REDE)) { throw new ControladorException( "atencao.seituacao_rede_agua_quadra", null, imovel.getId() + ""); } // [FS0006] Verificar Situa��o do Imovel if (imovel.getIndicadorExclusao() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.situacao_imovel_indicador_exclusao", null, imovel .getId() + ""); } // [FS0014] - Verificar exist�ncia de hidr�metro na Liga��o de �gua if (imovel.getLigacaoAgua() != null && imovel.getLigacaoAgua().getHidrometroInstalacaoHistorico() != null) { throw new ControladorException( "atencao.hidrometro_instalado_ligacao_agua", null, "" + imovel.getId()); } /* * =================================================================================== */ } /** * [UC0540] Efetuar Restabelecimento da Liga��o de �gua com Instala��o de * hidr�metro. * * Permite validar o Efetuar Restabelecimento Liga��o de �gua com Instala��o * de hidr�metro Exibir ou pelo menu ou pela funcionalidade encerrar a * Execu��o da ordem de servi�o. * * [FS0008] Verificar Situa��o Rede de �gua na Quadra. [FS0007] Verificar * Situa��o do Imovel. [FS0002] Validar Situa��o de �gua do Im�vel * * @author Rafael Corr�a * @date 18/04/2007 * * * @param imovel * @throws ControladorException */ public void validarRestabelecimentoLigacaoAguaComInstalacaoHidrometroExibir( OrdemServico ordem, boolean veioEncerrarOS) throws ControladorException { // [FS0001] Validar Ordem de Servico /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR LIGACAO AGUA COM INSTALACAO HIDROMETRO, n�o ser� * necess�rio realizar as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao(ordem.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_EFETUAR_RESTABELECIMENTO_LIGACAO_AGUA_COM_INSTALACAO_DE_HIDROMETRO_INT) { // Caso 2 if (ordem.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_RESTABELECIMENTO_LIGACAO_AGUA_COM_INSTALACAO_HIDROMETRO) { throw new ControladorException( "atencao.servico_associado_restabelecimento_ligacao_agua_instalacao_hidrometro_invalida"); } } // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordem, veioEncerrarOS); // Caso 4 if (ordem.getRegistroAtendimento().getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordem.getRegistroAtendimento().getId()); } Imovel imovel = ordem.getRegistroAtendimento().getImovel(); // [FS0002] Validar Situa��o de �gua do Im�vel. if (imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.SUPRIMIDO .intValue() && imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.SUPR_PARC_PEDIDO .intValue()) { throw new ControladorException( "atencao.situacao_ligacao_agua_invalida_restabelecimento", null, imovel.getLigacaoAguaSituacao().getDescricao()); } /* * [FS0007] Verificar Situa��o Rede de �gua na Quadra * * Integra��o com o conceito de face da quadra Raphael Rossiter em * 21/05/2009 */ IntegracaoQuadraFaceHelper integracao = this.getControladorLocalidade() .integracaoQuadraFace(imovel.getId()); if ((integracao.getIndicadorRedeAgua()).equals(Quadra.SEM_REDE)) { throw new ControladorException( "atencao.seituacao_rede_agua_quadra", null, imovel.getId() + ""); } // [FS0006] Verificar Situa��o do Imovel if (imovel.getIndicadorExclusao() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.situacao_imovel_indicador_exclusao", null, imovel .getId() + ""); } // [FS0014] - Verificar exist�ncia de hidr�metro na Liga��o de �gua if (imovel.getLigacaoAgua() != null && imovel.getLigacaoAgua().getHidrometroInstalacaoHistorico() != null) { throw new ControladorException( "atencao.hidrometro_instalado_ligacao_agua", null, "" + imovel.getId()); } } /** * [UC0294] Manter Prioridade Tipo Servico [] Atualizar Prioridade do Tipo * Servico Metodo que atualiza a Prioridade do Tipo de Servico * * * @author Thiago Ten�rio * @date 25/05/2006 * * @param Prioridade * Tipo Servico * * @throws ControladorException */ public void atualizarPrioridadeTipoServico( ServicoTipoPrioridade servicoTipoPrioridade, Collection colecaoServicoTipoPrioridade) throws ControladorException { // Verifica se todos os campos obrigatorios foram preenchidos if ((servicoTipoPrioridade.getDescricao() == null || servicoTipoPrioridade .getDescricao().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) && (servicoTipoPrioridade.getDescricaoAbreviada() == null || servicoTipoPrioridade .getDescricaoAbreviada().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) && (servicoTipoPrioridade.getId() == null || servicoTipoPrioridade .getId().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) && (servicoTipoPrioridade.getPrazoExecucaoInicio() == null || servicoTipoPrioridade .getPrazoExecucaoInicio().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) && (servicoTipoPrioridade.getPrazoExecucaoFim() == null || servicoTipoPrioridade .getPrazoExecucaoFim().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO))) { throw new ControladorException( "atencao.filtro.nenhum_parametro_informado"); } // Verifica se o campo Descri��o da Prioridade foi preenchido if (servicoTipoPrioridade.getDescricao() == null || servicoTipoPrioridade.getDescricao().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ControladorException("atencao.Informe_entidade", null, " Descri��o da Prioridade"); } // Verifica se o campo Abreviatura da Prioridade foi preenchido if (servicoTipoPrioridade.getDescricaoAbreviada() == null || servicoTipoPrioridade.getDescricaoAbreviada().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ControladorException("atencao.Informe_entidade", null, "Abreviatura da Prioridade"); } // Verifica se o campo Horas para Execu��o do Servi�o foi preenchido if (servicoTipoPrioridade.getPrazoExecucaoInicio() == null || servicoTipoPrioridade.getPrazoExecucaoInicio().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ControladorException("atencao.Informe_entidade", null, "Horas para Execu��o do Servi�o"); } // Verifica se o campo Horas para Finaliza��o do Servi�o foi preenchido if (servicoTipoPrioridade.getPrazoExecucaoFim() == null || servicoTipoPrioridade.getPrazoExecucaoFim().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ControladorException("atencao.Informe_entidade", null, "Horas para Finaliza��o do Servi�o"); } // [FS0003] - Atualiza��o realizada por outro usu�rio FiltroServicoTipoPrioridade filtroServicoTipoPrioridade = new FiltroServicoTipoPrioridade(); filtroServicoTipoPrioridade.adicionarParametro(new ParametroSimples( FiltroServicoTipoPrioridade.ID, servicoTipoPrioridade.getId())); Collection colecaoServicoTipoPrioridadeBase = getControladorUtil() .pesquisar(filtroServicoTipoPrioridade, ServicoTipoPrioridade.class.getName()); if (colecaoServicoTipoPrioridadeBase == null || colecaoServicoTipoPrioridadeBase.isEmpty()) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } ServicoTipoPrioridade servicoTipoBase = (ServicoTipoPrioridade) colecaoServicoTipoPrioridadeBase .iterator().next(); if (servicoTipoBase.getUltimaAlteracao().after( servicoTipoBase.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } servicoTipoPrioridade.setUltimaAlteracao(new Date()); getControladorUtil().atualizar(servicoTipoPrioridade); } /** * [UC0498] Efetuar Liga��o de �gua com Instala��o de hidr�metro. * * Permite efetuar Liga��o de �gua com Instala��o de Hidr�metro ou pelo menu * ou pela funcionalidade encerrar a Execu��o da ordem de servi�o. * * @author Rafael Corr�a * @date 29/11/2006 * * @param integracaoComercialHelper * @throws ControladorException */ public void efetuarLigacaoAguaComInstalacaoHidrometro( IntegracaoComercialHelper integracaoComercialHelper, Usuario usuario) throws ControladorException { /* * [UC0107] Registrar Transa��o */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_EFETUAR_LIGACAO_AGUA_COM_INSTALACAO_HIDROMETRO, integracaoComercialHelper.getLigacaoAgua().getId(), integracaoComercialHelper.getLigacaoAgua().getId(), new UsuarioAcaoUsuarioHelper(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); LigacaoAgua ligacaoAgua = integracaoComercialHelper.getLigacaoAgua(); Imovel imovel = integracaoComercialHelper.getImovel(); OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); String qtdParcelas = integracaoComercialHelper.getQtdParcelas(); ligacaoAgua.setId(imovel.getId()); this.getControladorMicromedicao().validarImovelEmCampo(imovel.getId()); if (ligacaoAgua != null && imovel != null) { // [SB0001] Gerar Liga��o de �gua // LAGU_DTIMPLANTACAO ligacaoAgua.setDataImplantacao(new Date()); // LAGU_TMULTIMAALTERACAO Date dataCorrente = new Date(); ligacaoAgua.setUltimaAlteracao(dataCorrente); // FiltroLigacaoAgua filtroLigacaoAgua = new // FiltroLigacaoAgua(); // filtroLigacaoAgua.adicionarParametro(new ParametroSimples( // FiltroLigacaoAgua.ID, imovel.getId())); // Collection colecaoLigacaoAguaBase = getControladorUtil() // .pesquisar(filtroLigacaoAgua, // LigacaoAgua.class.getName()); // // if (!colecaoLigacaoAguaBase.isEmpty()) { // sessionContext.setRollbackOnly(); // throw new ControladorException( // "atencao.imovel_ja_existente", null, "" // + ligacaoAgua.getId()); // } // regitrando operacao ligacaoAgua .setHidrometroInstalacaoHistorico(integracaoComercialHelper .getHidrometroInstalacaoHistorico()); //Altera��o feita por S�vio Luiz //Data: 25/05/2011 FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples( FiltroLigacaoAgua.ID, imovel.getId())); Collection colecaoLigacaoAguaBase = getControladorUtil().pesquisar( filtroLigacaoAgua, LigacaoAgua.class.getName()); registradorOperacao.registrarOperacao(ligacaoAgua); if (!colecaoLigacaoAguaBase.isEmpty()) { getControladorUtil().atualizar(ligacaoAgua); }else{ getControladorUtil().inserir(ligacaoAgua); } } Integer id = null; HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = integracaoComercialHelper .getHidrometroInstalacaoHistorico(); validacaoInstalacaoHidrometro(hidrometroInstalacaoHistorico .getHidrometro().getNumero()); registradorOperacao.registrarOperacao(hidrometroInstalacaoHistorico); id = (Integer) getControladorUtil().inserir( hidrometroInstalacaoHistorico); try { // Caso o tipo de medi��o seja igual a Liga��o de �gua, atualiza as // colunas da tabela LIGACAO_AGUA // if // (hidrometroInstalacaoHistorico.getMedicaoTipo().getId().equals( // MedicaoTipo.LIGACAO_AGUA)) { // // // Caso o tipo de medi��o seja igual a Po�o, atualiza as colunas // // da tabela POCO // } else if (hidrometroInstalacaoHistorico.getMedicaoTipo().getId() // .equals(MedicaoTipo.POCO)) { // repositorioAtendimentoPublico // .atualizarHidrometroIntalacaoHistoricoImovel( // hidrometroInstalacaoHistorico.getImovel() // .getId(), id); // } // [SB003]Atualizar situa��o de hidr�metro na tabela HIDROMETRO Integer situacaoHidrometro = HidrometroSituacao.INSTALADO; repositorioAtendimentoPublico.atualizarSituacaoHidrometro( hidrometroInstalacaoHistorico.getHidrometro().getId(), situacaoHidrometro); hidrometroInstalacaoHistorico.setId(id); hidrometroInstalacaoHistorico.setLigacaoAgua(ligacaoAgua); ligacaoAgua .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico); if (ligacaoAgua != null && imovel != null) { // // [SB0001] Gerar Liga��o de �gua // // // LAGU_DTIMPLANTACAO // ligacaoAgua.setDataImplantacao(new Date()); // // // LAGU_TMULTIMAALTERACAO // Date dataCorrente = new Date(); // ligacaoAgua.setUltimaAlteracao(dataCorrente); // // // FiltroLigacaoAgua filtroLigacaoAgua = new // // FiltroLigacaoAgua(); // // filtroLigacaoAgua.adicionarParametro(new ParametroSimples( // // FiltroLigacaoAgua.ID, imovel.getId())); // // Collection colecaoLigacaoAguaBase = getControladorUtil() // // .pesquisar(filtroLigacaoAgua, // // LigacaoAgua.class.getName()); // // // // if (!colecaoLigacaoAguaBase.isEmpty()) { // // sessionContext.setRollbackOnly(); // // throw new ControladorException( // // "atencao.imovel_ja_existente", null, "" // // + ligacaoAgua.getId()); // // } // // // regitrando operacao // ligacaoAgua.setOperacaoEfetuada(operacaoEfetuada); // ligacaoAgua.adicionarUsuario(usuario, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // registradorOperacao.registrarOperacao(ligacaoAgua); // // getControladorUtil().inserir(ligacaoAgua); repositorioAtendimentoPublico .atualizarHidrometroInstalacaoHistoricoLigacaoAgua( hidrometroInstalacaoHistorico.getLigacaoAgua() .getId(), id); LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); ligacaoAguaSituacao.setId(LigacaoAguaSituacao.LIGADO); getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoAgua(imovel, ligacaoAguaSituacao); if (imovel.getLigacaoEsgotoSituacao() != null && imovel.getLigacaoEsgotoSituacao().getId().intValue() == LigacaoEsgotoSituacao.LIG_FORA_DE_USO .intValue()) { LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao(); ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO); imovel.setUltimaAlteracao(new Date()); // [SB0002] Atualizar Im�vel getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto( imovel, ligacaoEsgotoSituacao); } } if (ordemServico != null) { registradorOperacao.registrarOperacao(ordemServico); if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { this.getControladorOrdemServico() .verificarOrdemServicoControleConcorrencia( ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo() .getId(), ordemServico.getValorAtual(), new Integer(qtdParcelas), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC0540] Efetuar Restabelecimento da Liga��o de �gua com Instala��o de * hidr�metro. * * Permite efetuar o Restabelecimento Liga��o de �gua com Instala��o de * Hidr�metro ou pelo menu ou pela funcionalidade encerrar a Execu��o da * ordem de servi�o. * * @author Rafael Corr�a * @date 19/04/2007 * * @param integracaoComercialHelper * @throws ControladorException */ public void efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometro( IntegracaoComercialHelper integracaoComercialHelper, Usuario usuario) throws ControladorException { LigacaoAgua ligacaoAgua = integracaoComercialHelper.getLigacaoAgua(); Imovel imovel = integracaoComercialHelper.getImovel(); OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); String qtdParcelas = integracaoComercialHelper.getQtdParcelas(); this.getControladorMicromedicao().validarImovelEmCampo(imovel.getId()); /* * [UC0107] Registrar Transa��o */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_EFETUAR_RESTABELECIMENTO_LIGACAO_AGUA_COM_INSTALACAO_DE_HIDROMETRO, imovel.getId(), imovel.getId(), new UsuarioAcaoUsuarioHelper( usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); if (ligacaoAgua != null && imovel != null) { // [SB0001] Gerar Liga��o de �gua // LAGU_TMULTIMAALTERACAO Date dataCorrente = new Date(); ligacaoAgua.setUltimaAlteracao(dataCorrente); // regitrando operacao registradorOperacao.registrarOperacao(ligacaoAgua); getControladorUtil().atualizar(ligacaoAgua); } Integer id = null; HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = integracaoComercialHelper .getHidrometroInstalacaoHistorico(); validacaoInstalacaoHidrometro(hidrometroInstalacaoHistorico .getHidrometro().getNumero()); registradorOperacao.registrarOperacao(hidrometroInstalacaoHistorico); id = (Integer) getControladorUtil().inserir( hidrometroInstalacaoHistorico); try { // [SB003]Atualizar situa��o de hidr�metro na tabela HIDROMETRO Integer situacaoHidrometro = HidrometroSituacao.INSTALADO; repositorioAtendimentoPublico.atualizarSituacaoHidrometro( hidrometroInstalacaoHistorico.getHidrometro().getId(), situacaoHidrometro); hidrometroInstalacaoHistorico.setId(id); hidrometroInstalacaoHistorico.setLigacaoAgua(ligacaoAgua); ligacaoAgua .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico); if (ligacaoAgua != null && imovel != null) { repositorioAtendimentoPublico .atualizarHidrometroInstalacaoHistoricoLigacaoAgua( hidrometroInstalacaoHistorico.getLigacaoAgua() .getId(), id); LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); ligacaoAguaSituacao.setId(LigacaoAguaSituacao.LIGADO); getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoAgua(imovel, ligacaoAguaSituacao); if (imovel.getLigacaoEsgotoSituacao() != null && imovel.getLigacaoEsgotoSituacao().getId().intValue() == LigacaoEsgotoSituacao.LIG_FORA_DE_USO .intValue()) { LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao(); ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO); imovel.setUltimaAlteracao(new Date()); // [SB0002] Atualizar Im�vel getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto( imovel, ligacaoEsgotoSituacao); } } registradorOperacao.registrarOperacao(ordemServico); if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { this .getControladorOrdemServico() .verificarOrdemServicoControleConcorrencia(ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(qtdParcelas), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC0475] Obter Valor do D�bito * * @author Rafael Pinto * @date 22/02/2007 * * @param servicoTipoId * @param imovelId * @param tipoMedicao * @param idHidrometroCapacidade * * @return valor do D�bito * * @throws ControladorException */ public BigDecimal obterValorDebito(Integer servicoTipoId, Integer imovelId, HidrometroCapacidade hidrometroCapacidade) throws ControladorException { BigDecimal valorDebito = null; try { ObterValorDebitoHelper obterValorDebitoHelper = new ObterValorDebitoHelper(); ServicoTipo servicoTipo = new ServicoTipo(); servicoTipo.setId(servicoTipoId); obterValorDebitoHelper.setServicoTipo(servicoTipo); ImovelPerfil imovelPerfil = this.getControladorImovel() .obterImovelPerfil(imovelId); obterValorDebitoHelper.setImovelPerfil(imovelPerfil); obterValorDebitoHelper .setSituacaoMedicao(ServicoCobrancaValor.INDICADOR_MEDICAO_SIM); obterValorDebitoHelper .setHidrometroCapacidade(hidrometroCapacidade); valorDebito = this.repositorioAtendimentoPublico .obterValorDebito(obterValorDebitoHelper); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } return valorDebito; } /** * * Este m�todo se destina a validar a ordem de servico do [UC0555]-Alterar * Situacao Ligacao * * @author Romulo Aurelio * @date 27/03/2006 * * @param OrdemServico */ public void validarOrdemServicoAlterarSituacaoLigacao( OrdemServico ordemServico, boolean veioEncerrarOS) throws ControladorException { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordemServico.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_ALTERACAO_SITUACAO_LIGACAO) { throw new ControladorException( "atencao.servico_associado_alteracao_situacao_ligacao_invalida"); } // Caso 3 /* * this.getControladorOrdemServico().validaOrdemServico(ordemServico, * veioEncerrarOS); */ if (ordemServico.getSituacao() == OrdemServico.SITUACAO_ENCERRADO) { throw new ControladorException("atencao.os.encerrada"); } /* * if (ordemServico.getImovel() == null) { throw new * ControladorException( "atencao.ordem_servico_ra_imovel_invalida", * null, "" + ordemServico.getRegistroAtendimento().getId()); } */ // Comentado por Raphael Rossiter em 28/02/2007 // Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); /* * Imovel imovel = ordemServico.getImovel(); // [FS0002] Verificar * Situa��o do Imovel. if (imovel.getIndicadorExclusao() != null && * imovel.getIndicadorExclusao().intValue() != * ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { * * throw new ControladorException( * "atencao.atualizar_imovel_situacao_invalida", null, imovel * .getId().toString()); } * * if (imovel.getLigacaoAgua() == null) { throw new * ControladorException("atencao.naocadastrado", null, "Liga��o de * �gua"); } */ // [FS0003] Verificar a situa��o de �gua /* * if (imovel.getLigacaoAguaSituacao().getId().intValue() != * LigacaoAguaSituacao.LIGADO .intValue() && * imovel.getLigacaoAguaSituacao().getId().intValue() != * LigacaoAguaSituacao.CORTADO .intValue() && * imovel.getLigacaoAguaSituacao().getId().intValue() != * LigacaoAguaSituacao.SUPR_PARC_PEDIDO .intValue() && * imovel.getLigacaoAguaSituacao().getId().intValue() != * LigacaoAguaSituacao.EM_FISCALIZACAO .intValue() && * imovel.getLigacaoAguaSituacao().getId().intValue() != * LigacaoAguaSituacao.EM_CANCELAMENTO .intValue()) { * * throw new ControladorException( * "atencao.situacao_ligacao_agua_supressao_invalida", null, * imovel.getLigacaoAguaSituacao().getDescricao() + ""); } */ } /** * [UC0555] Alterar Situacao da Ligacao * * @author Romulo Aurelio * @date 27/03/2007 * * @param imovel * @param indicadorTipoLigacao * @param idSituacaoLigacaoAguaNova * @param idSituacaoLigacaoEsgotoNova * * @return idImovel * * @throws ControladorException */ public Integer alterarSituacaoLigacao(Imovel imovel, String indicadorTipoLigacao, String idSituacaoLigacaoAguaNova, String idSituacaoLigacaoEsgotoNova, String idOrdemServico, Usuario usuarioLogado) throws ControladorException { RegistradorOperacao registradorOperacao = new RegistradorOperacao(Operacao.OPERACAO_SITUACAO_LIGACAO_ALTERAR, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_SITUACAO_LIGACAO_ALTERAR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); // [UC0107] -Fim- Registrar Transa��o // [FS0009] - Verificar existencia de debitos // adicionadao por Vivianne Sousa - 18/03/2009 - analista: Dennys boolean temPermissaoAlterarSituacaoLigacaoParaImovelComDebito = getControladorPermissaoEspecial().verificarPermissaoAlterarSituacaoLigacaoParaImovelComDebito(usuarioLogado); // caso o usuario tenha permis�o especial, n�o verificar existencia de // debitos if (!temPermissaoAlterarSituacaoLigacaoParaImovelComDebito) { ObterDebitoImovelOuClienteHelper obterDebitoImovelOuClienteHelper = getControladorCobranca() .obterDebitoImovelOuCliente(1, imovel.getId().toString(), null, null, "190101", "999912", Util.converteStringParaDate("01/01/1901"), Util.converteStringParaDate("31/12/9999"), 1, 1, 1, 1, 1, 1, 1, null); Integer quantidadeDebitos = 0; if (obterDebitoImovelOuClienteHelper.getColecaoContasValoresImovel() != null) { quantidadeDebitos += obterDebitoImovelOuClienteHelper.getColecaoContasValoresImovel().size(); } if (obterDebitoImovelOuClienteHelper.getColecaoGuiasPagamentoValores() != null) { quantidadeDebitos += obterDebitoImovelOuClienteHelper.getColecaoGuiasPagamentoValores().size(); } if (obterDebitoImovelOuClienteHelper.getColecaoCreditoARealizar() != null) { quantidadeDebitos += obterDebitoImovelOuClienteHelper.getColecaoCreditoARealizar().size(); } if (obterDebitoImovelOuClienteHelper.getColecaoDebitoACobrar() != null) { quantidadeDebitos += obterDebitoImovelOuClienteHelper.getColecaoDebitoACobrar().size(); } if (quantidadeDebitos > 0) { throw new ControladorException("atencao.existencia.debitos.alterar.ligacao.situacao"); } } // [FS0006] - Verificar existencia de hidrometro if ((indicadorTipoLigacao.equalsIgnoreCase("" + LigacaoTipo.LIGACAO_AGUA) || (indicadorTipoLigacao.equalsIgnoreCase("3") && !indicadorTipoLigacao.equalsIgnoreCase("-1"))) && idSituacaoLigacaoAguaNova != null) { if (!idSituacaoLigacaoAguaNova.equalsIgnoreCase("" + LigacaoAguaSituacao.LIGADO) || !idSituacaoLigacaoAguaNova.equalsIgnoreCase("" + LigacaoAguaSituacao.FACTIVEL)) { if (imovel.getLigacaoAgua() != null) { FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples(FiltroLigacaoAgua.ID, imovel.getLigacaoAgua().getId())); Collection colecaoLigacaoAgua = getControladorUtil().pesquisar(filtroLigacaoAgua, LigacaoAgua.class.getName()); filtroLigacaoAgua.adicionarCaminhoParaCarregamentoEntidade("hidrometroInstalacaoHistorico"); LigacaoAgua ligacaoAgua = (LigacaoAgua) colecaoLigacaoAgua.iterator().next(); if (ligacaoAgua.getHidrometroInstalacaoHistorico() != null) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.hidrometro_ja_instalado_ligacao_agua", null, ligacaoAgua.getId().toString()); } else { // [SB0001]- Deletar Dados da Ligacao // Registrar Transacao ligacaoAgua.setOperacaoEfetuada(operacaoEfetuada); ligacaoAgua.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(ligacaoAgua); // Registrar Transacao /* * Pesquisa o grupo na base de dados e verifica se o * registro n�o foi atualizado por outro usu�rio durante * essa transa��o */ getControladorUtil().remover(ligacaoAgua); // [SB0002]- Atualizar Situacao do Imovel LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); ligacaoAguaSituacao.setId(new Integer(idSituacaoLigacaoAguaNova)); imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao); } } else { LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); ligacaoAguaSituacao.setId(new Integer(idSituacaoLigacaoAguaNova)); imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao); } } } if ((indicadorTipoLigacao.equalsIgnoreCase("" + LigacaoTipo.LIGACAO_ESGOTO) || indicadorTipoLigacao.equalsIgnoreCase("3")) && idSituacaoLigacaoEsgotoNova != null) { if (!idSituacaoLigacaoEsgotoNova.equalsIgnoreCase("" + LigacaoEsgotoSituacao.POTENCIAL) || !idSituacaoLigacaoEsgotoNova.equalsIgnoreCase("" + LigacaoEsgotoSituacao.FACTIVEL)) { if (imovel.getHidrometroInstalacaoHistorico() != null) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.hidrometro_ja_instalado_ligacao_esgoto", null, imovel.getId().toString()); } else { // [SB0001]- Deletar Dados da Ligacao LigacaoEsgoto ligacaoEsgoto = imovel.getLigacaoEsgoto(); if (ligacaoEsgoto != null) { // Registrar Transacao ligacaoEsgoto.setOperacaoEfetuada(operacaoEfetuada); ligacaoEsgoto.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(ligacaoEsgoto); // Registrar Transacao getControladorUtil().remover(ligacaoEsgoto); } // [SB0002]- Atualizar Situacao do Imovel LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao(); ligacaoEsgotoSituacao.setId(new Integer(idSituacaoLigacaoEsgotoNova)); imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao); } } } imovel.setUltimaAlteracao(new Date()); // [FS0005]- Atualizacao Realizada por outro Usuario FiltroImovel filtroImovelBase = new FiltroImovel(); filtroImovelBase.adicionarParametro(new ParametroSimples(FiltroImovel.ID, imovel.getId())); Collection colecaoImovelBase = getControladorUtil().pesquisar(filtroImovelBase, Imovel.class.getSimpleName()); if (colecaoImovelBase != null && !colecaoImovelBase.isEmpty()) { // Recupera o grupo na base de dados Imovel imovelBase = (Imovel) colecaoImovelBase.iterator().next(); // [FS0004] - Atualiza��o realizada por outro usu�rio if (imovelBase.getUltimaAlteracao().after(imovel.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } } // Registrar Transacao imovel.setOperacaoEfetuada(operacaoEfetuada); imovel.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(imovel); // Registrar Transacao // [SB0002]- Atualizar Situacao do Imovel imovel.setUsuarioParaHistorico(usuarioLogado); getControladorAtualizacaoCadastro().atualizar(imovel); // [SB0003]- Atualizar Ordem de Servico String idMotivoEncerramento = AtendimentoMotivoEncerramento.CONCLUSAO_SERVICO.toString(); // Chamada ao [UC0457]Encerrar Ordem de Servico getControladorOrdemServico().encerrarOSComExecucaoSemReferencia(new Integer(idOrdemServico), new Date(), usuarioLogado, idMotivoEncerramento, new Date(), null, null, null, null, null, null, null, null, null, null, null, null); return imovel.getId(); } /** * Pesquisa todos os ids das situa��es de liga��o de �gua. * * [UC0564 - Gerar Resumo das Instala��es de Hidr�metros] * * @author Pedro Alexandre * @date 25/04/2007 * * @return * @throws ControladorException */ public Collection<Integer> pesquisarTodosIdsSituacaoLigacaoAgua() throws ControladorException { try { return repositorioAtendimentoPublico .pesquisarTodosIdsSituacaoLigacaoAgua(); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * Pesquisa todos os ids das situa��es de liga��o de esgoto. * * [UC0564 - Gerar Resumo das Instala��es de Hidr�metros] * * @author Pedro Alexandre * @date 25/04/2007 * * @return * @throws ControladorException */ public Collection<Integer> pesquisarTodosIdsSituacaoLigacaoEsgoto() throws ControladorException { try { return repositorioAtendimentoPublico .pesquisarTodosIdsSituacaoLigacaoEsgoto(); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * * Este cso de uso permite efetuar a liga��o de �gua e eventualmente a * instala��o de hidr�metro, sem informa��o de RA sendo chamado direto pelo * menu. * * [UC0579] - Efetuar Liga��o de �gua com Intala��o de Hidr�metro * * @author Fl�vio Leonardo * @date 25/04/2007 * * @param idImovel * @return * @throws ErroRepositorioException */ public EfetuarLigacaoAguaComInstalacaoHidrometroSemRAHelper pesquisarEfetuarLigacaoAguaHidrometroSemRA( Integer idImovel) throws ControladorException { EfetuarLigacaoAguaComInstalacaoHidrometroSemRAHelper retorno = null; try { Collection objetos = repositorioAtendimentoPublico .pesquisarEfetuarLigacaoAguaHidrometroSemRA(idImovel); short indicadorExclusao = 0; short indicadorRedeAgua = 0; if (!objetos.isEmpty()) { Iterator iterator = objetos.iterator(); while (iterator.hasNext()) { retorno = new EfetuarLigacaoAguaComInstalacaoHidrometroSemRAHelper(); Object[] objeto = (Object[]) iterator.next(); // idImovel if (objeto[0] != null) { retorno.setMatriculaImovel(((Integer) objeto[0]) + ""); } // nomeCliente if (objeto[1] != null) { retorno.setClienteUsuario((String) objeto[1]); } // cpf if (objeto[2] != null) { retorno.setCpfCnpjCliente((String) objeto[2]); } else // cnpj if (objeto[3] != null) { retorno.setCpfCnpjCliente((String) objeto[3]); } // situacaoLigacaoAgua if (objeto[4] != null) { retorno.setSituacaoLigacaoAgua((String) objeto[4]); } // situacaoLigacaoEsgoto if (objeto[5] != null) { retorno.setSituacaoLigacaoEsgoto((String) objeto[5]); } // indicadorExclusaoImovel if (objeto[6] != null) { indicadorExclusao = ((Short) objeto[6]); } /* * [FS0007] Verificar Situa��o Rede de �gua na Quadra * * Integra��o com o conceito de face da quadra Raphael * Rossiter em 22/05/2009 */ IntegracaoQuadraFaceHelper integracao = this .getControladorLocalidade().integracaoQuadraFace( Integer.valueOf(retorno .getMatriculaImovel())); indicadorRedeAgua = integracao.getIndicadorRedeAgua(); // idSituacaoLigacaoAgua if (objeto[8] != null) { retorno.setIdSituacaoLigacaoAgua((Integer) objeto[8]); } // idSituacaoLigacaoEsgoto if (objeto[9] != null) { retorno.setIdSituacaoLigacaoEsgoto((Integer) objeto[9]); } } // [FS0006] Verifica Situa��o do Imovel if (indicadorExclusao == ConstantesSistema.SIM) { throw new ControladorException( "atencao.atualizar_situacao_imovel_indicador_exclusao_esgoto", null, idImovel.toString()); } // [FS0007] Verifica Situa��o rede de �gua da quadra if (indicadorRedeAgua == ConstantesSistema.SIM) { throw new ControladorException( "atencao.seituacao_rede_agua_quadra", null, idImovel.toString()); } // [FS0002] Validar Situa��o de �gua do Im�vel if (!retorno.getIdSituacaoLigacaoAgua().equals( LigacaoAguaSituacao.POTENCIAL) && !retorno.getIdSituacaoLigacaoAgua().equals( LigacaoAguaSituacao.FACTIVEL) && !retorno.getIdSituacaoLigacaoAgua().equals( LigacaoAguaSituacao.EM_FISCALIZACAO)) { throw new ControladorException( "atencao.situacao_ligacao_agua_invaliga", null, idImovel.toString()); } } } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } return retorno; } /** * [UC0874] Gerar Contrato de Presta��o de Servi�o * * @author Rafael Corr�a, R�mulo Aur�lio * @date 03/05/2007, 15/12/2008 * * @throws ControladorException */ public Collection obterDadosContratoPrestacaoServico(Integer idImovel, Integer idCliente) throws ControladorException { try { Collection colecaoDadosRelatorio = this.repositorioAtendimentoPublico .obterDadosContratoPrestacaoServico(idImovel); // Collection dadosUnidadeNegocioResponsavel = Collection colecaoContratoPrestacaoServicoHelper = new ArrayList(); Iterator colecaoDadosRelatorioIterator = colecaoDadosRelatorio .iterator(); while (colecaoDadosRelatorioIterator.hasNext()) { ContratoPrestacaoServicoHelper contratoPrestacaoServicoHelper = new ContratoPrestacaoServicoHelper(); // Obt�m os dados do cr�dito realizado Object[] dadosRelatorio = (Object[]) colecaoDadosRelatorioIterator .next(); Cliente cliente = null; Cliente clienteResponsavel = null; String enderecoCliente = ""; String enderecoImovel = ""; String categoriaPrincipal = ""; // Nome Localidade if (dadosRelatorio[0] != null) { contratoPrestacaoServicoHelper .setNomeLocalidade((String) dadosRelatorio[0]); } // Id do Respons�vel if (dadosRelatorio[4] != null) { clienteResponsavel = new Cliente(); clienteResponsavel.setId((Integer) dadosRelatorio[4]); // Nome Respons�vel if (dadosRelatorio[1] != null) { clienteResponsavel.setNome((String) dadosRelatorio[1]); } // CPF Respons�vel if (dadosRelatorio[2] != null) { clienteResponsavel.setCpf((String) dadosRelatorio[2]); } // RG Respons�vel if (dadosRelatorio[3] != null) { clienteResponsavel.setRg((String) dadosRelatorio[3]); } } Imovel imovel = new Imovel(); imovel.setId(idImovel); // Consumo Tarifa if (dadosRelatorio[5] != null) { ConsumoTarifa consumoTarifa = new ConsumoTarifa(); consumoTarifa.setId((Integer) dadosRelatorio[5]); imovel.setConsumoTarifa(consumoTarifa); } // Nome Unidade Neg�cio if (dadosRelatorio[6] != null) { contratoPrestacaoServicoHelper .setNomeMunicipio((String) dadosRelatorio[6]); } else { contratoPrestacaoServicoHelper.setNomeMunicipio(""); } if (clienteResponsavel == null) { throw new ControladorException( "atencao.localidade_sem_responsavel", null, contratoPrestacaoServicoHelper.getNomeLocalidade()); } enderecoImovel = getControladorEndereco() .obterEnderecoAbreviadoImovel(idImovel); Integer consumoMinimo = null; Categoria categoriaImovel = getControladorImovel() .obterPrincipalCategoriaImovel(idImovel); // [FS0001]- Validar imovel e identificar tipo de categoria if (categoriaImovel != null) { categoriaPrincipal = categoriaImovel.getDescricao(); if (categoriaImovel.getCategoriaTipo().getId().intValue() != CategoriaTipo.PARTICULAR .intValue()) { throw new ControladorException( "atencao.categoria_diferente_de_particular", null, categoriaImovel.getCategoriaTipo() .getDescricao()); } } consumoMinimo = getControladorMicromedicao() .obterConsumoMinimoLigacao(imovel, null); FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.ID, idCliente)); filtroCliente .adicionarCaminhoParaCarregamentoEntidade(FiltroCliente.CLIENTE_TIPO); Collection colecaoCliente = getControladorUtil().pesquisar( filtroCliente, Cliente.class.getName()); if (colecaoCliente != null && !colecaoCliente.isEmpty()) { cliente = (Cliente) Util .retonarObjetoDeColecao(colecaoCliente); if (cliente.getClienteTipo() .getIndicadorPessoaFisicaJuridica().intValue() == ClienteTipo.INDICADOR_PESSOA_JURIDICA .intValue()) { throw new ControladorException( "atencao.cliente_associado_contrato_pessoa_juridica"); } if (cliente.getCpf() == null || cliente.getCpf().equalsIgnoreCase("")) { throw new ControladorException( "atencao.cpf_cliente_nao_informado", null, "cliente respons�vel"); } if (cliente.getRg() == null || cliente.getRg().equalsIgnoreCase("")) { throw new ControladorException( "atencao.rg_cliente_nao_informado", null, "cliente"); } } if (clienteResponsavel != null) { if (clienteResponsavel.getRg() == null || clienteResponsavel.getRg().equalsIgnoreCase("")) { throw new ControladorException( "atencao.responsavel_localidade_sem_rg", null, contratoPrestacaoServicoHelper .getNomeLocalidade()); } if (clienteResponsavel.getCpf() == null || clienteResponsavel.getCpf().equalsIgnoreCase("")) { throw new ControladorException( "atencao.responsavel_unidade_negocio_sem_cpf", null, contratoPrestacaoServicoHelper .getNomeLocalidade()); } enderecoCliente = getControladorEndereco() .pesquisarEnderecoClienteAbreviado(idCliente); contratoPrestacaoServicoHelper.setCliente(cliente); contratoPrestacaoServicoHelper .setClienteResponsavel(clienteResponsavel); contratoPrestacaoServicoHelper .setEnderecoCliente(enderecoCliente); contratoPrestacaoServicoHelper .setEnderecoImovel(enderecoImovel); contratoPrestacaoServicoHelper .setCategoria(categoriaPrincipal); contratoPrestacaoServicoHelper .setConsumoMinimo(consumoMinimo); colecaoContratoPrestacaoServicoHelper .add(contratoPrestacaoServicoHelper); } } return colecaoContratoPrestacaoServicoHelper; } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } } public void atualizarImovelLigacaoAguaInstalacaoHidrometroSemRA( Integer idImovel, Integer idHidrometro) { try { repositorioAtendimentoPublico .atualizarImovelLigacaoAguaInstalacaoHidrometroSemRA( idImovel, idHidrometro); } catch (ErroRepositorioException e) { e.printStackTrace(); } } /** * [UC0582] - Emitir Boletim de Cadastro * * Obt�m os dados necess�rio da liga��o de �gua, de esgoto e do hidr�metro * instalado na liga��o de �gua * * @author Rafael Corr�a * @date 17/05/2007 * * @throws ControladorException */ public DadosLigacoesBoletimCadastroHelper obterDadosLigacaoAguaEsgoto( Integer idImovel) throws ControladorException { DadosLigacoesBoletimCadastroHelper dadosLigacoesBoletimCadastroHelper = new DadosLigacoesBoletimCadastroHelper(); Object[] dadosLigacos = null; try { dadosLigacos = this.repositorioAtendimentoPublico .obterDadosLigacaoAguaEsgoto(idImovel); if (dadosLigacos != null) { LigacaoAgua ligacaoAgua = new LigacaoAgua(); LigacaoEsgoto ligacaoEsgoto = new LigacaoEsgoto(); HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = null; Hidrometro hidrometro = null; // Di�metro da Liga��o de �gua if (dadosLigacos[0] != null) { LigacaoAguaDiametro ligacaoAguaDiametro = new LigacaoAguaDiametro(); ligacaoAguaDiametro.setId((Integer) dadosLigacos[0]); ligacaoAgua.setLigacaoAguaDiametro(ligacaoAguaDiametro); } // Material da Liga��o de �gua if (dadosLigacos[1] != null) { LigacaoAguaMaterial ligacaoAguaMaterial = new LigacaoAguaMaterial(); ligacaoAguaMaterial.setId((Integer) dadosLigacos[1]); ligacaoAgua.setLigacaoAguaMaterial(ligacaoAguaMaterial); } // Di�metro da Liga��o de Esgoto if (dadosLigacos[2] != null) { LigacaoEsgotoDiametro ligacaoEsgotoDiametro = new LigacaoEsgotoDiametro(); ligacaoEsgotoDiametro.setId((Integer) dadosLigacos[2]); ligacaoEsgoto .setLigacaoEsgotoDiametro(ligacaoEsgotoDiametro); } // Material da Liga��o de Esgoto if (dadosLigacos[3] != null) { LigacaoEsgotoMaterial ligacaoEsgotoMaterial = new LigacaoEsgotoMaterial(); ligacaoEsgotoMaterial.setId((Integer) dadosLigacos[3]); ligacaoEsgoto .setLigacaoEsgotoMaterial(ligacaoEsgotoMaterial); } // Leitura Inicial if (dadosLigacos[4] != null) { hidrometroInstalacaoHistorico = new HidrometroInstalacaoHistorico(); hidrometro = new Hidrometro(); hidrometroInstalacaoHistorico .setNumeroLeituraInstalacao((Integer) dadosLigacos[4]); } // Capacidade do Hidr�metro if (dadosLigacos[5] != null) { HidrometroCapacidade hidrometroCapacidade = new HidrometroCapacidade(); hidrometroCapacidade.setId((Integer) dadosLigacos[5]); hidrometro.setHidrometroCapacidade(hidrometroCapacidade); } // Marca do Hidr�metro if (dadosLigacos[6] != null) { HidrometroMarca hidrometroMarca = new HidrometroMarca(); hidrometroMarca.setId((Integer) dadosLigacos[6]); hidrometro.setHidrometroMarca(hidrometroMarca); } // Local de Instala��o do Hidr�metro if (dadosLigacos[7] != null) { HidrometroLocalInstalacao hidrometroLocalInstalacao = new HidrometroLocalInstalacao(); hidrometroLocalInstalacao.setId((Integer) dadosLigacos[7]); hidrometroInstalacaoHistorico .setHidrometroLocalInstalacao(hidrometroLocalInstalacao); } // Prote��o do Hidr�metro if (dadosLigacos[8] != null) { HidrometroProtecao hidrometroProtecao = new HidrometroProtecao(); hidrometroProtecao.setId((Integer) dadosLigacos[8]); hidrometroInstalacaoHistorico .setHidrometroProtecao(hidrometroProtecao); } // Indicador Cavalete if (dadosLigacos[9] != null) { hidrometroInstalacaoHistorico .setIndicadorExistenciaCavalete((Short) dadosLigacos[9]); } // Numero do Hidr�metro if (dadosLigacos[10] != null) { hidrometro.setNumero((String) dadosLigacos[10]); } if (hidrometroInstalacaoHistorico != null) { hidrometroInstalacaoHistorico.setHidrometro(hidrometro); } ligacaoAgua .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico); dadosLigacoesBoletimCadastroHelper.setLigacaoAgua(ligacaoAgua); dadosLigacoesBoletimCadastroHelper .setLigacaoEsgoto(ligacaoEsgoto); } } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } return dadosLigacoesBoletimCadastroHelper; } public RelatorioContratoPrestacaoServicoJuridicoBean gerarContratoJuridica( Integer idImovel, Integer idClienteEmpresa) throws ControladorException { RelatorioContratoPrestacaoServicoJuridicoBean relatorioBean = null; Categoria categoriaImovel = getControladorImovel() .obterPrincipalCategoriaImovel(idImovel); // [FS0001]- Validar imovel e identificar tipo de categoria if (categoriaImovel != null) { if (categoriaImovel.getCategoriaTipo().getId().intValue() != CategoriaTipo.PUBLICO .intValue()) { throw new ControladorException( "atencao.categoria_diferente_publica", null, categoriaImovel.getCategoriaTipo().getDescricao()); } } ClienteImovel clienteImovel; try { clienteImovel = repositorioAtendimentoPublico .pesquisarDadosContratoJuridica(idImovel); if (clienteImovel != null) { SistemaParametro sistemaParametro = getControladorUtil() .pesquisarParametrosDoSistema(); if (sistemaParametro.getClientePresidente() == null) { throw new ControladorException("atencao.cliente_sem_dados", null, "Presidente"); } if (sistemaParametro.getClienteDiretorComercial() == null) { throw new ControladorException("atencao.cliente_sem_dados", null, "Diretor Financeiro"); } // 3.4.1 Diretor Presidente Cliente clientePresidente = repositorioAtendimentoPublico .pesquisaClienteContrato(sistemaParametro .getClientePresidente().getId()); // 3.4.2 Diretor Comercial Cliente clienteDiretor = repositorioAtendimentoPublico .pesquisaClienteContrato(sistemaParametro .getClienteDiretorComercial().getId()); // [FS0002]- Identificar informa��es do presidente e diretor // fincanceiro da empresa if (clientePresidente == null) { throw new ControladorException("atencao.cliente_sem_dados", null, "Presidente"); } else { if (clientePresidente.getCpf() == null || clientePresidente.getCpf().equalsIgnoreCase("")) { throw new ControladorException( "atencao.cpf_cliente_nao_informado", null, "Presidente associado"); } if (clientePresidente.getRg() == null || clientePresidente.getRg().equalsIgnoreCase("")) { throw new ControladorException( "atencao.rg_cliente_nao_informado", null, "Presidente associado"); } } if (clienteDiretor == null) { throw new ControladorException("atencao.cliente_sem_dados", null, "Diretor Financeiro"); } else { if (clienteDiretor.getCpf() == null || clienteDiretor.getCpf().equalsIgnoreCase("")) { throw new ControladorException( "atencao.cpf_cliente_nao_informado", null, "Diretor Financeiro"); } if (clienteDiretor.getRg() == null || clienteDiretor.getRg().equalsIgnoreCase("")) { throw new ControladorException( "atencao.rg_cliente_nao_informado", null, "Diretor Financeiro"); } } // [FS0011]- Identificar profissao do presidente e diretor // financeiro if (clientePresidente.getProfissao() == null || clientePresidente.getProfissao().getDescricao() == null || clientePresidente.getProfissao().getDescricao() .equalsIgnoreCase("")) { throw new ControladorException( "atencao.profissao_cliente_presidente_inexistente", null, clientePresidente.getId().toString()); } if (clienteDiretor.getProfissao() == null || clienteDiretor.getProfissao().getDescricao() == null || clienteDiretor.getProfissao().getDescricao() .equalsIgnoreCase("")) { throw new ControladorException( "atencao.profissao_cliente_diretor_inexistente", null, clienteDiretor.getId().toString()); } // 3.4.3 Cliente Usuario Cliente clienteUsuario = clienteImovel.getCliente(); // 3.4.4 Endereco Imovel String endereco = getControladorEndereco() .pesquisarEnderecoFormatado(idImovel); if (clienteUsuario.getCnpj() == null || clienteUsuario.equals("")) { throw new ControladorException( "atencao.cnpj_cliente_imovel_nao_informado"); } // 3.4.6 Cliente Representante Empresa Cliente clienteEmpresa = repositorioAtendimentoPublico .pesquisaClienteContrato(idClienteEmpresa); if (clienteEmpresa.getClienteTipo() .getIndicadorPessoaFisicaJuridica().intValue() == ClienteTipo.INDICADOR_PESSOA_JURIDICA .intValue()) { throw new ControladorException( "atencao.cliente_associado_contrato_pessoa_juridica"); } // [FS0004]- Informa��es do cliente associado ao contrato if (clienteEmpresa.getCpf() == null || clienteEmpresa.getCpf().equals("")) { throw new ControladorException( "atencao.cpf_cliente_nao_informado", null, "cliente respons�vel"); } if (clienteEmpresa.getRg() == null || clienteEmpresa.getRg().equals("")) { throw new ControladorException( "atencao.rg_cliente_nao_informado", null, "cliente"); } Date dataCorrente = new Date(); String anoCorrente = "" + Util.getAno(dataCorrente); // 3.5 Comarca(municipio do imovel) String municipio = repositorioAtendimentoPublico .pesquisarMunicipio(idImovel); DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.getDefault()); String dataCorrenteFormatada = df.format(new Date()); relatorioBean = new RelatorioContratoPrestacaoServicoJuridicoBean( clientePresidente.getNome() != null ? clientePresidente .getNome() : "", clientePresidente .getCpfFormatado() != null ? clientePresidente .getCpfFormatado() : "", clientePresidente .getRg() != null ? clientePresidente.getRg() : "", clientePresidente.getProfissao() .getDescricao() != null ? clientePresidente .getProfissao().getDescricao() : "", clienteDiretor.getNome() != null ? clienteDiretor .getNome() : "", clienteDiretor .getCpfFormatado() != null ? clienteDiretor .getCpfFormatado() : "", clienteDiretor.getRg() != null ? clienteDiretor.getRg() : "", clienteDiretor.getProfissao() .getDescricao() != null ? clienteDiretor .getProfissao().getDescricao() : "", clienteUsuario.getNome() != null ? clienteUsuario .getNome() : "", clienteUsuario .getCnpjFormatado() != null ? clienteUsuario .getCnpjFormatado() : "", endereco != null ? endereco : "", idImovel.toString() != null ? idImovel.toString() : "", clienteEmpresa.getNome() != null ? clienteEmpresa .getNome() : "", clienteEmpresa .getCpfFormatado() != null ? clienteEmpresa .getCpfFormatado() : "", clienteEmpresa.getRg() != null ? clienteEmpresa.getRg() : "", municipio != null ? municipio : "", dataCorrenteFormatada, clienteUsuario.getClienteTipo() .getEsferaPoder().getDescricao(), "" + idImovel.toString() + anoCorrente); } } catch (ErroRepositorioException e) { e.printStackTrace(); } return relatorioBean; } /** * [UC0608] Efetuar Liga��o de Esgoto sem RA. * * [FS0001] Verificar exist�ncia da matr�cula do Imovel. * * [FS0007] Verificar situa��o do im�vel. * * [FS0008] Verificar Situa��o Rede de Esgoto da Quadra. * * @author S�vio Luiz. * @date 10/09/2007 * * * @param imovel * @throws ControladorException */ public String validarMatriculaImovel(Integer idImovel) throws ControladorException { String mensagem = null; int quantidadeImoveis = getControladorImovel() .verificarExistenciaImovel(idImovel); if (quantidadeImoveis == 0) { boolean imovelExcluido = getControladorImovel() .confirmarImovelExcluido(idImovel); // [FS0007] Verificar situa��o do im�vel. if (imovelExcluido) { throw new ControladorException( "atencao.atualizar_situacao_imovel_indicador_exclusao_esgoto", null, "" + idImovel); } else { // [FS0001] Verificar exist�ncia da matr�cula do Imovel. mensagem = "Matr�cula do im�vel inexistente."; } } /* * [FS0007] - Verificar situa��o rede de esgoto da quadra * * Integra��o com o conceito de face da quadra Raphael Rossiter em * 22/05/2009 */ IntegracaoQuadraFaceHelper integracao = this.getControladorLocalidade() .integracaoQuadraFace(idImovel); if ((integracao.getIndicadorRedeEsgoto()).equals(Quadra.SEM_REDE)) { throw new ControladorException( "atencao.percentual_rede_esgoto_quadra", null, "" + idImovel); } return mensagem; } /** * [UC0482]Emitir 2� Via de Conta obter numero do hidr�metro na liga��o de * �gua. * * @author Vivianne Sousa * @date 11/09/2007 * * @param imovelId * @return existencia de hidrometro ou n�o * @throws ErroRepositorioException */ public String obterNumeroHidrometroEmLigacaoAgua(Integer imovelId) throws ControladorException { try { return repositorioAtendimentoPublico .obterNumeroHidrometroEmLigacaoAgua(imovelId); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * [UC0475] Obter Valor do D�bito * * Obter Capacidade de Hidr�metro pela Liga��o de �gua. * * @author Leonardo Regis * @date 09/09/2006 * * @param imovelId * @return existencia de hidrometro ou n�o * @throws ErroRepositorioException */ public HidrometroCapacidade obterHidrometroCapacidadeEmLigacaoAgua( Integer imovelId) throws ControladorException { try { return repositorioAtendimentoPublico .obterHidrometroCapacidadeEmLigacaoAgua(imovelId); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * [UC0726] Gerar Relat�rio de Im�veis com Faturas em Atraso * * @author Bruno Barros * @date 06/12/2007 * * @param FiltrarRelatorioImoveisFaturasAtrasoHelper * * @return Collection<RelatorioImoveisSituacaoLigacaoAguaHelper> * @throws ErroRepositorioException */ public Collection<RelatorioCertidaoNegativaHelper> pesquisarRelatorioCertidaoNegativa( Imovel imo) throws ControladorException { Collection<RelatorioCertidaoNegativaHelper> retorno = new ArrayList<RelatorioCertidaoNegativaHelper>(); Collection<Object[]> colecaoPesquisa = null; try { colecaoPesquisa = this.repositorioAtendimentoPublico .pesquisarRelatorioCertidaoNegativa(imo); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } RelatorioCertidaoNegativaHelper helper = null; if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) { Iterator itera = colecaoPesquisa.iterator(); if (itera.hasNext()) { Object[] objeto = (Object[]) itera.next(); helper = new RelatorioCertidaoNegativaHelper(); // Nome do usu�rio helper.setNomeClienteUsuario((String) objeto[0]); // Matricula do imovel helper.setMatriculaImovel((Integer) objeto[1]); // Carregamos os dados no imovel para selecionarmos sua // matr�cula formatada // Id do imovel Imovel imovel = new Imovel(); imovel.setId((Integer) objeto[1]); // Id da localidade Localidade local = new Localidade(); local.setId((Integer) objeto[2]); imovel.setLocalidade(local); // C�digo do Setor Comercial SetorComercial setorComercial = new SetorComercial(); setorComercial.setCodigo((Integer) objeto[3]); imovel.setSetorComercial(setorComercial); // Numero da quadra Quadra quadra = new Quadra(); quadra.setNumeroQuadra((Integer) objeto[4]); imovel.setQuadra(quadra); imovel.setLote((Short) objeto[5]); imovel.setSubLote((Short) objeto[6]); // Inscri��o formatada helper.setInscricaoImovel(imovel.getInscricaoFormatada()); // Nome do Usu�rio Cliente clienteUsuario = getControladorImovel() .pesquisarClienteUsuarioImovel(imovel.getId()); helper.setNomeUsuario(clienteUsuario.getNome()); // Selecionamos os dados do Endere�o String[] dadosEndereco = this .getControladorEndereco() .pesquisarEnderecoFormatadoDividido((Integer) objeto[1]); helper.setEndereco((String) dadosEndereco[0]); helper.setMunicipio((String) dadosEndereco[1]); helper.setBairro((String) dadosEndereco[3]); helper.setCEP(Cep.formatarCep((String) dadosEndereco[4])); helper.setLocalidade((String) objeto[15]); // Obtemos a principal categoria do imovel Categoria categoria = this.getControladorImovel() .obterPrincipalCategoriaImovel((Integer) objeto[1]); helper.setCategoria(categoria.getDescricao()); // Obtemos a principal subcategoria do imovel ImovelSubcategoria subCategoria = this.getControladorImovel() .obterPrincipalSubcategoria(categoria.getId(), (Integer) objeto[1]); FiltroImovelSubCategoria filtro = new FiltroImovelSubCategoria(); filtro .adicionarCaminhoParaCarregamentoEntidade("comp_id.subcategoria"); filtro.adicionarParametro(new ParametroSimples( FiltroImovelSubCategoria.SUBCATEGORIA_ID, subCategoria .getComp_id().getSubcategoria().getId())); filtro.adicionarParametro(new ParametroSimples( FiltroImovelSubCategoria.IMOVEL_ID, imo.getId())); Collection colImovelSubCategoria = Fachada.getInstancia() .pesquisar(filtro, ImovelSubcategoria.class.getName()); subCategoria = (ImovelSubcategoria) Util .retonarObjetoDeColecao(colImovelSubCategoria); helper.setSubcategoria(subCategoria.getComp_id() .getSubcategoria().getDescricao()); // Obtemos a quantidade de economias do imovel helper.setEconomias((Short) objeto[7]); // Obtemos o perfil do imovel helper.setPerfilImovel((String) objeto[8]); // Obtemos a situa��o da ligacao de agua helper.setLigacaoAguaSituacao((String) objeto[9]); // Obtemos a situa��o da ligacao de esgoto helper.setLigacaoEsgotoSituacao((String) objeto[10]); // Obtemos o tipo do poco helper.setSituacaoPoco((String) objeto[11]); // Obtemos o nome abreviado da empresa helper.setDescricaoAbreviadaEmpresa((String) objeto[12]); // Obtemos o nome da empresa helper.setDescricaoEmpresa((String) objeto[13]); // Obtemos o CNPJ da empresa helper.setCNPJEmpresa((String) objeto[14]); // Obtemos o logradouro da empresa helper .setEnderecoEmpresa((objeto[16] != null ? ((String) objeto[16]) .trim() : "") + (objeto[19] != null ? ", " + ((String) objeto[19]).trim() + " " : "") + (objeto[17] != null ? ((String) objeto[17]) .trim() : "") + (objeto[18] != null ? ", " + ((String) objeto[18]).trim() : "") + (objeto[20] != null ? " - " + ((String) objeto[20]).trim() : "") + (objeto[21] != null ? " - CEP " + Cep.formatarCep((Integer) objeto[21]) : "")); // Obtemos o site helper.setSiteEmpresa((String) objeto[22]); // Obtemos O 0800 helper.setZeroOitossentosEmpresa((String) objeto[23]); // Obtemos a inscri��o estadual helper.setInscricaoEstadualEmpresa((String) objeto[24]); String area = ""; if (objeto[25] != null) { area = Util.formatarMoedaReal((BigDecimal) objeto[25]); } else { AreaConstruidaFaixa areaConstruidaFaixa = (AreaConstruidaFaixa) objeto[26]; if (areaConstruidaFaixa != null) { area = areaConstruidaFaixa.getFaixaCompleta(); } else { area = "0"; } } helper.setArea(area); if (objeto[27] != null) { helper.setNumeroHidrometro((String) objeto[27]); } else { helper.setNumeroHidrometro(""); } // Unidade Neg�cio helper.setUnidadeNegocio((String) objeto[28]); // Cliente Tipo if(objeto[31] != null){ // verifica se � cpf if(((Short) objeto[31]).compareTo(ConstantesSistema.SIM) == 0){ if(objeto[29] != null){ String cpf = Util.formatarCpf((String) objeto[29]) ; helper.setCpfCnpj( cpf ); } }else{ if(objeto[30] != null){ String cnpj = Util.formatarCnpj((String) objeto[30]); helper.setCpfCnpj( cnpj ); } } } // Endere�o Completo String enderecoCompleto = getControladorEndereco().pesquisarEnderecoFormatado(imovel.getId()); helper.setEnderecoCompleto(enderecoCompleto); } } SistemaParametro sistemaParametro = getControladorUtil() .pesquisarParametrosDoSistema(); Calendar dataFimVencimentoDebito = new GregorianCalendar(); dataFimVencimentoDebito.add(Calendar.DATE, -sistemaParametro .getNumeroDiasVencimentoDebitoGeracaoCertidaoNegativaDebitos()); // Pesquisamos se o imovel possue debitos ou n�o ObterDebitoImovelOuClienteHelper debitoGeral = Fachada.getInstancia() .obterDebitoImovelOuCliente(1, imo.getId() + "", null, null, "190001", "299901", Util.criarData(1, 1, 1900), dataFimVencimentoDebito.getTime(), 1, 1, 1, 1, 1, 1, 1, true); if (sistemaParametro.getIndicadorCertidaoNegativaEfeitoPositivo() == ConstantesSistema.NAO .shortValue()) { if (debitoGeral != null) { if ((debitoGeral.getColecaoContasValores() != null && !debitoGeral .getColecaoContasValores().isEmpty()) || (debitoGeral.getColecaoGuiasPagamentoValores() != null && !debitoGeral .getColecaoGuiasPagamentoValores().isEmpty())) { throw new ControladorException( "atencao.imovel_com_debitos_certidao"); } else { if (sistemaParametro .getIndicadorDebitoACobrarValidoCertidaoNegativa() .equals(ConstantesSistema.SIM) && (debitoGeral.getColecaoDebitoACobrar() != null && !debitoGeral .getColecaoDebitoACobrar().isEmpty())) { throw new ControladorException( "atencao.imovel_com_debitos_certidao"); } } } } // Verificamos se existe d�bito para o imovel selecionado if ((debitoGeral.getColecaoContasValores() != null && debitoGeral .getColecaoContasValores().size() > 0) || (debitoGeral.getColecaoCreditoARealizar() != null && debitoGeral .getColecaoCreditoARealizar().size() > 0) || (debitoGeral.getColecaoDebitoACobrar() != null && debitoGeral .getColecaoDebitoACobrar().size() > 0) || (debitoGeral.getColecaoDebitoCreditoParcelamentoHelper() != null && debitoGeral .getColecaoDebitoCreditoParcelamentoHelper().size() > 0) || (debitoGeral.getColecaoGuiasPagamentoValores() != null && debitoGeral .getColecaoGuiasPagamentoValores().size() > 0)) { Collection<RelatorioCertidaoNegativaItemBean> colItens = new ArrayList<RelatorioCertidaoNegativaItemBean>(); if (debitoGeral.getColecaoContasValores() != null && debitoGeral.getColecaoContasValores().size() > 0) { Iterator iteContas = debitoGeral.getColecaoContasValores() .iterator(); // Total das contas BigDecimal totalContas = new BigDecimal(0); // Faturas em aberto while (iteContas.hasNext()) { ContaValoresHelper contaHelper = (ContaValoresHelper) iteContas .next(); RelatorioCertidaoNegativaItemBean fatura = new RelatorioCertidaoNegativaItemBean( "Faturas", Util .formatarAnoMesParaMesAno(contaHelper .getConta().getReferencia()) + "-" + contaHelper.getConta() .getDigitoVerificadorConta(), Util .formatarAnoMesParaMesAno(contaHelper .getConta().getReferencia()), Util .formatarData(contaHelper.getConta() .getDataVencimentoConta()), Util .formataBigDecimal(contaHelper .getValorTotalConta(), 2, true), Util.formatarData(contaHelper.getConta() .getDataValidadeConta())); totalContas = totalContas.add(contaHelper .getValorTotalConta()); colItens.add(fatura); } // Incluimos o total RelatorioCertidaoNegativaItemBean fatura = new RelatorioCertidaoNegativaItemBean( "TOTAL:" + "", "", "", "", Util.formataBigDecimal( totalContas, 2, true), ""); colItens.add(fatura); } // Total dos servicos BigDecimal totalServicos = new BigDecimal(0); if (debitoGeral.getColecaoGuiasPagamentoValores() != null && debitoGeral.getColecaoGuiasPagamentoValores().size() > 0) { Iterator iteGuias = debitoGeral .getColecaoGuiasPagamentoValores().iterator(); // Guias de pagamento while (iteGuias.hasNext()) { GuiaPagamentoValoresHelper guiaHelper = (GuiaPagamentoValoresHelper) iteGuias .next(); RelatorioCertidaoNegativaItemBean guia = new RelatorioCertidaoNegativaItemBean( "Guias de Pagamento", guiaHelper.getGuiaPagamento() .getDebitoTipo().getDescricao(), Util .formatarAnoMesParaMesAno(guiaHelper .getGuiaPagamento() .getAnoMesReferenciaContabil()), Util.formatarData(guiaHelper.getGuiaPagamento() .getDataVencimento()), Util .formataBigDecimal(guiaHelper .getGuiaPagamento() .getValorDebito(), 2, true), (guiaHelper.getGuiaPagamento() .getNumeroPrestacaoTotal() - guiaHelper .getGuiaPagamento() .getNumeroPrestacaoDebito()) + ""); totalServicos = totalServicos.add(guiaHelper .getGuiaPagamento().getValorDebito()); colItens.add(guia); } } if (debitoGeral.getColecaoDebitoACobrar() != null && debitoGeral.getColecaoDebitoACobrar().size() > 0) { Iterator iteDebitos = debitoGeral.getColecaoDebitoACobrar() .iterator(); // Debitos while (iteDebitos.hasNext()) { DebitoACobrar debitoHelper = (DebitoACobrar) iteDebitos .next(); // alterado por Vivianne Sousa data:11/04/2008 // analista : Aryed RelatorioCertidaoNegativaItemBean debito = new RelatorioCertidaoNegativaItemBean( "Debitos a cobrar", debitoHelper.getDebitoTipo().getDescricao(), Util.formatarAnoMesParaMesAno(debitoHelper .getAnoMesReferenciaContabil()), debitoHelper.getNumeroPrestacaoCobradas() + "/" + debitoHelper .getNumeroPrestacaoDebitoMenosBonus(), Util.formataBigDecimal(debitoHelper .getValorTotalComBonus(), 2, true), (debitoHelper.getNumeroPrestacaoDebitoMenosBonus() - debitoHelper .getNumeroPrestacaoCobradas()) + ""); // RelatorioCertidaoNegativaItemBean debito = new // RelatorioCertidaoNegativaItemBean( // "Debitos a cobrar", // debitoHelper.getDebitoTipo().getDescricao(), // Util.formatarAnoMesParaMesAno( // debitoHelper.getAnoMesReferenciaContabil() ), // debitoHelper.getNumeroPrestacaoCobradas() + "/" + // debitoHelper.getNumeroPrestacaoDebito(), // Util.formataBigDecimal( // debitoHelper.getValorRestanteCobrado() , 2, true ), // ( debitoHelper.getNumeroPrestacaoDebito() - // debitoHelper.getNumeroPrestacaoCobradas() ) + "" ); totalServicos = totalServicos.add(debitoHelper .getValorTotalComBonus()); colItens.add(debito); } } if (debitoGeral.getColecaoCreditoARealizar() != null && debitoGeral.getColecaoCreditoARealizar().size() > 0) { Iterator iteCredito = debitoGeral.getColecaoCreditoARealizar() .iterator(); // Debitos while (iteCredito.hasNext()) { CreditoARealizar creditoHelper = (CreditoARealizar) iteCredito .next(); // alterado por Vivianne Sousa data:11/04/2008 // analista responsavel: Adriano RelatorioCertidaoNegativaItemBean credito = new RelatorioCertidaoNegativaItemBean( "Cr�dito a Realizar", creditoHelper.getCreditoTipo().getDescricao(), Util.formatarAnoMesParaMesAno(creditoHelper .getAnoMesReferenciaContabil()), creditoHelper.getNumeroPrestacaoRealizada() + "/" + creditoHelper .getNumeroPrestacaoCreditoMenosBonus(), Util.formataBigDecimal(creditoHelper .getValorTotalComBonus(), 2, true), (creditoHelper .getNumeroPrestacaoCreditoMenosBonus() - creditoHelper .getNumeroPrestacaoRealizada()) + ""); // RelatorioCertidaoNegativaItemBean credito = new // RelatorioCertidaoNegativaItemBean( // "Cr�dito a Realizar", // creditoHelper.getCreditoTipo().getDescricao(), // Util.formatarAnoMesParaMesAno( // creditoHelper.getAnoMesReferenciaContabil() ), // creditoHelper.getNumeroPrestacaoRealizada() + "/" + // creditoHelper.getNumeroPrestacaoCredito(), // Util.formataBigDecimal( creditoHelper.getValorTotal() , // 2, true ), // ( creditoHelper.getNumeroPrestacaoCredito() - // creditoHelper.getNumeroPrestacaoRealizada() ) + "" ); totalServicos = totalServicos.add(creditoHelper .getValorTotalComBonus()); colItens.add(credito); } } // Incluimos o total RelatorioCertidaoNegativaItemBean servicos = new RelatorioCertidaoNegativaItemBean( "TOTAL:" + "", "", "", "", Util.formataBigDecimal( totalServicos, 2, true), ""); colItens.add(servicos); helper.setItens(colItens); } // verificar se tem parcelamento no imovel try { Collection colecaoParcelamentoDoImovel = this .getControladorCobranca() .pesquisarParcelamentosSituacaoNormal(imo.getId()); if (colecaoParcelamentoDoImovel.size() > 0 && !colecaoParcelamentoDoImovel.equals("")) { helper.setImovelComParcelamento(true); } else { helper.setImovelComParcelamento(false); } } catch (ControladorException e) { throw new ControladorException("erro.sistema", e); } retorno.add(helper); return retorno; } /** * [UC0498] Efetuar Religa��o de �gua com Instala��o de hidr�metro. * * Permite efetuar religa��o de �gua com Instala��o de Hidr�metro ou pelo * menu ou pela funcionalidade encerrar a Execu��o da ordem de servi�o. * * @author S�vio Luiz * @date 29/01/2008 * * @param integracaoComercialHelper * @throws ControladorException */ public void efetuarReligacaoAguaComInstalacaoHidrometro( IntegracaoComercialHelper integracaoComercialHelper, Usuario usuario) throws ControladorException { /* * [UC0107] Registrar Transa��o */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_EFETUAR_RELIGACAO_AGUA_COM_INSTALACAO_HIDROMETRO, new UsuarioAcaoUsuarioHelper(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao .setId(Operacao.OPERACAO_EFETUAR_RELIGACAO_AGUA_COM_INSTALACAO_HIDROMETRO); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); LigacaoAgua ligacaoAgua = integracaoComercialHelper.getLigacaoAgua(); Imovel imovel = integracaoComercialHelper.getImovel(); OrdemServico ordemServico = integracaoComercialHelper.getOrdemServico(); String qtdParcelas = integracaoComercialHelper.getQtdParcelas(); this.getControladorMicromedicao().validarImovelEmCampo(imovel.getId()); if (ligacaoAgua != null && imovel != null) { Integer id = null; // [SB0003] Gerar Hist�rico de Instala��o do Hidrometro HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = integracaoComercialHelper .getHidrometroInstalacaoHistorico(); validacaoInstalacaoHidrometro(hidrometroInstalacaoHistorico .getHidrometro().getNumero()); hidrometroInstalacaoHistorico.setOperacaoEfetuada(operacaoEfetuada); hidrometroInstalacaoHistorico.adicionarUsuario(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao .registrarOperacao(hidrometroInstalacaoHistorico); id = (Integer) getControladorUtil().inserir( hidrometroInstalacaoHistorico); try { // [SB004] Atualizar Hidr�metro Integer situacaoHidrometro = HidrometroSituacao.INSTALADO; repositorioAtendimentoPublico.atualizarSituacaoHidrometro( hidrometroInstalacaoHistorico.getHidrometro().getId(), situacaoHidrometro); hidrometroInstalacaoHistorico.setId(id); hidrometroInstalacaoHistorico.setLigacaoAgua(ligacaoAgua); // [SB0001] Atualizar Im�vel/Liga��o de �gua Date dataCorrente = new Date(); ligacaoAgua.setUltimaAlteracao(dataCorrente); // [FS0007] - Atualiza��o realizada por outrio usu�rio FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples( FiltroLigacaoAgua.ID, ligacaoAgua.getId())); Collection colecaoLigacaoAguaBase = getControladorUtil() .pesquisar(filtroLigacaoAgua, LigacaoAgua.class.getName()); if (colecaoLigacaoAguaBase == null || colecaoLigacaoAguaBase.isEmpty()) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizacao.timestamp"); } else { LigacaoAgua ligacaoAguaBase = (LigacaoAgua) Util .retonarObjetoDeColecao(colecaoLigacaoAguaBase); if (ligacaoAguaBase.getUltimaAlteracao().after( ligacaoAgua.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizacao.timestamp"); } } FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples( FiltroImovel.ID, ligacaoAgua.getId())); Collection colecaoImovelBase = getControladorUtil().pesquisar( filtroImovel, Imovel.class.getName()); if (colecaoImovelBase == null || colecaoImovelBase.isEmpty()) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizacao.timestamp"); } else { Imovel imovelBase = (Imovel) Util .retonarObjetoDeColecao(colecaoImovelBase); if (imovelBase.getUltimaAlteracao().after( ligacaoAgua.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException( "atencao.atualizacao.timestamp"); } } // regitrando operacao ligacaoAgua.setOperacaoEfetuada(operacaoEfetuada); ligacaoAgua.adicionarUsuario(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(ligacaoAgua); getControladorUtil().atualizar(ligacaoAgua); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); ligacaoAguaSituacao.setId(LigacaoAguaSituacao.LIGADO); getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoAgua(imovel, ligacaoAguaSituacao); if (imovel.getLigacaoEsgotoSituacao() != null && imovel.getLigacaoEsgotoSituacao().getId().intValue() == LigacaoEsgotoSituacao.LIG_FORA_DE_USO .intValue()) { LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao(); ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO); imovel.setUltimaAlteracao(new Date()); getControladorImovel() .atualizarImovelExecucaoOrdemServicoLigacaoEsgoto( imovel, ligacaoEsgotoSituacao); } } // [SB0002] Atualizar Ordem de Servi�o ordemServico.setOperacaoEfetuada(operacaoEfetuada); ordemServico.adicionarUsuario(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(ordemServico); if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { this.getControladorOrdemServico() .verificarOrdemServicoControleConcorrencia(ordemServico); getControladorOrdemServico().atualizaOSGeral(ordemServico); } if (ordemServico.getServicoTipo().getDebitoTipo() != null && ordemServico.getServicoNaoCobrancaMotivo() == null) { getControladorOrdemServico().gerarDebitoOrdemServico( ordemServico.getId(), ordemServico.getServicoTipo().getDebitoTipo().getId(), ordemServico.getValorAtual(), new Integer(qtdParcelas), ordemServico.getPercentualCobranca().toString(), integracaoComercialHelper.getUsuarioLogado()); } } /** * [UC0747] Efetuar Religa��o de �gua com Instala��o de hidr�metro. * * Permite validar o efetuar religa��o de �gua com Instala��o de hidr�metro * Exibir ou pelo menu ou pela funcionalidade encerrar a Execu��o da ordem * de servi�o. * * [FS0002] Verificar Situa��o do Imovel. [FS0003] Validar Situa��o de �gua * * @author S�vio Luiz * @date 29/01/2008 * * * @param imovel * @throws ControladorException */ public void validarReligacaoAguaComInstalacaoHidrometroExibir( OrdemServico ordem, boolean veioEncerrarOS) throws ControladorException { /* * Caso o SERVICO_TIPO da ordem de servi�o recebida esteja associado a * opera��o EFETUAR LIGACAO AGUA COM INSTALACAO HIDROMETRO, n�o ser� * necess�rio realizar as valida��es abaixo. * * Autor: Raphael Rossiter Data: 26/04/2007 * */ Integer idOperacao = this.getControladorOrdemServico() .pesquisarServicoTipoOperacao(ordem.getServicoTipo().getId()); if (idOperacao == null || idOperacao.intValue() != Operacao.OPERACAO_EFETUAR_RELIGACAO_AGUA_COM_INSTALACAO_HIDROMETRO) { // [FS0001] Validar Ordem de Servico // Caso 2 if (ordem.getServicoTipo().getId().intValue() != ServicoTipo.TIPO_RELIGACAO_AGUA_COM_INSTALACAO_HIDROMETRO) { throw new ControladorException( "atencao.servico_associado_religacao_agua_instalacao_hidrometro_invalida"); } } /* * Valida��es j� contidas no m�todo anteriormente Autor: Raphael * Rossiter Data: 26/04/2007 * * =============================================================================== */ // Caso 3 this.getControladorOrdemServico().validaOrdemServico(ordem, veioEncerrarOS); // Caso 4 if (ordem.getRegistroAtendimento().getImovel() == null) { throw new ControladorException( "atencao.ordem_servico_ra_imovel_invalida", null, "" + ordem.getRegistroAtendimento().getId()); } Imovel imovel = ordem.getRegistroAtendimento().getImovel(); // [FS0003] Validar Situa��o de �gua do Im�vel. if (imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.CORTADO .intValue()) { throw new ControladorException( "atencao.situacao_validar_religacao_agua_invalida_exibir", null, imovel.getLigacaoAguaSituacao().getDescricao()); } // [FS0002] Verificar Situa��o do Imovel if (imovel.getIndicadorExclusao() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) { throw new ControladorException( "atencao.situacao_imovel_indicador_exclusao", null, imovel .getId() + ""); } /* * =================================================================================== */ } /** * [UC0778] Gerar Relat�rio Gest�o de Servi�os UPA<br> * [UC0497] Gerar Relat�rio Resumo de Solicita��es de RA por Unidade * <p> * Retorna todas as unidades filhas (direta ou indiretamente) da Unidade * Superior passada como par�metro. * * @see gcom.fachada.Fachada#pesquisarUnidadesFilhas(int) * * @author Victor Cisneiros * @date 09/07/2008 * * @param idUnidadeSuperior * @throws ControladorException */ public UnidadesFilhasHelper pesquisarUnidadesFilhas(int idUnidadeSuperior) throws ControladorException { // hash id da UnidadeOrganizacional -> unidade LinkedHashMap<Integer, UnidadeOrganizacional> unidades = new LinkedHashMap<Integer, UnidadeOrganizacional>(); // hash id da UnidadeOrganizacional -> colecao de unidades filhas Map<Integer, Collection<UnidadeOrganizacional>> unidadeTemFilhos = new LinkedHashMap<Integer, Collection<UnidadeOrganizacional>>(); FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, idUnidadeSuperior)); Collection pesquisa = Fachada.getInstancia().pesquisar( filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (pesquisa == null || pesquisa.isEmpty()) { throw new ControladorException("atencao.pesquisa_inexistente", null, "Unidade Superior"); } UnidadeOrganizacional unidadeSuperior = (UnidadeOrganizacional) Util .retonarObjetoDeColecao(pesquisa); // adicionar a unidade superior encontrada na lista de restantes List<Integer> restantes = new ArrayList<Integer>(); restantes.add(unidadeSuperior.getId()); formarArvoreUnidades(unidadeSuperior, restantes, unidades, unidadeTemFilhos); return new UnidadesFilhasHelper(unidades, unidadeTemFilhos); } /** * Metodo recursivo usado para encontrar todas as unidades filhas (direta ou * indireta) de uma unidade superior. * <p> * * @see #pesquisarUnidadesFilhas(int) */ private void formarArvoreUnidades( UnidadeOrganizacional unidadeSuperiorAtual, List<Integer> restantes, Map<Integer, UnidadeOrganizacional> unidades, Map<Integer, Collection<UnidadeOrganizacional>> unidadeTemFilhos) { Fachada fachada = Fachada.getInstancia(); if (!restantes.isEmpty()) { Integer idAtual = restantes.remove(restantes.size() - 1); FiltroUnidadeOrganizacional filtro = new FiltroUnidadeOrganizacional(); filtro.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID_UNIDADE_SUPERIOR, idAtual)); Collection<UnidadeOrganizacional> pesquisa = fachada.pesquisar( filtro, UnidadeOrganizacional.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { for (UnidadeOrganizacional unidade : pesquisa) { restantes.add(unidade.getId()); formarArvoreUnidades(unidade, restantes, unidades, unidadeTemFilhos); } unidades .put(unidadeSuperiorAtual.getId(), unidadeSuperiorAtual); unidadeTemFilhos.put(unidadeSuperiorAtual.getId(), pesquisa); } else { unidades .put(unidadeSuperiorAtual.getId(), unidadeSuperiorAtual); unidadeTemFilhos.put(unidadeSuperiorAtual.getId(), null); } } } public void efetuarLigacaoAguaComInstalacaoHidrometroSemRA( Integer idImovel, LigacaoAgua ligacaoAgua, HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico) throws ControladorException { this.getControladorMicromedicao().validarImovelEmCampo(idImovel); try { if (hidrometroInstalacaoHistorico != null) { //Altera��o feita por S�vio Luiz //Data: 25/05/2011 FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples( FiltroLigacaoAgua.ID, idImovel)); Collection colecaoLigacaoAguaBase = getControladorUtil().pesquisar( filtroLigacaoAgua, LigacaoAgua.class.getName()); if (!colecaoLigacaoAguaBase.isEmpty()) { getControladorUtil().atualizar(ligacaoAgua); }else{ getControladorUtil().inserir(ligacaoAgua); } this.atualizarImovelLigacaoAguaInstalacaoHidrometroSemRA( idImovel, null); hidrometroInstalacaoHistorico.setLigacaoAgua(ligacaoAgua); Integer idHidrometroInstalacaoHistorico = (Integer) getControladorUtil() .inserir(hidrometroInstalacaoHistorico); hidrometroInstalacaoHistorico .setId(idHidrometroInstalacaoHistorico); ligacaoAgua .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico); getControladorUtil().atualizar(ligacaoAgua); this.atualizarImovelLigacaoAguaInstalacaoHidrometroSemRA(null, hidrometroInstalacaoHistorico.getHidrometro().getId()); } else { getControladorUtil().inserir(ligacaoAgua); this.atualizarImovelLigacaoAguaInstalacaoHidrometroSemRA( idImovel, null); } } catch (Exception e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * Pesquisa os dados necess�rios para a gera��o do relat�rio * * [UC0864] Gerar Certid�o Negativa por Cliente * * @return * * @throws ErroRepositorioException */ public Collection<RelatorioCertidaoNegativaClienteBean> pesquisarRelatorioCertidaoNegativaCliente( Collection<Integer> idsClientes, Cliente clienteInformado) throws ControladorException { Collection<RelatorioCertidaoNegativaClienteBean> retorno = new ArrayList<RelatorioCertidaoNegativaClienteBean>(); try { Collection<Object[]> colecaoDadosRelatorioCertidaoNegativaCliente = this.repositorioAtendimentoPublico .pesquisarRelatorioCertidaoNegativaCliente(idsClientes); for (Object[] dadosRelatorio : colecaoDadosRelatorioCertidaoNegativaCliente) { RelatorioCertidaoNegativaClienteBean relatorioCertidaoNegativaClienteBean = new RelatorioCertidaoNegativaClienteBean(); String cliente = clienteInformado.getId() + " - " + clienteInformado.getNome(); relatorioCertidaoNegativaClienteBean.setCliente(cliente); // Respons�vel if (dadosRelatorio[0] != null) { relatorioCertidaoNegativaClienteBean .setResponsavel(((Integer) dadosRelatorio[0]) .toString()); } // Cliente Tipo if(dadosRelatorio[5] != null){ // verifica se � cpf if(((Short) dadosRelatorio[5]).compareTo(ConstantesSistema.SIM) == 0){ if(dadosRelatorio[3] != null){ String cpf = Util.formatarCpf((String) dadosRelatorio[3]) ; relatorioCertidaoNegativaClienteBean.setCpfCnpj( cpf ); } }else{ if(dadosRelatorio[4] != null){ String cnpj = Util.formatarCnpj((String) dadosRelatorio[4]); relatorioCertidaoNegativaClienteBean.setCpfCnpj( cnpj ); } } } // Id do Im�vel e Endere�o if (dadosRelatorio[1] != null) { Integer idImovel = (Integer) dadosRelatorio[1]; relatorioCertidaoNegativaClienteBean.setIdImovel(Util .retornaMatriculaImovelFormatada(idImovel)); // Nome do Usu�rio Cliente clienteUsuario = getControladorImovel() .pesquisarClienteUsuarioImovel(idImovel); relatorioCertidaoNegativaClienteBean .setNomeUsuario(clienteUsuario.getNome()); // Endere�o String endereco = getControladorEndereco() .obterEnderecoAbreviadoImovel(idImovel); relatorioCertidaoNegativaClienteBean.setEndereco(endereco); // Endere�o Completo String enderecoCompleto = getControladorEndereco().pesquisarEnderecoFormatado(idImovel); relatorioCertidaoNegativaClienteBean.setEnderecoCompleto(enderecoCompleto); } // Situa��o da Liga��o de �gua if (dadosRelatorio[2] != null) { relatorioCertidaoNegativaClienteBean .setSituacaoLigacaoAgua((String) dadosRelatorio[2]); } retorno.add(relatorioCertidaoNegativaClienteBean); } } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } return retorno; } /** * [UC0541] Emitir 2a Via Conta Internet * * [FS0003] - Verificar se documento � v�lido * * [FS0004] - Cliente n�o associado ao documento * * @author Raphael Rossiter * @date 21/10/2008 * * @param idImovel * @param cpf * @param cnpj * @throws ControladorException */ public void verificarDocumentoValidoEmissaoInternet(Integer idImovel, String cpf, String cnpj) throws ControladorException { SistemaParametro sistemaParametro = this.getControladorUtil() .pesquisarParametrosDoSistema(); /* * O sistema solicita o documento v�lido para emiss�o (CPF/CNPJ), caso * esta informa��o seja obrigat�ria para a empresa solicitante. */ if (sistemaParametro.getIndicadorDocumentoValido().equals( ConstantesSistema.SIM)) { /* * O sistema dever� verificar se algum cliente do im�vel selecionado * tenha o documento informado. */ Collection colecaoCliente = null; if (cpf != null && !cpf.equals("")) { try { colecaoCliente = this.repositorioAtendimentoPublico .pesquisarClienteAssociadoImovelComCPF(idImovel, cpf); } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } } else if (cnpj != null && !cnpj.equals("")) { try { colecaoCliente = this.repositorioAtendimentoPublico .pesquisarClienteAssociadoImovelComCNPJ(idImovel, cnpj); } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } } if (colecaoCliente == null || colecaoCliente.isEmpty()) { // [FS0004] - Cliente n�o associado ao documento throw new ControladorException( "atencao.cliente_nao_associado_documento", null, sistemaParametro.getNomeAbreviadoEmpresa()); } } } /** * [UC0482] Emitir 2a Via Conta * * [FS0002] - Cliente sem documento * * @author Raphael Rossiter * @date 24/10/2008 * * @param idImovel * @param usuario * @throws ControladorException */ public void verificarClienteSemDocumento(Integer idImovel, Usuario usuario) throws ControladorException { SistemaParametro sistemaParametro = this.getControladorUtil() .pesquisarParametrosDoSistema(); /* * O sistema solicita o documento v�lido para emiss�o (CPF/CNPJ), caso * esta informa��o seja obrigat�ria para a empresa solicitante. */ if (sistemaParametro.getIndicadorDocumentoValido().equals( ConstantesSistema.SIM)) { /* * Verificando se o usu�rio logado possu� permiss�o especial para * emitir 2 via de conta sem o documento (CPF ou CNPJ)informado. */ boolean temPermissaoEmitir2ViaSemDocumentoValido = false; if (usuario != null) { temPermissaoEmitir2ViaSemDocumentoValido = this .getControladorPermissaoEspecial() .verificarPermissaoEmitir2ViaSemDocumentoValido(usuario); } if (!temPermissaoEmitir2ViaSemDocumentoValido) { // O sistema verifica se algum dos clientes associados ao im�vel // tem documento v�lido. Collection colecaoCliente = null; try { colecaoCliente = this.repositorioAtendimentoPublico .pesquisarClienteAssociadoImovelComDocumentoInformado(idImovel); } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } if (colecaoCliente == null || colecaoCliente.isEmpty()) { // [FS0002] - Cliente sem documento throw new ControladorException( "atencao.cliente_documento_nao_informado"); } } } } /** * [UC0861] Inserir Perfil da ligacao de esgoto * * @author Arthur Carvalho * @date 16/10/2008 * * @return Integer * @throws ControladorException */ public Integer inserirPerfilLigacaoEsgoto(LigacaoEsgotoPerfil ligacaoEsgotoPerfil, Usuario usuarioLogado) throws ControladorException { Integer retorno = null; if (ligacaoEsgotoPerfil.getDescricao() != null && ligacaoEsgotoPerfil.getDescricao().equalsIgnoreCase("")) { throw new ControladorException("atencao.required", null, "Descri��o"); } FiltroLigacaoEsgotoPerfil filtroLigacaoEsgotoPerfil = new FiltroLigacaoEsgotoPerfil(); filtroLigacaoEsgotoPerfil.adicionarParametro(new ParametroSimples( FiltroEmpresa.DESCRICAO, ligacaoEsgotoPerfil.getDescricao())); // Pesquisa se existe algum perfil da ligacao de esgoto com a descricao // informada Collection colecaoLigacaoEsgotoPerfilDescricao = new ArrayList(); colecaoLigacaoEsgotoPerfilDescricao = getControladorUtil().pesquisar( filtroLigacaoEsgotoPerfil, LigacaoEsgotoPerfil.class.getName()); if (colecaoLigacaoEsgotoPerfilDescricao != null && !colecaoLigacaoEsgotoPerfilDescricao.isEmpty()) { throw new ControladorException( "atencao.ligacao_esgoto_perfil_ja_cadastrada", null, ligacaoEsgotoPerfil.getDescricao()); } // Ultima Alteracao ligacaoEsgotoPerfil.setUltimaAlteracao(new Date()); // ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_INSERIR_LIGACAO_ESGOTO_PERFIL, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_INSERIR_LIGACAO_ESGOTO_PERFIL); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); ligacaoEsgotoPerfil.setOperacaoEfetuada(operacaoEfetuada); ligacaoEsgotoPerfil.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(ligacaoEsgotoPerfil); // ------------ REGISTRAR TRANSA��O ---------------- retorno = (Integer) getControladorUtil().inserir(ligacaoEsgotoPerfil); return retorno; } /** * [UC0861] Manter Perfil da Ligacao de Esgoto * * * @author Arthur Carvalho * @date 20/10/2008 * * * @throws ControladorException */ public void atualizarPerfilLigacaoEsgoto( LigacaoEsgotoPerfil ligacaoEsgotoPerfil, Usuario usuarioLogado) throws ControladorException { if (ligacaoEsgotoPerfil.getDescricao() != null && ligacaoEsgotoPerfil.getDescricao().equalsIgnoreCase("")) { throw new ControladorException("atencao.required", null, "Descri��o"); } if (ligacaoEsgotoPerfil.getIndicadorUso() != null && ligacaoEsgotoPerfil.getIndicadorUso().toString() .equalsIgnoreCase("")) { throw new ControladorException("atencao.required", null, "Indicador de Uso"); } if (ligacaoEsgotoPerfil.getIndicadorPrincipal() != null && ligacaoEsgotoPerfil.getIndicadorPrincipal().toString() .equalsIgnoreCase("")) { throw new ControladorException("atencao.required", null, "Indicador Principal"); } FiltroLigacaoEsgotoPerfil filtroLigacaoEsgotoPerfil = new FiltroLigacaoEsgotoPerfil(); filtroLigacaoEsgotoPerfil.adicionarParametro(new ParametroSimples( FiltroLigacaoEsgotoPerfil.DESCRICAO, ligacaoEsgotoPerfil .getDescricao())); // Pesquisa se existe alguma empresa com a descricao informada Collection colecaoLigacaoEsgotoPerfilDescricao = new ArrayList(); colecaoLigacaoEsgotoPerfilDescricao = getControladorUtil().pesquisar( filtroLigacaoEsgotoPerfil, LigacaoEsgotoPerfil.class.getName()); if (colecaoLigacaoEsgotoPerfilDescricao != null && !colecaoLigacaoEsgotoPerfilDescricao.isEmpty()) { LigacaoEsgotoPerfil ligacaoEsgotoPerfilBase = (LigacaoEsgotoPerfil) colecaoLigacaoEsgotoPerfilDescricao .iterator().next(); if (ligacaoEsgotoPerfil.getId().intValue() != ligacaoEsgotoPerfilBase .getId().intValue()) { throw new ControladorException( "atencao.ligacao_esgoto_perfil_ja_cadastrada", null, ligacaoEsgotoPerfil.getDescricao()); } } // Ultima Alteracao ligacaoEsgotoPerfil.setUltimaAlteracao(new Date()); // ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_ATUALIZAR_LIGACAO_ESGOTO_PERFIL, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_ATUALIZAR_LIGACAO_ESGOTO_PERFIL); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); ligacaoEsgotoPerfil.setOperacaoEfetuada(operacaoEfetuada); ligacaoEsgotoPerfil.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(ligacaoEsgotoPerfil); // ------------ REGISTRAR TRANSA��O ---------------- } /** * [UC0150] Retificar Conta * * @author Vivianne Sousa * @date 26/11/2008 */ public BigDecimal obterPercentualAguaConsumidaColetadaImovel( Integer idImovel) throws ControladorException { try { return repositorioAtendimentoPublico .obterPercentualAguaConsumidaColetadaImovel(idImovel); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } } /** * [UC0898] Atualizar Autos de Infra��o com prazo de Recurso Vencido * * @author S�vio Luiz * @date 08/05/2009 */ public void atualizarAutosInfracaoComPrazoRecursoVencido( SistemaParametro sistemaParametro, Integer idFuncionalidadeIniciada) throws ControladorException { int idUnidadeIniciada = 0; idUnidadeIniciada = getControladorBatch() .iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada, UnidadeProcessamento.FUNCIONALIDADE, 0); try { Date prazoEntregaRecursoVencido = Util.subtrairNumeroDiasDeUmaData( new Date(), sistemaParametro .getNumeroDiasPrazoRecursoAutoInfracao()); Collection<AutosInfracao> colecaoAutosInfracao = repositorioAtendimentoPublico .pesquisarAutoInfracaoRecursoVencido( AutoInfracaoSituacao.AUTO_EM_PRAZO_DE_RECURSO, prazoEntregaRecursoVencido); Collection<Integer> idsAutosInfracao = new ArrayList(); if (colecaoAutosInfracao != null && !colecaoAutosInfracao.isEmpty()) { for (AutosInfracao autosInfracao : colecaoAutosInfracao) { // [SB0002] - Gerar D�bito a Cobrar gerarDebitoACobrarAutoInfracao(autosInfracao, sistemaParametro); idsAutosInfracao.add(autosInfracao.getId()); } } // [SB0001] - Atualizar Autos de Infra��o if (idsAutosInfracao != null && !idsAutosInfracao.isEmpty()) { repositorioAtendimentoPublico.atualizarAutosInfracao( idsAutosInfracao, AutoInfracaoSituacao.AUTO_COM_PRAZO_DE_RECURSO_VENCIDO); } getControladorBatch().encerrarUnidadeProcessamentoBatch(null, idUnidadeIniciada, false); } catch (Exception ex) { getControladorBatch().encerrarUnidadeProcessamentoBatch(ex, idUnidadeIniciada, true); ex.printStackTrace(); throw new EJBException(ex); } } /** * [UC0898] Atualizar Autos de Infra��o com prazo de Recurso Vencido * * [SB0002] - Gerar D�bito a Cobrar * * @author S�vio Luiz * @date 08/05/2009 */ public Short gerarDebitoACobrarAutoInfracao(AutosInfracao autosInfracao, SistemaParametro sistemaParametro) throws ControladorException { try { Short gerouDebitoACobrar = 2; Integer[] consumos = calcularConsumoImovelAutosInfracao( autosInfracao.getImovel().getId(), sistemaParametro); Collection<FiscalizacaoSituacaoServicoACobrar> collFiscalizacaoSituacaoSAC = repositorioAtendimentoPublico .pesquisarFiscalizacaoSituacaoServicoACobrar(autosInfracao .getFiscalizacaoSituacao().getId()); if (collFiscalizacaoSituacaoSAC != null && !collFiscalizacaoSituacaoSAC.isEmpty()) { for (FiscalizacaoSituacaoServicoACobrar fssc : collFiscalizacaoSituacaoSAC) { DebitoACobrar debitoACobrar = null; // c�digo do consumo = 7 if (fssc .getConsumoCalculo() .equals( FiscalizacaoSituacaoServicoACobrar.CONSUMO_CALCULO_SETE)) { // indicador de atualiza��o do auto igual a ativo if (fssc.getFiscalizacaoSituacao() != null && fssc .getFiscalizacaoSituacao() .getIndicadorAtualizacaoAutosInfracao() .equals( ConstantesSistema.INDICADOR_USO_ATIVO)) { BigDecimal valorDebito = new BigDecimal("0.00"); if (fssc.getDebitoTipo().getValorSugerido() != null) { valorDebito = fssc.getDebitoTipo() .getValorSugerido(); } // [SB0004] - Calcular/Inserir Valor debitoACobrar = gerarDebitoACobrarAutoInfracao( fssc, autosInfracao, valorDebito); } } // c�digo do consumo = 8 if (fssc .getConsumoCalculo() .equals( FiscalizacaoSituacaoServicoACobrar.CONSUMO_CALCULO_OITO)) { // indicador de atualiza��o do auto igual a ativo if (fssc.getFiscalizacaoSituacao() != null && fssc .getFiscalizacaoSituacao() .getIndicadorAtualizacaoAutosInfracao() .equals( ConstantesSistema.INDICADOR_USO_ATIVO)) { BigDecimal valorAcumulado = obterValorAcumuladoNaoCobrado( fssc, autosInfracao, consumos[2], sistemaParametro); // [SB0004] - Calcular/Inserir Valor debitoACobrar = gerarDebitoACobrarAutoInfracao( fssc, autosInfracao, valorAcumulado); } } // c�digo do consumo = 9 if (fssc .getConsumoCalculo() .equals( FiscalizacaoSituacaoServicoACobrar.CONSUMO_CALCULO_NOVE)) { // indicador de atualiza��o do auto igual a ativo if (fssc.getFiscalizacaoSituacao() != null && fssc .getFiscalizacaoSituacao() .getIndicadorAtualizacaoAutosInfracao() .equals( ConstantesSistema.INDICADOR_USO_ATIVO)) { int consumoCobradoMes = 0; if (consumos[0] != null && consumos[0].intValue() >= consumos[2] .intValue()) { consumoCobradoMes = consumos[0]; } else { consumoCobradoMes = consumos[2]; } // LigacaoAguaSituacao do Im�vel Integer idLigacaoAguaSituacaoImovel = getControladorImovel() .pesquisarIdLigacaoAguaSituacao( autosInfracao.getImovel().getId()); // LigacaoEsgotoSituacao do Im�vel /* * Integer idLigacaoEsgotoSituacaoImovel = * getControladorImovel() * .pesquisarIdLigacaoEsgotoSituacao(autosInfracao.getImovel().getId()); */ Integer idLigacaoEsgotoSituacaoImovel = null; // [SB0003 - Calcular Valor de �gua e/ou Esgoto] BigDecimal valorEstimado = getControladorOrdemServico() .calcularValorAguaEsgoto( consumoCobradoMes, sistemaParametro, autosInfracao.getImovel().getId(), fssc.getFiscalizacaoSituacao() .getId(), idLigacaoAguaSituacaoImovel, idLigacaoEsgotoSituacaoImovel); // [SB0004] - Calcular/Inserir Valor debitoACobrar = gerarDebitoACobrarAutoInfracao( fssc, autosInfracao, valorEstimado); } } // [SB0005] - Vincular D�bitos a Cobrar ao Auto de Infra��o if (debitoACobrar != null) { AutosInfracaoDebitoACobrar autosInfracaoDebitoACobrar = new AutosInfracaoDebitoACobrar(); autosInfracaoDebitoACobrar.setAutosInfracao(autosInfracao); DebitoACobrarGeral debitoACobrarGeral = new DebitoACobrarGeral(); debitoACobrarGeral.setDebitoACobrar(debitoACobrar); debitoACobrarGeral.setId(debitoACobrar.getId()); autosInfracaoDebitoACobrar.setDebitoACobrarGeral(debitoACobrarGeral); autosInfracaoDebitoACobrar.setUltimaAlteracao(new Date()); autosInfracaoDebitoACobrar.setIndicadorMultaInfracao(fssc.getIndicadorMultaInfracao()); getControladorUtil().inserir(autosInfracaoDebitoACobrar); //2. O sistema atualiza a indica��o de gera��o de d�bito para a situa��o de fiscaliza��o getControladorOrdemServico().atualizarIndicadorDebitoOS( new Integer(1), autosInfracao.getFiscalizacaoSituacao().getId(), autosInfracao.getOrdemServico().getId()); gerouDebitoACobrar = 1; } } } return gerouDebitoACobrar; } catch (Exception ex) { ex.printStackTrace(); throw new EJBException(ex); } } /** * [UC0896] Manter Autos de Infra��o * * [SB0007] - Calcular Consumo para o Im�vel * * @author Rafael Corr�a * @date 17/06/2009 */ private Integer[] calcularConsumoImovelAutosInfracao(Integer idImovel, SistemaParametro sistemaParametro) throws ControladorException { Integer[] consumos = new Integer[3]; FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples( FiltroLigacaoAgua.ID, idImovel)); Collection colecaoLigacaoAgua = getControladorUtil().pesquisar( filtroLigacaoAgua, LigacaoAgua.class.getName()); if (colecaoLigacaoAgua != null && !colecaoLigacaoAgua.isEmpty()) { LigacaoAgua ligacaoAgua = (LigacaoAgua) Util .retonarObjetoDeColecao(colecaoLigacaoAgua); if (ligacaoAgua.getHidrometroInstalacaoHistorico() != null) { Integer consumoMedio = getControladorMicromedicao() .obterConsumoMedioEmConsumoHistorico(idImovel, LigacaoTipo.LIGACAO_AGUA); consumos[0] = consumoMedio; Integer maiorConsumo = getControladorMicromedicao() .pesquisarMaiorConsumoFaturadoQuantidadeMeses( idImovel, LigacaoTipo.LIGACAO_AGUA, sistemaParametro .getNumeroMesesMaximoCalculoMedia()); consumos[1] = maiorConsumo; } } Integer consumoNaoMedido = getControladorMicromedicao() .obterConsumoNaoMedidoSemTarifa(idImovel, sistemaParametro.getAnoMesFaturamento()); consumos[2] = consumoNaoMedido; return consumos; } /** * [UC0898] Atualizar Autos de Infra��o com prazo de Recurso Vencido * * [SB0004] - Calcular/Inserir Valor * * @author S�vio Luiz * @date 08/05/2009 */ public DebitoACobrar gerarDebitoACobrarAutoInfracao( FiscalizacaoSituacaoServicoACobrar fssc, AutosInfracao autosInfracao, BigDecimal valorDebito) throws ControladorException { DebitoACobrar debitoACobrar = null; if (valorDebito != null && valorDebito.compareTo(new BigDecimal("0.00")) > 0) { BigDecimal valorDebitoNovo = new BigDecimal("0.00"); if (fssc.getNumeroVezesServicoCalculadoValor() != 0) { valorDebitoNovo = valorDebito.multiply(new BigDecimal(fssc .getNumeroVezesServicoCalculadoValor())); } else { valorDebitoNovo = valorDebito; } // id da ordem de servi�o Integer idOrdemServico = null; if (autosInfracao.getOrdemServico() != null) { idOrdemServico = autosInfracao.getOrdemServico().getId(); } // id do tipo do d�bito Integer idDebitoTipo = null; if (fssc.getDebitoTipo() != null) { idDebitoTipo = fssc.getDebitoTipo().getId(); } Usuario usuario = null; if (autosInfracao.getUsuario() != null) { usuario = autosInfracao.getUsuario(); } else { usuario = Usuario.USUARIO_BATCH; } int qtdParcelas = 1; if (autosInfracao.getNumeroParcelasDebito() != null) { qtdParcelas = autosInfracao.getNumeroParcelasDebito(); } // [UC0479] - Gerar D�bito Ordem de Servi�o debitoACobrar = getControladorOrdemServico() .gerarDebitoOrdemServico(idOrdemServico, idDebitoTipo, valorDebitoNovo, qtdParcelas, "100", usuario); } return debitoACobrar; } private BigDecimal obterValorAcumuladoNaoCobrado( FiscalizacaoSituacaoServicoACobrar fssc, AutosInfracao autosInfracao, Integer consumoNaoMedido, SistemaParametro sistemaParametro) throws ControladorException { BigDecimal valorAcumulado = new BigDecimal("0.00"); // Data de Corte LigacaoAgua ligacaoAgua = getControladorLigacaoAgua() .recuperaParametrosLigacaoAgua( autosInfracao.getImovel().getId()); if (ligacaoAgua != null && !ligacaoAgua.equals("")) { Integer anoMesDataCorte = null; if (ligacaoAgua.getDataCorte() != null) { anoMesDataCorte = (Util.recuperaAnoMesDaData(ligacaoAgua .getDataCorte())); } // �ltimo m�s/ano faturado do im�vel Integer ultimaReferenciaConsumo = getControladorMicromedicao() .pesquisarUltimoAnoMesConsumoFaturado( autosInfracao.getImovel().getId(), LigacaoTipo.LIGACAO_AGUA); Integer quantidadeMeses = 0; if (anoMesDataCorte != null && ultimaReferenciaConsumo != null) { quantidadeMeses = Util.retornaQuantidadeMeses( ultimaReferenciaConsumo, anoMesDataCorte); } Integer numeroMesesCalculoMedia = 0; if (sistemaParametro .getNumeroMaximoMesesCalculoConsumoAutoInfracao() != null && !sistemaParametro .getNumeroMaximoMesesCalculoConsumoAutoInfracao() .equals("")) { numeroMesesCalculoMedia = sistemaParametro .getNumeroMaximoMesesCalculoConsumoAutoInfracao() .intValue(); } // verifica se a quantidade de meses calculado � maior que o limite // de meses. // Se for, a quantidade de meses ser� a quantidade limite. if (anoMesDataCorte == null || quantidadeMeses > numeroMesesCalculoMedia) { quantidadeMeses = numeroMesesCalculoMedia; } Collection colecaoConsumoFaturaMesEReferencia = getControladorMicromedicao() .pesquisarConsumoFaturadoQuantidadeMesesPorReferencia( autosInfracao.getImovel().getId(), LigacaoTipo.LIGACAO_AGUA, quantidadeMeses.shortValue()); // LigacaoAguaSituacao do Im�vel Integer idLigacaoAguaSituacaoImovel = getControladorImovel() .pesquisarIdLigacaoAguaSituacao( autosInfracao.getImovel().getId()); // LigacaoEsgotoSituacao do Im�vel /* * Integer idLigacaoEsgotoSituacaoImovel = getControladorImovel() * .pesquisarIdLigacaoEsgotoSituacao(autosInfracao.getImovel().getId()); */ Integer idLigacaoEsgotoSituacaoImovel = null; if (colecaoConsumoFaturaMesEReferencia != null && !colecaoConsumoFaturaMesEReferencia.isEmpty()) { Iterator ite = colecaoConsumoFaturaMesEReferencia.iterator(); while (ite.hasNext()) { Object[] parmsConsumoHistorico = (Object[]) ite.next(); if (parmsConsumoHistorico != null) { Integer numeroConsumoFaturadoMes = 0; Integer referenciaFaturamento = 0; if (parmsConsumoHistorico[0] != null) { numeroConsumoFaturadoMes = (Integer) parmsConsumoHistorico[0]; } if (parmsConsumoHistorico[1] != null) { referenciaFaturamento = (Integer) parmsConsumoHistorico[1]; } if (numeroConsumoFaturadoMes.intValue() < consumoNaoMedido .intValue()) { numeroConsumoFaturadoMes = consumoNaoMedido; } // [SB0003 - Calcular Valor de �gua e/ou Esgoto] BigDecimal valorTotal = getControladorOrdemServico() .calcularValorAguaEsgoto( numeroConsumoFaturadoMes, sistemaParametro, autosInfracao.getImovel().getId(), fssc.getFiscalizacaoSituacao().getId(), idLigacaoAguaSituacaoImovel, idLigacaoEsgotoSituacaoImovel); BigDecimal valorAgua = getControladorFaturamento() .pesquisarValorAguaConta( autosInfracao.getImovel().getId(), referenciaFaturamento); if (valorTotal != null && valorAgua != null) { valorAcumulado = valorAcumulado.add(valorTotal .subtract(valorAgua)); } } } } } return valorAcumulado; } /** * [UC0996] Emitir Ordem de Fiscaliza��o para im�veis suprimidos * * Este caso de uso permite realizar a recupera��o das informa��es dos im�veis que estejam com seus ramais surprimidos, * parcialmente ou totalmente, por um per�odo pr�-determinado e os armazena em uma base de dados * para uma posterior gera��o de arquivo de texto. * * * @author Hugo Amorim * @date 08/03/2010 * @param idFuncionalidadeIniciada * @param usuarioLogado * @param setorComercial */ public void gerarDadosOrdemDeFiscalizacao(int idFuncionalidadeIniciada, Usuario usuarioLogado,SetorComercial setorComercial,SistemaParametro sistemaParametro) throws ControladorException{ int idUnidadeIniciada = 0; idUnidadeIniciada = getControladorBatch().iniciarUnidadeProcessamentoBatch( idFuncionalidadeIniciada, UnidadeProcessamento.SETOR_COMERCIAL,setorComercial.getId()); try{ Integer numeroMesesBatchImoveisSuprimidos = 0; Integer qtdMesesNegativo = 0; if(sistemaParametro.getNumeroMesesPesquisaImoveisRamaisSuprimidos()!=null){ numeroMesesBatchImoveisSuprimidos = sistemaParametro.getNumeroMesesPesquisaImoveisRamaisSuprimidos(); qtdMesesNegativo =-numeroMesesBatchImoveisSuprimidos; } Date dataAtual = new Date(); Date dataPesquisa = Util.adcionarOuSubtrairMesesAData(dataAtual,qtdMesesNegativo,00000); // O sistema deve excluir todos os registros da tabela BATCH_IMOVEIS_SUPRIMIDOS, // que estejam com a situa��o de finalizado na tabela ORDEM_SERVICO. this.excluirDadosFinalizados(setorComercial.getId()); // Vari�veis para a pagina��o da pesquisa // ======================================================================== boolean flagTerminou = false; final int quantidadeMaxima = 1000; int quantidadeInicio = 0; // ======================================================================== while(!flagTerminou){ Collection<EmitirOrdemDeFiscalizacaoHelper> colecaoHelpers = this.pesquisarImoveisSuprimidosParaGeracaoDeOrdemDeFiscalizacao( dataPesquisa,setorComercial.getId(),sistemaParametro,quantidadeInicio,quantidadeMaxima); //INICIALIZACAO VARIAVEIS StringBuilder linhaTxt = new StringBuilder(); ImovelSuprimido imovelSuprimido = null; for (EmitirOrdemDeFiscalizacaoHelper helper : colecaoHelpers) { OrdemServico ordemServicoFiscalizacao = new OrdemServico(); ordemServicoFiscalizacao.setImovel(helper.getImovel()); Integer idOsGerada = getControladorOrdemServico() .gerarOrdemServicoFiscalizacao(ordemServicoFiscalizacao,usuarioLogado); ordemServicoFiscalizacao.setId(idOsGerada); linhaTxt = new StringBuilder(); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getNumeroInscricao(),20)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getMatriculaFormatada(),10)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getDescricaPerfilImovel(),13)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getDescricaoEndereco(),50)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getBairro(),30)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getMunicipio(),30)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getUnidadeFederacao(),2)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(Util.formatarCEP(helper.getCep()),10)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getQtdEconomiasRes().toString(),3)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getQtdEconomiasCom().toString(),3)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getQtdEconomiasInd().toString(),3)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getQtdEconomiasPub().toString(),3)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getQtdEconomiasTot().toString(),3)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getUltimaAlteracao().toString(),10)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getIdGrupoFaturamento().toString(),3)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getDescricaoSituacaoAgua(),20)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getCosumoMedio()!=null?helper.getCosumoMedio().toString():"",5)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getDataCorte()!=null?helper.getDataCorte():"",10)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getDataSupressaoParcial()!=null?helper.getDataSupressaoParcial():"",10)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getDataSupressaoTotal()!=null?helper.getDataSupressaoTotal():"",10)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getDescricaoSituacaoEsgoto().toString(),20)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(helper.getVolumeFixoEsgoto()!=null?helper.getVolumeFixoEsgoto().toString():"",5)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getDescricaoOcorrencia()!=null?helper.getDescricaoOcorrencia():"",12)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(Util.formatarMoedaReal(helper.getValorServicosAtualizacoes()),14)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximo(Util.formatarMoedaReal(helper.getValorDebito()),14)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getNomeCliente()!=null?helper.getNomeCliente():"",50)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getCpfCnpj()!=null?helper.getCpfCnpj():"",18)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getRg()!=null?helper.getRg():"",13)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getNumeroTelefonico()!=null?Util.formatarTelefone(helper.getNumeroTelefonico()):"",9)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getRamal()!=null?helper.getRamal():"",4)); linhaTxt.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(helper.getTipoTelefonico()!=null?helper.getTipoTelefonico():"",3)); imovelSuprimido = new ImovelSuprimido(); imovelSuprimido.setOrdemServico(ordemServicoFiscalizacao); String linha = linhaTxt.toString(); linha = linha.replace('\'',' '); linha = linha.replace('`',' '); imovelSuprimido.setLinhaTxt(linha); imovelSuprimido.setDataExecucao(helper.getDataEmissao()); imovelSuprimido.setIdLocalidade(helper.getIdLocalidade()); imovelSuprimido.setIdSetorComercial(helper.getIdSetorComercial()); imovelSuprimido.setCodigoSetorComercial(helper.getCodigoSetorComercial()); imovelSuprimido.setIdQuadra(helper.getIdQuadra()); imovelSuprimido.setNumeroQuadra(helper.getNumeroQuadra()); imovelSuprimido.setNumeroLote(helper.getNumeroLote()); imovelSuprimido.setNumeroSubLote(helper.getNumeroSubLote()); this.repositorioAtendimentoPublico.inserirImovelSuprimido(imovelSuprimido); //Reiniciando Variaveis imovelSuprimido = null; linha = null; linhaTxt = null; } // Incrementa o n� do indice da p�gina��o quantidadeInicio = quantidadeInicio + quantidadeMaxima; /** * Caso a cole��o de dados retornados for menor que a * quantidade de registros seta a flag indicando que a * pagina��o terminou. */ if (colecaoHelpers == null || colecaoHelpers.size() < quantidadeMaxima) { flagTerminou = true; } if (colecaoHelpers != null) { colecaoHelpers.clear(); colecaoHelpers = null; } } getControladorBatch().encerrarUnidadeProcessamentoBatch( null, idUnidadeIniciada, false); } catch (Exception e) { // Este catch serve para interceptar // qualquer exce��o que o processo batch // venha a lan�ar e garantir que a unidade // de processamento do batch ser� atualizada // com o erro ocorrido e.printStackTrace(); getControladorBatch().encerrarUnidadeProcessamentoBatch(e, idUnidadeIniciada, true); } } /** * [UC0996] Emitir Ordem de Fiscaliza��o para im�veis suprimidos * * O sistema deve recuperar informa��es dos im�veis ativos * que estejam com seus ramais suprimidos (parcialmente ou totalmente) * de acordo com a quantidade de meses prefedefidos na tabela SISTEMA_PARAMETROS, * que n�o possua Ordem de Servi�o de Fiscaliza��o ou que possua, por�m, * que esteja em aberto. * * @author Hugo Amorim * @param sistemaParametro * @throws ControladorException * @date 08/03/2010 * */ private Collection<EmitirOrdemDeFiscalizacaoHelper> pesquisarImoveisSuprimidosParaGeracaoDeOrdemDeFiscalizacao( Date dataPesquisa, Integer idSetorComercial, SistemaParametro sistemaParametro, Integer quantidadeInicio, Integer quantidadeMaxima) throws ControladorException { Collection<EmitirOrdemDeFiscalizacaoHelper> retorno = new ArrayList<EmitirOrdemDeFiscalizacaoHelper>(); try{ Collection<Object[]> colecaoDados = this.repositorioAtendimentoPublico .pesquisarImoveisBatchEmitirOrdemFiscalizacao(idSetorComercial,dataPesquisa, quantidadeInicio,quantidadeMaxima); Iterator it = colecaoDados.iterator(); while (it.hasNext()) { //imovel[0] //perfil[1] //idLocalida[2] //idSetor[3] //codSetor[4] //idQuadra[5] //numeroQuadra[6] //lote[7] //subLote[8] //ultimaAlteracao[9] //ligacaoAguaSituacao[10] //desLigacaoAguaSituacao[11] //ligacaoEsgotoSituacao[12] //descLigacaoEsgotoSituacao[13] //dataCorte[14] //nomeCliente[15] //cpf[16] //cnpj[17] //rg[18] //fone[19] //ramal[20] //foneTipo[21] //dataSupressao[22] //faturamentoGrupo[23] //consumoFixo[24] Object[] dados = (Object[]) it.next(); Integer idImovel = (Integer) dados[0]; String descPerfil = (String) dados[1]; Integer idLocalidade = (Integer) dados[2]; Integer idSetor = (Integer) dados[3]; Integer codSetor = (Integer) dados[4]; Integer idQuadra = (Integer) dados[5]; Integer numeroQuadra = (Integer) dados[6]; Short lote = (Short) dados[7]; Short subLote = (Short) dados[8]; Date ultimaAlteracao = (Date) dados[9]; Integer idLigacaoAguaSituacao = (Integer) dados[10]; String desLigacaoAguaSituacao = (String) dados[11]; Integer idLigacaoEsgotoSituacao = (Integer) dados[12]; String descLigacaoEsgotoSituacao = (String) dados[13]; Date dataCorte = (Date) dados[14]; String nomeCliente = (String) dados[15]; String cpf = dados[16]!=null?(String) dados[16]:""; String cnpj = dados[17]!=null?(String) dados[17]:""; String rg = dados[18]!=null?(String) dados[18]:""; String fone = dados[19]!=null?(String) dados[19]:""; String ramal = dados[20]!=null?(String) dados[20]:""; String foneTipo = dados[21]!=null?(String) dados[21]:""; Date dataSupressao = (Date) dados[22]; Integer faturamentoGrupo = (Integer) dados[23]; Integer consumoFixoEsgoto = dados[24]!=null?(Integer) dados[24]:null; Imovel imovel = new Imovel(); Localidade localidade = new Localidade(idLocalidade); SetorComercial setorComercial = new SetorComercial(idSetor,codSetor,null); Quadra quadra = new Quadra(idQuadra, numeroQuadra, null); imovel.setId(idImovel); imovel.setLote(lote); imovel.setSubLote(subLote); imovel.setLocalidade(localidade); imovel.setSetorComercial(setorComercial); imovel.setQuadra(quadra); //OBTEM ENDERECO DO IMOVEL String[] endereco = this.getControladorEndereco().pesquisarEnderecoFormatadoDividido(idImovel); String descricaoEndereco = endereco[0]; String municipio = endereco[1]; String unidadeFederacao = endereco[2]; String bairro = endereco[3]; String cep = endereco[4]; //OBTEM QUANTIDADE DE ECONOMIAS Collection imovelSubcategorias = getControladorImovel().pesquisarCategoriasImovel(idImovel); Integer qtdeEconResidencial = new Integer(0); Integer qtdeEconComercial = new Integer(0); Integer qtdeEconIndustrial = new Integer(0); Integer qtdeEconPublica = new Integer(0); Integer qtdeEconTotal = new Integer(0); for (Iterator iterator = imovelSubcategorias.iterator(); iterator .hasNext();) { ImovelSubcategoria imovelSubcategoria = (ImovelSubcategoria) iterator.next(); if(imovelSubcategoria .getComp_id().getSubcategoria() .getCategoria().getId().compareTo(Categoria.RESIDENCIAL)==0){ qtdeEconResidencial+=1; qtdeEconTotal+=1; } if(imovelSubcategoria .getComp_id().getSubcategoria() .getCategoria().getId().compareTo(Categoria.COMERCIAL)==0){ qtdeEconComercial+=1; qtdeEconTotal+=1; } if(imovelSubcategoria .getComp_id().getSubcategoria() .getCategoria().getId().compareTo(Categoria.INDUSTRIAL)==0){ qtdeEconIndustrial+=1; qtdeEconTotal+=1; } if(imovelSubcategoria .getComp_id().getSubcategoria() .getCategoria().getId().compareTo(Categoria.PUBLICO)==0){ qtdeEconPublica+=1; qtdeEconTotal+=1; } } /** * Alterando o c�lculo da m�dia */ MedicaoTipo medicao = new MedicaoTipo(); medicao.setId(1); boolean houveIntslacaoHidrometro = this .getControladorMicromedicao() .verificarInstalacaoSubstituicaoHidrometro( imovel.getId(), medicao); //OBTEM CONSUMO MEDIO int[] consumos = getControladorMicromedicao().obterVolumeMedioAguaEsgoto(imovel.getId(), sistemaParametro.getAnoMesFaturamento(),1, houveIntslacaoHidrometro); String consumoMedio = consumos[0]+""; //OBTEM ANORMALIDADE DA LIGACAO AGUA String ocorrencia = getControladorMicromedicao() .pesquisarAnormalidadesImovel(idImovel,ConstantesSistema.CALCULAR_AGUA); //OBTEM VALOR DO SERVI�O E DO D�BITO String referenciaInicial = "01/0001"; String referenciaFinal = "12/9999"; String dataVencimentoInicial = "01/01/0001"; String dataVencimentoFinal = "31/12/9999"; // Para auxiliar na formata��o de uma data SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); String mesInicial = referenciaInicial.substring(0, 2); String anoInicial = referenciaInicial.substring(3, referenciaInicial.length()); String anoMesInicial = anoInicial + mesInicial; String mesFinal = referenciaFinal.substring(0, 2); String anoFinal = referenciaFinal.substring(3, referenciaFinal.length()); String anoMesFinal = anoFinal + mesFinal; Date dataVencimentoDebitoI; Date dataVencimentoDebitoF; try { dataVencimentoDebitoI = formatoData.parse(dataVencimentoInicial); } catch (ParseException ex) { dataVencimentoDebitoI = null; } try { dataVencimentoDebitoF = formatoData.parse(dataVencimentoFinal); } catch (ParseException ex) { dataVencimentoDebitoF = null; } // seta valores constantes para chamar o metodo que consulta debitos do imovel Integer tipoImovel = new Integer(1); Integer indicadorPagamento = new Integer(1); Integer indicadorConta = new Integer(1); Integer indicadorDebito = new Integer(1); Integer indicadorCredito = new Integer(1); Integer indicadorNotas = new Integer(1); Integer indicadorGuias = new Integer(1); Integer indicadorAtualizar = new Integer(1); ObterDebitoImovelOuClienteHelper colecaoDebitoImovel = getControladorCobranca() .obterDebitoImovelOuCliente(tipoImovel.intValue(), idImovel.toString(), null, null, anoMesInicial, anoMesFinal, dataVencimentoDebitoI, dataVencimentoDebitoF, indicadorPagamento .intValue(), indicadorConta .intValue(), indicadorDebito .intValue(), indicadorCredito .intValue(), indicadorNotas .intValue(), indicadorGuias .intValue(), indicadorAtualizar .intValue(), null); Collection<ContaValoresHelper> colecaoContaValores = colecaoDebitoImovel.getColecaoContasValores(); ContaValoresHelper dadosConta = null; BigDecimal valorConta = new BigDecimal("0.00"); BigDecimal valorAcrescimo = new BigDecimal("0.00"); BigDecimal valorAgua = new BigDecimal("0.00"); BigDecimal valorEsgoto = new BigDecimal("0.00"); BigDecimal valorDebito = new BigDecimal("0.00"); BigDecimal valorCredito = new BigDecimal("0.00"); BigDecimal valorImposto = new BigDecimal("0.00"); if (colecaoContaValores != null && !colecaoContaValores.isEmpty()) { java.util.Iterator<ContaValoresHelper> colecaoContaValoresIterator = colecaoContaValores.iterator(); // percorre a colecao de conta somando o valor para obter um valor total while (colecaoContaValoresIterator.hasNext()) { dadosConta = (ContaValoresHelper) colecaoContaValoresIterator.next(); valorConta = valorConta.add(dadosConta.getConta().getValorTotal()); valorAcrescimo = valorAcrescimo.add(dadosConta.getValorTotalContaValores()); valorAgua = valorAgua.add(dadosConta.getConta().getValorAgua()); valorEsgoto = valorEsgoto.add(dadosConta.getConta().getValorEsgoto()); valorDebito = valorDebito.add(dadosConta.getConta().getDebitos()); valorCredito = valorCredito.add(dadosConta.getConta().getValorCreditos()); valorImposto = valorImposto.add(dadosConta.getConta().getValorImposto()); } } Collection<DebitoACobrar> colecaoDebitoACobrar = colecaoDebitoImovel.getColecaoDebitoACobrar(); BigDecimal valorDebitoACobrar = new BigDecimal("0.00"); BigDecimal valorDebitoACobrarSemJurosParcelamento = new BigDecimal("0.00"); DebitoACobrar dadosDebito = null; if (colecaoDebitoACobrar != null && !colecaoDebitoACobrar.isEmpty()) { java.util.Iterator<DebitoACobrar> colecaoDebitoACobrarIterator = colecaoDebitoACobrar.iterator(); // percorre a colecao de debito a cobrar somando o valor para obter um valor total while (colecaoDebitoACobrarIterator.hasNext()) { dadosDebito = (DebitoACobrar) colecaoDebitoACobrarIterator.next(); valorDebitoACobrar = valorDebitoACobrar.add(dadosDebito.getValorTotalComBonus()); if (dadosDebito.getDebitoTipo() != null && !dadosDebito.getDebitoTipo().getId().equals(DebitoTipo.JUROS_SOBRE_PARCELAMENTO)){ valorDebitoACobrarSemJurosParcelamento = valorDebitoACobrarSemJurosParcelamento.add(dadosDebito.getValorTotalComBonus()); } } } Collection<CreditoARealizar> colecaoCreditoARealizar = colecaoDebitoImovel.getColecaoCreditoARealizar(); BigDecimal valorCreditoARealizar = new BigDecimal("0.00"); BigDecimal valorCreditoARealizarSemDescontosParcelamento = new BigDecimal("0.00"); CreditoARealizar dadosCredito = null; if (colecaoCreditoARealizar != null && !colecaoCreditoARealizar.isEmpty()) { java.util.Iterator<CreditoARealizar> colecaoCreditoARealizarIterator = colecaoCreditoARealizar.iterator(); // percorre a colecao de credito a realizar somando o valor para obter um valor total while (colecaoCreditoARealizarIterator.hasNext()) { dadosCredito = (CreditoARealizar) colecaoCreditoARealizarIterator.next(); valorCreditoARealizar = valorCreditoARealizar.add(dadosCredito.getValorTotalComBonus()); if (dadosCredito.getCreditoOrigem() != null && !dadosCredito.getCreditoOrigem().getId().equals(CreditoOrigem.DESCONTOS_CONCEDIDOS_NO_PARCELAMENTO)){ valorCreditoARealizarSemDescontosParcelamento = valorCreditoARealizarSemDescontosParcelamento.add(dadosCredito.getValorTotalComBonus()); } } } Collection<GuiaPagamentoValoresHelper> colecaoGuiaPagamentoValores = colecaoDebitoImovel.getColecaoGuiasPagamentoValores(); BigDecimal valorGuiaPagamento = new BigDecimal("0.00"); GuiaPagamentoValoresHelper dadosGuiaPagamentoValoresHelper = null; if (colecaoGuiaPagamentoValores != null && !colecaoGuiaPagamentoValores.isEmpty()) { java.util.Iterator<GuiaPagamentoValoresHelper> colecaoGuiaPagamentoValoresHelperIterator = colecaoGuiaPagamentoValores.iterator(); // percorre a colecao de guia de pagamento somando o valor para obter um valor total while (colecaoGuiaPagamentoValoresHelperIterator.hasNext()) { dadosGuiaPagamentoValoresHelper = (GuiaPagamentoValoresHelper) colecaoGuiaPagamentoValoresHelperIterator.next(); valorGuiaPagamento = valorGuiaPagamento.add(dadosGuiaPagamentoValoresHelper.getGuiaPagamento().getValorDebito()); } } // Soma o valor total dos debitos e subtrai dos creditos BigDecimal valorTotalSemAcrescimo = valorConta.add(valorDebitoACobrar); valorTotalSemAcrescimo = valorTotalSemAcrescimo.add(valorGuiaPagamento); valorTotalSemAcrescimo = valorTotalSemAcrescimo.subtract(valorCreditoARealizar); //SETA DADOS PESQUISADOS EM UM HELPER E ADICIONA NA COLE��O DE RETORNO EmitirOrdemDeFiscalizacaoHelper helper = new EmitirOrdemDeFiscalizacaoHelper(); helper.setImovel(imovel); helper.setIdLocalidade(idLocalidade); helper.setIdSetorComercial(idSetorComercial); helper.setCodigoSetorComercial(codSetor); helper.setIdQuadra(idQuadra); helper.setNumeroQuadra(numeroQuadra); helper.setNumeroLote(lote.intValue()); helper.setNumeroSubLote(subLote.intValue()); helper.setDataEmissao(new Date()); helper.setNumeroInscricao(imovel.getInscricaoFormatada()); helper.setMatriculaImovel(imovel.getId().toString()); helper.setDescricaPerfilImovel(descPerfil); helper.setDescricaoEndereco(descricaoEndereco); helper.setBairro(bairro); helper.setMunicipio(municipio); helper.setUnidadeFederacao(unidadeFederacao); helper.setCep(cep); helper.setQtdEconomiasRes(qtdeEconResidencial); helper.setQtdEconomiasCom(qtdeEconComercial); helper.setQtdEconomiasInd(qtdeEconIndustrial); helper.setQtdEconomiasPub(qtdeEconPublica); helper.setQtdEconomiasTot(qtdeEconTotal); helper.setUltimaAlteracao(Util.formatarData(ultimaAlteracao)); helper.setIdGrupoFaturamento(faturamentoGrupo); helper.setDescricaoSituacaoAgua(desLigacaoAguaSituacao); helper.setCosumoMedio(new Integer(consumoMedio)); if(idLigacaoAguaSituacao.compareTo(LigacaoAguaSituacao.CORTADO)==0){ helper.setDataCorte(Util.formatarData(dataCorte)); } if(idLigacaoAguaSituacao.compareTo(LigacaoAguaSituacao.SUPR_PARC)==0 || idLigacaoAguaSituacao.compareTo(LigacaoAguaSituacao.SUPR_PARC_PEDIDO)==0){ helper.setDataSupressaoParcial(Util.formatarData(dataSupressao)); } if(idLigacaoAguaSituacao.compareTo(LigacaoAguaSituacao.SUPRIMIDO)==0){ helper.setDataSupressaoTotal(Util.formatarData(dataSupressao)); } helper.setDescricaoSituacaoEsgoto(descLigacaoEsgotoSituacao); if(idLigacaoEsgotoSituacao.compareTo(LigacaoEsgotoSituacao.POTENCIAL)!=0 && idLigacaoEsgotoSituacao.compareTo(LigacaoEsgotoSituacao.FACTIVEL)!=0){ helper.setVolumeFixoEsgoto(consumoFixoEsgoto); } helper.setDescricaoOcorrencia(ocorrencia); helper.setValorServicosAtualizacoes(valorTotalSemAcrescimo); helper.setValorDebito(valorDebitoACobrar); helper.setNomeCliente(nomeCliente); if(cpf!=null && !cpf.equals("")){ helper.setCpfCnpj(Util.formatarCpf(cpf)); }else if(cnpj!=null && !cnpj.equals("")){ helper.setCpfCnpj(Util.formatarCnpj(cnpj)); } helper.setRg(rg); helper.setNumeroTelefonico(fone); helper.setRamal(ramal); helper.setTipoTelefonico(foneTipo); retorno.add(helper); } } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } return retorno; } /** * [UC0996] Emitir Ordem de Fiscaliza��o para im�veis suprimidos * * O sistema deve excluir todos os registros da tabela IMOVEIS_SUPRIMIDOS, * que estejam com a situa��o de finalizado na tabela ORDEM_SERVICO. * * @author Hugo Amorim * @param idSetorComercial * @date 08/03/2010 * */ private void excluirDadosFinalizados(Integer idSetorComercial) throws ControladorException { FiltroImovelSuprimido filtroImovelSuprimido = new FiltroImovelSuprimido(); filtroImovelSuprimido.adicionarParametro( new ParametroSimples( FiltroImovelSuprimido.ORDEM_SERVICO_SITUACAO, OrdemServico.SITUACAO_ENCERRADO)); filtroImovelSuprimido.adicionarParametro( new ParametroSimples( FiltroImovelSuprimido.SETOR_COMERCIAL_ID, idSetorComercial)); Collection<Object> colecaoImoveisSuprimidos = this.getControladorUtil().pesquisar(filtroImovelSuprimido, ImovelSuprimido.class.getName()); if(colecaoImoveisSuprimidos!=null && !colecaoImoveisSuprimidos.isEmpty()){ this.getControladorBatch().removerColecaoObjetoParaBatch(colecaoImoveisSuprimidos); } } /** * [UC0996] Emitir Ordem de Fiscaliza��o para im�veis suprimidos * * Step que gera os arquivos. * * * @author Hugo Amorim * @date 10/03/2010 * @param idFuncionalidadeIniciada * @param usuarioLogado * @param setorComercial */ public void gerarArquivoOrdemDeFiscalizacao(Integer idFuncionalidadeIniciada, Usuario usuario) throws ControladorException{ int idUnidadeIniciada = 0; // Cria��o do Arquivo // ======================================================================== Date dataAtual = new Date(); String nomeZip = null; nomeZip = "ORDEM_FISCALIZACAO_IMOVEIS_SUPRIMOS_" + Util.formatarData(dataAtual) + Util.formatarHoraSemDataSemDoisPontos(dataAtual); nomeZip = nomeZip.replace("/", "_"); File compactado = new File(nomeZip + ".zip"); ZipOutputStream zos = null; File leitura = new File(nomeZip + ".txt"); BufferedWriter out = null; // ======================================================================== try { // ------------------------- // Registrar o in�cio do processamento da Unidade de // Processamento do Batch // ------------------------- idUnidadeIniciada = getControladorBatch() .iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada, UnidadeProcessamento.FUNCIONALIDADE, 0); zos = new ZipOutputStream(new FileOutputStream(compactado)); out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(leitura.getAbsolutePath()))); // Vari�veis para a pagina��o da pesquisa // ======================================================================== boolean flagTerminou = false; final int quantidadeMaxima = 1000; int quantidadeInicio = 0; // ======================================================================== int sequencial = 0; Date dataExecucao = new Date(); String data = Util.formatarData(dataExecucao); StringBuilder linha = null; while (!flagTerminou) { Collection<ImovelSuprimido> colecaoDados = this.repositorioAtendimentoPublico .pesquisarDadosEmitirArquivoTextoDeOrdemFiscalizacao(quantidadeInicio,quantidadeMaxima); for (ImovelSuprimido imovelSuprimido : colecaoDados) { sequencial++; linha = new StringBuilder(); linha.append(Util.completaStringComEspacoADireitaCondicaoTamanhoMaximoTruncando(imovelSuprimido.getLinhaTxt(),410)); linha.append(data); linha.append(sequencial+""); linha.append(System.getProperty("line.separator")); out.write(linha.toString()); out.flush(); imovelSuprimido.setDataExecucao(dataExecucao); imovelSuprimido.setSequencialImpressao(sequencial); getControladorBatch().atualizarObjetoParaBatch(imovelSuprimido); linha = null; } // Incrementa o n� do indice da p�gina��o quantidadeInicio = quantidadeInicio + quantidadeMaxima; /** * Caso a cole��o de dados retornados for menor que a * quantidade de registros seta a flag indicando que a * pagina��o terminou. */ if (colecaoDados == null || colecaoDados.size() < quantidadeMaxima) { flagTerminou = true; } if (colecaoDados != null) { colecaoDados.clear(); colecaoDados = null; } } getControladorBatch().encerrarUnidadeProcessamentoBatch(null,idUnidadeIniciada, false); } catch (Exception e) { e.printStackTrace(); getControladorBatch().encerrarUnidadeProcessamentoBatch(e,idUnidadeIniciada, true); throw new EJBException(e); } finally { try{ out.close(); ZipUtil.adicionarArquivo(zos, leitura); // close the stream zos.close(); leitura.delete(); } catch (IOException e) { getControladorBatch().encerrarUnidadeProcessamentoBatch(e,idUnidadeIniciada, true); throw new EJBException(e); } } } /** * [SB0002] � Replicar os servi�os existentes para uma nova vig�ncia e * valor. Pesquisa a �ltima vig�ncia de cada tipo servi�o, e retorna uma * cole��o. * * @author Josenildo Neves - Hugo Leonardo * @date 03/02/2010 - 23/04/2010 */ public Collection<ServicoCobrancaValor> pesquisarServicoCobrancaValorUltimaVigencia( Integer numeroPagina) throws ControladorException { Collection<ServicoCobrancaValor> retorno = new ArrayList<ServicoCobrancaValor>(); try { Collection<ServicoCobrancaValor> colecao = this.repositorioAtendimentoPublico .pesquisarServicoCobrancaValorUltimaVigencia(numeroPagina); if (colecao != null && !colecao.isEmpty()) { Iterator iterator = colecao.iterator(); while (iterator.hasNext()) { Object[] object = (Object[]) iterator.next(); ServicoCobrancaValor servicoCobrancaValor = new ServicoCobrancaValor(); servicoCobrancaValor.setId((Integer)object[0]); FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples(FiltroServicoTipo.ID,object[1].toString())); Collection<ServicoTipo> collServicoTipo = Fachada.getInstancia().pesquisar(filtroServicoTipo,ServicoTipo.class.getName()); ServicoTipo servicoTipo = collServicoTipo.iterator().next(); servicoCobrancaValor.setServicoTipo(servicoTipo); ImovelPerfil imovelPerfil = null; if (object[2] != null) { FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil(); filtroImovelPerfil.adicionarParametro(new ParametroSimples(FiltroImovelPerfil.ID,object[2].toString())); Collection<ImovelPerfil> collImovelPerfil = Fachada.getInstancia().pesquisar(filtroImovelPerfil,ImovelPerfil.class.getName()); imovelPerfil = collImovelPerfil.iterator().next(); } servicoCobrancaValor.setImovelPerfil(imovelPerfil); HidrometroCapacidade hidrometroCapacidade = null; if (object[3] != null) { FiltroHidrometroCapacidade filtroHidrometroCapacidade = new FiltroHidrometroCapacidade(); filtroHidrometroCapacidade.adicionarParametro(new ParametroSimples(FiltroHidrometroCapacidade.ID,object[3].toString())); Collection<HidrometroCapacidade> collHidrometroCapacidade = Fachada.getInstancia().pesquisar(filtroHidrometroCapacidade,HidrometroCapacidade.class.getName()); hidrometroCapacidade = collHidrometroCapacidade.iterator().next(); } servicoCobrancaValor.setHidrometroCapacidade(hidrometroCapacidade); servicoCobrancaValor.setValor((BigDecimal) object[4]); servicoCobrancaValor.setIndicadorMedido((Short) object[5]); servicoCobrancaValor.setDataVigenciaInicial((Date) object[8]); servicoCobrancaValor.setDataVigenciaFinal((Date) object[9]); Subcategoria subcategoria = null; if (object[7] != null) { FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria(); filtroSubCategoria.adicionarParametro(new ParametroSimples(FiltroSubCategoria.ID,object[7].toString())); Collection<Subcategoria> collSubCategoria = Fachada.getInstancia().pesquisar(filtroSubCategoria,Subcategoria.class.getName()); subcategoria = collSubCategoria.iterator().next(); } servicoCobrancaValor.setSubCategoria(subcategoria); servicoCobrancaValor.setQuantidadeEconomiasInicial((Integer) object[10]); servicoCobrancaValor.setQuantidadeEconomiasFinal((Integer) object[11]); servicoCobrancaValor.setIndicadorConsideraEconomias((Short) object[12]); servicoCobrancaValor.setUltimaAlteracao((Date) object[6]); Categoria categoria = null; if (object[13] != null) { FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro(new ParametroSimples( FiltroCategoria.CODIGO,new Integer(object[13].toString()))); Collection<Categoria> collCategoria = Fachada.getInstancia().pesquisar(filtroCategoria,Categoria.class.getName()); categoria = collCategoria.iterator().next(); } servicoCobrancaValor.setCategoria(categoria); retorno.add(servicoCobrancaValor); } } } catch (Exception e) { e.printStackTrace(); throw new EJBException(e); } return retorno; } /** * [SB0002] � Replicar os servi�os existentes para uma nova vig�ncia e * valor. Pesquisa a �ltima vig�ncia de cada tipo servi�o, e retorna o * total. * * @author Josenildo Neves * @date 03/02/2010 */ public Integer pesquisarServicoCobrancaValorUltimaVigenciaTotal() throws ControladorException { try { return repositorioAtendimentoPublico .pesquisarServicoCobrancaValorUltimaVigenciaTotal(); } catch (Exception e) { e.printStackTrace(); throw new EJBException(e); } } /** * [SB0002] � Replicar os servi�os existentes para uma nova vig�ncia e * valor. Pesquisa a �ltima vig�ncia de cada tipo servi�o, e retorna uma * cole��o. * * @author Hugo Leonardo * @date 23/04/2010 */ public Collection<ServicoCobrancaValor> replicarServicoCobrancaValorUltimaVigencia( String[] selecionacos) throws ControladorException { Collection<ServicoCobrancaValor> retorno = new ArrayList<ServicoCobrancaValor>(); try { Collection<ServicoCobrancaValor> colecao = this.repositorioAtendimentoPublico .replicarServicoCobrancaValorUltimaVigencia(selecionacos); if (colecao != null && !colecao.isEmpty()) { Iterator iterator = colecao.iterator(); while (iterator.hasNext()) { Object[] object = (Object[]) iterator.next(); ServicoCobrancaValor servicoCobrancaValor = new ServicoCobrancaValor(); servicoCobrancaValor.setId((Integer)object[0]); FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples(FiltroServicoTipo.ID,object[1].toString())); Collection<ServicoTipo> collServicoTipo = this.getControladorUtil().pesquisar(filtroServicoTipo,ServicoTipo.class.getName()); ServicoTipo servicoTipo = collServicoTipo.iterator().next(); servicoCobrancaValor.setServicoTipo(servicoTipo); ImovelPerfil imovelPerfil = null; if (object[2] != null) { FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil(); filtroImovelPerfil.adicionarParametro(new ParametroSimples(FiltroImovelPerfil.ID,object[2].toString())); Collection<ImovelPerfil> collImovelPerfil = this.getControladorUtil().pesquisar(filtroImovelPerfil,ImovelPerfil.class.getName()); imovelPerfil = collImovelPerfil.iterator().next(); } servicoCobrancaValor.setImovelPerfil(imovelPerfil); HidrometroCapacidade hidrometroCapacidade = null; if (object[3] != null) { FiltroHidrometroCapacidade filtroHidrometroCapacidade = new FiltroHidrometroCapacidade(); filtroHidrometroCapacidade.adicionarParametro(new ParametroSimples(FiltroHidrometroCapacidade.ID,object[3].toString())); Collection<HidrometroCapacidade> collHidrometroCapacidade = this.getControladorUtil().pesquisar(filtroHidrometroCapacidade,HidrometroCapacidade.class.getName()); hidrometroCapacidade = collHidrometroCapacidade.iterator().next(); } servicoCobrancaValor.setHidrometroCapacidade(hidrometroCapacidade); servicoCobrancaValor.setValor((BigDecimal) object[4]); servicoCobrancaValor.setIndicadorMedido((Short) object[5]); servicoCobrancaValor.setDataVigenciaInicial((Date) object[8]); servicoCobrancaValor.setDataVigenciaFinal((Date) object[9]); Subcategoria subcategoria = null; if (object[7] != null) { FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria(); filtroSubCategoria.adicionarParametro(new ParametroSimples(FiltroSubCategoria.ID,object[7].toString())); Collection<Subcategoria> collSubCategoria = this.getControladorUtil().pesquisar(filtroSubCategoria,Subcategoria.class.getName()); subcategoria = collSubCategoria.iterator().next(); } servicoCobrancaValor.setSubCategoria(subcategoria); servicoCobrancaValor.setQuantidadeEconomiasInicial((Integer) object[10]); servicoCobrancaValor.setQuantidadeEconomiasFinal((Integer) object[11]); servicoCobrancaValor.setIndicadorConsideraEconomias((Short) object[12]); servicoCobrancaValor.setUltimaAlteracao((Date) object[6]); Categoria categoria = null; if (object[13] != null) { FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro(new ParametroSimples(FiltroCategoria.CODIGO, object[13].toString())); Collection<Categoria> collCategoria = this.getControladorUtil().pesquisar( filtroCategoria, Categoria.class.getName()); categoria = collCategoria.iterator().next(); } servicoCobrancaValor.setCategoria(categoria); servicoCobrancaValor.setIndicadorGeracaoDebito((Short) object[14]); retorno.add(servicoCobrancaValor); } } } catch (Exception e) { e.printStackTrace(); throw new EJBException(e); } return retorno; } /** * [UC0391] Inserir valor cobran�a Servi�o. * * Verificar se existe vig�ncia j� cadastrada para o Servi�o Tipo. * * @author Hugo Leonardo * @param dataVigenciaInicial * @param dataVigenciaFinal * @param idServicoTipo * @param opcao * @throws ControladorException * @data 03/05/2010 * * @see Caso a opcao = 1 - verifica as situa��es de inserir e atualizar Servi�o Tipo. * @see Caso a opcao = 2 - verifica a situa��o de retificar Servi�o Tipo. */ public void verificarExistenciaVigenciaServicoTipo(String dataVigenciaInicial, String dataVigenciaFinal, Integer idServicoTipo, Integer opcao) throws ControladorException { String retorno = ""; try { retorno = repositorioAtendimentoPublico.verificarExistenciaVigenciaServicoTipo( dataVigenciaInicial, dataVigenciaFinal, idServicoTipo); } catch (ErroRepositorioException ex) { throw new ControladorException("erro.sistema", ex); } // Caso a opcao seja iqual a 1 - verifica as situa��es de inserir e atualizar Servi�o Tipo. // // Caso a opcao seja iqual a 2 - verifica a situa��o de retificar Servi�o Tipo. // if(opcao == 1){ if (retorno != null && !retorno.equals("")) { throw new ControladorException( "atencao.data_vigencia_final_servico_ja_cadastrada", null, retorno); } }else if(opcao == 2){ if (retorno != null && !retorno.equals("")) { throw new ControladorException( "atencao.data_vigencia_final_servico_ja_cadastrada_retificar", null, retorno); } } } /** * [UC0363] Efetuar Retirada de hidr�metro quando chamado atraves da funcionalidade * efetuar supressao do imovel * * * @author Arthur Carvalho * @date 18/05/2010 * * @param hidrometroInstalacaoHistorico * @throws ControladorException */ public void efetuarRetiradaHidrometroSemGeracaoDebito( IntegracaoComercialHelper integracaoComercialHelper) throws ControladorException { HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = integracaoComercialHelper .getHidrometroInstalacaoHistorico(); if (integracaoComercialHelper.getHidrometroInstalacaoHistorico() != null) { HidrometroSituacao hidrometroSituacao = new HidrometroSituacao(); hidrometroSituacao.setId(HidrometroSituacao.DISPONIVEL); integracaoComercialHelper.getHidrometroInstalacaoHistorico() .getHidrometro().setHidrometroSituacao(hidrometroSituacao); } this.getControladorMicromedicao().validarImovelEmCampo(hidrometroInstalacaoHistorico.getLigacaoAgua().getId()); hidrometroInstalacaoHistorico.setDataRetirada(new Date()); this.verificarHidrometroInstalacaoHistoricoControleConcorrencia(hidrometroInstalacaoHistorico); getControladorUtil().atualizar(hidrometroInstalacaoHistorico); this.verificarHidrometroControleConcorrencia(hidrometroInstalacaoHistorico.getHidrometro()); getControladorUtil().atualizar(hidrometroInstalacaoHistorico.getHidrometro()); try { // Caso o tipo de medi��o seja igual a Liga��o de �gua, atualiza as // colunas da tabela LIGACAO_AGUA // Integer id = hidrometroInstalacaoHistorico.getId(); if (hidrometroInstalacaoHistorico.getMedicaoTipo().getId().equals( MedicaoTipo.LIGACAO_AGUA)) { repositorioAtendimentoPublico .atualizarHidrometroInstalacaoHistoricoLigacaoAgua( hidrometroInstalacaoHistorico.getLigacaoAgua() .getId(), null); // Caso o tipo de medi��o seja igual a Po�o, atualiza as colunas // da tabela POCO } else if (hidrometroInstalacaoHistorico.getMedicaoTipo().getId() .equals(MedicaoTipo.POCO)) { repositorioAtendimentoPublico .atualizarHidrometroIntalacaoHistoricoImovel( hidrometroInstalacaoHistorico.getImovel() .getId(), null, null); } OrdemServico ordemServico = integracaoComercialHelper .getOrdemServico(); if (ordemServico != null) { // [SB006]Atualizar Ordem de Servi�o if (!integracaoComercialHelper.isVeioEncerrarOS() && ordemServico.getServicoTipo().getDebitoTipo() != null) { getControladorOrdemServico().atualizaOSGeral( integracaoComercialHelper.getOrdemServico()); } } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC0366] Inserir Registro de Atendimento * [SB0034] � Verificar RA de urg�ncia * * Verifica se o Registro de Atendimento tem o nivel selecionado como Urg�ncia * * @author Daniel Alves * @param ID do Registro de Atendimento * @throws ControladorException * @data 04/06/2010 * */ public Integer verificarRegistroAtendimentoUrgencia(Integer idRegistroAtendimento) throws ControladorException{ try { return repositorioAtendimentoPublico .verificarRegistroAtendimentoUrgencia(idRegistroAtendimento); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } } /** * [UC0366] Inserir Registro de Atendimento * [SB0034] � Verificar RA de urg�ncia * * Adicionar os Usu�rios da Unidade relacionada a RA, na tabela "VisualizacaoRaUrgencia" * * @author Daniel Alves * @param ID do Registro de Atendimento * @throws ControladorException * @data 03/06/2010 * */ public void inserirUsuarioVisualizacaoRaUrgencia(Integer idRegistroAtendimento,Short indicadorReiteracao) throws ControladorException { try { Collection usuariosVisualizacaoRAUrgencia = repositorioAtendimentoPublico .pesquisarUsuarioVisualizacaoRaUrgencia(idRegistroAtendimento); if(usuariosVisualizacaoRAUrgencia != null && !usuariosVisualizacaoRAUrgencia.isEmpty()){ Iterator iterator = usuariosVisualizacaoRAUrgencia.iterator(); while(iterator.hasNext()){ VisualizacaoRegistroAtendimentoUrgencia visualizacaoRegistroAtendimentoUrgencia = new VisualizacaoRegistroAtendimentoUrgencia(); Object[] obj = (Object[]) iterator.next(); RegistroAtendimento registroAtendimento = new RegistroAtendimento(); registroAtendimento.setId((Integer)obj[0]); Usuario usuario = new Usuario(); usuario.setId((Integer)obj[1]); visualizacaoRegistroAtendimentoUrgencia.setRegistroAtendimento(registroAtendimento); visualizacaoRegistroAtendimentoUrgencia.setUsuario(usuario); visualizacaoRegistroAtendimentoUrgencia.setIndicadorTramite((Integer)obj[2]); visualizacaoRegistroAtendimentoUrgencia.setIndicadorVisualizacao((Integer)obj[3]); visualizacaoRegistroAtendimentoUrgencia.setUltimaAlteracao(new Date()); visualizacaoRegistroAtendimentoUrgencia.setIndicadorReiteracao(indicadorReiteracao); repositorioUtil.inserir(visualizacaoRegistroAtendimentoUrgencia); } } } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } } /** * [UC0503] Tramitar Conjunto Registro Atendimento * [SB0004] � Verificar RA de urg�ncia * * Atualizar os Usu�rios da Unidade relacionada a RA, na tabela "VisualizacaoRaUrgencia" * * @author Daniel Alves * @param ID do Registro de Atendimento * @throws ControladorException * @data 03/06/2010 * */ public void atualizarUsuarioVisualizacaoRaUrgencia(Integer idRegistroAtendimento, Integer idUnidade, Integer idUsuario, Integer indicadorTramite, Integer indicadorVisualizacao) throws ControladorException { try { String idUsuarios = null; //caso seja informado a unidade, seleciona todos os usuarios dela. if(idUnidade != null){ Collection<Usuario> colecao = (Collection<Usuario>) repositorioUsuario.pesquisarUsuariosUnidadeOrganizacional(idUnidade); if (colecao != null && colecao.size() > 0){ idUsuarios = ""; for(Usuario usuario : colecao){ idUsuarios += usuario.getId() +", "; } idUsuarios = Util.removerUltimosCaracteres(idUsuarios, 2); repositorioAtendimentoPublico.atualizarUsuarioRegistroAtendimentoUrgencia(idRegistroAtendimento, idUsuarios, idUsuario, indicadorTramite, indicadorVisualizacao); } //caso nao retorne nenhum usuario nao deve executar o atualizar }else{ repositorioAtendimentoPublico.atualizarUsuarioRegistroAtendimentoUrgencia(idRegistroAtendimento, idUsuarios, idUsuario, indicadorTramite, indicadorVisualizacao); } } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } } /** * [UC0503] Tramitar Conjunto Registro Atendimento * * [SB0004] � Verificar RA de urg�ncia * * Verifica se o Registro de Atendimento j� est� relacionado a uma Unidade informada. * * @author Daniel Alves * @param ID do Registro de Atendimento * @throws ControladorException * @data 05/06/2010 * */ public Integer verificarUsuariosRegistroAtendimentoUrgencia(Integer idRegistroAtendimento, Integer idUnidade) throws ControladorException{ try { return repositorioAtendimentoPublico .verificarUsuariosRegistroAtendimentoUrgencia(idRegistroAtendimento, idUnidade); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } } /** * [UC1028] Exibir Registro Atendimento Urg�ncia * * Verifica se o Usuario possui algum Registro de Atendimento urgente. * * @author Daniel Alves * @param ID do Registro de Atendimento * @throws ControladorException * @data 07/06/2010 * */ public Collection verificarUsuarioRegistroAtendimentoUrgencia(Integer idUsuario) throws ControladorException{ try { return repositorioAtendimentoPublico .verificarUsuarioRegistroAtendimentoUrgencia(idUsuario); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } } /** * [UC0251] Gerar Atividade de A��o de Cobran�a * * @author Hugo Amorim * @date 15/07/2010 */ public Collection<CobrancaAcaoAtividadeComandoFiscalizacaoSituacao> pesquisarCobrancaAcaoAtividadeComandoFiscalizacaoSituacao( Integer idComando, Collection idsSituacos)throws ControladorException{ try { return repositorioAtendimentoPublico .pesquisarCobrancaAcaoAtividadeComandoFiscalizacaoSituacao( idComando,idsSituacos); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } } /** * [UC1056] Gerar Relat�rio de Acompanhamento dos Registros de Atendimento Analitico * * @author Hugo Leonardo * @date 28/09/2010 * * @param FiltrarAcompanhamentoRegistroAtendimentoHelper * @return Collection<RelatorioAcompanhamentoRAHelper> * * @throws ControladorException */ public Collection pesquisarRelatorioAcompanhamentoRAAnalitico( FiltrarAcompanhamentoRegistroAtendimentoHelper helper) throws ControladorException { Collection colecaoRetorno = new ArrayList(); try { Collection colecaoAcompanhamentoRA = this.repositorioAtendimentoPublico. pesquisarRelatorioAcompanhamentoRAAnalitico(helper); Iterator iterator = colecaoAcompanhamentoRA.iterator(); while (iterator.hasNext()) { RelatorioAcompanhamentoRAHelper relatorioHelper = new RelatorioAcompanhamentoRAHelper(); Object[] objeto = (Object[]) iterator.next(); // N�mero RA String idRA = ""; if ( objeto[0] != null ) { idRA = objeto[0].toString(); relatorioHelper.setIdRA(idRA); } // Unidade Atendimento String idUnidadeAtendimento = ""; if ( objeto[1] != null ) { idUnidadeAtendimento = objeto[1].toString(); relatorioHelper.setIdUnidadeAtendimento(idUnidadeAtendimento); } // Solicitacao Tipo Especificacao String tipoSolicitacao = ""; if ( objeto[2] != null ) { tipoSolicitacao = objeto[2].toString(); relatorioHelper.setTipoSolicitacao( tipoSolicitacao); } // Data Abertura Date dataAbertura; if ( objeto[3] != null ) { dataAbertura = (Date) objeto[3]; relatorioHelper.setDataAbertura(Util.formatarData(dataAbertura)); } // Data Encerramento Date dataEncerramento; if ( objeto[4] != null ) { dataEncerramento = (Date) objeto[4]; relatorioHelper.setDataEncerramento(Util.formatarData(dataEncerramento)); } // Motivo Encerramento String motivoEncerramento = ""; if( objeto[5] != null){ motivoEncerramento = objeto[5].toString(); relatorioHelper.setMotivoEncerramento( motivoEncerramento); } // Descri��o Unidade Atendimento String descricaoUnidadeAtendimento = ""; if( objeto[6] != null){ descricaoUnidadeAtendimento = objeto[6].toString(); relatorioHelper.setDescricaoUnidadeAtendimento(""+ idUnidadeAtendimento + " - " + descricaoUnidadeAtendimento); } // Id Motivo Encerramento String idMotivoEncerramento; if( objeto[7] != null){ idMotivoEncerramento = objeto[7].toString(); relatorioHelper.setIdMotivoEncerramento(idMotivoEncerramento); } if(!Util.isVazioOrNulo(helper.getMunicipiosAssociados())){ //Descri��o Munic�pio (Caso o filtro tenha selecionado pelo menos um munic�pio associado � localidade) String descricaoMunicipio; if(objeto[8] != null){ descricaoMunicipio = objeto[8].toString(); relatorioHelper.setDescricaoMunicipio(descricaoMunicipio); } //ID Munic�pio (Caso o filtro tenha selecionado pelo menos um munic�pio associado � localidade) String idMunicipio; if(objeto[9] != null){ idMunicipio = objeto[9].toString(); relatorioHelper.setIdMunicipio(idMunicipio); } } colecaoRetorno.add(relatorioHelper); } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } return colecaoRetorno; } /** * [UC1056] Pesquisar Total de RA's do Relat�rio de Acompanhamento dos Registros de Atendimento * * @author Hugo Leonardo * @date 30/09/2010 * * @param FiltrarAcompanhamentoRegistroAtendimentoHelper * @return Intenger * * @throws ControladorException */ public Integer countPesquisarRelatorioAcompanhamentoRAAnalitico( FiltrarAcompanhamentoRegistroAtendimentoHelper helper) throws ControladorException { try { return this.repositorioAtendimentoPublico .countPesquisarRelatorioAcompanhamentoRAAnalitico(helper); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * [UC1056] Gerar Relat�rio de Acompanhamento dos Registros de Atendimento Sintetico Encerrado * * @author Hugo Leonardo * @date 28/09/2010 * * @param FiltrarAcompanhamentoRegistroAtendimentoHelper * @return Collection<RelatorioAcompanhamentoRAHelper> * * @throws ControladorException */ public Collection pesquisarRelatorioAcompanhamentoRASinteticoEncerrado( FiltrarAcompanhamentoRegistroAtendimentoHelper helper) throws ControladorException { Collection colecaoRetorno = new ArrayList(); try { Collection colecaoAcompanhamentoRA = this.repositorioAtendimentoPublico .pesquisarRelatorioAcompanhamentoRASinteticoEncerrado(helper); Iterator iterator = colecaoAcompanhamentoRA.iterator(); String descricaoMunicipio = ""; String descricaoUnidadeAtendimento = ""; String motivoEncerramento = ""; Integer quantidade = 0; while (iterator.hasNext()) { RelatorioAcompanhamentoRAHelper relatorioHelper = new RelatorioAcompanhamentoRAHelper(); Object[] objeto = (Object[]) iterator.next(); // Descri��o Unidade Atendimento if( objeto[0] != null){ descricaoUnidadeAtendimento = objeto[0].toString(); } // Motivo Encerramento if( objeto[1] != null){ motivoEncerramento = objeto[1].toString(); } // Quantidade if ( objeto[2] != null ) { quantidade = (Integer) objeto[2]; } //Munic�pio Associado � Localidade if(!Util.isVazioOrNulo(helper.getMunicipiosAssociados())){ if(objeto[3] != null){ descricaoMunicipio = (String) objeto[3]; } } relatorioHelper.setDescricaoUnidadeAtendimento( descricaoUnidadeAtendimento); relatorioHelper.setDescricaoMunicipio(descricaoMunicipio); relatorioHelper.setMotivoEncerramento( motivoEncerramento); relatorioHelper.setQuantidade(quantidade); colecaoRetorno.add(relatorioHelper); } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } return colecaoRetorno; } /** * [UC1056] Gerar Relat�rio de Acompanhamento dos Registros de Atendimento Sintetico Aberto * * @author Hugo Leonardo * @date 28/09/2010 * * @param FiltrarAcompanhamentoRegistroAtendimentoHelper * @return Collection<RelatorioAcompanhamentoRAHelper> * * @throws ControladorException */ public Collection pesquisarRelatorioAcompanhamentoRASinteticoAberto( FiltrarAcompanhamentoRegistroAtendimentoHelper helper) throws ControladorException { Collection colecaoRetorno = new ArrayList(); try { Collection colecaoAcompanhamentoRA = this.repositorioAtendimentoPublico .pesquisarRelatorioAcompanhamentoRASinteticoAberto(helper); Iterator iterator = colecaoAcompanhamentoRA.iterator(); while (iterator.hasNext()) { RelatorioAcompanhamentoRAHelper relatorioHelper = new RelatorioAcompanhamentoRAHelper(); Object[] objeto = (Object[]) iterator.next(); // Descri��o Unidade Atendimento String descricaoUnidadeAtendimento = null; String descricaoMunicipio = null; Integer quantidade = 0; if( objeto[0] != null){ descricaoUnidadeAtendimento = (String)objeto[0]; } if(!Util.isVazioOrNulo(helper.getMunicipiosAssociados())){ if ( objeto[1] != null ) { descricaoMunicipio = (String) objeto[1]; } if ( objeto[2] != null ) { quantidade = (Integer) objeto[2]; } }else{ if ( objeto[1] != null ) { quantidade = (Integer) objeto[1]; } } relatorioHelper.setDescricaoUnidadeAtendimento(descricaoUnidadeAtendimento); relatorioHelper.setDescricaoMunicipio(descricaoMunicipio); relatorioHelper.setQuantidade(quantidade); colecaoRetorno.add(relatorioHelper); } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } return colecaoRetorno; } /** * Remover todas as LocalidadeComEspecificacaoUnidade * [UC1091] Informar Associa��o de Localidade com Especifica��o e Unidade * * @author Hugo Leonardo * @date 30/11/2010 * * @param idLocalidade * @return void */ public void removerLocalidadeComEspecificacaoUnidade( Integer idLocalidade) throws ControladorException { Collection resultadoPesquisa = null; try { FiltroLocalidadeEspecificacaoUnidade filtro = new FiltroLocalidadeEspecificacaoUnidade(); filtro.adicionarParametro(new ParametroSimples( FiltroLocalidadeEspecificacaoUnidade.LOCALIDADE_ID, idLocalidade)); // Procura na base resultadoPesquisa = getControladorUtil().pesquisar( filtro, LocalidadeEspecificacaoUnidade.class.getName()); if (resultadoPesquisa != null && !resultadoPesquisa.isEmpty()) { Iterator iterator = resultadoPesquisa.iterator(); LocalidadeEspecificacaoUnidade localidadeEspecificacaoUnidade = null; while (iterator.hasNext()) { localidadeEspecificacaoUnidade = (LocalidadeEspecificacaoUnidade) iterator.next(); this.repositorioUtil.remover(localidadeEspecificacaoUnidade); } } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } /** * [UC1102] - Inserir Tipo de Corte * * @author Ivan Sergio * @data: 03/12/2010 * * @param descricao * @param indicadorUso * @param indicadorCorteAdministrativo * @param usuarioLogado * @return * @throws ControladorException */ public Integer inserirTipoCorte(String descricao, String indicadorUso, String indicadorCorteAdministrativo, Usuario usuarioLogado) throws ControladorException { CorteTipo corteTipo = new CorteTipo(); corteTipo.setDescricao(descricao); corteTipo.setIndicadorUso(new Short(indicadorUso)); corteTipo.setIndicadorCorteAdministrativo(new Short(indicadorCorteAdministrativo)); corteTipo.setUltimaAlteracao(new Date()); // [FS0002] Verificar existencia da Descri��o FiltroCorteTipo filtroCorteTipo = new FiltroCorteTipo(); filtroCorteTipo.adicionarParametro(new ParametroSimples( FiltroCorteTipo.DESCRICAO, corteTipo.getDescricao())); Collection colecaoCorteTipo = getControladorUtil().pesquisar(filtroCorteTipo, CorteTipo.class.getName()); if (colecaoCorteTipo != null && !colecaoCorteTipo.isEmpty()) { throw new ControladorException( "atencao.descricao_ja_existente_tipo_corte", null, corteTipo.getDescricao()); } // ------------ REGISTRAR TRANSACAO---------------------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_TIPO_CORTE_INSERIR, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_TIPO_CORTE_INSERIR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); corteTipo.setOperacaoEfetuada(operacaoEfetuada); corteTipo.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(corteTipo); // --------FIM---- REGISTRAR TRANSACAO---------------------------- Integer idTipoCorte = (Integer) getControladorUtil().inserir(corteTipo); return idTipoCorte; } /** * [UC1103] Manter Tipo de Corte * * @author Ivan Sergio * @date 06/12/2010 * * @pparam cortetipo * @throws ControladorException */ public void atualizarCorteTipo(CorteTipo corteTipo, Usuario usuarioLogado) throws ControladorException { FiltroCorteTipo filtroCorteTipo = new FiltroCorteTipo(); // [FS0002] - Verificar Atualizacao Por Outro Usuario filtroCorteTipo.adicionarParametro(new ParametroSimples( FiltroCorteTipo.ID, corteTipo.getId())); CorteTipo corteTipo2 = (CorteTipo) Util.retonarObjetoDeColecao(Fachada.getInstancia().pesquisar( filtroCorteTipo, CorteTipo.class.getName())); if (corteTipo2 == null) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.registro_remocao_nao_existente"); } if (corteTipo.getUltimaAlteracao().after(corteTipo2.getUltimaAlteracao())) { sessionContext.setRollbackOnly(); throw new ControladorException("atencao.atualizacao.timestamp"); } // [FS0005] Verificar tipo corte filtroCorteTipo = new FiltroCorteTipo(); filtroCorteTipo.adicionarParametro(new ParametroSimples( FiltroCorteTipo.DESCRICAO, corteTipo.getDescricao())); filtroCorteTipo.adicionarParametro(new ParametroSimplesDiferenteDe( FiltroCorteTipo.ID, corteTipo.getId())); Collection colecaoCorteTipo = getControladorUtil().pesquisar(filtroCorteTipo, CorteTipo.class.getName()); if (colecaoCorteTipo != null && !colecaoCorteTipo.isEmpty()) { throw new ControladorException( "atencao.descricao_ja_existente_tipo_corte", null, corteTipo.getDescricao()); } // ------------ INICIO REGISTRAR TRANSa��o---------------------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_TIPO_CORTE_ATUALIZAR, new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_TIPO_CORTE_ATUALIZAR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); corteTipo.setOperacaoEfetuada(operacaoEfetuada); corteTipo.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(corteTipo); // ------------ FIM REGISTRAR TRANSa��o---------------------------- corteTipo.setUltimaAlteracao(new Date()); // Atualiza o objeto na base getControladorUtil().atualizar(corteTipo); } /** * [UC1103] - Manter Tipo de Corte * * @author Ivan Sergio * @data: 07/12/2010 * * @param ids * @param usuarioLogado * @throws ControladorException */ public void removerCorteTipo(String[] ids, Usuario usuarioLogado) throws ControladorException { // ------------ REGISTRAR TRANSa��o ---------------- Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_TIPO_CORTE_REMOVER); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelper = new UsuarioAcaoUsuarioHelper( usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); Collection<UsuarioAcaoUsuarioHelper> colecaoUsuarios = new ArrayList(); colecaoUsuarios.add(usuarioAcaoUsuarioHelper); // ------------ REGISTRAR TRANSa��o ---------------- this.getControladorUtil().remover(ids, CorteTipo.class.getName(), operacaoEfetuada, colecaoUsuarios); } /** * [UC1107] Manter Custo de Pavimento por Repavimentadora * * @author Hugo Leonardo * @date 27/12/2010 * * @param idRepavimentadora, idPavimento, indicadorPavimento: 1-Rua, 2-Cal�ada * @return boolean */ public boolean verificaRemoverCustoPavimentoPorRepavimentadora(Integer idRepavimentadora, Integer idPavimento, Integer indicadorPavimento)throws ControladorException{ try { return this.repositorioAtendimentoPublico .verificaRemoverCustoPavimentoPorRepavimentadora(idRepavimentadora, idPavimento, indicadorPavimento); } catch (ErroRepositorioException ex) { throw new ControladorException("erro.sistema", ex); } } /** * [UC1107] Manter Custo de Pavimento por Repavimentadora * * @author Hugo Leonardo * @date 28/12/2010 * * @param id, idRepavimentadora, idPavimento, dataInicio, dataFinal, indicadorPavimento: 1-Rua, 2-Cal�ada * @return void */ public void verificaAtualizarCustoPavimentoPorRepavimentadora(Integer idAtualizacao, Integer idRepavimentadora, Integer idPavimento, Date dataInicio, Date dataFinal, Integer indicadorPavimento, Integer tipo )throws ControladorException{ Integer valor = null; Date dtFinal = dataFinal; if(dataFinal == null){ dataFinal = Util.converteStringParaDate("31/12/9999"); } try { valor = this.repositorioAtendimentoPublico .verificaAtualizarCustoPavimentoPorRepavimentadora(idAtualizacao, idRepavimentadora, idPavimento, dataInicio, dataFinal, indicadorPavimento, tipo); if(valor != 0){ switch (valor) { case 1: if(dtFinal == null && tipo == 1){ throw new ControladorException( "atencao.existe.custo_pavimento_por_repavimentadora_rua.vigente_fim_aberta"); } throw new ControladorException( "atencao.existe.custo_pavimento_por_repavimentadora_rua.vigente"); case 2: throw new ControladorException( "atencao.existe.custo_pavimento_por_repavimentadora_rua.vigente"); case 3: if(dtFinal == null && tipo == 1){ throw new ControladorException( "atencao.existe.custo_pavimento_por_repavimentadora_calcada.vigente_fim_aberta"); } throw new ControladorException( "atencao.existe.custo_pavimento_por_repavimentadora_calcada.vigente"); case 4: throw new ControladorException( "atencao.existe.custo_pavimento_por_repavimentadora_calcada.vigente"); } } } catch (ErroRepositorioException ex) { throw new ControladorException("erro.sistema", ex); } } /** * [UC1107] Manter Custo de Pavimento por Repavimentadora * * [FS0010] Verificar se existem dias sem valor * * @author Hugo Leonardo * @date 11/01/2010 * * @param id, idRepavimentadora, idPavimento, dataInicio, dataFinal, indicadorPavimento: 1-Rua, 2-Cal�ada * @return Integer */ public Integer verificarExistenciDiasSemValorCustoPavimentoPorRepavimentadora(Integer idAtualizacao, Integer idRepavimentadora, Integer idPavimento, Date dataInicio, Date dataFinal, Integer indicadorPavimento, Integer tipo) throws ControladorException{ Integer valor = 0; Date dtFinal = dataFinal; try { if(dataFinal != null){ dataFinal = Util.adicionarNumeroDiasDeUmaData(dataFinal, 1); }else{ dataFinal = Util.converteStringParaDate("31/12/9999"); } dataInicio = Util.adicionarNumeroDiasDeUmaData(dataInicio, -1); valor = this.repositorioAtendimentoPublico .verificarExistenciDiasSemValorCustoPavimentoPorRepavimentadora(idAtualizacao, idRepavimentadora, idPavimento, dataInicio, dataFinal, indicadorPavimento, tipo); if(tipo == 2 && dtFinal == null){ valor = this.repositorioAtendimentoPublico .verificarExistenciDiasSemValorCustoPavimentoPorRepavimentadora(idAtualizacao, idRepavimentadora, idPavimento, dataInicio, dataFinal, indicadorPavimento, new Integer("3")); } } catch (ErroRepositorioException ex) { throw new ControladorException("erro.sistema", ex); } return valor; } /** * [UC0412] Manter Tipo de Servi�o * * @author Vivianne Sousa * @created 07/01/2011 */ public void removerServicoTipoBoletim(Integer idServicoTipo)throws ControladorException { try { this.repositorioAtendimentoPublico.removerServicoTipoBoletim(idServicoTipo); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * [UC1120] Gerar Relat�rio de religa��o de clientes inadimplentes * * @author Hugo Leonardo * @date 25/01/2011 * * @throws ErroRepositorioException */ public Collection pesquisarRelatorioReligacaoClientesInadiplentes( FiltrarRelatorioReligacaoClientesInadiplentesHelper relatorioHelper) throws ControladorException{ Collection colecaoRetorno = new ArrayList(); Collection<Integer> idsOS = new ArrayList(); Collection colecaoDebitosOS = null; Collection colecaoDebitosOSHistorico = null; Collection<OrdemServico> colecaoOS = new ArrayList(); Collection colecaoIds = null; RelatorioReligacaoClientesInadiplentesHelper helper = null; try { Collection colecaoIdsOS = this.repositorioAtendimentoPublico.pesquisarRelatorioReligacaoClientesInadiplentesOS(relatorioHelper); Iterator iterator = colecaoIdsOS.iterator(); while (iterator.hasNext()) { colecaoIds = null; Object[] objeto = null; Integer idUsuario = null; if(relatorioHelper.getEscolhaRelatorio() == 3 || relatorioHelper.getEscolhaRelatorio() == 4){ idUsuario = (Integer) iterator.next(); }else{ objeto = (Object[]) iterator.next(); } // Todas as Ocorrencias no Per�odo if(relatorioHelper.getEscolhaRelatorio() == 1){ // [0]- OS // [1]- Imovel // [2]- Data Encerramento colecaoDebitosOS = this.repositorioAtendimentoPublico.pesquisarRelatorioReligacaoClientesInadiplentes( (Integer)objeto[0], (Integer)objeto[1], (Date)objeto[2], new Integer("1")); if(colecaoDebitosOS == null || colecaoDebitosOS.isEmpty()){ colecaoDebitosOSHistorico = this.repositorioAtendimentoPublico.pesquisarRelatorioReligacaoClientesInadiplentes( (Integer)objeto[0], (Integer)objeto[1], (Date)objeto[2], new Integer("2")); } } else if(relatorioHelper.getEscolhaRelatorio() == 3 || relatorioHelper.getEscolhaRelatorio() == 4){ // [0]- Usuario // obt�m as OS's colecaoIds = this.repositorioAtendimentoPublico.pesquisarRecorrenciaPorUsuarioQueAbriuOuEncerrouOS( idUsuario, relatorioHelper); Collection<Integer> idsOSUsuario = new ArrayList(); if(!Util.isVazioOrNulo(colecaoIds)){ Iterator itImovel = colecaoIds.iterator(); while(itImovel.hasNext()){ Object[] obj = (Object[]) itImovel.next(); // [0]- OS // [1]- Imovel // [1]- Data Encerramento // Verifica se existem debitos. colecaoDebitosOS = this.repositorioAtendimentoPublico.pesquisarRelatorioReligacaoClientesInadiplentes( null, (Integer)obj[1], (Date)obj[2], new Integer("1")); if(colecaoDebitosOS == null || colecaoDebitosOS.isEmpty()){ colecaoDebitosOSHistorico = this.repositorioAtendimentoPublico.pesquisarRelatorioReligacaoClientesInadiplentes( null, (Integer)obj[1], (Date)obj[2], new Integer("2")); } if((colecaoDebitosOS != null && !colecaoDebitosOS.isEmpty()) || (colecaoDebitosOSHistorico != null && !colecaoDebitosOSHistorico.isEmpty())){ idsOSUsuario.add((Integer)obj[0]); } } } if(!Util.isVazioOrNulo(idsOSUsuario) && idsOSUsuario.size() > 1){ idsOS.addAll(idsOSUsuario); } } else if(relatorioHelper.getEscolhaRelatorio() == 2 || relatorioHelper.getEscolhaRelatorio() == 5){ // [0]- Imovel // [1]- Quantidade //obt�m as datas de encerramento as os's passando o im�vel. Collection colecaoResultado = this.repositorioAtendimentoPublico.pesquisarRelatorioReligacaoClientesInadiplentesDatasOS( relatorioHelper, (Integer)objeto[0]); if(!Util.isVazioOrNulo(colecaoResultado)){ Iterator itResultado = colecaoResultado.iterator(); Collection<Integer> colecaoIdsOSTemp = new ArrayList(); while (itResultado.hasNext()) { Object[] resultado = (Object[]) itResultado.next(); Date data = (Date) resultado[0]; Integer idOs = (Integer) resultado[1]; // Verifica se existem debitos. colecaoDebitosOS = this.repositorioAtendimentoPublico.pesquisarRelatorioReligacaoClientesInadiplentes( null, (Integer)objeto[0], data, new Integer("1")); if(colecaoDebitosOS == null || colecaoDebitosOS.isEmpty()){ colecaoDebitosOSHistorico = this.repositorioAtendimentoPublico.pesquisarRelatorioReligacaoClientesInadiplentes( null, (Integer)objeto[0], data, new Integer("2")); } if((colecaoDebitosOS != null && !colecaoDebitosOS.isEmpty()) || (colecaoDebitosOSHistorico != null && !colecaoDebitosOSHistorico.isEmpty())){ // recupera o id das OS do im�vel. colecaoIdsOSTemp.add(idOs); } } if(colecaoIdsOSTemp != null && !colecaoIdsOSTemp.isEmpty() && colecaoIdsOSTemp.size() > 1){ idsOS.addAll(colecaoIdsOSTemp); } } } if(relatorioHelper.getEscolhaRelatorio() == 1 && ((colecaoDebitosOS != null && !colecaoDebitosOS.isEmpty()) || (colecaoDebitosOSHistorico != null && !colecaoDebitosOSHistorico.isEmpty()))){ idsOS.add((Integer)objeto[0]); } else if((relatorioHelper.getEscolhaRelatorio() == 2 || relatorioHelper.getEscolhaRelatorio() == 5) && (colecaoIds != null && colecaoIds.size() > 1)){ idsOS.addAll(colecaoIds); } } if (idsOS != null && !idsOS.isEmpty()) { // pesquisa as ordens de Servi�o para o relat�rio. colecaoOS = this.repositorioAtendimentoPublico .pesquisarRelatorioReligacaoClientesInadiplentes( idsOS); } if(colecaoOS != null && !colecaoOS.isEmpty()){ for (OrdemServico os : colecaoOS) { // Matr�cula String matricula = Util.retornaMatriculaImovelFormatada( os.getImovel().getId()); // Endere�o String endereco = getControladorEndereco().pesquisarEnderecoFormatado(os.getImovel().getId()); // Perfil String perfil = os.getImovel().getImovelPerfil().getId().toString(); FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil(); filtroImovelPerfil.adicionarParametro(new ParametroSimples( FiltroImovelPerfil.ID, os.getImovel().getImovelPerfil().getId())); Collection collImovelPerfil = getControladorUtil().pesquisar( filtroImovelPerfil, ImovelPerfil.class.getName()); ImovelPerfil imovelPerfil = (ImovelPerfil) Util.retonarObjetoDeColecao(collImovelPerfil); perfil += imovelPerfil != null ? "- " + imovelPerfil.getDescricao() : ""; // N�mero O.S String numeroOS = os.getId().toString(); // Obter os usu�rios FiltroOrdemServicoUnidade filtroOrdemServicoUnidade = new FiltroOrdemServicoUnidade(); filtroOrdemServicoUnidade.adicionarCaminhoParaCarregamentoEntidade( "atendimentoRelacaoTipo"); filtroOrdemServicoUnidade.adicionarCaminhoParaCarregamentoEntidade( "usuario"); filtroOrdemServicoUnidade.adicionarParametro(new ParametroSimples( FiltroOrdemServicoUnidade.ORDEM_SERVICO_ID, os.getId())); Collection collOrdemServicoUnidades = getControladorUtil().pesquisar( filtroOrdemServicoUnidade, OrdemServicoUnidade.class.getName()); Iterator it = collOrdemServicoUnidades.iterator(); OrdemServicoUnidade unidade = null; // Usu�rio Abertura String usuarioAberturaOS = ""; String nomeUsuarioAberturaOS = ""; // Usu�rio Encerramento String usuarioEncerramentoOS = ""; String nomeUsuarioEncerramentoOS = ""; while (it.hasNext()){ unidade = (OrdemServicoUnidade) it.next(); if(unidade.getAtendimentoRelacaoTipo().getId() == 1){ usuarioAberturaOS = unidade.getUsuario().getLogin(); nomeUsuarioAberturaOS = "- " + unidade.getUsuario().getNomeUsuario(); } if(unidade.getAtendimentoRelacaoTipo().getId() == 3){ usuarioEncerramentoOS = unidade.getUsuario().getLogin(); nomeUsuarioEncerramentoOS = "- " + unidade.getUsuario().getNomeUsuario(); } } // Data Encerramento String dataEncerramento = Util.formatarData( os.getDataEncerramento()); // Obtendo os d�bitos do imovel Integer tipoImovel = new Integer(1); Integer indicadorPagamento = new Integer(1); Integer indicadorConta = new Integer(1); Integer indicadorDebito = new Integer(1); Integer indicadorCredito = new Integer(1); Integer indicadorNotas = new Integer(1); Integer indicadorGuias = new Integer(1); Integer indicadorAtualizar = new Integer(1); String referenciaInicial = "01/0001"; String referenciaFinal = "12/9999"; String dataVencimentoInicial = "01/01/0001"; String dataVencimentoFinal = "31/12/9999"; // Para auxiliar na formata��o de uma data SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); String mesInicial = referenciaInicial.substring(0, 2); String anoInicial = referenciaInicial.substring(3, referenciaInicial.length()); String anoMesInicial = anoInicial + mesInicial; String mesFinal = referenciaFinal.substring(0, 2); String anoFinal = referenciaFinal.substring(3, referenciaFinal.length()); String anoMesFinal = anoFinal + mesFinal; Date dataVencimentoDebitoI; Date dataVencimentoDebitoF; try { dataVencimentoDebitoI = formatoData.parse(dataVencimentoInicial); } catch (ParseException ex) { dataVencimentoDebitoI = null; } try { dataVencimentoDebitoF = formatoData.parse(dataVencimentoFinal); } catch (ParseException ex) { dataVencimentoDebitoF = null; } ObterDebitoImovelOuClienteHelper colecaoDebitoImovel = getControladorCobranca() .obterDebitoImovelOuCliente(tipoImovel.intValue(), os.getImovel().getId().toString().trim(), null, null, anoMesInicial, anoMesFinal, dataVencimentoDebitoI, dataVencimentoDebitoF, indicadorPagamento.intValue(), indicadorConta.intValue(), indicadorDebito.intValue(), indicadorCredito.intValue(), indicadorNotas.intValue(), indicadorGuias.intValue(), indicadorAtualizar.intValue(), null); // Valor Conta Collection<ContaValoresHelper> colecaoContaValores = colecaoDebitoImovel.getColecaoContasValores(); BigDecimal valorConta = new BigDecimal("0.00"); ContaValoresHelper dadosConta = null; if (colecaoContaValores != null && !colecaoContaValores.isEmpty()) { java.util.Iterator<ContaValoresHelper> colecaoContaValoresIterator = colecaoContaValores.iterator(); // percorre a colecao de conta somando o valor para obter um valor total while (colecaoContaValoresIterator.hasNext()) { dadosConta = (ContaValoresHelper) colecaoContaValoresIterator.next(); valorConta = valorConta.add(dadosConta.getConta().getValorTotal()); } } // D�bito a Cobrar Collection<DebitoACobrar> colecaoDebitoACobrar = colecaoDebitoImovel.getColecaoDebitoACobrar(); BigDecimal valorDebitoACobrar = new BigDecimal("0.00"); DebitoACobrar dadosDebito = null; if (colecaoDebitoACobrar != null && !colecaoDebitoACobrar.isEmpty()) { java.util.Iterator<DebitoACobrar> colecaoDebitoACobrarIterator = colecaoDebitoACobrar.iterator(); // percorre a colecao de debito a cobrar somando o valor para obter um valor total while (colecaoDebitoACobrarIterator.hasNext()) { dadosDebito = (DebitoACobrar) colecaoDebitoACobrarIterator.next(); valorDebitoACobrar = valorDebitoACobrar.add(dadosDebito.getValorTotalComBonus()); } } // Guia de Pagamento BigDecimal valorGuiaPagamento = new BigDecimal("0.00"); GuiaPagamentoValoresHelper dadosGuiaPagamentoValoresHelper = null; Collection<GuiaPagamentoValoresHelper> colecaoGuiaPagamentoValores = colecaoDebitoImovel.getColecaoGuiasPagamentoValores(); if (colecaoGuiaPagamentoValores != null && !colecaoGuiaPagamentoValores.isEmpty()) { java.util.Iterator<GuiaPagamentoValoresHelper> colecaoGuiaPagamentoValoresHelperIterator = colecaoGuiaPagamentoValores.iterator(); // percorre a colecao de guia de pagamento somando o valor para obter um valor total while (colecaoGuiaPagamentoValoresHelperIterator.hasNext()) { dadosGuiaPagamentoValoresHelper = (GuiaPagamentoValoresHelper) colecaoGuiaPagamentoValoresHelperIterator.next(); valorGuiaPagamento = valorGuiaPagamento.add(dadosGuiaPagamentoValoresHelper.getGuiaPagamento().getValorDebito()); } } // Cr�dito a Realizar BigDecimal valorCreditoARealizar = new BigDecimal("0.00"); CreditoARealizar dadosCredito = null; Collection<CreditoARealizar> colecaoCreditoARealizar = colecaoDebitoImovel.getColecaoCreditoARealizar(); if (colecaoCreditoARealizar != null && !colecaoCreditoARealizar.isEmpty()) { java.util.Iterator<CreditoARealizar> colecaoCreditoARealizarIterator = colecaoCreditoARealizar.iterator(); // percorre a colecao de credito a realizar somando o valor para obter um valor total while (colecaoCreditoARealizarIterator.hasNext()) { dadosCredito = (CreditoARealizar) colecaoCreditoARealizarIterator.next(); valorCreditoARealizar = valorCreditoARealizar.add(dadosCredito.getValorTotalComBonus()); } } // Soma o valor total dos debitos e subtrai dos creditos BigDecimal valorTotalSemAcrescimo = valorConta.add(valorDebitoACobrar); valorTotalSemAcrescimo = valorTotalSemAcrescimo.add(valorGuiaPagamento); valorTotalSemAcrescimo = valorTotalSemAcrescimo.subtract(valorCreditoARealizar); // Valor D�bito String valorDebito = Util.formatarMoedaReal(valorTotalSemAcrescimo); if(relatorioHelper.getEscolhaRelatorio() == 1){ helper = new RelatorioReligacaoClientesInadiplentesHelper( matricula, endereco, perfil, numeroOS, usuarioAberturaOS, nomeUsuarioAberturaOS, dataEncerramento, usuarioEncerramentoOS, nomeUsuarioEncerramentoOS, valorDebito ); } else if(relatorioHelper.getEscolhaRelatorio() == 2){ // Nome Cliente String nomeCliente = ""; String cpfCnpj = ""; String tipoRelacao = ""; FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel(); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade( FiltroClienteImovel.CLIENTE); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade( FiltroClienteImovel.CLIENTE_RELACAO_TIPO); filtroClienteImovel.adicionarParametro(new ParametroSimples( FiltroClienteImovel.IMOVEL_ID, os.getImovel().getId())); filtroClienteImovel.setCampoOrderBy(FiltroClienteImovel.CLIENTE_NOME); Collection collClientesImoveis = getControladorUtil().pesquisar( filtroClienteImovel, ClienteImovel.class.getName()); Iterator iClientesImoveis = collClientesImoveis.iterator(); ClienteImovel clienteImovel = null; while (iClientesImoveis.hasNext()){ clienteImovel = (ClienteImovel) iClientesImoveis.next(); if(clienteImovel.getDataFimRelacao() == null){ nomeCliente = clienteImovel.getCliente().getNome(); cpfCnpj = Util.formatarCpf( clienteImovel.getCliente().getCpf()); if(cpfCnpj == null || cpfCnpj.equals("")){ cpfCnpj = Util.formatarCnpj( clienteImovel.getCliente().getCnpj()); } tipoRelacao = clienteImovel.getClienteRelacaoTipo().getDescricao(); helper = new RelatorioReligacaoClientesInadiplentesHelper( nomeCliente, cpfCnpj, tipoRelacao, matricula, endereco, perfil, numeroOS, usuarioAberturaOS, nomeUsuarioAberturaOS, dataEncerramento, usuarioEncerramentoOS, nomeUsuarioEncerramentoOS, valorDebito ); colecaoRetorno.add(helper); helper = null; } } } else if(relatorioHelper.getEscolhaRelatorio() == 3 || relatorioHelper.getEscolhaRelatorio() == 4 || relatorioHelper.getEscolhaRelatorio() == 5 ){ // Nome Cliente String nomeCliente = ""; String cpfCnpj = ""; String tipoRelacao = ""; FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel(); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade( FiltroClienteImovel.CLIENTE); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade( FiltroClienteImovel.CLIENTE_RELACAO_TIPO); filtroClienteImovel.adicionarParametro(new ParametroSimples( FiltroClienteImovel.IMOVEL_ID, os.getImovel().getId())); filtroClienteImovel.setCampoOrderBy(FiltroClienteImovel.CLIENTE_NOME); Collection collClientesImoveis = getControladorUtil().pesquisar( filtroClienteImovel, ClienteImovel.class.getName()); Iterator iClientesImoveis = collClientesImoveis.iterator(); ClienteImovel clienteImovel = null; while (iClientesImoveis.hasNext()){ clienteImovel = (ClienteImovel) iClientesImoveis.next(); if(clienteImovel.getDataFimRelacao() == null && clienteImovel.getClienteRelacaoTipo().getId().compareTo(ClienteRelacaoTipo.USUARIO.intValue()) == 0){ nomeCliente = clienteImovel.getCliente().getNome(); cpfCnpj = Util.formatarCpf( clienteImovel.getCliente().getCpf()); if(cpfCnpj == null || cpfCnpj.equals("")){ cpfCnpj = Util.formatarCnpj( clienteImovel.getCliente().getCnpj()); } tipoRelacao = clienteImovel.getClienteRelacaoTipo().getDescricao(); helper = new RelatorioReligacaoClientesInadiplentesHelper( nomeCliente, cpfCnpj, tipoRelacao, matricula, endereco, perfil, numeroOS, usuarioAberturaOS, nomeUsuarioAberturaOS, dataEncerramento, usuarioEncerramentoOS, nomeUsuarioEncerramentoOS, valorDebito ); colecaoRetorno.add(helper); helper = null; } } } if(helper != null){ colecaoRetorno.add(helper); } } } } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } return colecaoRetorno; } /** * [UC1120] Gerar Relat�rio de religa��o de clientes inadimplentes * * @author Hugo Leonardo * @date 25/01/2011 * * @throws ErroRepositorioException */ public Integer countRelatorioReligacaoClientesInadiplentes( FiltrarRelatorioReligacaoClientesInadiplentesHelper helper) throws ControladorException { Integer quantidade = 0; try { Collection colecaoIdsOS = this.repositorioAtendimentoPublico.pesquisarRelatorioReligacaoClientesInadiplentesOS(helper); if(!Util.isVazioOrNulo(colecaoIdsOS)){ quantidade = colecaoIdsOS.size(); } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } return quantidade; } /** * Obt�m a cole��o de perfis de tipo de servi�o para OS. * * @author Hugo Azevedo * @date 22/06/2011 * * @throws ControladorException */ public Collection obterColecaoTipoOSgerada() throws ControladorException{ Collection retornoSql = null; try{ retornoSql = this.repositorioAtendimentoPublico.obterColecaoTipoOSgerada(); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } Collection retorno = new ArrayList(); ServicoTipo st = null; Iterator it = retornoSql.iterator(); Object[] obj = null; while(it.hasNext()){ obj = (Object[]) it.next(); st = new ServicoTipo(); st.setId((Integer)obj[0]); st.setDescricao((String)obj[1]); retorno.add(st); } return retorno; } /** * Obt�m a cole��o de OS a partir dos par�metros passados pela funcionalidade de Acompanhamento de Cobran�a por Resultado. * * @author Hugo Azevedo * @date 27/06/2011 * * @throws ControladorException */ public Collection obterColecaoImovelOSCobrancaResultado(String[] categoriaImovel, String[] perfilImovel, String[] gerenciaRegional, String[] unidadeNegocio, String idLocalidadeInicial, String idLocalidadeFinal, String idSetorComercialInicial, String idSetorComercialFinal, String idQuadraInicial, String idQuadraFinal, String tipoServico,String comando) throws ControladorException{ Collection retornoQuery = null; try{ retornoQuery = this.repositorioAtendimentoPublico.obterColecaoImovelOSCobrancaResultado( categoriaImovel, perfilImovel, gerenciaRegional, unidadeNegocio, idLocalidadeInicial, idLocalidadeFinal, idSetorComercialInicial, idSetorComercialFinal, idQuadraInicial, idQuadraFinal, tipoServico, comando ); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } Collection retorno = new ArrayList(); HashMap map = null; Iterator it = retornoQuery.iterator(); while(it.hasNext()){ Object[] objItems = (Object[])it.next(); map = new HashMap(); map.put("imovel",(Integer)objItems[0]); map.put("idGerenciaRegional",(Integer)objItems[1]); map.put("descGerenciaRegional",(String)objItems[2]); map.put("idUnidadeNegocio",(Integer)objItems[3]); map.put("descUnidadeNegocio",(String)objItems[4]); retorno.add(map); } return retorno; } /** * [UC1177] Gerar Relat�rio de Ordens de Servi�o por Situa��o * * O segundo par�metro (boletimGerado) � um booleano que * indica se para um dado grupo de cobran�a e um m�s referencia * foi gerado um boletim de medi��o. * * @author Diogo Peixoto * @date 09/06/2011 * * @param FiltrarRelatorioOSSituacaoHelper * * @return RelatorioOSSituacaoHelper * @throws ControladorException */ public RelatorioOSSituacaoHelper filtrarRelatorioOSSituacao(FiltrarRelatorioOSSituacaoHelper filtro) throws ControladorException{ Collection<Object[]> colecaoOSSituacao = new ArrayList(); Collection<RelatorioOSSituacaoBean> beans = new ArrayList(); RelatorioOSSituacaoBean bean = null; RelatorioOSSituacaoHelper helper = new RelatorioOSSituacaoHelper(); try { FiltroCobrancaBoletimMedicao filtroBoletim = new FiltroCobrancaBoletimMedicao(); filtroBoletim.adicionarParametro(new ParametroSimples(FiltroCobrancaBoletimMedicao.COBRANCA_GRUPO_ID, filtro.getIdGrupoCobranca())); filtroBoletim.adicionarParametro(new ParametroSimples(FiltroCobrancaBoletimMedicao.ANO_MES_REFERENCIA, filtro.getDataReferencia())); Collection<CobrancaBoletimMedicao> medicoes = Fachada.getInstancia().pesquisar(filtroBoletim, CobrancaBoletimMedicao.class.getName()); //Caso o grupo de cobran�a com ano/m�s j� tenha sido gerado boletim if(!Util.isVazioOrNulo(medicoes)){ colecaoOSSituacao = this.repositorioAtendimentoPublico.filtrarRelatorioOSSituacao(filtro, true); //Caso contr�rio }else{ colecaoOSSituacao = this.repositorioAtendimentoPublico.filtrarRelatorioOSSituacao(filtro, false); } if (!Util.isVazioOrNulo(colecaoOSSituacao)){ Iterator iteOSSituacao = colecaoOSSituacao.iterator(); Object[] linha = null; while (iteOSSituacao.hasNext() ){ linha = (Object[]) iteOSSituacao.next(); if(filtro.getOpcaoRelatorio().equals("1")){ String strIdOS = null; if(linha[0] != null){ strIdOS = String.valueOf((Integer) linha[0]); } String strMatriculaIMovel = null; String endImovel = null; if(linha[1] != null){ Integer idImovel = (Integer) linha[1]; strMatriculaIMovel = Util.retornaMatriculaImovelFormatada(idImovel); endImovel = Fachada.getInstancia().obterEnderecoAbreviadoImovel(idImovel); } String tipoServico = null; if(linha[2] != null){ tipoServico = (String) linha[2]; } Date dateEncerramento = null; if(linha[3] != null){ dateEncerramento = (Date) linha[3]; } String naoCobrada = ""; if(linha[4] != null){ naoCobrada = (String) linha[4]; } BigDecimal valorConsumoFraudado = null; if(linha[5] != null){ valorConsumoFraudado = (BigDecimal) linha[5]; } BigDecimal valorMulta = null; if(linha[6] != null){ valorMulta = (BigDecimal) linha[6]; } String motivoEncerramento = null; if(linha[7] != null){ motivoEncerramento = (String) linha[7]; } String retornoFiscalizacao = null; if(linha[8] != null){ retornoFiscalizacao = (String) linha[8]; } String parecerEncerramento = null; if(linha[9] != null){ parecerEncerramento = (String) linha[9]; } String situacaoOS = null; if(linha[10] != null){ situacaoOS = (String) linha[10]; /* * Se a situa��o da ordem de servi�o for igual a TODAS, o resultset da situa��o os * ser� n�meros de acordo com o seguinte crit�rio: * 1.Fiscalizadas * 2.Descontadas * 3.Executadas * 4.Justificadas * 5.Penalizadas por Fiscaliza��o * 6.Penalizadas por Decurso de Prazo * */ if(filtro.getSituacaoOS().equals("8") || filtro.getSituacaoOS().equals("13")){ Integer numeroSituacaoOS = Integer.valueOf(situacaoOS); switch (numeroSituacaoOS) { case 1: situacaoOS = "Fiscalizadas"; break; case 2: situacaoOS = "Descontadas"; break; case 3: situacaoOS = "Executadas"; break; case 4: situacaoOS = "Justificadas"; break; case 5: situacaoOS = "Penalizadas por Fiscaliza��o"; break; case 6: situacaoOS = "Penalizadas por Decurso de Prazo"; break; case 7: situacaoOS = "Fiscalizadas"; break; case 8: situacaoOS = "Encerradas com Execu��o"; break; case 9: situacaoOS = "Pendentes"; break; case 10: situacaoOS = "Encerrados por Decurso de Prazo"; break; } } } bean = new RelatorioOSSituacaoBean(strIdOS, strMatriculaIMovel, endImovel, tipoServico, dateEncerramento, naoCobrada, valorConsumoFraudado, valorMulta, motivoEncerramento, retornoFiscalizacao, parecerEncerramento, situacaoOS); beans.add(bean); }else if(filtro.getOpcaoRelatorio().equals("2")){ String tipoServico = (String) linha[0]; String motivoEncerramento = (String) linha[1]; String retornoFiscalizacao = (String) linha[2]; String situacaoOS = (String) linha[3]; /* * Se a situa��o da ordem de servi�o for igual a TODAS, o resultset da situa��o os * ser� n�meros de acordo com o seguinte crit�rio: * 1.Fiscalizadas * 2.Descontadas * 3.Executadas * 4.Justificadas * 5.Penalizadas por Fiscaliza��o * 6.Penalizadas por Decurso de Prazo * */ if(filtro.getSituacaoOS().equals("8") || filtro.getSituacaoOS().equals("13")){ Integer numeroSituacaoOS = Integer.valueOf(situacaoOS); switch (numeroSituacaoOS) { case 1: situacaoOS = "Fiscalizadas"; break; case 2: situacaoOS = "Descontadas"; break; case 3: situacaoOS = "Executadas"; break; case 4: situacaoOS = "Justificadas"; break; case 5: situacaoOS = "Penalizadas por Fiscaliza��o"; break; case 6: situacaoOS = "Penalizadas por Decurso de Prazo"; break; case 7: situacaoOS = "Fiscalizadas"; break; case 8: situacaoOS = "Encerradas com Execu��o"; break; case 9: situacaoOS = "Pendentes"; break; case 10: situacaoOS = "Encerrados por Decurso de Prazo"; break; } } Integer quantidade = 0; if(linha[4] != null){ quantidade = (Integer) linha[4]; } bean = new RelatorioOSSituacaoBean(tipoServico, motivoEncerramento, retornoFiscalizacao, situacaoOS, quantidade); beans.add(bean); } } //Configurando os par�metros da consulta GerenciaRegional gerenciaRegional = filtro.getGerenciaRegional(); if(gerenciaRegional != null){ helper.setGerenciaRegional(gerenciaRegional.getId() + " - " + gerenciaRegional.getNome()); } SetorComercial setorComercial = filtro.getSetorComercial(); if(setorComercial != null){ helper.setSetorComercial(setorComercial.getId() + " - " + setorComercial.getDescricao()); }else{ helper.setSetorComercial(null); } UnidadeNegocio unidadeNegocio = filtro.getUnidadeNegocio(); if(unidadeNegocio != null){ helper.setUnidadeNegocio(unidadeNegocio.getId() + " - " + unidadeNegocio.getNome()); } Quadra quadra = filtro.getQuadra(); if(quadra != null){ helper.setQuadra(quadra.getId() + " - " + quadra.getDescricao()); }else{ helper.setQuadra(null); } Localidade localidadePolo = filtro.getEloPolo(); if(localidadePolo != null){ helper.setLocalidadeEloPolo(localidadePolo.getId() + " - " + localidadePolo.getDescricao()); }else{ helper.setLocalidadeEloPolo(null); } Localidade localidade = filtro.getLocalidade(); if(localidade != null){ helper.setLocalidade(localidade.getId() + " - " + localidade.getDescricao()); }else{ helper.setLocalidade(null); } ServicoTipo servicoTipo = filtro.getServicoTipo(); if(servicoTipo != null){ helper.setTipoServico(servicoTipo.getDescricao()); }else{ helper.setTipoServico(null); } helper.setBeans(beans); } } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } return helper; } /** * [UC1178] Gerar Relat�rio de Acompanhamento dos Boletins de Medi��o * * M�todo utilizado para auxiliar na inser��o dos dados no Relat�rio * de Acompanhamento dos Boletins de Medi��o. Recebe como par�metro * o um filtro e retorno o Bean do relat�rio. * * @author Diogo Peixoto * @date 17/06/2011 * * @param FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper * @return RelatorioAcompanhamentoBoletimMedicaoHelper */ public RelatorioAcompanhamentoBoletimMedicaoHelper filtrarRelatorioAcompanhamentoBoletimMedicao( FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper filtro) throws ControladorException{ Collection<Object[]> colecaoBoletinsMedicao = new ArrayList(); Collection<Object[]> colecaoBoletinsMedicaoAcumulado = new ArrayList(); Collection<RelatorioAcompanhamentoBoletimMedicaoBean> beans = new ArrayList(); RelatorioAcompanhamentoBoletimMedicaoBean bean = null; RelatorioAcompanhamentoBoletimMedicaoHelper helper = null; BigDecimal valorMedidoPeriodoTotal = new BigDecimal("0.00"); try { boolean relatorioDefinitivo = this.repositorioAtendimentoPublico.gruposIniciaodsJaForamEncerrados(filtro); colecaoBoletinsMedicao = this.repositorioAtendimentoPublico.filtrarRelatorioAcompanhamentoBoletimMedicao(filtro, relatorioDefinitivo); colecaoBoletinsMedicaoAcumulado = this.repositorioAtendimentoPublico.filtrarRelatorioAcompanhamentoBoletimMedicaoAcumuladas(filtro); if (!Util.isVazioOrNulo(colecaoBoletinsMedicao)){ Iterator iteBoletinsMedicao = colecaoBoletinsMedicao.iterator(); Iterator iteBoletinsMedicaoAcumulado = colecaoBoletinsMedicaoAcumulado.iterator(); Object[] linha = null; Integer idItemServico; String descricaoServico; BigDecimal quantidadeOrcada; BigDecimal valorUnitario; Integer quantidadeItem; BigDecimal valorItem; String unidadeItem; BigDecimal valorOrcado; BigDecimal valorMedidoPeriodo = new BigDecimal("0.00"); Object[] linhaAcumulado = null; Integer quantidadeItemAcumulada = 0; BigDecimal valorAcumuladoPeriodo = new BigDecimal("0.00"); while (iteBoletinsMedicao.hasNext() ){ linhaAcumulado = null; if(iteBoletinsMedicaoAcumulado.hasNext()){ linhaAcumulado = (Object[]) iteBoletinsMedicaoAcumulado.next(); if(linhaAcumulado[2] != null){ quantidadeItemAcumulada = (Integer) linhaAcumulado[2]; } if(linhaAcumulado[3] != null){ valorAcumuladoPeriodo = (BigDecimal) linhaAcumulado[3]; } } linha = (Object[]) iteBoletinsMedicao.next(); idItemServico = null; if(linha[0] != null){ idItemServico = (Integer) linha[0]; } descricaoServico = null; if(linha[1] != null){ descricaoServico = (String) linha[1]; } quantidadeOrcada = new BigDecimal("0.00");; if(linha[2] != null){ quantidadeOrcada = (BigDecimal) linha[2]; } valorUnitario = new BigDecimal("0.00");; if(linha[3] != null){ valorUnitario = (BigDecimal) linha[3]; } quantidadeItem = 0; if(linha[4] != null){ quantidadeItem = (Integer) linha[4]; } valorItem = new BigDecimal("0.00"); if(linha[5] != null){ valorItem = (BigDecimal) linha[5]; } unidadeItem = null; if(linha[6] != null){ unidadeItem = (String) linha[6]; } valorOrcado = new BigDecimal("0.00"); if(linha[7] != null){ valorOrcado = (BigDecimal) linha[7]; } if(linha[8] != null){ valorMedidoPeriodo = (BigDecimal) linha[8]; } //Acumular para fazer o c�lculo da penalidade de contrato de n�o execu��o. valorMedidoPeriodoTotal = valorMedidoPeriodoTotal.add(valorMedidoPeriodo); bean = new RelatorioAcompanhamentoBoletimMedicaoBean(idItemServico, descricaoServico, quantidadeOrcada, valorUnitario, quantidadeItem, valorItem, unidadeItem, valorOrcado, valorMedidoPeriodo, quantidadeItemAcumulada, valorAcumuladoPeriodo); beans.add(bean); } BigDecimal taxaSucesso = this.repositorioAtendimentoPublico.pesquisarTaxaSucessoBoletimMedicao(filtro); String tipoRelatorio = null; BigDecimal penalidadeOS = new BigDecimal("0.00"); BigDecimal penalidadeFiscalizacao = new BigDecimal("0.00"); Collection<BigDecimal> penalidades = this.repositorioAtendimentoPublico.filtrarRelatorioAcompanhamentoBoletimMedicaoPenalidades( filtro, relatorioDefinitivo); Iterator<BigDecimal> iterator = penalidades.iterator(); /* * Calculas as penalidades de ordem de servi�o e de fiscaliza��o * O m�todo do reposit�rio sempre ir� retornar no m�nimo dois valores. */ if(iterator.hasNext()){ penalidadeOS = iterator.next(); penalidadeFiscalizacao = iterator.next(); } /* * Caso o relat�rio seja definitivo o m�todo do reposit�rio ir� retornar duas penalidades a mais: * penalidade pela n�o realiza��o de servi�os e penalidade por corte ou supress�o indevida. * */ if(relatorioDefinitivo){ tipoRelatorio = "DEFINITIVO"; BigDecimal penalidadeNaoRealizacao = iterator.next(); BigDecimal penalidadeCorteSupressao = iterator.next(); BigDecimal penalidadeContratoNaoExecucao = new BigDecimal("0.00"); double quantidadeOSExecutadas = this.repositorioAtendimentoPublico.pesquisarQuantidadeOSExecutadas(filtro); double quantidadeOSPenalizadas = this.repositorioAtendimentoPublico.pesquisarQuantidadeOSPenalizadas(filtro); double denominador = quantidadeOSExecutadas + quantidadeOSPenalizadas; if(denominador != 0){ BigDecimal percentual = new BigDecimal(((100 * quantidadeOSPenalizadas) / denominador)); percentual = percentual.setScale(2, BigDecimal.ROUND_HALF_UP); if(percentual.doubleValue() > 5.00){ double penalidadeNaoExecucao = 0.02 * ((valorMedidoPeriodoTotal.doubleValue() + taxaSucesso.doubleValue()) - (penalidadeOS.doubleValue() + penalidadeFiscalizacao.doubleValue())); penalidadeContratoNaoExecucao = new BigDecimal(penalidadeNaoExecucao); penalidadeContratoNaoExecucao = penalidadeContratoNaoExecucao.abs().setScale(2, BigDecimal.ROUND_HALF_UP); } } double penalidadeNaoRealizacaoServico = 0.02 * ((valorMedidoPeriodoTotal.doubleValue() + taxaSucesso.doubleValue()) - (penalidadeCorteSupressao.doubleValue() + penalidadeNaoRealizacao.doubleValue())); BigDecimal penalidadeContratoNaoRealizacaoServico = BigDecimal.valueOf(penalidadeNaoRealizacaoServico).setScale(2, BigDecimal.ROUND_HALF_UP); helper = new RelatorioAcompanhamentoBoletimMedicaoHelper(beans, tipoRelatorio, taxaSucesso, penalidadeOS, penalidadeFiscalizacao, penalidadeContratoNaoExecucao, penalidadeCorteSupressao, penalidadeNaoRealizacao, penalidadeContratoNaoRealizacaoServico); }else{ tipoRelatorio = "SIMULA��O"; helper = new RelatorioAcompanhamentoBoletimMedicaoHelper(beans, tipoRelatorio, taxaSucesso, penalidadeOS, penalidadeFiscalizacao); } } }catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } return helper; } /** * [UC1186] Gerar Relat�rio Ordem de Servi�o Cobran�a p/Resultado * * Pesquisar as Ordens de servi�os a partir de seu im�vel e tipo de servi�o * * @author Hugo Azevedo * @data 14/01/2011 */ public Collection obterOSImovelTipoServico(Integer id, Integer tipoServico) throws ControladorException{ try{ return repositorioAtendimentoPublico.obterOSImovelTipoServico(id,tipoServico); } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } } /** * * [UC1186] Gerar Relat�rio Ordem de Servi�o Cobran�a p/Resultado * * Obt�m a quantida de OS a partir dos par�metros passados pela funcionalidade de Acompanhamento de Cobran�a por Resultado. * * @author Hugo Azevedo * @date 27/06/2011 * * @throws ControladorException */ public int obterTotalOSColecaoImovelTipoServico(Collection colecaoImovel,Integer tipoServico) throws ControladorException{ int retorno = 0; Collection retornoQuery = new ArrayList(); Collection colecaoParametro = new ArrayList(); Iterator it = colecaoImovel.iterator(); while(it.hasNext()){ HashMap mapa = (HashMap)it.next(); Integer id = (Integer)mapa.get("imovel"); colecaoParametro.add(id); } try{ retornoQuery = repositorioAtendimentoPublico.obterTotalOSColecaoImovelTipoServico(colecaoParametro,tipoServico); } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } if(retornoQuery.size() > 0){ Integer retornoInt = (Integer) Util.retonarObjetoDeColecao(retornoQuery); retorno = retornoInt.intValue(); } return retorno; } /** * [UC1189] Inserir Registro de Atendimento Loja Virtual * * @author Magno Gouveia * @date 12/07/2011 * * @return * @throws ControladorException */ public Collection<Object[]> pesquisarSolicitacaoTipoLojaVirtual() throws ControladorException { try{ return repositorioAtendimentoPublico.pesquisarSolicitacaoTipoLojaVirtual(); } catch (ErroRepositorioException erx) { erx.printStackTrace(); throw new ControladorException("erro.sistema", erx); } } /** * [UC1196] Exibir Lojas de Atendimento na Loja Virtual * [SB0001] Selecionar Munic�pios da Regi�o * * @author Magno Gouveia * @date 14/07/2011 * * @return colecaoDeMunicipios * @throws ControladorException */ public Collection<Object[]> pesquisarMunicipiosLojaVirtualCompesa() throws ControladorException { try { return repositorioAtendimentoPublico.pesquisarMunicipiosLojaVirtualCompesa(); } catch (ErroRepositorioException erx) { erx.printStackTrace(); throw new ControladorException("erro.sistema", erx); } } /** * [UC1196] Exibir Lojas de Atendimento na Loja Virtual * [SB0002] Exibir dados da loja * * @author Magno Gouveia * @date 14/07/2011 * * @param id do municipio * @return colecaoDeLojas * @throws ControladorException */ public Collection<Object[]> pesquisarLojasDeAtendimentoLojaVirtualCompesa(Integer idMunicipio) throws ControladorException { try { return repositorioAtendimentoPublico.pesquisarLojasDeAtendimentoLojaVirtualCompesa(idMunicipio); } catch (ErroRepositorioException erx) { erx.printStackTrace(); throw new ControladorException("erro.sistema", erx); } } public void ProcessarEncerramentoOSFiscalizacaoDecursoPrazo(Integer idFuncionalidadeIniciada) throws ControladorException{ int idUnidadeIniciada = 0; // ------------------------- // // Registrar o in�cio do processamento da Unidade de // Processamento // do Batch // // ------------------------- idUnidadeIniciada = getControladorBatch() .iniciarUnidadeProcessamentoBatch( idFuncionalidadeIniciada, UnidadeProcessamento.FUNCIONALIDADE, 0); Usuario usuarioLogado = Usuario.USUARIO_BATCH; try { SistemaParametro sistemaParametro = getControladorUtil() .pesquisarParametrosDoSistema(); //1. Caso o n�mero de dias para encerrar as ordens de servi�o de fiscaliza��o por decurso de prazo tenha sido informado if(sistemaParametro.getNumeroDiasEncerrarOsFiscalizacaoDecursoPrazo() != null && sistemaParametro.getNumeroDiasEncerrarOsFiscalizacaoDecursoPrazo().intValue() > 0){ Short idMotivoEncerramento = AtendimentoMotivoEncerramento.CANCELADO_POR_DERCURSO_DE_PRAZO; //seleciona as ordens de servi�o de "Fiscaliza��o" que ainda n�o tenham sido executadas Collection colecaoOS = repositorioAtendimentoPublico.obterColecaoOSFiscalizacaoNaoExecutadas(); Date dataAtual = new Date(); Iterator it = colecaoOS.iterator(); //Unidade Organizacional do usu�rio logado FiltroUsuario filtroUsuario = new FiltroUsuario(); filtroUsuario.adicionarParametro( new ParametroSimples(FiltroUsuario.ID, usuarioLogado.getId())); filtroUsuario.adicionarCaminhoParaCarregamentoEntidade( FiltroUsuario.UNIDADE_ORGANIZACIONAL); Collection colecaoUsuario = Fachada.getInstancia().pesquisar(filtroUsuario, Usuario.class.getName()); usuarioLogado = (Usuario) Util.retonarObjetoDeColecao(colecaoUsuario); while(it.hasNext()){ Object[] obj = (Object[])it.next(); Integer osId = (Integer) obj[0]; Date dataEmissao = (Date) obj[1]; //FERIADO NACIONAL Collection<NacionalFeriado> colecaoFeriadosNacionais = getControladorUtil().pesquisarFeriadosNacionais(); //Calculando a data de validade da Ordem de Servi�o Date DataVencimento = Util.adicionarNumeroDiasUteisDeUmaData( dataEmissao, sistemaParametro.getNumeroDiasEncerrarOsFiscalizacaoDecursoPrazo().intValue(), colecaoFeriadosNacionais, null); //Verificar se a OS venceu if(Util.compararData(dataAtual, DataVencimento) == 1){ // encerrar a ordem de servi�o, com o motivo // correspodente a decurso de prazo // [UC0457] - Encerrar Ordem de Servi�o this.getControladorOrdemServico() .encerrarOSSemExecucao( osId, dataAtual, usuarioLogado, idMotivoEncerramento.toString(), dataAtual, null, null, null, null,null,null); } } getControladorBatch().encerrarUnidadeProcessamentoBatch(null, idUnidadeIniciada, false); System.out.println("########## FINALIZADO EM = " + new Date()); } else{ getControladorBatch().encerrarUnidadeProcessamentoBatch(null, idUnidadeIniciada, false); System.out.println("########## FINALIZADO EM = " + new Date()); } } catch (Exception e) { // Este catch serve para interceptar qualquer exce��o que o processo // batch venha a lan�ar e garantir que a unidade de processamento do // batch ser� atualizada com o erro ocorrido e.printStackTrace(); getControladorBatch().encerrarUnidadeProcessamentoBatch(e, idUnidadeIniciada, true); System.out.println("########## FINALIZADO EM = " + new Date()); throw new EJBException(e); } } /** * [UC1199] � Acompanhar Arquivos de Roteiro * [SB0003] � Pesquisar Fotos da OS * * M�todo que vai retornar as fotos de uma determinada * ordem de servi�o passada no par�metro. * * @author Diogo Peixoto * @date 12/08/2011 * * @param Integer - ID (Ordem de Servi�o ou da Foto Ordem de Servi�o) * @param Boolean - Indica se o id � da OS ou da Foto (true = OS, false = Foto) * * @return Collection<OrdemServicoFoto> - Cole��o das Fotos da OS * @throws ControladorException */ public Collection<OrdemServicoFoto> pesquisarFotosOrdemServico(Integer id, boolean idOS) throws ControladorException{ Collection<OrdemServicoFoto> fotos = null; Collection<Object[]> retorno = null; try { if(idOS){ retorno = this.repositorioAtendimentoPublico.pesquisarFotosOrdemServico(id); }else{ retorno = this.repositorioAtendimentoPublico.pesquisarFotosOrdemServicoPorIdFoto(id); } //Verifica se a consulta trouxe algum ResultSet if(!Util.isVazioOrNulo(retorno)){ Object[] ordemServicoFoto; //Ordem de servi�o foto e seus atributos necess�rios para instancia��o. OrdemServicoFoto osFoto = null; Integer idFoto = null; OrdemServico os = null; String descricaoFoto = ""; byte[] foto = null; fotos = new ArrayList<OrdemServicoFoto>(); Iterator<Object[]> iterator = retorno.iterator(); //Itera pelas linhas do ResultSet while(iterator.hasNext()){ ordemServicoFoto = iterator.next(); if(ordemServicoFoto[0] != null){ idFoto = (Integer) ordemServicoFoto[0]; } if(ordemServicoFoto[1] != null){ os = new OrdemServico(); os.setId((Integer) ordemServicoFoto[1]); } if(ordemServicoFoto[2] != null){ descricaoFoto = (String) ordemServicoFoto[2]; } if(ordemServicoFoto[3] != null){ foto = (byte[]) ordemServicoFoto[3]; } osFoto = new OrdemServicoFoto(idFoto, os, descricaoFoto, foto); fotos.add(osFoto); } } } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } return fotos; } /** * * * @autor: Wellington Rocha * @date: 03/07/2012 * * Pesquisar Locais de Insta��o de Ramal Ativos * * Gera��o de rotas para recadastramento * * @return Collection * @throws ControladorException * */ public Collection<RamalLocalInstalacao> pesquisarRamalLocalInstalacao() throws ControladorException { try { Collection<RamalLocalInstalacao> colecaoRamalLocalInstalacao = new ArrayList<RamalLocalInstalacao>(); Collection colecao = repositorioAtendimentoPublico.pesquisarRamalLocalInstalacao(); if (colecao != null && !colecao.isEmpty()) { Iterator colecaoIterator = colecao.iterator(); while (colecaoIterator.hasNext()) { RamalLocalInstalacao ramalLocalInstalacao = (RamalLocalInstalacao) colecaoIterator .next(); colecaoRamalLocalInstalacao.add(ramalLocalInstalacao); } } return colecaoRamalLocalInstalacao; } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } public List<Municipio> obterMunicipiosAgenciaReguladora(Integer idAgencia) throws ControladorException { try { return repositorioAtendimentoPublico.obterMunicipiosAgenciaReguladora(idAgencia); } catch (ErroRepositorioException erx) { erx.printStackTrace(); throw new ControladorException("erro.sistema", erx); } } public List<AgenciaReguladora> obterAgenciasReguladorasAtivas() throws ControladorException { try { return repositorioAtendimentoPublico.obterAgenciasReguladorasAtivas(); } catch (ErroRepositorioException erx) { erx.printStackTrace(); throw new ControladorException("erro.sistema", erx); } } }