/*
* Copyright (C) 2007-2007 the GSAN - Sistema Integrado de Gest�o de Servi�os de
* Saneamento This file is part of GSAN, an integrated service management system
* for Sanitation GSAN is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License. GSAN is distributed in
* the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
* the GNU General Public License for more details. You should have received a
* copy of the GNU General Public License along with this program; if not, write
* to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA
*/
/*
* GSAN - Sistema Integrado de Gest�o de Servi�os de Saneamento Copyright (C)
* <2007> Adriano Britto Siqueira Alexandre Santos Cabral Ana Carolina Alves
* Breda Ana Maria Andrade Cavalcante Aryed Lins de Ara�jo Bruno Leonardo
* Rodrigues Barros Carlos Elmano Rodrigues Ferreira Cl�udio de Andrade Lira
* Denys Guimar�es Guenes Tavares Eduardo Breckenfeld da Rosa Borges Fab�ola
* Gomes de Ara�jo Fl�vio Leonardo Cavalcanti Cordeiro Francisco do Nascimento
* J�nior Homero Sampaio Cavalcanti Ivan S�rgio da Silva J�nior Jos� Edmar de
* Siqueira Jos� Thiago Ten�rio Lopes K�ssia Regina Silvestre de Albuquerque
* Leonardo Luiz Vieira da Silva M�rcio Roberto Batista da Silva Maria de F�tima
* Sampaio Leite Micaela Maria Coelho de Ara�jo Nelson Mendon�a de Carvalho
* Newton Morais e Silva Pedro Alexandre Santos da Silva Filho Rafael Corr�a
* Lima e Silva Rafael Francisco Pinto Rafael Koury Monteiro Rafael Palermo de
* Ara�jo Raphael Veras Rossiter Roberto Sobreira Barbalho Rodrigo Avellar
* Silveira Rosana Carvalho Barbosa S�vio Luiz de Andrade Cavalcante Tai Mu Shih
* Thiago Augusto Souza do Nascimento Tiago Moreno Rodrigues Vivianne Barbosa
* Sousa Este programa � software livre; voc� pode redistribu�-lo e/ou
* modific�-lo sob os termos de Licen�a P�blica Geral GNU, conforme publicada
* pela Free Software Foundation; vers�o 2 da Licen�a. Este programa �
* distribu�do na expectativa de ser �til, mas SEM QUALQUER GARANTIA; sem mesmo
* a garantia impl�cita de COMERCIALIZA��O ou de ADEQUA��O A QUALQUER PROP�SITO
* EM PARTICULAR. Consulte a Licen�a P�blica Geral GNU para obter mais detalhes.
* Voc� deve ter recebido uma c�pia da Licen�a P�blica Geral GNU junto com este
* programa; se n�o, escreva para Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307, USA.
*/
package gcom.gerencial.cobranca;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.batch.ControladorBatchLocal;
import gcom.batch.ControladorBatchLocalHome;
import gcom.batch.UnidadeProcessamento;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.EsferaPoder;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.ControladorImovelLocal;
import gcom.cadastro.imovel.ControladorImovelLocalHome;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.imovel.ImovelSubcategoria;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.cobranca.CobrancaSituacaoMotivo;
import gcom.cobranca.CobrancaSituacaoTipo;
import gcom.cobranca.ResumoCobrancaAcao;
import gcom.cobranca.ResumoCobrancaSituacaoEspecial;
import gcom.cobranca.ResumoPendencia;
import gcom.gerencial.arrecadacao.IRepositorioGerencialArrecadacao;
import gcom.gerencial.arrecadacao.RepositorioGerencialArrecadacaoHBM;
import gcom.gerencial.bean.CobrancaAcaoHelper;
import gcom.gerencial.bean.CobrancaAcaoPerfilHelper;
import gcom.gerencial.bean.CobrancaAcaoSituacaoHelper;
import gcom.gerencial.bean.InformarDadosGeracaoRelatorioConsultaHelper;
import gcom.gerencial.bean.InformarDadosGeracaoResumoAcaoConsultaEventualHelper;
import gcom.gerencial.bean.InformarDadosGeracaoResumoAcaoConsultaHelper;
import gcom.gerencial.cadastro.ControladorGerencialCadastroLocal;
import gcom.gerencial.cadastro.ControladorGerencialCadastroLocalHome;
import gcom.gerencial.cadastro.IRepositorioGerencialCadastro;
import gcom.gerencial.cadastro.RepositorioGerencialCadastroHBM;
import gcom.gerencial.cobranca.bean.ResumoCobrancaSituacaoEspecialHelper;
import gcom.gerencial.cobranca.bean.ResumoPendenciaAcumuladoHelper;
import gcom.gerencial.cobranca.bean.ResumoPendenciaContasGerenciaHelper;
import gcom.gerencial.cobranca.bean.ResumoPendenciaContasGerencialPorAnoHelper;
import gcom.gerencial.cobranca.bean.ResumoPendenciaCreditoARealizarGerenciaHelper;
import gcom.gerencial.cobranca.bean.ResumoPendenciaCreditoARealizarGerencialPorAnoHelper;
import gcom.gerencial.cobranca.bean.ResumoPendenciaDebitosACobrarGerenciaHelper;
import gcom.gerencial.cobranca.bean.ResumoPendenciaDebitosACobrarGerencialPorAnoHelper;
import gcom.gerencial.cobranca.bean.ResumoPendenciaGuiasPagamentoGerenciaHelper;
import gcom.gerencial.cobranca.bean.ResumoPendenciaGuiasPagamentoGerencialPorAnoHelper;
import gcom.gerencial.faturamento.IRepositorioGerencialFaturamento;
import gcom.gerencial.faturamento.RepositorioGerencialFaturamentoHBM;
import gcom.gerencial.faturamento.bean.ConsultarResumoSituacaoEspecialHelper;
import gcom.micromedicao.Rota;
import gcom.util.ConstantesJNDI;
import gcom.util.ControladorException;
import gcom.util.ControladorUtilLocal;
import gcom.util.ControladorUtilLocalHome;
import gcom.util.ErroRepositorioException;
import gcom.util.ServiceLocator;
import gcom.util.ServiceLocatorException;
import gcom.util.SistemaException;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.ejb.CreateException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
/**
* @author Thiago Toscano
* @created 19/04/2006
*/
public class ControladorGerencialCobrancaSEJB implements SessionBean {
private static final long serialVersionUID = 1L;
private IRepositorioGerencialCobranca repositorioGerencialCobranca = null;
private IRepositorioGerencialCadastro repositorioGerencialCadastro = null;
private IRepositorioGerencialFaturamento repositorioGerencialFaturamento = null;
private IRepositorioGerencialArrecadacao repositorioGerencialArrecadacao = null;
//private IRepositorioUtil repositorioUtil = null;
SessionContext sessionContext;
/**
* < <Descri��o do m�todo>>
*
* @exception CreateException
* Descri��o da exce��o
*/
public void ejbCreate() throws CreateException {
//repositorioUtil = RepositorioUtilHBM.getInstancia();
repositorioGerencialCobranca = RepositorioGerencialCobrancaHBM
.getInstancia();
repositorioGerencialCadastro = RepositorioGerencialCadastroHBM
.getInstancia();
repositorioGerencialArrecadacao = RepositorioGerencialArrecadacaoHBM
.getInstancia();
repositorioGerencialFaturamento = RepositorioGerencialFaturamentoHBM
.getInstancia();
}
/**
* Retorna a interface remota de ControladorImovel
*
* @return A interface remota do controlador de par�metro
*/
private ControladorImovelLocal getControladorImovel() {
ControladorImovelLocalHome localHome = null;
ControladorImovelLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorImovelLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_IMOVEL_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
private ControladorBatchLocal getControladorBatch() {
ControladorBatchLocalHome localHome = null;
ControladorBatchLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorBatchLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_BATCH_SEJB);
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/*
private ControladorFaturamentoLocal getControladorFaturamento() {
ControladorFaturamentoLocalHome localHome = null;
ControladorFaturamentoLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorFaturamentoLocalHome) locator
.getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_FATURAMENTO_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
*/
/*
private ControladorArrecadacaoLocal getControladorArrecadacao() {
ControladorArrecadacaoLocalHome localHome = null;
ControladorArrecadacaoLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorArrecadacaoLocalHome) locator
.getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_ARRECADACAO_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
*/
/**
* Retorna a interface remota de ControladorCadastro
*
* @return A interface remota do controlador de par�metro
*/
/*
private ControladorCadastroLocal getControladorCadastro() {
ControladorCadastroLocalHome localHome = null;
ControladorCadastroLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorCadastroLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_CADASTRO_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
*/
/**
* < <Descri��o do m�todo>>
*/
public void ejbRemove() {
}
/**
* < <Descri��o do m�todo>>
*/
public void ejbActivate() {
}
/**
* < <Descri��o do m�todo>>
*/
public void ejbPassivate() {
}
/**
* Retorna o valor de controladorUtil
*
* @return O valor de controladorUtil
*/
private ControladorUtilLocal getControladorUtil() {
ControladorUtilLocalHome localHome = null;
ControladorUtilLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorUtilLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_UTIL_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Seta o valor de sessionContext
*
* @param sessionContext
* O novo valor de sessionContext
*/
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
/**
* M�todo que gera o resumo Resumo Situacao Especial Faturamento [UC0341]
*
* @author Thiago Toscano
* @date 19/04/2006
*/
public void gerarResumoSituacaoEspecialCobranca(int idLocalidade,
int idFuncionalidadeIniciada) throws ControladorException {
int idUnidadeIniciada = 0;
// -------------------------
//
// Registrar o in�cio do processamento da Unidade de
// Processamento
// do Batch
//
// -------------------------
idUnidadeIniciada = getControladorBatch()
.iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada,
UnidadeProcessamento.LOCALIDADE, (idLocalidade));
try {
this.repositorioGerencialCobranca
.excluirTodosResumoCobrancaSituacaoEspecial(idLocalidade);
List<ResumoCobrancaSituacaoEspecialHelper> listaSimplificada = new ArrayList();
List<ResumoCobrancaSituacaoEspecial> listaResumoLigacoesEconomia = new ArrayList();
System.out
.println("<<< INICIO DO GerarResumoSituacaoEspecialCobranca >>>");
System.out.println("<<< LOCALIDADE: " + idLocalidade + " >>>");
List imoveisResumoLigacaoEconomias = this.repositorioGerencialCobranca
.getResumoSituacaoEspecialCobrancaHelper(idLocalidade);
System.out.println("<<< IMOVEIS SELECIONADOS: "
+ imoveisResumoLigacaoEconomias.size() + " >>>");
// pra cada objeto obter a categoria e o indicador de exist�ncia de
// hidr�metro
// caso ja tenha um igual soma a quantidade de economias e a
// quantidade de ligacoes
for (int i = 0; i < imoveisResumoLigacaoEconomias.size(); i++) {
Object obj = imoveisResumoLigacaoEconomias.get(i);
// if (imoveisResumoLigacaoEconomias != null &&
// imoveisResumoLigacaoEconomias.get(0) != null) {
// Object obj = imoveisResumoLigacaoEconomias.get(0);
if (obj instanceof Object[]) {
Object[] retorno = (Object[]) obj;
ResumoCobrancaSituacaoEspecialHelper helper = new ResumoCobrancaSituacaoEspecialHelper(
(Integer) retorno[0], (Integer) retorno[1],
(Integer) retorno[2], (Integer) retorno[3],
(Integer) retorno[4], (Integer) retorno[5],
(Integer) retorno[6], (Integer) retorno[7],
(Integer) retorno[8], (Integer) retorno[9],
(Integer) retorno[10], (Integer) retorno[11],
(Integer) retorno[12], (Integer) retorno[13],
(Integer) retorno[14], (Integer) retorno[15]);
// if (obj instanceof ResumoCobrancaSituacaoEspecialHelper)
// {
// ResumoCobrancaSituacaoEspecialHelper irleh =
// (ResumoCobrancaSituacaoEspecialHelper) obj;
Integer idImovel = helper.getIdImovel();
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria = this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null)
helper.setIdCategoria(categoria.getId());
// se ja existe um objeto igual a ele entao soma as ligacoes
// e as economias no ja existente
// um objeto eh igual ao outro se ele tem todos as
// informacos iguals ( excecao idImovel, quantidadeEconomia,
// quantidadeLigacoes)
if (listaSimplificada.contains(helper)) {
int posicao = listaSimplificada.indexOf(helper);
ResumoCobrancaSituacaoEspecialHelper jaCadastrado = (ResumoCobrancaSituacaoEspecialHelper) listaSimplificada
.get(posicao);
jaCadastrado.setQuantidadeImovel(jaCadastrado
.getQuantidadeImovel() + 1);
} else {
listaSimplificada.add(helper);
}
}
}
/**
* para todoas as ImovelResumoLigacaoEconomiaHelper cria
* ResumoLigacoesEconomia
*/
for (int i = 0; i < listaSimplificada.size(); i++) {
ResumoCobrancaSituacaoEspecialHelper helper = (ResumoCobrancaSituacaoEspecialHelper) listaSimplificada
.get(i);
// Integer anoMesReferencia = Util
// .getAnoMesComoInteger(new Date());
Integer codigoSetorComercial = null;
if (helper.getCodigoSetorComercial() != null) {
codigoSetorComercial = (helper.getCodigoSetorComercial());
}
Integer numeroQuadra = null;
if (helper.getNumeroQuadra() != null) {
numeroQuadra = (helper.getNumeroQuadra());
}
CobrancaSituacaoTipo cobrancaSituacaoTipo = null;
if (helper.getIdEspecialCobranca() != null) {
cobrancaSituacaoTipo = new CobrancaSituacaoTipo();
cobrancaSituacaoTipo.setId(helper.getIdEspecialCobranca());
}
CobrancaSituacaoMotivo cobrancaSituacaoMotivo = null;
if (helper.getIdMotivoSituacaoEspecialCobranca() != null) {
cobrancaSituacaoMotivo = new CobrancaSituacaoMotivo();
cobrancaSituacaoMotivo.setId(helper
.getIdMotivoSituacaoEspecialCobranca());
}
Integer anoMesInicioSituacaoEspecial = null;
if (helper.getAnoMesInicioSituacaoEspecial() != null) {
anoMesInicioSituacaoEspecial = (helper
.getAnoMesInicioSituacaoEspecial());
}
Integer anoMesFinalSituacaoEspecial = null;
if (helper.getAnoMesFinalSituacaoEspecial() != null) {
anoMesFinalSituacaoEspecial = (helper
.getAnoMesFinalSituacaoEspecial());
}
int quantidadeImovel = (helper.getQuantidadeImovel());
GerenciaRegional gerenciaRegional = null;
if (helper.getIdGerenciaRegional() != null) {
gerenciaRegional = new GerenciaRegional();
gerenciaRegional.setId(helper.getIdGerenciaRegional());
}
Localidade localidade = null;
if (helper.getIdLocalidade() != null) {
localidade = new Localidade();
localidade.setId(helper.getIdLocalidade());
}
SetorComercial setorComercial = null;
if (helper.getIdSetorComercial() != null) {
setorComercial = new SetorComercial();
setorComercial.setId(helper.getIdSetorComercial());
}
Rota rota = null;
if (helper.getIdRota() != null) {
rota = new Rota();
rota.setId(helper.getIdRota());
}
Quadra quadra = null;
if (helper.getIdQuadra() != null) {
quadra = new Quadra();
quadra.setId(helper.getIdQuadra());
}
ImovelPerfil imovelPerfil = null;
if (helper.getIdPerfilImovel() != null) {
imovelPerfil = new ImovelPerfil();
imovelPerfil.setId(helper.getIdPerfilImovel());
}
LigacaoAguaSituacao ligacaoAguaSituacao = null;
if (helper.getIdSituacaoLigacaoAgua() != null) {
ligacaoAguaSituacao = new LigacaoAguaSituacao();
ligacaoAguaSituacao
.setId(helper.getIdSituacaoLigacaoAgua());
}
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
if (helper.getIdSituacaoLigacaoEsgoto() != null) {
ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
ligacaoEsgotoSituacao.setId(helper
.getIdSituacaoLigacaoEsgoto());
}
Categoria categoria = null;
if (helper.getIdCategoria() != null) {
categoria = new Categoria();
categoria.setId(helper.getIdCategoria());
}
EsferaPoder esferaPoder = null;
if (helper.getIdEsfera() != null) {
esferaPoder = new EsferaPoder();
esferaPoder.setId(helper.getIdEsfera());
}
ResumoCobrancaSituacaoEspecial resumo = new ResumoCobrancaSituacaoEspecial(
codigoSetorComercial, numeroQuadra,
anoMesInicioSituacaoEspecial,
anoMesFinalSituacaoEspecial, quantidadeImovel,
new Date(), gerenciaRegional, localidade,
setorComercial, rota, quadra, imovelPerfil,
ligacaoAguaSituacao, ligacaoEsgotoSituacao, categoria,
esferaPoder, cobrancaSituacaoTipo,
cobrancaSituacaoMotivo);
// ResumoCobrancaSituacaoEspecialHelper resumoLigacoesEconomia =
// new ResumoCobrancaSituacaoEspecialHelper(anoMesReferencia,
// codigoSetorComercial, numeroQuadra, indicadorHidrometro,
// quantidadeLigacoes,
// quantidadeEconomias, gerenciaRegional, localidade,
// setorComercial, rota, quadra, imovelPerfil,
// ligacaoAguaSituacao, ligacaoEsgotoSituacao, categoria,
// esferaPoder);
listaResumoLigacoesEconomia.add(resumo);
}
System.out.println("<<< INICIO DO INSERIR >>>");
this.repositorioGerencialCobranca
.inserirResumoSituacaoEspecialCobranca(listaResumoLigacoesEconomia);
System.out
.println("<<<<<<<<<<<<<<<<<<<< FIM DO RESUMO >>>>>>>>>>>>>>>>>>>>>>");
// --------------------------------------------------------
//
// Registrar o fim da execu��o da Unidade de Processamento
//
// --------------------------------------------------------
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);
// sessionContext.setRollbackOnly();
throw new EJBException(e);
}
}
/**
* M�todo que gera o resumo da pendencia [UC0335] - Gerar Resumo do
* Parcelamento
*
* @author Bruno Barros
* @date 19/07/2007
*/
public void gerarResumoPendencia(int idSetor, int idFuncionalidadeIniciada)
throws ControladorException {
int idUnidadeIniciada = 0;
// -------------------------
//
// Registrar o in�cio do processamento da Unidade de
// Processamento
// do Batch
//
// -------------------------
idUnidadeIniciada = getControladorBatch()
.iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada,
UnidadeProcessamento.SETOR_COMERCIAL, idSetor);
Integer anoMesReferenciaMenos1 = Util.subtrairMesDoAnoMes(
getControladorUtil().pesquisarParametrosDoSistema()
.getAnoMesArrecadacao(), 1);
Integer idQuadra = null;
try {
FiltroQuadra novoFiltroQuadra = new FiltroQuadra();
novoFiltroQuadra.adicionarParametro( new ParametroSimples( FiltroQuadra.ID_SETORCOMERCIAL, idSetor ) );
Collection<Quadra> colQuadras = getControladorUtil()
.pesquisar(novoFiltroQuadra,
Quadra.class.getName());
for (Quadra quadra : colQuadras) {
idQuadra = quadra.getId();
// FS0001 - Verificar existencia de dados para o ano/mes referencia
// informado
getControladorGerencialCadastro().excluirResumoGerencial(
anoMesReferenciaMenos1,
UnResumoPendencia.class.getName(),
"anoMesReferencia",
"id",
idQuadra);
// FS0001 - Verificar existencia de dados para o ano/mes referencia
// informado
/* getControladorGerencialCadastro().excluirResumoGerencial(
anoMesReferenciaMenos1,
UnResumoPendenciaSemQuadra.class.getName(),
"anoMesReferencia",
"id",
idQuadra);*/
this.gerarResumoPendenciaContaGerencia(idQuadra);
this.gerarResumoPendenciaGuiasPagamentoGerencia(idQuadra);
this.gerarResumoPendenciaDebitosACobrarGerencia(idQuadra);
this.gerarResumoPendenciaCreditosARealizarGerencia(idQuadra);
// Geramos com os dados j� inseridos, o resumo de pendecia sem quadra
/* this.repositorioGerencialCobranca.inserirResumoPendenciaSemQuadra(
idQuadra, anoMesReferenciaMenos1);*/
}
getControladorBatch().encerrarUnidadeProcessamentoBatch(null,
idUnidadeIniciada, false);
} catch (Exception ex) {
// 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
System.out.println(" ERRO NO SETOR " + idSetor + " E QUADRA " + idQuadra );
ex.printStackTrace();
getControladorBatch().encerrarUnidadeProcessamentoBatch( ex, idUnidadeIniciada, true );
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Gera a primeira parte do resumo de pendencias [SB0001A]
*
* @author Bruno Barros
* @date 19/07/2007
*/
private void gerarResumoPendenciaContaGerencia(int idQuadra)
throws ControladorException, ErroRepositorioException {
/*
* O sistema seleciona as contas pendentes ( a partir da tabela CONTA
* com CNTA_AMREFERENCIACONTA < PARM_AMREFERENCIAFATURAMENTO da tabela
* SISTEMA_PARAMETROS e ( DCST_IDATUAL = 0 ou (DCST_IDATUAL = (1,2) e
* CNTA_AMREFERENCIACONTABIL < PARM_AMREFENRECIAFATURAMENTO ou
* (DCST_IDATUAL = (3,4,5) e CNTA_AMREFERENCIACONTABIL >
* PARM_AMREFERENCIAFATURAMENTO
*/
List<ResumoPendenciaContasGerenciaHelper> quebra =
new ArrayList<ResumoPendenciaContasGerenciaHelper>();
List contasPendentes = this.repositorioGerencialCobranca
.getContasPendentes(idQuadra);
for (int i = 0; i < contasPendentes.size(); i++) {
Object obj = contasPendentes.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
ResumoPendenciaContasGerenciaHelper helper = new ResumoPendenciaContasGerenciaHelper(
(Integer) linha[0], // Gerencia Regional
(Integer) linha[1], // Unidade Negocio
(Integer) linha[2], // Elo
(Integer) linha[3], // Localidade
(Integer) linha[4], // Setor Comercial
(Integer) linha[5], // Rota
(Integer) linha[6], // Quadra
(Integer) linha[7], // Codigo Setor Comercial
(Integer) linha[8], // Numero da quadra
(Integer) linha[9], // Perfil do imovel
(Integer) linha[10], // Situacao Ligacao Agua
(Integer) linha[11], // Situacao Ligacao Esgoto
(Integer) linha[12], // Perfil liga��o Agua
(Integer) linha[13], // Perfil liga��o Esgoto
(Integer) linha[14], // Volume Fixado Agua
(Integer) linha[15], // Volume Fixado Agua
(Integer) linha[16], // Volume Fixado Esgoto
new Integer(1), // Tipo do documento
(Integer) linha[17], // Ano mes de referencia documento
(Integer) linha[18], // Referencia do vencimento da conta
(BigDecimal) linha[20], // Valor da agua
(BigDecimal) linha[21], // Valor do Esgoto
(BigDecimal) linha[22], // Valor dos debitos
(BigDecimal) linha[23], // Valor dos cr�ditos
(BigDecimal) linha[24], // Valor do imposto
(Integer) linha[26], // Tarifa de Consumo
(Short) linha[28]); // codigo rota
Integer idImovel = (Integer) linha[19];
// Codigo do imovel que esta sendo processado
Integer maiorReferenciaConta = (Integer) linha[27];
// Pesquisamos a esfera de poder do cliente responsavel
helper.setIdEsferaPoder(
this.repositorioGerencialCadastro
.pesquisarEsferaPoderClienteResponsavelImovel(idImovel));
// Pesquisamos o tipo de cliente responsavel do imovel
helper.setIdTipoClienteResponsavel(
this.repositorioGerencialCadastro
.pesquisarTipoClienteClienteResponsavelImovel(idImovel));
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria =
this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null) {
helper.setIdPrincipalCategoriaImovel(categoria.getId());
// Pesquisando a principal subcategoria
ImovelSubcategoria subcategoria =
this.getControladorImovel().obterPrincipalSubcategoria(
categoria.getId(), idImovel );
if (subcategoria != null) {
helper.setIdPrincipalSubCategoriaImovel(
subcategoria.getComp_id().getSubcategoria().getId());
}
}
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
if (helper.getIdEsferaPoder().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp =
this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdEsferaPoder(
clienteTemp.getClienteTipo().getEsferaPoder().getId());
}
}
if (helper.getIdTipoClienteResponsavel().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp = this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdTipoClienteResponsavel(clienteTemp
.getClienteTipo().getId());
}
}
// Verificamos se o helper que foi criado � referente a ultima
// conta do imovel selecionado
if ( helper.getAnoMesReferenciaDocumento().equals( maiorReferenciaConta ) ) {
helper.setQuantidadeLigacoes(1);
}
// Verificamos se o objeto ja possue uma quebra cadastrada
if (quebra.contains(helper)) {
int posicao = quebra.indexOf(helper);
ResumoPendenciaContasGerenciaHelper jaCadastrado =
(ResumoPendenciaContasGerenciaHelper) quebra.get(posicao);
jaCadastrado.setQuantidadeLigacoes(
jaCadastrado.getQuantidadeLigacoes() +
helper.getQuantidadeLigacoes());
jaCadastrado.setQuantidadeDocumentos(
jaCadastrado.getQuantidadeDocumentos() + 1);
jaCadastrado.setValorPendenteAgua(
jaCadastrado.getValorPendenteAgua().add(
helper.getValorPendenteAgua() ) );
jaCadastrado.setValorPendenteEsgoto(
jaCadastrado.getValorPendenteEsgoto().add(
helper.getValorPendenteEsgoto() ) );
jaCadastrado.setValorPendenteCredito(
jaCadastrado.getValorPendenteCredito().add(
helper.getValorPendenteCredito() ) );
jaCadastrado.setValorPendenteDebito(
jaCadastrado.getValorPendenteDebito().add(
helper.getValorPendenteDebito() ) );
jaCadastrado.setValorPendenteImposto(
jaCadastrado.getValorPendenteImposto().add(
helper.getValorPendenteImposto()));
} else {
quebra.add(helper);
}
}
obj = null;
}
// Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema = getControladorUtil().pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm = Util.subtrairMesDoAnoMes(
sistema.getAnoMesArrecadacao(), 1);
// Inserirmos manualmente, por quest�o de performace
for (int j = 0; j < quebra.size(); j++) {
this.repositorioGerencialCobranca.inserirPendenciaContasGerencia(
anoMesArrecadacaoMenosUm,
(ResumoPendenciaContasGerenciaHelper) quebra.get(j));
}
}
/**
* Gera a segunda parte do resumo de pendencias ATENCAO - ESSA IMPLEMENTACAO
* NAO SERA UTILIZADA AGORA [SB0001B]
*
* @author Bruno Barros
* @date 19/07/2007
*/
/*
private void gerarResumoPendenciaContaRegiao(int idSetor)
throws ControladorException, ErroRepositorioException {
// System.out.println( " ***RESUMO DE PENDENCIAS DAS CONTAS POR REGIAO -
// LOCALIDADE " + idLocalidade + "***");
List contasPendentesRegiao = this.repositorioGerencialCobranca
.getContasPendentesPorRegiao(idSetor);
List<ResumoPendenciaContasRegiaoHelper> quebra = new ArrayList();
for (int i = 0; i < contasPendentesRegiao.size(); i++) {
// System.out.println( " ***Agrupando objeto " + i + " de " +
// contasPendentesRegiao.size() + " da localidade " + idLocalidade +
// "***");
Object obj = contasPendentesRegiao.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
ResumoPendenciaContasRegiaoHelper helper = new ResumoPendenciaContasRegiaoHelper(
(Integer) linha[0], // Regiao
(Integer) linha[1], // MicroRegiao
(Integer) linha[2], // Municipio
(Integer) linha[3], // Bairro
(Integer) linha[4], // Perfil de Imovel
(Integer) linha[5], // Situacao de Agua
(Integer) linha[6], // Situacao de Esgoto
(Integer) linha[7], // Possue Hidrometro
(Integer) linha[8], // Volume fixo Agua
(Integer) linha[9], // Volume fixo Esgoto
new Integer(1), // Tipo de documento
(Integer) linha[10], // Referencia do Documento
(Integer) linha[11], // Referencia do vencimento da
// conta
(BigDecimal) linha[12], // Valor da agua
(BigDecimal) linha[13], // Valor do Esgoto
(BigDecimal) linha[14], // Valor dos debitos
(BigDecimal) linha[15], // Valor dos cr�ditos
(BigDecimal) linha[16]); // Valor do imposto
Integer idImovel = (Integer) linha[17]; // Codigo do imovel que
// esta sendo processado
// Pesquisamos a esfera de poder do cliente responsavel
helper
.setIdEsferaPoder(this.repositorioGerencialCadastro
.pesquisarEsferaPoderClienteResponsavelImovel(idImovel));
// Pesquisamos o tipo de cliente responsavel do imovel
helper
.setIdTipoClienteResponsavel(this.repositorioGerencialCadastro
.pesquisarTipoClienteClienteResponsavelImovel(idImovel));
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria = this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null) {
helper.setIdPrincipalCategoria(categoria.getId());
// Pesquisando a principal subcategoria
ImovelSubcategoria subcategoria = this
.getControladorImovel().obterPrincipalSubcategoria(
categoria.getId(), idImovel);
if (subcategoria != null) {
helper.setIdPrincipalSubCategoria(subcategoria
.getComp_id().getSubcategoria().getId());
}
}
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
if (helper.getIdEsferaPoder().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp = this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdEsferaPoder(clienteTemp.getClienteTipo()
.getEsferaPoder().getId());
}
}
if (helper.getIdTipoClienteResponsavel().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp = this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdTipoClienteResponsavel(clienteTemp
.getClienteTipo().getId());
}
}
// Verificamos se o objeto ja possue uma quebra cadastrada
if (quebra.contains(helper)) {
int posicao = quebra.indexOf(helper);
ResumoPendenciaContasRegiaoHelper jaCadastrado = (ResumoPendenciaContasRegiaoHelper) quebra
.get(posicao);
// Incrementamos as quantidades e somamos os valores
jaCadastrado.setQuantidadeLigacoes(jaCadastrado
.getQuantidadeLigacoes() + 1);
jaCadastrado.setQuantidadeDocumentos(jaCadastrado
.getQuantidadeDocumentos() + 1);
jaCadastrado.setValorPendenteAgua(jaCadastrado
.getValorPendenteAgua().add(
helper.getValorPendenteAgua()));
jaCadastrado.setValorPendenteEsgoto(jaCadastrado
.getValorPendenteEsgoto().add(
helper.getValorPendenteEsgoto()));
jaCadastrado.setValorPendenteCredito(jaCadastrado
.getValorPendenteCredito().add(
helper.getValorPendenteCredito()));
jaCadastrado.setValorPendenteDebito(jaCadastrado
.getValorPendenteDebito().add(
helper.getValorPendenteDebito()));
jaCadastrado.setValorPendenteImposto(jaCadastrado
.getValorPendenteImposto().add(
helper.getValorPendenteImposto()));
} else {
quebra.add(helper);
}
}
}
// Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema = getControladorUtil()
.pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm = Util.subtrairMesDoAnoMes(sistema
.getAnoMesArrecadacao(), 1);
// Inserirmos manualmente, por quest�o de performace
for (int j = 0; j < quebra.size(); j++) {
// this.repositorioGerencialCobranca.inserirPendenciaContasGerencia(
// anoMesArrecadacaoMenosUm, (ResumoPendenciaContasRegiaoHelper)
// quebra.get(j) );
}
}
*/
/**
* Gera a terceira parte do resumo de pendencias [SB0002A]
*
* @author Bruno Barros
* @date 01/08/2007
*/
private void gerarResumoPendenciaGuiasPagamentoGerencia(int idQuadra)
throws ControladorException, ErroRepositorioException {
List guiasPendentes =
this.repositorioGerencialCobranca
.getGuiasPagamentoGerencia(idQuadra);
List<ResumoPendenciaGuiasPagamentoGerenciaHelper> quebra = new ArrayList();
for (int i = 0; i < guiasPendentes.size(); i++) {
Object obj = guiasPendentes.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
ResumoPendenciaGuiasPagamentoGerenciaHelper helper = new ResumoPendenciaGuiasPagamentoGerenciaHelper(
(Integer) linha[0], // Gerencia Regional
(Integer) linha[1], // Unidade Negocio
(Integer) linha[2], // Elo
(Integer) linha[3], // Localidade
(Integer) linha[4], // Setor Comercial
(Integer) linha[5], // Rota
(Integer) linha[6], // Quadra
(Integer) linha[7], // Codigo Setor Comercial
(Integer) linha[8], // Numero da quadra
(Integer) linha[9], // Perfil do imovel
(Integer) linha[10], // Situacao Ligacao Agua
(Integer) linha[11], // Situacao Ligacao Esgoto
(Integer) linha[12], // Perfil liga��o Agua
(Integer) linha[13], // Perfil liga��o Esgoto
(Integer) linha[14], // Volume Fixado Agua
(Integer) linha[15], // Volume Fixado Agua
(Integer) linha[16], // Volume Fixado Esgoto
new Integer(7), // Tipo do documento
(Integer) linha[17], // Ano mes de referencia documento
(Integer) linha[18], // Tipo do financiamento
(Integer) linha[19], // Referencia do vencimento da conta
(BigDecimal) linha[20],// Valor dos debitos
(Integer) linha[22], // Tipo da tarifa de Consumo
(Short) linha[23]); // codigo rota
// Codigo do imovel que esta sendo processado
Integer idImovel = (Integer) linha[21];
// Pesquisamos a esfera de poder do cliente responsavel
helper.setIdEsferaPoder(
this.repositorioGerencialCadastro
.pesquisarEsferaPoderClienteResponsavelImovel(idImovel));
// Pesquisamos o tipo de cliente responsavel do imovel
helper.setIdTipoClienteResponsavel(
this.repositorioGerencialCadastro
.pesquisarTipoClienteClienteResponsavelImovel(idImovel));
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria =
this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null) {
helper.setIdPrincipalCategoriaImovel(categoria.getId());
// Pesquisando a principal subcategoria
ImovelSubcategoria subcategoria = this
.getControladorImovel().obterPrincipalSubcategoria(
categoria.getId(), idImovel);
if (subcategoria != null) {
helper.setIdPrincipalSubCategoriaImovel(subcategoria
.getComp_id().getSubcategoria().getId());
}
}
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
if (helper.getIdEsferaPoder().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp =
this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdEsferaPoder(clienteTemp.getClienteTipo().getEsferaPoder().getId());
}
}
if (helper.getIdTipoClienteResponsavel().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp =
this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdTipoClienteResponsavel(clienteTemp
.getClienteTipo().getId());
}
}
// Verificamos se o objeto ja possue uma quebra cadastrada
if (quebra.contains(helper)) {
int posicao = quebra.indexOf(helper);
ResumoPendenciaGuiasPagamentoGerenciaHelper jaCadastrado =
(ResumoPendenciaGuiasPagamentoGerenciaHelper) quebra.get(posicao);
jaCadastrado.setQuantidadeDocumentos(
jaCadastrado.getQuantidadeDocumentos() + 1);
jaCadastrado.setValorPendenteDebito(
jaCadastrado.getValorPendenteDebito().add(
helper.getValorPendenteDebito()));
} else {
quebra.add(helper);
}
}
}
// Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema = getControladorUtil().pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm = Util.subtrairMesDoAnoMes(sistema.getAnoMesArrecadacao(), 1);
// Inserirmos manualmente, por quest�o de performace
for (int j = 0; j < quebra.size(); j++) {
this.repositorioGerencialCobranca
.inserirGuiasPagamentoGerencia(
anoMesArrecadacaoMenosUm,
(ResumoPendenciaGuiasPagamentoGerenciaHelper) quebra
.get(j));
}
}
/**
* Gera a terceira parte do resumo de pendencias [SB0003A]
*
* @author Bruno Barros
* @date 06/08/2007
*/
private void gerarResumoPendenciaDebitosACobrarGerencia(int idQuadra)
throws ControladorException, ErroRepositorioException {
List debitosACobrar =
this.repositorioGerencialCobranca
.getDebitosACobrarGerencia(idQuadra);
List<ResumoPendenciaDebitosACobrarGerenciaHelper> quebra = new ArrayList();
for (int i = 0; i < debitosACobrar.size(); i++) {
Object obj = debitosACobrar.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
ResumoPendenciaDebitosACobrarGerenciaHelper helper = new ResumoPendenciaDebitosACobrarGerenciaHelper(
(Integer) linha[0], // Gerencia Regional
(Integer) linha[1], // Unidade Negocio
(Integer) linha[2], // Elo
(Integer) linha[3], // Localidade
(Integer) linha[4], // Setor Comercial
(Integer) linha[5], // Rota
(Integer) linha[6], // Quadra
(Integer) linha[7], // Codigo Setor Comercial
(Integer) linha[8], // Numero da quadra
(Integer) linha[9], // Perfil do imovel
(Integer) linha[10], // Situacao Ligacao Agua
(Integer) linha[11], // Situacao Ligacao Esgoto
(Integer) linha[12], // Perfil liga��o Agua
(Integer) linha[13], // Perfil liga��o Esgoto
(Integer) linha[14], // Indicador de Hidrometro
(Integer) linha[15], // Volume Fixado Agua
(Integer) linha[16], // Volume Fixado Esgoto
new Integer(6), // Tipo do documento
(Integer) linha[17], // Referencia do vencimento da conta
(Integer) linha[18], // Tipo de Financiamento
(BigDecimal) linha[19], // Valor dos debitos
(Integer) linha[21],
(Short) linha[22]); // Tipo de Tarifa de Consumo
// Codigo do imovel que esta sendo processado
Integer idImovel = (Integer) linha[20];
// Pesquisamos a esfera de poder do cliente responsavel
helper.setIdEsferaPoder(
this.repositorioGerencialCadastro.pesquisarEsferaPoderClienteResponsavelImovel(idImovel) );
// Pesquisamos o tipo de cliente responsavel do imovel
helper.setIdTipoClienteResponsavel(
this.repositorioGerencialCadastro.pesquisarTipoClienteClienteResponsavelImovel(idImovel) );
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria =
this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null) {
helper.setIdPrincipalCategoriaImovel(categoria.getId());
// Pesquisando a principal subcategoria
ImovelSubcategoria subcategoria =
this.getControladorImovel().obterPrincipalSubcategoria(
categoria.getId(), idImovel);
if (subcategoria != null) {
helper.setIdPrincipalSubCategoriaImovel(subcategoria
.getComp_id().getSubcategoria().getId());
}
}
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
if (helper.getIdEsferaPoder().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp =
this.getControladorImovel().consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdEsferaPoder(
clienteTemp.getClienteTipo().getEsferaPoder().getId());
}
}
if (helper.getIdTipoClienteResponsavel().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp =
this.getControladorImovel().consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdTipoClienteResponsavel(
clienteTemp.getClienteTipo().getId());
}
}
// Verificamos se o objeto ja possue uma quebra cadastrada
if (quebra.contains(helper)) {
int posicao = quebra.indexOf(helper);
ResumoPendenciaDebitosACobrarGerenciaHelper jaCadastrado =
(ResumoPendenciaDebitosACobrarGerenciaHelper) quebra.get(posicao);
jaCadastrado.setQuantidadeDocumentos(
jaCadastrado.getQuantidadeDocumentos() + 1);
jaCadastrado.setValorPendenteDebito(
jaCadastrado.getValorPendenteDebito().add(
helper.getValorPendenteDebito() ) );
} else {
quebra.add(helper);
}
}
}
// Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema =
getControladorUtil().pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm =
Util.subtrairMesDoAnoMes(sistema.getAnoMesArrecadacao(), 1);
// Inserirmos manualmente, por quest�o de performace
for (int j = 0; j < quebra.size(); j++) {
this.repositorioGerencialCobranca
.inserirPendendiciaDebitosACobrarGerencia(
anoMesArrecadacaoMenosUm,
(ResumoPendenciaDebitosACobrarGerenciaHelper) quebra.get(j));
}
}
/**
* Gera a ultima parte do resumo de pendencias [SB0004A]
*
* @author Bruno Barros
* @date 06/08/2007
*/
private void gerarResumoPendenciaCreditosARealizarGerencia(int idQuadra)
throws ControladorException, ErroRepositorioException {
List creditosARealizar = this.repositorioGerencialCobranca
.getCreditoARealizarGerencia(idQuadra);
List<ResumoPendenciaCreditoARealizarGerenciaHelper> quebra = new ArrayList<ResumoPendenciaCreditoARealizarGerenciaHelper>();
for (int i = 0; i < creditosARealizar.size(); i++) {
Object obj = creditosARealizar.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
// Calcula o valor do credito
BigDecimal valorCredito = BigDecimal.ZERO;
Short numeroPrestacaoCredito = 0;
Short numeroPrestacaoRealizada = 0;
BigDecimal valorResidualMesAnterior = BigDecimal.ZERO;
BigDecimal resultado = BigDecimal.ZERO;
if ( linha[18] != null && linha[22] != null && linha[23]!= null && linha[24] != null ){
valorCredito = (BigDecimal) linha[18];
numeroPrestacaoCredito = (Short) linha[22];
numeroPrestacaoRealizada = (Short) linha[23];
valorResidualMesAnterior = (BigDecimal) linha[24];
resultado = BigDecimal.ZERO;
resultado =
( valorCredito.subtract(
(valorCredito.divide(
new BigDecimal(numeroPrestacaoCredito),
BigDecimal.ROUND_HALF_UP)).multiply(
new BigDecimal(numeroPrestacaoRealizada)) )).add(
valorResidualMesAnterior);
}
ResumoPendenciaCreditoARealizarGerenciaHelper helper = new ResumoPendenciaCreditoARealizarGerenciaHelper(
(Integer) linha[0], // Gerencia Regional
(Integer) linha[1], // Unidade Negocio
(Integer) linha[2], // Elo
(Integer) linha[3], // Localidade
(Integer) linha[4], // Setor Comercial
(Integer) linha[5], // Rota
(Integer) linha[6], // Quadra
(Integer) linha[7], // Codigo Setor Comercial
(Integer) linha[8], // Numero da quadra
(Integer) linha[9], // Perfil do imovel
(Integer) linha[10], // Situacao Ligacao Agua
(Integer) linha[11], // Situacao Ligacao Esgoto
(Integer) linha[12], // Perfil liga��o Agua
(Integer) linha[13], // Perfil liga��o Esgoto
(Integer) linha[14], // Indicador de Hidrometro
(Integer) linha[15], // Volume Fixado Agua
(Integer) linha[16], // Volume Fixado Esgoto
new Integer(10), // Tipo do documento
(Integer) linha[17], // Ano mes de referencia documento
resultado, // Valor dos Creditos
(Integer) linha[20],
(Short) linha[21]); // Tipo de Tarifa de consumo
// Codigo do imovel que esta sendo processado
Integer idImovel = (Integer) linha[19];
// Pesquisamos a esfera de poder do cliente responsavel
helper.setIdEsferaPoder(
this.repositorioGerencialCadastro
.pesquisarEsferaPoderClienteResponsavelImovel(idImovel));
// Pesquisamos o tipo de cliente responsavel do imovel
helper.setIdTipoClienteResponsavel(
this.repositorioGerencialCadastro
.pesquisarTipoClienteClienteResponsavelImovel(idImovel));
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria =
this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null) {
helper.setIdPrincipalCategoriaImovel(categoria.getId());
// Pesquisando a principal subcategoria
ImovelSubcategoria subcategoria =
this.getControladorImovel().obterPrincipalSubcategoria(
categoria.getId(), idImovel);
if (subcategoria != null) {
helper.setIdPrincipalSubCategoriaImovel(
subcategoria.getComp_id().getSubcategoria().getId());
}
}
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
if (helper.getIdEsferaPoder().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp =
this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdEsferaPoder(
clienteTemp.getClienteTipo().getEsferaPoder().getId());
}
}
if (helper.getIdTipoClienteResponsavel().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp =
this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if ( clienteTemp != null ) {
helper.setIdTipoClienteResponsavel(
clienteTemp.getClienteTipo().getId());
}
}
// Verificamos se o objeto ja possue uma quebra cadastrada
if (quebra.contains(helper)) {
int posicao = quebra.indexOf(helper);
ResumoPendenciaCreditoARealizarGerenciaHelper jaCadastrado =
(ResumoPendenciaCreditoARealizarGerenciaHelper) quebra.get(posicao);
jaCadastrado.setQuantidadeDocumentos(
jaCadastrado.getQuantidadeDocumentos() + 1);
jaCadastrado.setValorPendenteCredito(
jaCadastrado.getValorPendenteCredito().add(
helper.getValorPendenteCredito()));
} else {
quebra.add(helper);
}
}
}
// Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema =
getControladorUtil().pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm =
Util.subtrairMesDoAnoMes(sistema.getAnoMesArrecadacao(), 1);
// Inserirmos manualmente, por quest�o de performace
for (int j = 0; j < quebra.size(); j++) {
this.repositorioGerencialCobranca
.inserirPendendiciaCreditosARealizerGerencia(
anoMesArrecadacaoMenosUm,
(ResumoPendenciaCreditoARealizarGerenciaHelper) quebra.get(j));
}
}
/**
* Este caso de uso permite consultar o resumo da pend�ncia, com a op��o de
* impress�o da consulta. Dependendo da op��o de totaliza��o sempre � gerado
* o relat�rio, sem a fera��o da consulta. [UC0338] Consultar Resumo da
* Pend�ncia Gera a lista de pend�ncias das Contas e Guias de Pagamento
* consultarResumoPendencia
*
* @author Roberta Costa
* @date 24/05/2006
* @param informarDadosGeracaoRelatorioConsultaHelper
* @return
* @throws ControladorException
*/
public List consultarResumoPendencia(
InformarDadosGeracaoRelatorioConsultaHelper informarDadosGeracaoRelatorioConsultaHelper)
throws ControladorException {
try {
// [FS0001] Verificar exist�ncia de dados para o ano/m�s de
// refer�ncia retornado
String resumo = ResumoPendencia.class.getName();
Integer countResumoPendencia = this.repositorioGerencialCobranca
.verificarExistenciaAnoMesReferenciaResumo(
informarDadosGeracaoRelatorioConsultaHelper
.getAnoMesReferencia(), resumo);
if (countResumoPendencia == null || countResumoPendencia == 0) {
throw new ControladorException(
"atencao.nao_existe_resumo_pendencia",
null,
Util
.formatarAnoMesParaMesAno(informarDadosGeracaoRelatorioConsultaHelper
.getAnoMesReferencia()));
}
List retorno = this.repositorioGerencialCobranca
.consultarResumoPendencia(informarDadosGeracaoRelatorioConsultaHelper);
// [FS0007] Nenhum registro encontrado
if (retorno == null || retorno.equals("")) {
throw new ControladorException(
"atencao.pesquisa.nenhumresultado");
}
return retorno;
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* CASO DE USO: CONSULTAR RESUMO DE SITUACAO ESPECIAL DE COBRANCA AUTOR:
* TIAGO MORENO RODRIGUES DATA: 26/05/2006
*/
public Collection<ResumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper> recuperaResumoSituacaoEspecialCobranca(
ConsultarResumoSituacaoEspecialHelper helper)
throws ControladorException {
Collection<ResumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper> resumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper = null;
try {
Integer[] idsSituacaoTipo = helper.getSituacaoTipo();
if (idsSituacaoTipo != null) {
if (idsSituacaoTipo.length == 1 && idsSituacaoTipo[0] == 0) {
idsSituacaoTipo = null;
}
}
Integer[] idsSituacaoMotivo = helper.getSituacaoMotivo();
if (idsSituacaoMotivo != null) {
if (idsSituacaoMotivo.length == 1 && idsSituacaoMotivo[0] == 0) {
idsSituacaoMotivo = null;
}
}
helper.setSituacaoTipo(idsSituacaoTipo);
helper.setSituacaoMotivo(idsSituacaoMotivo);
resumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper = this
.pesquisarResumoCobrancaSituacaoEspecialConsultaGerenciaRegionalHelper(helper);
for (ResumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper helperGerencia : resumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper) {
// Objeto utilizado para as consultar internas dos loops
ConsultarResumoSituacaoEspecialHelper helperClone = new ConsultarResumoSituacaoEspecialHelper();
helperClone.setIdGerenciaRegional(helperGerencia
.getIdGerenciaRegional().toString());
helperClone.setIdUnidadeNegocio(helper.getIdUnidadeNegocio());
helperClone.setIdLocalidadeInicial(helper
.getIdLocalidadeInicial());
helperClone.setIdLocalidadeFinal(helper.getIdLocalidadeFinal());
helperClone.setCodigoSetorComercialInicial(helper
.getCodigoSetorComercialInicial());
helperClone.setCodigoSetorComercialFinal(helper
.getCodigoSetorComercialFinal());
helperClone.setCodigoRotaInicial(helper.getCodigoRotaInicial());
helperClone.setCodigoRotaFinal(helper.getCodigoRotaFinal());
helperClone.setSituacaoTipo(helper.getSituacaoTipo());
helperClone.setSituacaoMotivo(helper.getSituacaoMotivo());
Collection<ResumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper> resumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper = this
.pesquisarResumoCobrancaSituacaoEspecialConsultaUnidadeNegocioHelper(helperClone);
helperGerencia
.setResumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper(resumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper);
BigDecimal totalPercentualGerencia = new BigDecimal("0.00");
BigDecimal totalFatEstimadoGerencia = new BigDecimal("0.00");
Integer totalQtLigacoesGerencia = new Integer("0");
for (ResumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper helperUnidadeNegocio : resumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper) {
helperClone.setIdUnidadeNegocio(helperUnidadeNegocio
.getIdUnidadeNegocio().toString());
Collection<ResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper> resumoCobrancaSituacaoEspecialConsultaLocalidadeHelper = this
.pesquisarResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper(helperClone);
helperUnidadeNegocio
.setResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper(resumoCobrancaSituacaoEspecialConsultaLocalidadeHelper);
BigDecimal totalPercentualUnidadeNegocio = new BigDecimal(
"0.00");
BigDecimal totalFatEstimadoUnidadeNegocio = new BigDecimal(
"0.00");
Integer totalQtLigacoesUnidadeNegocio = new Integer("0");
for (ResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper helperLocalidade : resumoCobrancaSituacaoEspecialConsultaLocalidadeHelper) {
helperClone.setIdLocalidadeInicial(helperLocalidade
.getIdLocalidade().toString());
helperClone.setIdLocalidadeFinal(helperLocalidade
.getIdLocalidade().toString());
Collection<ResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper> resumoCobrancaSituacaoEspecialConsultaSetorComercialHelper = this
.pesquisarResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper(helperClone);
helperLocalidade
.setResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper(resumoCobrancaSituacaoEspecialConsultaSetorComercialHelper);
BigDecimal totalPercentualLocalidade = new BigDecimal(
"0.00");
BigDecimal totalFatEstimadoLocalidade = new BigDecimal(
"0.00");
Integer totalQtLigacoesLocalidade = new Integer("0");
for (ResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper helperSetorComercial : resumoCobrancaSituacaoEspecialConsultaSetorComercialHelper) {
helperClone
.setCodigoSetorComercialInicial(helperSetorComercial
.getCodigoSetorComercial()
.toString());
helperClone
.setCodigoSetorComercialFinal(helperSetorComercial
.getCodigoSetorComercial()
.toString());
Collection<ResumoCobrancaSituacaoEspecialConsultaSitTipoHelper> resumoCobrancaSituacaoEspecialConsultaSitTipoHelper = this
.pesquisarResumoCobrancaSituacaoEspecialConsultaSitTipoHelper(helperClone);
helperSetorComercial
.setResumoCobrancaSituacaoEspecialConsultaSitTipoHelper(resumoCobrancaSituacaoEspecialConsultaSitTipoHelper);
BigDecimal totalPercentualSetorComercial = new BigDecimal(
"0.00");
BigDecimal totalFatEstimadoSetorComercial = new BigDecimal(
"0.00");
Integer totalQtLigacoesSetorComercial = new Integer(
"0");
for (ResumoCobrancaSituacaoEspecialConsultaSitTipoHelper helperSitTipo : resumoCobrancaSituacaoEspecialConsultaSitTipoHelper) {
Integer[] idSituacaoTipo = new Integer[1];
idSituacaoTipo[0] = helperSitTipo
.getIdSituacaoTipo();
helperClone.setSituacaoTipo(idSituacaoTipo);
Collection<ResumoCobrancaSituacaoEspecialConsultaMotivoHelper> resumoCobrancaSituacaoEspecialConsultaMotivoHelper = this
.pesquisarResumoCobrancaSituacaoEspecialConsultaMotivoHelper(helperClone);
helperSitTipo
.setResumoCobrancaSituacaoEspecialConsultaMotivoHelper(resumoCobrancaSituacaoEspecialConsultaMotivoHelper);
BigDecimal totalPercentualSitTipo = new BigDecimal(
"0.00");
BigDecimal totalFatEstimadoSitTipo = new BigDecimal(
"0.00");
Integer totalQtLigacoesSitTipo = new Integer(
"0");
for (ResumoCobrancaSituacaoEspecialConsultaMotivoHelper helperMotivo : resumoCobrancaSituacaoEspecialConsultaMotivoHelper) {
// Calculando o Cobranca Estimado por Motivo
Integer anoMesInicio = helperMotivo
.getAnoMesInicio() - 1;
Collection<ResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper> resumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper = this
.pesquisarResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper(
helperClone, anoMesInicio);
BigDecimal fatEstimado = (BigDecimal) resumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper
.iterator().next()
.getFaturamentoEstimado().setScale(
2, RoundingMode.HALF_UP);
String fatEstimadoFormatado = Util
.formatarMoedaReal(fatEstimado);
helperMotivo
.setFaturamentoEstimado(fatEstimado);
helperMotivo
.setValorFaturamentoEstimadoFormatado(fatEstimadoFormatado);
if (fatEstimado != null) {
totalFatEstimadoSitTipo = totalFatEstimadoSitTipo
.add(fatEstimado);
}
// Calculando a Qt de Ligacoes por Motivo
Integer anoMesInicioReal = helperMotivo
.getAnoMesInicio();
Integer qtLigacoes = this.repositorioGerencialCobranca
.pesquisarResumoCobrancaSituacaoEspecialConsultaQtLigacoesHelper(
helperClone,
anoMesInicioReal);
helperMotivo.setQtLigacoes(qtLigacoes);
if (qtLigacoes != null) {
totalQtLigacoesSitTipo = totalQtLigacoesSitTipo
+ qtLigacoes;
}
BigDecimal qtParalizada = new BigDecimal(
helperMotivo.getQtParalisada());
// calculando o percentual
BigDecimal i = new BigDecimal("100");
BigDecimal percentual = new BigDecimal(
"0.00");
if (qtParalizada != null
&& qtLigacoes != null
&& qtLigacoes != 0) {
BigDecimal qtLigacoesBigDecimal = new BigDecimal(
qtLigacoes);
percentual = (qtParalizada.multiply(i));
percentual = percentual.divide(
qtLigacoesBigDecimal, 2,
RoundingMode.HALF_UP);
}
helperMotivo.setPercentual(percentual);
}
helperSitTipo
.setTotalFatEstimadoSitTipo(totalFatEstimadoSitTipo);
totalFatEstimadoSetorComercial = totalFatEstimadoSetorComercial
.add(totalFatEstimadoSitTipo).setScale(
2, RoundingMode.HALF_UP);
// total Qt ligacoes
helperSitTipo
.setTotalQtLigacoesSitTipo(totalQtLigacoesSitTipo);
totalQtLigacoesSetorComercial = totalQtLigacoesSetorComercial
+ totalQtLigacoesSitTipo;
// total percentual Situacao Tipo
BigDecimal qtParalizadaSitTipo = new BigDecimal(
helperSitTipo.getTotalSituacaoTipo());
BigDecimal i = new BigDecimal("100");
if (qtParalizadaSitTipo != null
&& totalQtLigacoesSitTipo != null
&& totalQtLigacoesSitTipo != 0) {
totalPercentualSitTipo = (qtParalizadaSitTipo
.multiply(i));
totalPercentualSitTipo = totalPercentualSitTipo
.divide(new BigDecimal(
totalQtLigacoesSitTipo), 2,
RoundingMode.HALF_UP);
}
helperSitTipo
.setTotalPercentualSitTipo(totalPercentualSitTipo);
helperClone.setSituacaoTipo(helper
.getSituacaoTipo());
}
// total fat estimado Setor Comercial
helperSetorComercial
.setTotalFatEstimadoSetorComercial(totalFatEstimadoSetorComercial);
totalFatEstimadoLocalidade = totalFatEstimadoLocalidade
.add(totalFatEstimadoSetorComercial)
.setScale(2, RoundingMode.HALF_UP);
// total ligacoes Setor Comercial
helperSetorComercial
.setTotalQtLigacoesSetorComercial(totalQtLigacoesSetorComercial);
totalQtLigacoesLocalidade = totalQtLigacoesLocalidade
+ totalQtLigacoesSetorComercial;
// total percentual Setor Comercial
BigDecimal qtParalizadaSetorComercial = new BigDecimal(
helperSetorComercial
.getTotalSetorComercial());
BigDecimal i = new BigDecimal("100");
if (qtParalizadaSetorComercial != null
&& totalQtLigacoesSetorComercial != null
&& totalQtLigacoesSetorComercial != 0) {
totalPercentualSetorComercial = (qtParalizadaSetorComercial
.multiply(i));
totalPercentualSetorComercial = totalPercentualSetorComercial
.divide(new BigDecimal(
totalQtLigacoesSetorComercial),
2, RoundingMode.HALF_UP);
}
helperSetorComercial
.setTotalPercentualSetorComercial(totalPercentualSetorComercial);
helperClone.setCodigoSetorComercialInicial(helper
.getCodigoSetorComercialInicial());
helperClone.setCodigoSetorComercialFinal(helper
.getCodigoSetorComercialFinal());
}
// total fat estimado Localidade
helperLocalidade
.setTotalFatEstimadoLocalidade(totalFatEstimadoLocalidade);
totalFatEstimadoUnidadeNegocio = totalFatEstimadoUnidadeNegocio
.add(totalFatEstimadoLocalidade).setScale(2,
RoundingMode.HALF_UP);
// total ligacoes Localidade
helperLocalidade
.setTotalQtLigacoesLocalidade(totalQtLigacoesLocalidade);
totalQtLigacoesUnidadeNegocio = totalQtLigacoesUnidadeNegocio
+ totalQtLigacoesLocalidade;
// total percentual Localidade
BigDecimal qtParalizadaLocalidade = new BigDecimal(
helperLocalidade.getTotalLocalidade());
BigDecimal i = new BigDecimal("100");
if (qtParalizadaLocalidade != null
&& totalQtLigacoesLocalidade != null
&& totalQtLigacoesLocalidade != 0) {
totalPercentualLocalidade = (qtParalizadaLocalidade
.multiply(i));
totalPercentualLocalidade = totalPercentualLocalidade
.divide(new BigDecimal(
totalQtLigacoesLocalidade), 2,
RoundingMode.HALF_UP);
}
helperLocalidade
.setTotalPercentualLocalidade(totalPercentualLocalidade);
helperClone.setIdLocalidadeInicial(helper
.getIdLocalidadeInicial());
helperClone.setIdLocalidadeFinal(helper
.getIdLocalidadeFinal());
}
// total percentual Unidade Negocio
helperUnidadeNegocio
.setTotalFatEstimadoUnidadeNegocio(totalFatEstimadoUnidadeNegocio);
totalFatEstimadoGerencia = totalFatEstimadoGerencia.add(
totalFatEstimadoUnidadeNegocio).setScale(2,
RoundingMode.HALF_UP);
// total ligacoes Unidade Negocio
helperUnidadeNegocio
.setTotalQtLigacoesUnidadeNegocio(totalQtLigacoesUnidadeNegocio);
totalQtLigacoesGerencia = totalQtLigacoesGerencia
+ totalQtLigacoesUnidadeNegocio;
// total percentual Unidade Negocio
BigDecimal qtParalizadaUnidadeNegocio = new BigDecimal(
helperUnidadeNegocio.getTotalUnidadeNegocio());
BigDecimal i = new BigDecimal("100");
if (qtParalizadaUnidadeNegocio != null
&& totalQtLigacoesUnidadeNegocio != null
&& totalQtLigacoesUnidadeNegocio != 0) {
totalPercentualUnidadeNegocio = (qtParalizadaUnidadeNegocio
.multiply(i));
totalPercentualUnidadeNegocio = totalPercentualUnidadeNegocio
.divide(new BigDecimal(
totalQtLigacoesUnidadeNegocio), 2,
RoundingMode.HALF_UP);
}
helperUnidadeNegocio
.setTotalPercentualUnidadeNegocio(totalPercentualUnidadeNegocio);
helperClone.setIdUnidadeNegocio(helper
.getIdUnidadeNegocio());
}
// total percentual Gerencia
helperGerencia
.setTotalFatEstimadoGerencia(totalFatEstimadoGerencia);
// total das ligacoes Gerencia
helperGerencia
.setTotalQtLigacoesGerencia(totalQtLigacoesGerencia);
// total percentual Gerencia
BigDecimal qtParalizadaGerencia = new BigDecimal(helperGerencia
.getTotalGerenciaRegional());
BigDecimal i = new BigDecimal("100");
if (qtParalizadaGerencia != null
&& totalQtLigacoesGerencia != null
&& totalQtLigacoesGerencia != 0) {
totalPercentualGerencia = (qtParalizadaGerencia.multiply(i));
totalPercentualGerencia = totalPercentualGerencia.divide(
new BigDecimal(totalQtLigacoesGerencia), 2,
RoundingMode.HALF_UP);
}
helperGerencia
.setTotalPercentualGerencia(totalPercentualGerencia);
helperClone.setIdGerenciaRegional(helper
.getIdGerenciaRegional());
}
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
return resumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper;
}
private Collection<ResumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper> pesquisarResumoCobrancaSituacaoEspecialConsultaGerenciaRegionalHelper(ConsultarResumoSituacaoEspecialHelper helper) {
Collection<ResumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper> retorno = new ArrayList<ResumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper>();
try {
Collection<Object[]> colecaoDados = this.repositorioGerencialCobranca
.pesquisarResumoCobrancaSituacaoEspecialConsultaGerenciaRegionalHelper(helper);
for (Object[] dados : colecaoDados) {
ResumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper helperGerencia = new ResumoCobrancaSituacaoEspecialConsultaGerenciaRegHelper();
if (dados[0] != null) {
helperGerencia.setIdGerenciaRegional((Integer) dados[0]);
}
if (dados[1] != null) {
helperGerencia.setGerenciaRegionalDescricaoAbreviada((String) dados[1]);
}
if (dados[2] != null) {
helperGerencia.setGerenciaRegionalDescricao((String) dados[2]);
}
if (dados[3] != null) {
helperGerencia.setTotalGerenciaRegional((Integer) dados[3]);
}
retorno.add(helperGerencia);
}
} catch (ErroRepositorioException e) {
e.printStackTrace();
}
return retorno;
}
private Collection<ResumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper> pesquisarResumoCobrancaSituacaoEspecialConsultaUnidadeNegocioHelper(ConsultarResumoSituacaoEspecialHelper helper) {
Collection<ResumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper> retorno = new ArrayList<ResumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper>();
try {
Collection<Object[]> colecaoDados = this.repositorioGerencialCobranca
.pesquisarResumoCobrancaSituacaoEspecialConsultaUnidadeNegocioHelper(helper);
for (Object[] dados : colecaoDados) {
ResumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper helperUnidadeNegocio = new ResumoCobrancaSituacaoEspecialConsultaUnidadeNegHelper();
if (dados[0] != null) {
helperUnidadeNegocio.setIdUnidadeNegocio((Integer) dados[0]);
}
if (dados[1] != null) {
helperUnidadeNegocio.setUnidadeNegocioDescricaoAbreviada((String) dados[1]);
}
if (dados[2] != null) {
helperUnidadeNegocio.setUnidadeNegocioDescricao((String) dados[2]);
}
if (dados[3] != null) {
helperUnidadeNegocio.setTotalUnidadeNegocio((Integer) dados[3]);
}
retorno.add(helperUnidadeNegocio);
}
} catch (ErroRepositorioException e) {
e.printStackTrace();
}
return retorno;
}
private Collection<ResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper> pesquisarResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper(ConsultarResumoSituacaoEspecialHelper helper) {
Collection<ResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper> retorno = new ArrayList<ResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper>();
try {
Collection<Object[]> colecaoDados = this.repositorioGerencialCobranca
.pesquisarResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper(helper);
for (Object[] dados : colecaoDados) {
ResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper helperLocalidade = new ResumoCobrancaSituacaoEspecialConsultaLocalidadeHelper();
if (dados[0] != null) {
helperLocalidade.setIdLocalidade((Integer) dados[0]);
}
if (dados[1] != null) {
helperLocalidade.setLocalidadeDescricao((String) dados[1]);
}
if (dados[2] != null) {
helperLocalidade.setTotalLocalidade((Integer) dados[2]);
}
retorno.add(helperLocalidade);
}
} catch (ErroRepositorioException e) {
e.printStackTrace();
}
return retorno;
}
private Collection<ResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper> pesquisarResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper(ConsultarResumoSituacaoEspecialHelper helper) {
Collection<ResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper> retorno = new ArrayList<ResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper>();
try {
Collection<Object[]> colecaoDados = this.repositorioGerencialCobranca
.pesquisarResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper(helper);
for (Object[] dados : colecaoDados) {
ResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper helperSetorComercial = new ResumoCobrancaSituacaoEspecialConsultaSetorComercialHelper();
if (dados[0] != null) {
helperSetorComercial.setCodigoSetorComercial((Integer) dados[0]);
}
if (dados[1] != null) {
helperSetorComercial.setSetorComercialDescricao((String) dados[1]);
}
if (dados[2] != null) {
helperSetorComercial.setTotalSetorComercial((Integer) dados[2]);
}
retorno.add(helperSetorComercial);
}
} catch (ErroRepositorioException e) {
e.printStackTrace();
}
return retorno;
}
private Collection<ResumoCobrancaSituacaoEspecialConsultaSitTipoHelper> pesquisarResumoCobrancaSituacaoEspecialConsultaSitTipoHelper(ConsultarResumoSituacaoEspecialHelper helper) {
Collection<ResumoCobrancaSituacaoEspecialConsultaSitTipoHelper> retorno = new ArrayList<ResumoCobrancaSituacaoEspecialConsultaSitTipoHelper>();
try {
Collection<Object[]> colecaoDados = this.repositorioGerencialCobranca
.pesquisarResumoCobrancaSituacaoEspecialConsultaSitTipoHelper(helper);
for (Object[] dados : colecaoDados) {
ResumoCobrancaSituacaoEspecialConsultaSitTipoHelper helperSitTipo = new ResumoCobrancaSituacaoEspecialConsultaSitTipoHelper();
if (dados[0] != null) {
helperSitTipo.setIdSituacaoTipo((Integer) dados[0]);
}
if (dados[1] != null) {
helperSitTipo.setSituacaoTipoDescricao((String) dados[1]);
}
if (dados[2] != null) {
helperSitTipo.setTotalSituacaoTipo((Integer) dados[2]);
}
retorno.add(helperSitTipo);
}
} catch (ErroRepositorioException e) {
e.printStackTrace();
}
return retorno;
}
private Collection<ResumoCobrancaSituacaoEspecialConsultaMotivoHelper> pesquisarResumoCobrancaSituacaoEspecialConsultaMotivoHelper(ConsultarResumoSituacaoEspecialHelper helper) {
Collection<ResumoCobrancaSituacaoEspecialConsultaMotivoHelper> retorno = new ArrayList<ResumoCobrancaSituacaoEspecialConsultaMotivoHelper>();
try {
Collection<Object[]> colecaoDados = this.repositorioGerencialCobranca
.pesquisarResumoCobrancaSituacaoEspecialConsultaMotivoHelper(helper);
for (Object[] dados : colecaoDados) {
ResumoCobrancaSituacaoEspecialConsultaMotivoHelper helperMotivo = new ResumoCobrancaSituacaoEspecialConsultaMotivoHelper();
if (dados[0] != null) {
helperMotivo.setIdMotivo((Integer) dados[0]);
}
if (dados[1] != null) {
helperMotivo.setMotivoDescricao((String) dados[1]);
}
if (dados[2] != null) {
helperMotivo.setAnoMesInicio((Integer) dados[2]);
}
if (dados[3] != null) {
helperMotivo.setAnoMesFim((Integer) dados[3]);
}
if (dados[4] != null) {
helperMotivo.setQtParalisada((Integer) dados[4]);
}
retorno.add(helperMotivo);
}
} catch (ErroRepositorioException e) {
e.printStackTrace();
}
return retorno;
}
private Collection<ResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper> pesquisarResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper(ConsultarResumoSituacaoEspecialHelper helper, int anoMesReferencia) {
Collection<ResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper> retorno = new ArrayList<ResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper>();
try {
Collection<BigDecimal> colecaoDados = this.repositorioGerencialCobranca
.pesquisarResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper(helper, anoMesReferencia);
if (colecaoDados != null && !colecaoDados.isEmpty()) {
for (BigDecimal faturamentoEstimado : colecaoDados) {
ResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper helperFatEstimado = new ResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper();
if (faturamentoEstimado != null) {
helperFatEstimado.setFaturamentoEstimado(faturamentoEstimado);
} else {
helperFatEstimado.setFaturamentoEstimado(new BigDecimal("0.00"));
}
retorno.add(helperFatEstimado);
}
} else {
ResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper helperFatEstimado = new ResumoCobrancaSituacaoEspecialConsultaFatEstimadoHelper();
helperFatEstimado.setFaturamentoEstimado(new BigDecimal("0.00"));
retorno.add(helperFatEstimado);
}
} catch (ErroRepositorioException e) {
e.printStackTrace();
}
return retorno;
}
/**
* Este caso de uso permite consultar o resumo da pend�ncia, com a op��o de
* impress�o da consulta. Dependendo da op��o de totaliza��o sempre � gerado
* o relat�rio, sem a fera��o da consulta. [UC0338] Consultar Resumo da
* Pend�ncia Retorna os registro de resumo pend�ncia dividindo em cole��es
* de categoria RESIDENCIAL, COMERCIAL, INDUSTRIAL e PUBLICA
* retornaConsultaResumoPendencia
*
* @author Roberta Costa
* @date 31/05/2006
* @param informarDadosGeracaoRelatorioConsultaHelper
* @return
* @throws ControladorException
*/
public Collection<ResumoPendenciaAcumuladoHelper> retornaConsultaResumoPendencia(
InformarDadosGeracaoRelatorioConsultaHelper informarDadosGeracaoRelatorioConsultaHelper)
throws ControladorException {
// Pega a lista de Resumo de pend�ncias da base de dados
List retornoConsulta = this
.consultarResumoPendencia(informarDadosGeracaoRelatorioConsultaHelper);
Collection<ResumoPendenciaAcumuladoHelper> resumoPendenciaAcumulado = new ArrayList();
ResumoPendenciaAcumuladoHelper resumoPendenciaAcumuladoHelper = new ResumoPendenciaAcumuladoHelper();
if (retornoConsulta != null && !retornoConsulta.equals("")
&& retornoConsulta.size() != 0) {
for (int i = 0; i < retornoConsulta.size(); i++) {
Object obj = retornoConsulta.get(i);
if (obj instanceof Object[]) {
Object[] retorno = (Object[]) obj;
resumoPendenciaAcumuladoHelper = new ResumoPendenciaAcumuladoHelper(
(String) retorno[0], (String) retorno[1],
(String) retorno[2], (String) retorno[3],
(Integer) retorno[4], (Integer) retorno[5],
(Integer) retorno[6], (BigDecimal) retorno[7]);
resumoPendenciaAcumulado
.add(resumoPendenciaAcumuladoHelper);
}
}
}
return resumoPendenciaAcumulado;
}
/**
* [UC0489] - Consultar Resumo das A��es de Cobran�a
*
* @author Ana Maria
* @date 06/11/2006
* @return CobrancaAcaoHelper
* @throws ErroRepositorioException
*/
public Collection consultarResumoCobrancaAcao(
InformarDadosGeracaoResumoAcaoConsultaHelper informarDadosGeracaoResumoAcaoConsultaHelper)
throws ControladorException {
Collection cobrancaAcaoHelper = null;
try {
// [FS0001] Verificar exist�ncia de dados para o ano/m�s de
// refer�ncia retornado
String resumo = ResumoCobrancaAcao.class.getName();
Integer countResumoPendencia = this.repositorioGerencialCobranca
.verificarExistenciaAnoMesReferenciaResumo(
informarDadosGeracaoResumoAcaoConsultaHelper
.getAnoMesReferencia(), resumo);
if (countResumoPendencia == null || countResumoPendencia == 0) {
throw new ControladorException(
"atencao.nao.existem.acoes.cobranca.resumo",
null,
Util
.formatarAnoMesParaMesAno(informarDadosGeracaoResumoAcaoConsultaHelper
.getAnoMesReferencia()));
}
// Pega a lista de Resumo das A��es de Cobran�a da base de dados
cobrancaAcaoHelper = repositorioGerencialCobranca
.consultarCobrancaAcao(informarDadosGeracaoResumoAcaoConsultaHelper);
if (cobrancaAcaoHelper != null && !cobrancaAcaoHelper.isEmpty()) {
Iterator cobrancaAcaoIterator = cobrancaAcaoHelper.iterator();
while (cobrancaAcaoIterator.hasNext()) {
CobrancaAcaoHelper resumoCobrancaAcao = (CobrancaAcaoHelper) cobrancaAcaoIterator
.next();
Integer idCobrancaAcao = resumoCobrancaAcao.getId();
Integer quantidadeCobrancaDocumentos = repositorioGerencialCobranca
.consultarCobrancaAcaoQuantidadeDocumentos(
informarDadosGeracaoResumoAcaoConsultaHelper,
idCobrancaAcao);
if (quantidadeCobrancaDocumentos != null
&& quantidadeCobrancaDocumentos
.equals(resumoCobrancaAcao
.getSomatorioQuantidadesDocumentos())) {
resumoCobrancaAcao.setIndicadorDefinitivo("DEFINITIVO");
} else {
resumoCobrancaAcao.setIndicadorDefinitivo("PROVIS�RIO");
}
Collection cobrancaAcaoSituacaoHelper = repositorioGerencialCobranca
.consultarCobrancaAcaoSituacao(
informarDadosGeracaoResumoAcaoConsultaHelper,
idCobrancaAcao);
if (cobrancaAcaoSituacaoHelper != null) {
// resumoCobrancaAcao
// .setColecaoCobrancaAcaoSituacao(cobrancaAcaoSituacaoHelper);
Iterator cobrancaAcaoSituacaoIterator = cobrancaAcaoSituacaoHelper
.iterator();
BigDecimal percentualQuantidade = null;
BigDecimal percentualValor = null;
Collection colecaoCobrancaAcaoSituacao = new ArrayList();
while (cobrancaAcaoSituacaoIterator.hasNext()) {
CobrancaAcaoSituacaoHelper resumoCobrancaAcaoSituacao = (CobrancaAcaoSituacaoHelper) cobrancaAcaoSituacaoIterator
.next();
percentualQuantidade = Util
.calcularPercentualBigDecimal(
""
+ resumoCobrancaAcaoSituacao
.getQuantidadeDocumento(),
""
+ resumoCobrancaAcao
.getSomatorioQuantidadesDocumentos());
percentualValor = Util
.calcularPercentualBigDecimal(
""
+ resumoCobrancaAcaoSituacao
.getValorDoumento(),
""
+ resumoCobrancaAcao
.getSomatorioValoresDocumentos());
resumoCobrancaAcaoSituacao
.setPorcentagemQuantidade(percentualQuantidade);
resumoCobrancaAcaoSituacao
.setPorcentagemValor(percentualValor);
Integer idCobrancaAcaoSituacao = resumoCobrancaAcaoSituacao
.getId();
Collection cobrancaAcaoDebitoHelper = repositorioGerencialCobranca
.consultarCobrancaAcaoDebito(
informarDadosGeracaoResumoAcaoConsultaHelper,
idCobrancaAcao,
idCobrancaAcaoSituacao);
if (cobrancaAcaoDebitoHelper != null) {
resumoCobrancaAcaoSituacao
.setColecaoCobrancaAcaoDebito(cobrancaAcaoDebitoHelper);
} else {
throw new ControladorException(
"atencao.pesquisa.nenhumresultado");
}
colecaoCobrancaAcaoSituacao
.add(resumoCobrancaAcaoSituacao);
}
resumoCobrancaAcao
.setColecaoCobrancaAcaoSituacao(colecaoCobrancaAcaoSituacao);
} else {
throw new ControladorException(
"atencao.pesquisa.nenhumresultado");
}
}
} else {
throw new ControladorException(
"atencao.pesquisa.nenhumresultado");
}
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoHelper;
}
/**
* [UC0489] - Consultar Resumo das A��es de Cobran�a Pesquisa as situa��es
* de d�bito da situa��o da a��o de acordo com o indicador antesApos
*
* @author S�vio Luiz
* @date 06/11/2006
* @return Collection
* @throws ErroRepositorioException
*/
public Collection consultarCobrancaAcaoDebitoComIndicador(
InformarDadosGeracaoResumoAcaoConsultaHelper informarDadosGeracaoResumoAcaoConsultaHelper,
Integer idCobrancaAcao, Integer idCobrancaAcaoSituacao,
Integer idCobrancaAcaoDebito) throws ControladorException {
Collection cobrancaAcaoDebitoHelperParaPago = new ArrayList();
try {
Collection cobrancaAcaoDebitoHelperAntes = repositorioGerencialCobranca
.consultarCobrancaAcaoDebitoComIndicador(
informarDadosGeracaoResumoAcaoConsultaHelper,
idCobrancaAcao, idCobrancaAcaoSituacao,
ResumoCobrancaAcao.INDICADOR_ANTES,
idCobrancaAcaoDebito);
cobrancaAcaoDebitoHelperParaPago
.addAll(cobrancaAcaoDebitoHelperAntes);
Collection cobrancaAcaoDebitoHelperApos = repositorioGerencialCobranca
.consultarCobrancaAcaoDebitoComIndicador(
informarDadosGeracaoResumoAcaoConsultaHelper,
idCobrancaAcao, idCobrancaAcaoSituacao,
ResumoCobrancaAcao.INDICADOR_APOS,
idCobrancaAcaoDebito);
cobrancaAcaoDebitoHelperParaPago
.addAll(cobrancaAcaoDebitoHelperApos);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoDebitoHelperParaPago;
}
/**
* [UC0489] - Consultar Resumo das A��es de Cobran�a
*
* @author Ana Maria
* @date 06/11/2006
* @return CobrancaAcaoHelper
* @throws ErroRepositorioException
*/
public Collection consultarResumoCobrancaAcaoPerfil(
int anoMesReferencia,
Integer idCobrancaAcao,
Integer idCobrancaAcaoSituacao,
Integer idCobrancaAcaoDebito,
Short idIndicador,
InformarDadosGeracaoResumoAcaoConsultaHelper informarDadosGeracaoResumoAcaoConsultaHelper)
throws ControladorException {
Collection cobrancaAcaoPerfil = null;
try {
if (idCobrancaAcaoDebito == null || idCobrancaAcaoDebito.equals("")) {
cobrancaAcaoPerfil = repositorioGerencialCobranca
.consultarCobrancaAcaoSituacaoPerfilImovel(
anoMesReferencia, idCobrancaAcao,
idCobrancaAcaoSituacao,
informarDadosGeracaoResumoAcaoConsultaHelper);
if (cobrancaAcaoPerfil != null && !cobrancaAcaoPerfil.isEmpty()) {
Iterator cobrancaAcaoPerfilIterator = cobrancaAcaoPerfil
.iterator();
while (cobrancaAcaoPerfilIterator.hasNext()) {
CobrancaAcaoPerfilHelper resumoCobrancaAcaoPerfil = (CobrancaAcaoPerfilHelper) cobrancaAcaoPerfilIterator
.next();
Integer idPerfil = resumoCobrancaAcaoPerfil.getId();
Collection cobrancaAcaoPerfilIndicador = repositorioGerencialCobranca
.consultarCobrancaAcaoSituacaoPerfilImovelIndicador(
anoMesReferencia, idCobrancaAcao,
idCobrancaAcaoSituacao, idPerfil,
informarDadosGeracaoResumoAcaoConsultaHelper);
if (cobrancaAcaoPerfilIndicador != null) {
resumoCobrancaAcaoPerfil
.setColecaoCobrancaAcaoPerfilIndicador(cobrancaAcaoPerfilIndicador);
}
}
}
} else {
cobrancaAcaoPerfil = repositorioGerencialCobranca
.consultarCobrancaAcaoDebitoPerfilImovel(
anoMesReferencia, idCobrancaAcao,
idCobrancaAcaoSituacao, idCobrancaAcaoDebito,
idIndicador,
informarDadosGeracaoResumoAcaoConsultaHelper);
if (cobrancaAcaoPerfil != null && !cobrancaAcaoPerfil.isEmpty()) {
Iterator cobrancaAcaoPerfilIterator = cobrancaAcaoPerfil
.iterator();
while (cobrancaAcaoPerfilIterator.hasNext()) {
CobrancaAcaoPerfilHelper resumoCobrancaAcaoPerfil = (CobrancaAcaoPerfilHelper) cobrancaAcaoPerfilIterator
.next();
Integer idPerfil = resumoCobrancaAcaoPerfil.getId();
Collection cobrancaAcaoPerfilIndicador = repositorioGerencialCobranca
.consultarCobrancaAcaoDebitoPerfilImovelIndicador(
anoMesReferencia, idCobrancaAcao,
idCobrancaAcaoSituacao,
idCobrancaAcaoDebito, idPerfil,
idIndicador,
informarDadosGeracaoResumoAcaoConsultaHelper);
if (cobrancaAcaoPerfilIndicador != null) {
resumoCobrancaAcaoPerfil
.setColecaoCobrancaAcaoPerfilIndicador(cobrancaAcaoPerfilIndicador);
}
}
}
}
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoPerfil;
}
/**
* [UC0489] - Consultar Resumo das A��es de Cobran�a Popup de Motivo de
* Encerramento
*
* @author Francisco do Nascimento
* @date 13/06/2008
* @return Collection CobrancaAcaoMotivoEncerramentoHelper
* @throws ErroRepositorioException
*/
public Collection consultarResumoCobrancaAcaoMotivoEncerramento(
Integer idCobrancaAcao,
Integer idCobrancaAcaoSituacao,
InformarDadosGeracaoResumoAcaoConsultaHelper informarDadosGeracaoResumoAcaoConsultaHelper,
boolean ehExecucao) throws ControladorException {
Collection cobrancaAcaoMotivoEncerramento = null;
try {
cobrancaAcaoMotivoEncerramento = repositorioGerencialCobranca
.consultarCobrancaAcaoMotivoEncerramento(idCobrancaAcao,
idCobrancaAcaoSituacao,
informarDadosGeracaoResumoAcaoConsultaHelper,
ehExecucao);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoMotivoEncerramento;
}
/**
* [UC0489] - Consultar Resumo das A��es de Cobran�a Popup de Retorno de
* fiscalizacao
*
* @author Francisco do Nascimento
* @date 18/06/2008
* @return Collection ResumoAcaoCobrancaSituacaoAcaoDetalheHelper
* @throws ErroRepositorioException
*/
public Collection consultarResumoCobrancaAcaoRetornoFiscalizacao(
Integer idCobrancaAcao,
Integer idCobrancaAcaoSituacao,
InformarDadosGeracaoResumoAcaoConsultaHelper informarDadosGeracaoResumoAcaoConsultaHelper)
throws ControladorException {
Collection cobrancaAcaoRetornoFiscalizacao = null;
try {
cobrancaAcaoRetornoFiscalizacao = repositorioGerencialCobranca
.consultarCobrancaAcaoRetornoFiscalizacao(idCobrancaAcao,
idCobrancaAcaoSituacao,
informarDadosGeracaoResumoAcaoConsultaHelper);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoRetornoFiscalizacao;
}
/**
* [UC0617] - Consultar Resumo das A��es de Cobran�a Eventual Popup de
* Motivo de Encerramento
*
* @author Francisco do Nascimento
* @date 19/06/2008
* @return Collection CobrancaAcaoMotivoEncerramentoHelper
* @throws ErroRepositorioException
*/
public Collection consultarResumoCobrancaAcaoMotivoEncerramentoEventual(
Integer idCobrancaAcao,
Integer idCobrancaAcaoSituacao,
InformarDadosGeracaoResumoAcaoConsultaEventualHelper informarDadosGeracaoResumoAcaoConsultaEventualHelper,
boolean ehExecucao) throws ControladorException {
Collection cobrancaAcaoMotivoEncerramento = null;
try {
cobrancaAcaoMotivoEncerramento = repositorioGerencialCobranca
.consultarCobrancaAcaoMotivoEncerramentoEventual(
idCobrancaAcao,
idCobrancaAcaoSituacao,
informarDadosGeracaoResumoAcaoConsultaEventualHelper,
ehExecucao);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoMotivoEncerramento;
}
/**
* [UC0617] - Consultar Resumo das A��es de Cobran�a Eventual Popup de
* Retorno de fiscalizacao
*
* @author Francisco do Nascimento
* @date 19/06/2008
* @return Collection ResumoAcaoCobrancaSituacaoAcaoDetalheHelper
* @throws ErroRepositorioException
*/
public Collection consultarResumoCobrancaAcaoRetornoFiscalizacaoEventual(
Integer idCobrancaAcao,
Integer idCobrancaAcaoSituacao,
InformarDadosGeracaoResumoAcaoConsultaEventualHelper informarDadosGeracaoResumoAcaoConsultaEventualHelper)
throws ControladorException {
Collection cobrancaAcaoRetornoFiscalizacao = null;
try {
cobrancaAcaoRetornoFiscalizacao = repositorioGerencialCobranca
.consultarCobrancaAcaoRetornoFiscalizacaoEventual(
idCobrancaAcao, idCobrancaAcaoSituacao,
informarDadosGeracaoResumoAcaoConsultaEventualHelper);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoRetornoFiscalizacao;
}
/**
* Retorna o menor dos maiores m�s/ano das tabelas utilizadas para atualizar
* o resumo [UC????] - Gerar Resumo Indicadores da Cobran�a
*
* @author Rafael Corr�a
* @date 25/03/2008
*/
private Integer obterMenorEntreMaioresAnoMesTabelasParaResumoIndicadoresCobranca()
throws ControladorException {
Integer retorno = null;
try {
Collection<Integer> colecaoAnosMeses = new ArrayList<Integer>();
Integer anoMesResumoPendencia = this.repositorioGerencialCobranca
.pesquisarMaiorAnoMesResumoPendencia();
colecaoAnosMeses.add(anoMesResumoPendencia);
Integer anoMesResumoLigacaoEconomia = this.repositorioGerencialCadastro
.pesquisarMaiorAnoMesResumoLigacaoEconomia();
colecaoAnosMeses.add(anoMesResumoLigacaoEconomia);
Integer anoMesResumoArrecadacao = this.repositorioGerencialArrecadacao
.pesquisarMaiorAnoMesResumoArrecadacao();
colecaoAnosMeses.add(anoMesResumoArrecadacao);
Integer anoMesResumoFaturamento = this.repositorioGerencialFaturamento
.pesquisarMaiorAnoMesResumoIndicadoresFaturamento();
colecaoAnosMeses.add(anoMesResumoFaturamento);
Integer anoMesResumoParcelamento = this.repositorioGerencialCobranca
.pesquisarMaiorAnoMesResumoParcelamento();
colecaoAnosMeses.add(anoMesResumoParcelamento);
if (colecaoAnosMeses != null && !colecaoAnosMeses.isEmpty()) {
for (Integer anoMes : colecaoAnosMeses) {
if (anoMes != null
&& (retorno == null || retorno.intValue() > anoMes
.intValue())) {
retorno = anoMes;
}
}
}
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return retorno;
}
/**
* M�todo que gera resumo indicadores da cobran�a [UC????] - Gerar Resumo
* Indicadores da Cobran�a
*
* @author Rafael Corr�a
* @date 25/03/2008
*/
public void gerarResumoIndicadoresCobranca(int 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);
try {
Integer anoMesTabelas = this
.obterMenorEntreMaioresAnoMesTabelasParaResumoIndicadoresCobranca();
Integer anoMesResumoIndicadorCobranca = this.repositorioGerencialCobranca
.pesquisarMaiorAnoMesResumoIndicadoresCobranca();
if (anoMesTabelas != null
&& (anoMesResumoIndicadorCobranca == null || anoMesTabelas
.intValue() > anoMesResumoIndicadorCobranca
.intValue())) {
this.repositorioGerencialCobranca
.atualizarDadosResumoIndicadoresCobranca(
anoMesResumoIndicadorCobranca, anoMesTabelas);
}
getControladorBatch().encerrarUnidadeProcessamentoBatch(null,
idUnidadeIniciada, false);
} catch (Exception ex) {
// 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
ex.printStackTrace();
// sessionContext.setRollbackOnly();
getControladorBatch().encerrarUnidadeProcessamentoBatch(ex,
idUnidadeIniciada, true);
throw new EJBException(ex);
}
}
/**
* [UC0617] Consultar Resumo das A��es de Cobran�a Eventuais Pesquisa as
* a��es de cobran�a
*
* @author S�vio Luiz
* @date 26/06/2007
* @return Collection
* @throws ErroRepositorioException
*/
public Collection consultarResumoCobrancaAcaoEventual(
InformarDadosGeracaoResumoAcaoConsultaEventualHelper informarDadosGeracaoResumoAcaoConsultaEventualHelper)
throws ControladorException {
Collection cobrancaAcaoHelper = null;
try {
// [FS0001] Verificar exist�ncia de dados para o ano/m�s de
// refer�ncia retornado
Integer countResumoPendencia = this.repositorioGerencialCobranca
.verificarExistenciaResumoEventual(informarDadosGeracaoResumoAcaoConsultaEventualHelper);
if (countResumoPendencia == null || countResumoPendencia == 0) {
throw new ControladorException(
"atencao.nao.existem.acoes.cobranca.resumo.eventual");
}
// Pega a lista de Resumo das A��es de Cobran�a da base de dados
cobrancaAcaoHelper = repositorioGerencialCobranca
.consultarCobrancaAcaoEventual(informarDadosGeracaoResumoAcaoConsultaEventualHelper);
if (cobrancaAcaoHelper != null && !cobrancaAcaoHelper.isEmpty()) {
Iterator cobrancaAcaoIterator = cobrancaAcaoHelper.iterator();
while (cobrancaAcaoIterator.hasNext()) {
CobrancaAcaoHelper resumoCobrancaAcao = (CobrancaAcaoHelper) cobrancaAcaoIterator
.next();
Integer idCobrancaAcao = resumoCobrancaAcao.getId();
Integer quantidadeCobrancaDocumentos = repositorioGerencialCobranca
.consultarCobrancaAcaoEventualQuantidadeDocumentos(
informarDadosGeracaoResumoAcaoConsultaEventualHelper,
idCobrancaAcao);
if (quantidadeCobrancaDocumentos != null
&& quantidadeCobrancaDocumentos
.equals(resumoCobrancaAcao
.getSomatorioQuantidadesDocumentos())) {
resumoCobrancaAcao.setIndicadorDefinitivo("DEFINITIVO");
} else {
resumoCobrancaAcao.setIndicadorDefinitivo("PROVIS�RIO");
}
Collection cobrancaAcaoSituacaoHelper = repositorioGerencialCobranca
.consultarCobrancaAcaoSituacaoEventual(
informarDadosGeracaoResumoAcaoConsultaEventualHelper,
idCobrancaAcao);
if (cobrancaAcaoSituacaoHelper != null) {
Iterator cobrancaAcaoSituacaoIterator = cobrancaAcaoSituacaoHelper
.iterator();
BigDecimal percentualQuantidade = null;
BigDecimal percentualValor = null;
Collection colecaoCobrancaAcaoSituacao = new ArrayList();
while (cobrancaAcaoSituacaoIterator.hasNext()) {
CobrancaAcaoSituacaoHelper resumoCobrancaAcaoSituacao = (CobrancaAcaoSituacaoHelper) cobrancaAcaoSituacaoIterator
.next();
percentualQuantidade = Util
.calcularPercentualBigDecimal(
""
+ resumoCobrancaAcaoSituacao
.getQuantidadeDocumento(),
""
+ resumoCobrancaAcao
.getSomatorioQuantidadesDocumentos());
percentualValor = Util
.calcularPercentualBigDecimal(
""
+ resumoCobrancaAcaoSituacao
.getValorDoumento(),
""
+ resumoCobrancaAcao
.getSomatorioValoresDocumentos());
resumoCobrancaAcaoSituacao
.setPorcentagemQuantidade(percentualQuantidade);
resumoCobrancaAcaoSituacao
.setPorcentagemValor(percentualValor);
Integer idCobrancaAcaoSituacao = resumoCobrancaAcaoSituacao
.getId();
Collection cobrancaAcaoDebitoHelper = repositorioGerencialCobranca
.consultarCobrancaAcaoDebitoEventual(
informarDadosGeracaoResumoAcaoConsultaEventualHelper,
idCobrancaAcao,
idCobrancaAcaoSituacao);
if (cobrancaAcaoDebitoHelper != null) {
resumoCobrancaAcaoSituacao
.setColecaoCobrancaAcaoDebito(cobrancaAcaoDebitoHelper);
} else {
throw new ControladorException(
"atencao.pesquisa.nenhumresultado");
}
colecaoCobrancaAcaoSituacao
.add(resumoCobrancaAcaoSituacao);
}
resumoCobrancaAcao
.setColecaoCobrancaAcaoSituacao(colecaoCobrancaAcaoSituacao);
} else {
throw new ControladorException(
"atencao.pesquisa.nenhumresultado");
}
}
} else {
throw new ControladorException(
"atencao.pesquisa.nenhumresultado");
}
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoHelper;
}
/**
* [UC0617] Consultar Resumo das A��es de Cobran�a Eventuais Pesquisa as
* a��es de cobran�a
*
* @author S�vio Luiz
* @date 26/06/2007
* @return Collection
* @throws ErroRepositorioException
*/
public Collection consultarResumoCobrancaAcaoEventualPerfil(
Integer idCobrancaAcao,
Integer idCobrancaAcaoSituacao,
Integer idCobrancaAcaoDebito,
Short idIndicador,
InformarDadosGeracaoResumoAcaoConsultaEventualHelper informarDadosGeracaoResumoAcaoConsultaEventualHelper)
throws ControladorException {
Collection cobrancaAcaoPerfil = null;
try {
if (idCobrancaAcaoDebito == null || idCobrancaAcaoDebito.equals("")) {
cobrancaAcaoPerfil = repositorioGerencialCobranca
.consultarCobrancaAcaoEventualSituacaoPerfilImovel(
idCobrancaAcao, idCobrancaAcaoSituacao,
informarDadosGeracaoResumoAcaoConsultaEventualHelper);
if (cobrancaAcaoPerfil != null && !cobrancaAcaoPerfil.isEmpty()) {
Iterator cobrancaAcaoPerfilIterator = cobrancaAcaoPerfil
.iterator();
while (cobrancaAcaoPerfilIterator.hasNext()) {
CobrancaAcaoPerfilHelper resumoCobrancaAcaoPerfil = (CobrancaAcaoPerfilHelper) cobrancaAcaoPerfilIterator
.next();
Integer idPerfil = resumoCobrancaAcaoPerfil.getId();
Collection cobrancaAcaoPerfilIndicador = repositorioGerencialCobranca
.consultarCobrancaAcaoEventualSituacaoPerfilImovelIndicador(
idCobrancaAcao, idCobrancaAcaoSituacao,
idPerfil,
informarDadosGeracaoResumoAcaoConsultaEventualHelper);
if (cobrancaAcaoPerfilIndicador != null) {
resumoCobrancaAcaoPerfil
.setColecaoCobrancaAcaoPerfilIndicador(cobrancaAcaoPerfilIndicador);
}
}
}
} else {
cobrancaAcaoPerfil = repositorioGerencialCobranca
.consultarCobrancaAcaoEventualDebitoPerfilImovel(
idCobrancaAcao, idCobrancaAcaoSituacao,
idCobrancaAcaoDebito, idIndicador,
informarDadosGeracaoResumoAcaoConsultaEventualHelper);
if (cobrancaAcaoPerfil != null && !cobrancaAcaoPerfil.isEmpty()) {
Iterator cobrancaAcaoPerfilIterator = cobrancaAcaoPerfil
.iterator();
while (cobrancaAcaoPerfilIterator.hasNext()) {
CobrancaAcaoPerfilHelper resumoCobrancaAcaoPerfil = (CobrancaAcaoPerfilHelper) cobrancaAcaoPerfilIterator
.next();
Integer idPerfil = resumoCobrancaAcaoPerfil.getId();
Collection cobrancaAcaoPerfilIndicador = repositorioGerencialCobranca
.consultarCobrancaAcaoEventualDebitoPerfilImovelIndicador(
idCobrancaAcao, idCobrancaAcaoSituacao,
idCobrancaAcaoDebito, idPerfil,
idIndicador,
informarDadosGeracaoResumoAcaoConsultaEventualHelper);
if (cobrancaAcaoPerfilIndicador != null) {
resumoCobrancaAcaoPerfil
.setColecaoCobrancaAcaoPerfilIndicador(cobrancaAcaoPerfilIndicador);
}
}
}
}
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoPerfil;
}
/**
* [UC0617] Consultar Resumo das A��es de Cobran�a Eventuais Pesquisa as
* a��es de cobran�a
*
* @author S�vio Luiz
* @date 26/06/2007
* @return Collection
* @throws ErroRepositorioException
*/
public Collection consultarCobrancaAcaoEventualDebitoComIndicador(
InformarDadosGeracaoResumoAcaoConsultaEventualHelper informarDadosGeracaoResumoAcaoConsultaEventualHelper,
Integer idCobrancaAcao, Integer idCobrancaAcaoSituacao,
Integer idCobrancaAcaoDebito) throws ControladorException {
Collection cobrancaAcaoDebitoHelperParaPago = new ArrayList();
try {
Collection cobrancaAcaoDebitoHelperAntes = repositorioGerencialCobranca
.consultarCobrancaAcaoEventualDebitoComIndicador(
informarDadosGeracaoResumoAcaoConsultaEventualHelper,
idCobrancaAcao, idCobrancaAcaoSituacao,
ResumoCobrancaAcao.INDICADOR_ANTES,
idCobrancaAcaoDebito);
cobrancaAcaoDebitoHelperParaPago
.addAll(cobrancaAcaoDebitoHelperAntes);
Collection cobrancaAcaoDebitoHelperApos = repositorioGerencialCobranca
.consultarCobrancaAcaoEventualDebitoComIndicador(
informarDadosGeracaoResumoAcaoConsultaEventualHelper,
idCobrancaAcao, idCobrancaAcaoSituacao,
ResumoCobrancaAcao.INDICADOR_APOS,
idCobrancaAcaoDebito);
cobrancaAcaoDebitoHelperParaPago
.addAll(cobrancaAcaoDebitoHelperApos);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoDebitoHelperParaPago;
}
/**
* Retorna o valor de controladorCadastro
*
* @return O valor de controladorCadastro
*/
private ControladorGerencialCadastroLocal getControladorGerencialCadastro() {
ControladorGerencialCadastroLocalHome localHome = null;
ControladorGerencialCadastroLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorGerencialCadastroLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_GERENCIAL_CADASTRO_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* M�todo que gera o resumo da pendencia Por Ano
*
* @author Fernando Fontelles Filho
* @date 23/03/2010
*/
public void gerarResumoPendenciaPorAno(int idSetor, int idFuncionalidadeIniciada)
throws ControladorException {
int idUnidadeIniciada = 0;
// -------------------------
//
// Registrar o in�cio do processamento da Unidade de
// Processamento
// do Batch
//
// -------------------------
idUnidadeIniciada = getControladorBatch()
.iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada,
UnidadeProcessamento.SETOR_COMERCIAL, idSetor);
Integer anoMesReferenciaMenos1 = Util.subtrairMesDoAnoMes(
getControladorUtil().pesquisarParametrosDoSistema()
.getAnoMesArrecadacao(), 1);
// FS0001 - Verificar existencia de dados para o ano/mes referencia
// informado
getControladorGerencialCadastro().excluirResumoGerencialSQL(
anoMesReferenciaMenos1, "cobranca.un_resumo_pendencia_ref_2010",
"rpen_amreferencia", idSetor);
try {
this.gerarResumoPendenciaContaGerenciaPorAno(idSetor);
this.gerarResumoPendenciaGuiasPagamentoGerenciaPorAno(idSetor);
this.gerarResumoPendenciaDebitosACobrarGerenciaPorAno(idSetor);
this.gerarResumoPendenciaCreditosARealizarGerenciaPorAno(idSetor);
getControladorBatch().encerrarUnidadeProcessamentoBatch(null,
idUnidadeIniciada, false);
} catch (Exception ex) {
// 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
System.out.println(" ERRO NO SETOR " + idSetor);
ex.printStackTrace();
getControladorBatch().encerrarUnidadeProcessamentoBatch(ex,
idUnidadeIniciada, true);
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Gera a primeira parte do resumo de pendencias por ano
*
* @author Fernando Fontelles Filho
* @date 24/03/2010
*/
private void gerarResumoPendenciaContaGerenciaPorAno(int idSetor)
throws ControladorException, ErroRepositorioException {
/*
* O sistema seleciona as contas pendentes ( a partir da tabela CONTA
* com CNTA_AMREFERENCIACONTA < PARM_AMREFERENCIAFATURAMENTO da tabela
* SISTEMA_PARAMETROS e ( DCST_IDATUAL = 0 ou (DCST_IDATUAL = (1,2) e
* CNTA_AMREFERENCIACONTABIL < PARM_AMREFENRECIAFATURAMENTO ou
* (DCST_IDATUAL = (3,4,5) e CNTA_AMREFERENCIACONTABIL >
* PARM_AMREFERENCIAFATURAMENTO
*/
//Vari�veis para a pagina��o da pesquisa
// ========================================================================
// boolean flagTerminou = false;
// final int quantidadeMaxima = 10000;
// int quantidadeInicio = 0;
// // ========================================================================
//
// while(!flagTerminou){
//Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema = getControladorUtil()
.pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm = Util.subtrairMesDoAnoMes(sistema
.getAnoMesArrecadacao(), 1);
// List<ResumoPendenciaContasGerencialPorAnoHelper> quebra =
// new ArrayList<ResumoPendenciaContasGerencialPorAnoHelper>();
Map<String, ResumoPendenciaContasGerencialPorAnoHelper> mapHelper =
new HashMap<String, ResumoPendenciaContasGerencialPorAnoHelper>();
List contasPendentes = this.repositorioGerencialCobranca
.getContasPendentesPorAno(idSetor/*, quantidadeInicio, quantidadeMaxima*/);
for (int i = 0; i < contasPendentes.size(); i++) {
Object obj = contasPendentes.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
ResumoPendenciaContasGerencialPorAnoHelper helper =
new ResumoPendenciaContasGerencialPorAnoHelper(
(Integer) linha[0], // Gerencia Regional
(Integer) linha[1], // Unidade Negocio
(Integer) linha[2], // Elo
(Integer) linha[3], // Localidade
(Integer) linha[4], // Setor Comercial
(Integer) linha[5], // Codigo Setor Comercial
(Integer) linha[6], // Perfil do imovel
(Integer) linha[7], // Situacao Ligacao Agua
(Integer) linha[8], // Situacao Ligacao Esgoto
(Integer) linha[9], // id Hidrometro
new Integer(1), // Tipo do documento
(Integer) linha[10], // Ano mes de referencia
// documento
(Integer) linha[11], // Referencia do vencimento da
// conta
(BigDecimal) linha[13], // Valor da agua
(BigDecimal) linha[14], // Valor do Esgoto
(BigDecimal) linha[15], // Valor dos debitos
(BigDecimal) linha[16], // Valor dos cr�ditos
(BigDecimal) linha[17]); // Valor do imposto
Integer idImovel = (Integer) linha[12]; // Codigo do imovel
// que esta sendo
// processado
Integer maiorReferenciaConta = (Integer) linha[19];
// Pesquisamos a esfera de poder do cliente responsavel
helper
.setIdEsferaPoder(this.repositorioGerencialCadastro
.pesquisarEsferaPoderClienteResponsavelImovel(idImovel));
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria = this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null) {
helper.setIdPrincipalCategoriaImovel(categoria.getId());
// Pesquisando a principal subcategoria
ImovelSubcategoria subcategoria = this
.getControladorImovel().obterPrincipalSubcategoria(
categoria.getId(), idImovel);
if (subcategoria != null) {
helper.setIdPrincipalSubCategoriaImovel(subcategoria
.getComp_id().getSubcategoria().getId());
}
}
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
if (helper.getIdEsferaPoder().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp = this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdEsferaPoder(clienteTemp.getClienteTipo()
.getEsferaPoder().getId());
}
}
// Verificamos se o helper que foi criado � referente a ultima
// conta do imovel selecionado
if (helper.getAnoMesReferenciaDocumento().equals(
maiorReferenciaConta)) {
helper.setQuantidadeLigacoes(1);
}
// Integer qtdAtualizada = this.repositorioGerencialCobranca.
// atualizarPendenciaContasGerencialPorAno
// (helper,anoMesArrecadacaoMenosUm);
//
// System.out.println("Qtd Atualizada = " + qtdAtualizada);
//
// if ( qtdAtualizada != null && qtdAtualizada == 0){
//
// this.repositorioGerencialCobranca.inserirPendenciaContasGerencialPorAno(
// anoMesArrecadacaoMenosUm, helper);
//
// }
String sChaveBusca = helper.getIdGerenciaRegional().toString()
+ helper.getIdUnidadeNegocio().toString()
+ helper.getIdLocalidade().toString()
+ helper.getIdElo().toString()
+ helper.getIdSetorComercial().toString()
+ helper.getCodigoSetorComercial().toString()
+ helper.getIdPerfilImovel().toString()
+ helper.getIdEsferaPoder().toString()
+ helper.getIdSituacaoLigacaoAgua().toString()
+ helper.getIdSituacaoLigacaoEsgoto().toString()
+ helper.getIdPrincipalCategoriaImovel().toString()
+ helper.getIdPrincipalSubCategoriaImovel().toString()
+ helper.getIdHidrometro().toString()
+ helper.getIdTipoDocumento().toString()
+ helper.getAnoMesReferenciaDocumento().toString()
+ helper.getIdReferenciaVencimentoConta().toString()
+ helper.getIdFaixaValorTotalPendente().toString();
ResumoPendenciaContasGerencialPorAnoHelper jaCadastrado = mapHelper.get(sChaveBusca);
if (jaCadastrado != null) {
jaCadastrado.setQuantidadeLigacoes(jaCadastrado.getQuantidadeLigacoes()
+ helper.getQuantidadeLigacoes());
jaCadastrado.setQuantidadeDocumentos(jaCadastrado.getQuantidadeDocumentos() + 1);
jaCadastrado.setValorPendenteAgua(jaCadastrado.getValorPendenteAgua().add(
helper.getValorPendenteAgua()));
jaCadastrado.setValorPendenteEsgoto(jaCadastrado.getValorPendenteEsgoto().add(
helper.getValorPendenteEsgoto()));
jaCadastrado.setValorPendenteCredito(jaCadastrado.getValorPendenteCredito().add(
helper.getValorPendenteCredito()));
jaCadastrado.setValorPendenteDebito(jaCadastrado.getValorPendenteDebito().add(
helper.getValorPendenteDebito()));
jaCadastrado.setValorPendenteImposto(jaCadastrado.getValorPendenteImposto().add(
helper.getValorPendenteImposto()));
//mapHelper.put(sChaveBusca, jaCadastrado);
} else {
mapHelper.put(sChaveBusca, helper);
}
// Verificamos se o objeto ja possue uma quebra cadastrada
// if (quebra.contains(helper)) {
// int posicao = quebra.indexOf(helper);
// count++;
// ResumoPendenciaContasGerencialPorAnoHelper jaCadastrado = (ResumoPendenciaContasGerencialPorAnoHelper) quebra
// .get(posicao);
//
// jaCadastrado.setQuantidadeLigacoes(jaCadastrado.getQuantidadeLigacoes()
// + helper.getQuantidadeLigacoes());
//
// jaCadastrado.setQuantidadeDocumentos(jaCadastrado.getQuantidadeDocumentos() + 1);
//
// jaCadastrado.setValorPendenteAgua(jaCadastrado.getValorPendenteAgua().add(
// helper.getValorPendenteAgua()));
//
// jaCadastrado.setValorPendenteEsgoto(jaCadastrado.getValorPendenteEsgoto().add(
// helper.getValorPendenteEsgoto()));
//
// jaCadastrado.setValorPendenteCredito(jaCadastrado.getValorPendenteCredito().add(
// helper.getValorPendenteCredito()));
//
// jaCadastrado.setValorPendenteDebito(jaCadastrado.getValorPendenteDebito().add(
// helper.getValorPendenteDebito()));
//
// jaCadastrado.setValorPendenteImposto(jaCadastrado.getValorPendenteImposto().add(
// helper.getValorPendenteImposto()));
// } else {
// quebra.add(helper);
// }
}
obj = null;
}
Iterator<ResumoPendenciaContasGerencialPorAnoHelper> iteratorHelper =
mapHelper.values().iterator();
while (iteratorHelper.hasNext()){
this.repositorioGerencialCobranca.inserirPendenciaContasGerencialPorAno(
anoMesArrecadacaoMenosUm,
iteratorHelper.next());
iteratorHelper.remove();
}
//Inserirmos manualmente, por quest�o de performace
// for (int j = 0; j < quebra.size(); j++) {
//
// this.repositorioGerencialCobranca.inserirPendenciaContasGerencialPorAno(
// anoMesArrecadacaoMenosUm,
// (ResumoPendenciaContasGerencialPorAnoHelper) quebra.get(j));
//
// }
//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 (contasPendentes == null ||
// contasPendentes.size() < quantidadeMaxima) {
//
// flagTerminou = true;
// }
//
// if (contasPendentes != null) {
// contasPendentes.clear();
// contasPendentes = null;
// }
//
// }
}
/**
* Gera a segunda parte do resumo de pendencias Por ano
*
* @author Fernando Fontelles
* @date 25/03/2010
*/
private void gerarResumoPendenciaGuiasPagamentoGerenciaPorAno(int idSetor)
throws ControladorException, ErroRepositorioException {
//Vari�veis para a pagina��o da pesquisa
// ========================================================================
boolean flagTerminou = false;
final int quantidadeMaxima = 1000;
int quantidadeInicio = 0;
// ========================================================================
while(!flagTerminou){
//Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema = getControladorUtil()
.pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm = Util.subtrairMesDoAnoMes(sistema
.getAnoMesArrecadacao(), 1);
List contasPendentes = this.repositorioGerencialCobranca
.getGuiasPagamentoGerenciaPorAno(idSetor, quantidadeInicio, quantidadeMaxima);
//List<ResumoPendenciaGuiasPagamentoGerencialPorAnoHelper> quebra = new ArrayList();
for (int i = 0; i < contasPendentes.size(); i++) {
Object obj = contasPendentes.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
ResumoPendenciaGuiasPagamentoGerencialPorAnoHelper helper =
new ResumoPendenciaGuiasPagamentoGerencialPorAnoHelper(
(Integer) linha[0], // Gerencia Regional
(Integer) linha[1], // Unidade Negocio
(Integer) linha[2], // Elo
(Integer) linha[3], // Localidade
(Integer) linha[4], // Setor Comercial
(Integer) linha[5], // Codigo Setor Comercial
(Integer) linha[6], // Perfil do imovel
(Integer) linha[7], // Situacao Ligacao Agua
(Integer) linha[8], // Situacao Ligacao Esgoto
(Integer) linha[9], // Hidrometro
new Integer(7), // Tipo do documento
(Integer) linha[10], // Ano mes de referencia
// documento
(Integer) linha[11], // Tipo do financiamento
(Integer) linha[12], // Referencia do vencimento da
// conta
(BigDecimal) linha[13]);// Valor dos debitos
Integer idImovel = (Integer) linha[14]; // Codigo do imovel que
// esta sendo processado
// Pesquisamos a esfera de poder do cliente responsavel
helper
.setIdEsferaPoder(this.repositorioGerencialCadastro
.pesquisarEsferaPoderClienteResponsavelImovel(idImovel));
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria = this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null) {
helper.setIdPrincipalCategoriaImovel(categoria.getId());
// Pesquisando a principal subcategoria
ImovelSubcategoria subcategoria = this
.getControladorImovel().obterPrincipalSubcategoria(
categoria.getId(), idImovel);
if (subcategoria != null) {
helper.setIdPrincipalSubCategoriaImovel(subcategoria
.getComp_id().getSubcategoria().getId());
}
}
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
if (helper.getIdEsferaPoder().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp = this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdEsferaPoder(clienteTemp.getClienteTipo()
.getEsferaPoder().getId());
}
}
//Atualiza uma linhda de registro na base
Integer qtdAtualizada = this.repositorioGerencialCobranca
.atualizarGuiasPagamentoGerenciaPorAno
(anoMesArrecadacaoMenosUm, helper);
//Se nao atualizou, insere uma nova linha na tabela
if ( qtdAtualizada != null && qtdAtualizada == 0 ){
this.repositorioGerencialCobranca.inserirGuiasPagamentoGerenciaPorAno(
anoMesArrecadacaoMenosUm, helper);
}
// Verificamos se o objeto ja possue uma quebra cadastrada
// if (quebra.contains(helper)) {
//
// int posicao = quebra.indexOf(helper);
//
// ResumoPendenciaGuiasPagamentoGerencialPorAnoHelper jaCadastrado =
// (ResumoPendenciaGuiasPagamentoGerencialPorAnoHelper) quebra
// .get(posicao);
// jaCadastrado.setQuantidadeDocumentos(jaCadastrado
// .getQuantidadeDocumentos() + 1);
//
// jaCadastrado.setValorPendenteDebito(jaCadastrado
// .getValorPendenteDebito().add(
// helper.getValorPendenteDebito()));
//
// } else {
//
// quebra.add(helper);
//
// }
}
}
// Inserirmos manualmente, por quest�o de performace
// for (int j = 0; j < quebra.size(); j++) {
//
// this.repositorioGerencialCobranca
// .inserirGuiasPagamentoGerenciaPorAno(
// anoMesArrecadacaoMenosUm,
// (ResumoPendenciaGuiasPagamentoGerencialPorAnoHelper) quebra
// .get(j));
//
// }
//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 (contasPendentes == null ||
contasPendentes.size() < quantidadeMaxima) {
flagTerminou = true;
}
if (contasPendentes != null) {
contasPendentes.clear();
contasPendentes = null;
}
}
}
/**
* Gera a terceira parte do resumo de pendencias por ano
*
* @author Fernando Fontelles Filho
* @date 26/03/2010
*/
private void gerarResumoPendenciaDebitosACobrarGerenciaPorAno(int idSetor)
throws ControladorException, ErroRepositorioException {
//Vari�veis para a pagina��o da pesquisa
// ========================================================================
boolean flagTerminou = false;
final int quantidadeMaxima = 1000;
int quantidadeInicio = 0;
// ========================================================================
while(!flagTerminou){
//Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema = getControladorUtil()
.pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm = Util.subtrairMesDoAnoMes(sistema
.getAnoMesArrecadacao(), 1);
List debitosACobrar = this.repositorioGerencialCobranca
.getDebitosACobrarGerenciaPorAno(idSetor, quantidadeInicio, quantidadeMaxima);
//List<ResumoPendenciaDebitosACobrarGerencialPorAnoHelper> quebra = new ArrayList();
for (int i = 0; i < debitosACobrar.size(); i++) {
Object obj = debitosACobrar.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
ResumoPendenciaDebitosACobrarGerencialPorAnoHelper helper =
new ResumoPendenciaDebitosACobrarGerencialPorAnoHelper(
(Integer) linha[0], // Gerencia Regional
(Integer) linha[1], // Unidade Negocio
(Integer) linha[2], // Elo
(Integer) linha[3], // Localidade
(Integer) linha[4], // Setor Comercial
(Integer) linha[5], // Codigo Setor Comercial
(Integer) linha[6], // Perfil do imovel
(Integer) linha[7], // Situacao Ligacao Agua
(Integer) linha[8], // Situacao Ligacao Esgoto
(Integer) linha[9], // Indicador de Hidrometro
new Integer(6), // Tipo do documento
(Integer) linha[10], // Referencia do vencimento da conta
(Integer) linha[11], // Tipo de Financiamento
(BigDecimal) linha[12]); // Valor dos debitos
Integer idImovel = (Integer) linha[13]; // Codigo do imovel que esta sendo processado
// Pesquisamos a esfera de poder do cliente responsavel
helper.setIdEsferaPoder(
this.repositorioGerencialCadastro.pesquisarEsferaPoderClienteResponsavelImovel(idImovel) );
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria = this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null) {
helper.setIdPrincipalCategoriaImovel(categoria.getId());
// Pesquisando a principal subcategoria
ImovelSubcategoria subcategoria = this
.getControladorImovel().obterPrincipalSubcategoria(
categoria.getId(), idImovel);
if (subcategoria != null) {
helper.setIdPrincipalSubCategoriaImovel(subcategoria
.getComp_id().getSubcategoria().getId());
}
}
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
if (helper.getIdEsferaPoder().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp = this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdEsferaPoder(clienteTemp.getClienteTipo()
.getEsferaPoder().getId());
}
}
//Atualiza uma linha na base de dados
Integer qtdAtualizada = this.repositorioGerencialCobranca.
atualizarPendendiciaDebitosACobrarGerenciaPorAno
(anoMesArrecadacaoMenosUm, helper );
//Se nao atualizou nenhuma linha, insere os dados em uma nova linha
if ( qtdAtualizada != null && qtdAtualizada == 0 ){
this.repositorioGerencialCobranca
.inserirPendendiciaDebitosACobrarGerenciaPorAno(
anoMesArrecadacaoMenosUm, helper);
}
// Verificamos se o objeto ja possue uma quebra cadastrada
// if (quebra.contains(helper)) {
//
// int posicao = quebra.indexOf(helper);
// ResumoPendenciaDebitosACobrarGerencialPorAnoHelper jaCadastrado =
// (ResumoPendenciaDebitosACobrarGerencialPorAnoHelper) quebra
// .get(posicao);
// jaCadastrado.setQuantidadeDocumentos(jaCadastrado
// .getQuantidadeDocumentos() + 1);
// jaCadastrado.setValorPendenteDebito(jaCadastrado
// .getValorPendenteDebito().add(
// helper.getValorPendenteDebito()));
//
// } else {
//
// quebra.add(helper);
//
// }
}
}
// Inserirmos manualmente, por quest�o de performace
// for (int j = 0; j < quebra.size(); j++) {
// this.repositorioGerencialCobranca
// .inserirPendendiciaDebitosACobrarGerenciaPorAno(
// anoMesArrecadacaoMenosUm,
// (ResumoPendenciaDebitosACobrarGerencialPorAnoHelper) quebra
// .get(j));
// }
//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 (debitosACobrar == null ||
debitosACobrar.size() < quantidadeMaxima) {
flagTerminou = true;
}
if (debitosACobrar != null) {
debitosACobrar.clear();
debitosACobrar = null;
}
}
}
/**
* Gera a ultima parte do resumo de pendencias Por Ano
*
* @author Fernando Fontelles Filho
* @date 26/03/2010
*/
private void gerarResumoPendenciaCreditosARealizarGerenciaPorAno(int idSetor)
throws ControladorException, ErroRepositorioException {
//Vari�veis para a pagina��o da pesquisa
// ========================================================================
boolean flagTerminou = false;
final int quantidadeMaxima = 1000;
int quantidadeInicio = 0;
// ========================================================================
while(!flagTerminou){
//Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema = getControladorUtil()
.pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm = Util.subtrairMesDoAnoMes(sistema
.getAnoMesArrecadacao(), 1);
List creditosARealizar = this.repositorioGerencialCobranca
.getCreditoARealizarGerenciaPorAno(idSetor, quantidadeInicio, quantidadeMaxima);
// List<ResumoPendenciaCreditoARealizarGerencialPorAnoHelper> quebra =
// new ArrayList<ResumoPendenciaCreditoARealizarGerencialPorAnoHelper>();
for (int i = 0; i < creditosARealizar.size(); i++) {
Object obj = creditosARealizar.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
ResumoPendenciaCreditoARealizarGerencialPorAnoHelper helper =
new ResumoPendenciaCreditoARealizarGerencialPorAnoHelper(
(Integer) linha[0], // Gerencia Regional
(Integer) linha[1], // Unidade Negocio
(Integer) linha[2], // Elo
(Integer) linha[3], // Localidade
(Integer) linha[4], // Setor Comercial
(Integer) linha[5], // Codigo Setor Comercial
(Integer) linha[6], // Perfil do imovel
(Integer) linha[7], // Situacao Ligacao Agua
(Integer) linha[8], // Situacao Ligacao Esgoto
(Integer) linha[9], // Indicador de Hidrometro
new Integer(10), // Tipo do documento
(Integer) linha[10], // Ano mes de referencia
// documento
(BigDecimal) linha[11]); // Valor dos Creditos
Integer idImovel = (Integer) linha[12]; // Codigo do imovel que
// esta sendo processado
// Pesquisamos a esfera de poder do cliente responsavel
helper
.setIdEsferaPoder(this.repositorioGerencialCadastro
.pesquisarEsferaPoderClienteResponsavelImovel(idImovel));
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
Categoria categoria = null;
categoria = this.getControladorImovel()
.obterPrincipalCategoriaImovel(idImovel);
if (categoria != null) {
helper.setIdPrincipalCategoriaImovel(categoria.getId());
// Pesquisando a principal subcategoria
ImovelSubcategoria subcategoria = this
.getControladorImovel().obterPrincipalSubcategoria(
categoria.getId(), idImovel);
if (subcategoria != null) {
helper.setIdPrincipalSubCategoriaImovel(subcategoria
.getComp_id().getSubcategoria().getId());
}
}
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
if (helper.getIdEsferaPoder().equals(0)) {
Imovel imovel = new Imovel();
imovel.setId(idImovel);
Cliente clienteTemp = this.getControladorImovel()
.consultarClienteUsuarioImovel(imovel);
if (clienteTemp != null) {
helper.setIdEsferaPoder(clienteTemp.getClienteTipo()
.getEsferaPoder().getId());
}
}
//Atualiza uma linha da tabela
Integer qtdAtualizada = this.repositorioGerencialCobranca.
atualizarPendendiciaCreditosARealizerGerenciaPorAno
(anoMesArrecadacaoMenosUm, helper);
//Se nao atualizou nenhuma linha � inserida uma nova linha na tabela
if ( qtdAtualizada != null && qtdAtualizada == 0 ){
this.repositorioGerencialCobranca
.inserirPendendiciaCreditosARealizerGerenciaPorAno(
anoMesArrecadacaoMenosUm, helper);
}
// Verificamos se o objeto ja possue uma quebra cadastrada
// if (quebra.contains(helper)) {
//
// int posicao = quebra.indexOf(helper);
//
// ResumoPendenciaCreditoARealizarGerencialPorAnoHelper jaCadastrado =
// (ResumoPendenciaCreditoARealizarGerencialPorAnoHelper) quebra
// .get(posicao);
//
// jaCadastrado.setQuantidadeDocumentos(jaCadastrado
// .getQuantidadeDocumentos() + 1);
//
// jaCadastrado.setValorPendenteCredito(jaCadastrado
// .getValorPendenteCredito().add(
// helper.getValorPendenteCredito()));
//
// } else {
// quebra.add(helper);
// }
}
}
// Inserirmos manualmente, por quest�o de performace
// for (int j = 0; j < quebra.size(); j++) {
// this.repositorioGerencialCobranca
// .inserirPendendiciaCreditosARealizerGerenciaPorAno(
// anoMesArrecadacaoMenosUm,
// (ResumoPendenciaCreditoARealizarGerencialPorAnoHelper) quebra
// .get(j));
// }
//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 (creditosARealizar == null ||
creditosARealizar.size() < quantidadeMaxima) {
flagTerminou = true;
}
if (creditosARealizar != null) {
creditosARealizar.clear();
creditosARealizar = null;
}
}
}
/**
* M�todo que gera as guias de pagamento do resumo da pendencia
* [UC0335] - Gerar Resumo de pendencia
*
* @author Arthur Carvalho
* @date 30/09/2010
*/
public void gerarGuiaPagamentoPorClienteResumoPendencia(int idLocalidade, int idFuncionalidadeIniciada)
throws ControladorException {
int idUnidadeIniciada = 0;
// -------------------------
//
// Registrar o in�cio do processamento da Unidade de
// Processamento
// do Batch
//
// -------------------------
idUnidadeIniciada = getControladorBatch().iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada, UnidadeProcessamento.LOCALIDADE, idLocalidade);
try {
// System.out.println( " ***RESUMO DE PENDENCIAS DAS CONTAS POR GERENCIA
// - LOCALIDADE " + idLocalidade + "***");
List contasPendentes = this.repositorioGerencialCobranca
.getGuiasPagamentoPorClienteGerencia(idLocalidade);
List<ResumoPendenciaGuiasPagamentoGerenciaHelper> quebra = new ArrayList();
for (int i = 0; i < contasPendentes.size(); i++) {
// System.out.println( " ***Agrupando objeto " + i + " de " +
// contasPendentes.size() + " da localidade " + idLocalidade +
// "***");
Object obj = contasPendentes.get(i);
if (obj instanceof Object[]) {
Object[] linha = (Object[]) obj;
ResumoPendenciaGuiasPagamentoGerenciaHelper helper = new ResumoPendenciaGuiasPagamentoGerenciaHelper(
(Integer) linha[0], // Gerencia Regional
(Integer) linha[1], // Unidade Negocio
(Integer) linha[2], // Elo
(Integer) linha[3], // Localidade
(Integer) linha[4], // Setor Comercial
(Integer) linha[5], // Rota
(Integer) linha[6], // Quadra
(Integer) linha[7], // Codigo Setor Comercial
(Integer) linha[8], // Numero da quadra
(Integer) linha[9], // Perfil do imovel
(Integer) linha[10], // Situacao Ligacao Agua
(Integer) linha[11], // Situacao Ligacao Esgoto
(Integer) linha[12], // Perfil liga��o Agua
(Integer) linha[13], // Perfil liga��o Esgoto
(Integer) linha[14], // Volume Fixado Agua
(Integer) linha[15], // Volume Fixado Agua
(Integer) linha[16], // Volume Fixado Esgoto
new Integer(7), // Tipo do documento
(Integer) linha[17], // Ano mes de referencia
// documento
(Integer) linha[18], // Tipo do financiamento
(Integer) linha[19], // Referencia do vencimento da
// conta
(BigDecimal) linha[20],// Valor dos debitos
(Integer) linha[22], //tarifa consumo
(Short) linha[23]);// codigo rota
// Integer idImovel = (Integer) linha[21]; // Codigo do imovel que
// esta sendo processado
// Pesquisamos a esfera de poder do cliente responsavel
// helper
// .setIdEsferaPoder(this.repositorioGerencialCadastro
// .pesquisarEsferaPoderClienteResponsavelImovel(idImovel));
// // Pesquisamos o tipo de cliente responsavel do imovel
// helper
// .setIdTipoClienteResponsavel(this.repositorioGerencialCadastro
// .pesquisarTipoClienteClienteResponsavelImovel(idImovel));
// pesquisando a categoria
// [UC0306] - Obtter principal categoria do im�vel
// Categoria categoria = null;
// categoria = this.getControladorImovel()
// .obterPrincipalCategoriaImovel(idImovel);
// if (categoria != null) {
// helper.setIdPrincipalCategoriaImovel(categoria.getId());
// // Pesquisando a principal subcategoria
// ImovelSubcategoria subcategoria = this
// .getControladorImovel().obterPrincipalSubcategoria(
// categoria.getId(), idImovel);
// if (subcategoria != null) {
// helper.setIdPrincipalSubCategoriaImovel(subcategoria
// .getComp_id().getSubcategoria().getId());
// }
// }
// Verificamos se a esfera de poder foi encontrada
// [FS0002] Verificar existencia de cliente responsavel
// if (helper.getIdEsferaPoder().equals(0)) {
// Imovel imovel = new Imovel();
// imovel.setId(idImovel);
// Cliente clienteTemp = this.getControladorImovel()
// .consultarClienteUsuarioImovel(imovel);
// if (clienteTemp != null) {
// helper.setIdEsferaPoder(clienteTemp.getClienteTipo()
// .getEsferaPoder().getId());
// }
// }
// if (helper.getIdTipoClienteResponsavel().equals(0)) {
// Imovel imovel = new Imovel();
// imovel.setId(idImovel);
// Cliente clienteTemp = this.getControladorImovel()
// .consultarClienteUsuarioImovel(imovel);
// if (clienteTemp != null) {
// helper.setIdTipoClienteResponsavel(clienteTemp
// .getClienteTipo().getId());
// }
// }
// Verificamos se o objeto ja possue uma quebra cadastrada
if (quebra.contains(helper)) {
int posicao = quebra.indexOf(helper);
ResumoPendenciaGuiasPagamentoGerenciaHelper jaCadastrado = (ResumoPendenciaGuiasPagamentoGerenciaHelper) quebra
.get(posicao);
jaCadastrado.setQuantidadeDocumentos(jaCadastrado
.getQuantidadeDocumentos() + 1);
jaCadastrado.setValorPendenteDebito(jaCadastrado
.getValorPendenteDebito().add(
helper.getValorPendenteDebito()));
} else {
quebra.add(helper);
}
}
}
// Devemos gravar como anomes de arrecadacao -1
SistemaParametro sistema = getControladorUtil()
.pesquisarParametrosDoSistema();
Integer anoMesArrecadacaoMenosUm = Util.subtrairMesDoAnoMes(sistema
.getAnoMesArrecadacao(), 1);
// Inserirmos manualmente, por quest�o de performace
for (int j = 0; j < quebra.size(); j++) {
this.repositorioGerencialCobranca
.inserirGuiasPagamentoGerencia(
anoMesArrecadacaoMenosUm,
(ResumoPendenciaGuiasPagamentoGerenciaHelper) quebra
.get(j));
}
getControladorBatch().encerrarUnidadeProcessamentoBatch(null,
idUnidadeIniciada, false);
} catch (Exception ex) {
// 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
System.out.println(" ERRO NA LOCALIDADE " + idLocalidade);
ex.printStackTrace();
getControladorBatch().encerrarUnidadeProcessamentoBatch(ex,
idUnidadeIniciada, true);
throw new ControladorException("erro.sistema", ex);
}
}
/**
* [UC0489] - Consultar Resumo das A��es de Cobran�a Popup de Motivo de
* Encerramento
*
* @author Ivan Sergio
* @date 23/12/2010
* @return Collection CobrancaAcaoMotivoEncerramentoHelper
* @throws ErroRepositorioException
*/
public Collection consultarResumoCobrancaAcaoTipoCorte(
Integer idCobrancaAcao,
Integer idCobrancaAcaoSituacao,
InformarDadosGeracaoResumoAcaoConsultaHelper informarDadosGeracaoResumoAcaoConsultaHelper,
boolean ehExecucao) throws ControladorException {
Collection cobrancaAcaoTipoCorte = null;
try {
cobrancaAcaoTipoCorte = repositorioGerencialCobranca
.consultarCobrancaAcaoTipoCorte(
idCobrancaAcao,
idCobrancaAcaoSituacao,
informarDadosGeracaoResumoAcaoConsultaHelper,
ehExecucao);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
return cobrancaAcaoTipoCorte;
}
}