package gcom.financeiro;
import gcom.arrecadacao.aviso.AvisoBancario;
import gcom.arrecadacao.pagamento.PagamentoSituacao;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.EsferaPoder;
import gcom.cadastro.geografico.Municipio;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.cobranca.DocumentoTipo;
import gcom.cobranca.ParcelamentoGrupo;
import gcom.faturamento.credito.CreditoOrigem;
import gcom.faturamento.debito.DebitoCreditoSituacao;
import gcom.financeiro.lancamento.LancamentoItem;
import gcom.financeiro.lancamento.LancamentoItemContabil;
import gcom.financeiro.lancamento.LancamentoTipo;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.relatorio.contasareceber.RelatorioParametrosContabeisContasAReceberBean;
import gcom.relatorio.financeiro.RelatorioVolumesConsumidosNaoFaturadosBean;
import gcom.relatorio.financeiro.ResumoReceitaHelper;
import gcom.util.ConstantesSistema;
import gcom.util.ErroRepositorioException;
import gcom.util.HibernateUtil;
import gcom.util.Util;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.StatelessSession;
/**
* Repositorio para financeiro
*
* @author Raphael Rossiter
* @since 09/01/2006
*/
public class RepositorioFinanceiroHBM implements IRepositorioFinanceiro {
/** Repositorio Financeiro Hibernate */
protected static RepositorioFinanceiroHBM instancia;
/**
* Construtor da classe RepositorioFinanceiroHBM
*/
protected RepositorioFinanceiroHBM() {
}
/**
* Retorna o valor de instancia
*
* @return O valor de instancia
*/
public static RepositorioFinanceiroHBM getInstancia() {
String dialect = HibernateUtil.getDialect();
if (dialect.toUpperCase().contains("ORACLE")){
if (instancia == null) {
instancia = new RepositorioFinanceiroHBM();
}
} else {
if (instancia == null) {
instancia = new RepositorioFinanceiroPostgresHBM();
}
}
return instancia;
}
/**
* Obt�m os dados do resumoFaturamento a partir do ano e m�s de refer�ncia
*
* [UC0175] - Gerar Lan�amentos Cont�beis do Faturamento
*
* @author Raphael Rossiter, Pedro Alexandre
* @date 16/01/2006, 24/05/2007
*
* @param anoMesReferenciaFaturamento
* @param idLocalidade
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> obterDadosResumoFaturamento(Integer anoMesReferenciaFaturamento, Integer idLocalidade) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT loca.id, lctp.id, lcit.id, lict.id, catg.id, SUM(rfat.valorItemFaturamento) "
+ "FROM ResumoFaturamento rfat "
+ "LEFT JOIN rfat.localidade loca "
+ "LEFT JOIN rfat.lancamentoTipo lctp "
+ "LEFT JOIN rfat.lancamentoItem lcit "
+ "LEFT JOIN rfat.lancamentoItemContabil lict "
+ "LEFT JOIN rfat.categoria catg "
+ "WHERE rfat.anoMesReferencia = :anoMesReferenciaFaturamento AND loca.id = :idLocalidade "
+ "GROUP BY loca.id, lctp.id, lcit.id, lict.id, catg.id "
+ "ORDER BY loca.id, lctp.id, lcit.id, lict.id, catg.id ";
retorno = session.createQuery(consulta)
.setInteger("anoMesReferenciaFaturamento",anoMesReferenciaFaturamento)
.setInteger("idLocalidade",idLocalidade)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obt�m a conta cont�bil a partir do n�mero da raz�o cont�bil e do n�emro da conta
* @param razao
* @param conta
* @return ContaContabil
* @throws ErroRepositorioException
*/
public ContaContabil obterContaContabil(Short razao, Integer conta) throws ErroRepositorioException {
ContaContabil retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT new ContaContabil(cnct.id, cnct.razao, cnct.conta, cnct.prefixo, cnct.ultimaAlteracao) "
+ "FROM contaContabil cnct "
+ "WHERE cnct.razao = :nnRazao AND cnct.conta = :nnConta ";
retorno = (ContaContabil) session.createQuery(consulta).setInteger("nnRazao",
razao.intValue()).setInteger(
"nnConta", conta.intValue()).uniqueResult();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obt�m a conta cont�bil a partir da tabela LANCAMENTO_ITEM_CONTABIL
* @param razao
* @param conta
* @return ContaContabil
* @throws ErroRepositorioException
*/
public ContaContabil obterContaContabil(LancamentoItemContabil lancamentoItemContabil) throws ErroRepositorioException {
ContaContabil retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT new ContaContabil(cnct.id, cnct.razao, cnct.conta, cnct.prefixo, cnct.ultimaAlteracao) "
+ "FROM lancamentoItemContabil lict "
+ "INNER JOIN lict.contaContabil cnct "
+ "WHERE lict.id = :idlancamentoItemContabil ";
retorno = (ContaContabil) session.createQuery(consulta).setInteger("idlancamentoItemContabil",
lancamentoItemContabil.getId().intValue()).uniqueResult();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Gera Lan�amentos Contabeis do Faturamento
*
* [UC000348] - Gerar Lan�amento Const�beis da Arrecada��o
*
* @author Rafael Santos, Pedro Alexandre
* @date 23/05/2006, 25/05/2007
*
* @param anoMesArrecadacao
* @param idLocalidade
* @return
* @throws ErroRepositorioException
*/
public Collection obterDadosResumoArrecadacao(Integer anoMesReferenciaArrecadacao, Integer idLocalidade) throws ErroRepositorioException {
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT loca.id, rctp.id, lctp.id, lcit.id, lict.id, catg.id, SUM(rarr.valorItemArrecadacao) "
+ "FROM ResumoArrecadacao rarr "
+ "LEFT JOIN rarr.localidade loca "
+ "LEFT JOIN rarr.lancamentoTipo lctp "
+ "LEFT JOIN rarr.lancamentoItem lcit "
+ "LEFT JOIN rarr.lancamentoItemContabil lict "
+ "LEFT JOIN rarr.categoria catg "
+ "LEFT JOIN rarr.recebimentoTipo rctp "
+ "WHERE rarr.anoMesReferencia = :anoMesReferenciaArrecadacao AND loca.id = :idLocalidade "
+ "GROUP BY loca.id, rctp.id, lctp.id, lcit.id, lict.id, catg.id "
+ "ORDER BY loca.id, rctp.id, lctp.id, lcit.id, lict.id, catg.id ";
retorno = session.createQuery(consulta)
.setInteger("anoMesReferenciaArrecadacao",anoMesReferenciaArrecadacao)
.setInteger("idLocalidade",idLocalidade)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Gera Lan�amentos Contabeis do Faturamento
*
* [UC000348] - Gerar Lan�amento Const�beis da Arrecada��o
*
* Obter O Parametros Contabile Arrecadacao
*
* @author Rafael Santos
* @date 23/05/2006
*
* @param anoMesArrecadacao
* @return
* @throws ErroRepositorioException
*/
/* public Collection obterParametrosContabilArrecadacao(Integer idCategoria,Integer idItemLancamentoContabil,
Integer idItemLancamento,Integer idTipoLancamento,
Integer idTipoRecebimento) throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT acp.contaContabilDebito.id,acp.contaContabilCredito.id,acp.descricaoHistoricoDebito,acp.descricaoHistoricoCredito "
+ " from ArrecadacaoContabilParametros acp "
+ " where acp.categoria.id = :idCategoria,acp.lancamentoItemContabil = :idItemLancamentoContabil,"
+ " acp.lancamentoItem.id = :idItemLancamento,acp.lancamentoTipo.id = :idTipoLancamento,"
+ " acp.recebimentoTipo.id = :idTipoRecebimento";
retorno = session.createQuery(consulta)
.setInteger("idCategoria",idCategoria.intValue())
.setInteger("idItemLancamentoContabil",idItemLancamentoContabil.intValue())
.setInteger("idItemLancamento",idItemLancamento.intValue())
.setInteger("idTipoLancamento",idTipoLancamento.intValue())
.setInteger("idTipoRecebimento",idTipoRecebimento.intValue()).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
*/
/**
* Este met�do � utilizado para pesquisar os registros q ser�o
* usados para contru��o do txt do caso de uso
*
* [UC0469] Gerar Integra��o para a Contabilidade
*
* @author Pedro Alexandre
* @date 28/05/2007
*
* @param idLancamentoOrigem
* @param anoMes
* @return
* @throws ErroRepositorioException
*/
public Collection pesquisarGerarIntegracaoContabilidade(String idLancamentoOrigem, String anoMes) throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "SELECT "
+ " cntc.numeroConta ,"
+ " CASE cntc.indicadorCentroCusto " +
" WHEN 1 THEN loca.codigoCentroCusto" +
" WHEN 2 THEN loca.codigoCentroCustoEsgoto " +
" END ,"
+ " CASE " +
" WHEN lcti.indicadorDebitoCredito = 2 THEN lcti.valorLancamento" +
" END ,"
+ " CASE " +
" WHEN lcti.indicadorDebitoCredito = 1 THEN lcti.valorLancamento" +
" END ,"
+ " loca.descricao "
+ " from LancamentoContabilItem lcti"
+ " inner join lcti.lancamentoContabil lcnb"
+ " inner join lcnb.localidade loca"
+ " inner join lcnb.lancamentoOrigem lcor"
+ " inner join lcti.contaContabil cntc"
+ " WHERE lcnb.anoMes= :anoMes "
+ " and lcor.id= :idLancamentoOrigem"
+ " ORDER BY loca.id";
retorno = session.createQuery(consulta)
.setInteger("anoMes",new Integer(anoMes))
.setInteger("idLancamentoOrigem",new Integer(idLancamentoOrigem))
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Exclui os registros da tabela RESUMO_DEVEDORES_DUVIDOSOS
* por ano m�s ref�ncia cont�bil
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Rafael Pinto
* @date 22/11/2006
*
* @param anoMesReferenciaContabil
* @throws ErroRepositorioException
*/
public void removeResumoDevedoresDuvidososPorAnoMesReferenciaContabil(int anoMesReferenciaContabil)
throws ErroRepositorioException{
Session session = HibernateUtil.getSession();
try {
String delete = "delete ResumoDevedoresDuvidosos as resumo "
+ "where resumo.anoMesReferenciaContabil = :anoMesReferencia ";
session.createQuery(delete).
setInteger("anoMesReferencia", anoMesReferenciaContabil).executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* Atualiza com o valor nulo o m�s/ano de refer�ncia de baixa cont�bil
* das contas baixadas contabilmente no ano/m�s de refer�ncia
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Rafael Pinto
* @date 22/11/2006
*
* @param anoMesReferenciaContabil
* @throws ErroRepositorioException
*/
public void atualizaContaAnoMesReferenciaContabil(int anoMesReferenciaContabil) throws ErroRepositorioException {
/*String update;
Session session = HibernateUtil.getSession();
try {
update = "UPDATE gcom.faturamento.conta.Conta SET "
+ "cnta_amreferenciabaixacontabil = NULL, "
+ "cnta_tmultimaalteracao = :dataUltimaAlteracao "
+ "WHERE cnta_amreferenciacontabil = :anoMesReferenciaContabil ";
session.createQuery(update)
.setInteger("anoMesReferenciaContabil",anoMesReferenciaContabil)
.setTimestamp("dataUltimaAlteracao",new Date())
.executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}*/
String update;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
Connection jdbcCon = session.connection();
update = "update faturamento.conta set "
+ "cnta_amreferenciabaixacontabil = null "
+ "where cnta_id in ( "
+ "select "
+ "contacategoria.cnta_id as contaid "
+ "from "
+ "faturamento.conta_categoria contacategoria, "
+ "faturamento.conta conta "
+ "where "
+ "contacategoria.cnta_id=conta.cnta_id "
+ "and contacategoria.catg_id <> ? "
//+ "and conta.loca_id= ? "
+ "and (conta.dcst_idatual in (?, ?, ?)) "
+ "and (conta.cnta_amreferenciabaixacontabil is not null) "
+ "and conta.cnta_amreferenciaconta < ? "
+ ")";
st = jdbcCon.prepareStatement(update);
st.setInt(1, Categoria.PUBLICO);
//st.setInt(2, idLocalidade);
st.setInt(2, DebitoCreditoSituacao.NORMAL);
st.setInt(3, DebitoCreditoSituacao.INCLUIDA);
st.setInt(4, DebitoCreditoSituacao.RETIFICADA);
st.setInt(5, anoMesReferenciaContabil);
st.executeUpdate();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
/**
* Seleciona todas as ocorrencias dos itens dos par�metros
* baixa cont�bil
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Rafael Pinto, Pedro Alexandre
* @date 22/11/2006, 24/07/2007
*
* @param idParametrosDevedoresDuvidosos
* @throws ErroRepositorioException
*/
public Collection<ParametrosDevedoresDuvidososItem> pesquisaParametrosDevedoresDuvidososItem(
Integer idParametrosDevedoresDuvidosos) throws ErroRepositorioException{
Collection<ParametrosDevedoresDuvidososItem> retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT parametroItem "
+ "FROM ParametrosDevedoresDuvidososItem parametroItem "
+ "INNER JOIN parametroItem.parametrosDevedoresDuvidosos parametro "
+ "WHERE parametro.id = :idParametrosDevedoresDuvidosos";
retorno = session.createQuery(consulta)
.setInteger("idParametrosDevedoresDuvidosos",idParametrosDevedoresDuvidosos)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* Linha 01 Retorna o valor de �gua acumulado,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* @param anoMesReferencia Ano e m�s de refer�ncia do faturamento
* @param idLocalidade C�digo da localidade
* @param idCategoria C�digo da categoria
*
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException Erro no Hibernate
*/
public ResumoDevedoresDuvidosos acumularValorAgua(int anoMesReferenciaBaixaContabil,
int idLocalidade, int idCategoria) throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
ResumoDevedoresDuvidosos retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select new ResumoDevedoresDuvidosos(sum(ctcg.valorAgua),"
+ "cnta.localidade,"
+ "cnta.localidade.gerenciaRegional,"
+ "ctcg.comp_id.categoria) "
+ "from ContaCategoria ctcg "
+ "inner join ctcg.comp_id.conta cnta "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and cnta.localidade.id = :localidade "
+ "and ctcg.comp_id.categoria.id = :categoria "
+ "group by cnta.localidade,cnta.localidade.gerenciaRegional,ctcg.comp_id.categoria ";
// executa o hql
retorno = (ResumoDevedoresDuvidosos) session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* Linha 02 Retorna o valor do esgoto acumulado,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* @param anoMesReferencia Ano e m�s de refer�ncia do faturamento
* @param idLocalidade C�digo da localidade
* @param idCategoria C�digo da categoria
*
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException Erro no Hibernate
*/
public ResumoDevedoresDuvidosos acumularValorEsgoto(int anoMesReferenciaBaixaContabil,
int idLocalidade, int idCategoria) throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
ResumoDevedoresDuvidosos retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select new ResumoDevedoresDuvidosos(sum(ctcg.valorEsgoto),"
+ "cnta.localidade,"
+ "cnta.localidade.gerenciaRegional,"
+ "ctcg.comp_id.categoria) "
+ "from ContaCategoria ctcg "
+ "inner join ctcg.comp_id.conta cnta "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and cnta.localidade.id = :localidade "
+ "and ctcg.comp_id.categoria.id = :categoria "
+ "group by cnta.localidade,cnta.localidade.gerenciaRegional,ctcg.comp_id.categoria ";
// executa o hql
retorno = (ResumoDevedoresDuvidosos) session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* Linha 03 Retorna o valor da categoria acumulado por tipo financiamento por parcelamento agua,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* @param anoMesReferencia Ano e m�s de refer�ncia do faturamento
* @param idLocalidade C�digo da localidade
* @param idCategoria C�digo da categoria
*
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException Erro no Hibernate
*/
public ResumoDevedoresDuvidosos acumularValorCategoriaDebitoCobradoCategoriaTipoFinanciamentoParcelamentoAgua(
int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria) throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
ResumoDevedoresDuvidosos retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select new ResumoDevedoresDuvidosos(sum(dccg.valorCategoria),"
+ "dbcb.localidade,"
+ "dbcb.localidade.gerenciaRegional,"
+ "dccg.categoria ) "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and dbcb.localidade.id = :localidade "
+ "and dccg.categoria.id = :categoria "
+ "and dbcb.financiamentoTipo = :tipoFinanciamento "
+ "group by dbcb.localidade,dbcb.localidade.gerenciaRegional,dccg.categoria ";
// executa o hql
retorno = (ResumoDevedoresDuvidosos) session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setInteger("tipoFinanciamento", FinanciamentoTipo.PARCELAMENTO_AGUA).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* Linha 04 Retorna o valor da categoria acumulado por financiamento por parcelamento esgoto,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* @param anoMesReferencia Ano e m�s de refer�ncia do faturamento
* @param idLocalidade C�digo da localidade
* @param idCategoria C�digo da categoria
*
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException Erro no Hibernate
*/
public ResumoDevedoresDuvidosos acumularValorCategoriaDebitoCobradoCategoriaTipoFinanciamentoParcelamentoEsgoto(
int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria)
throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
ResumoDevedoresDuvidosos retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select new ResumoDevedoresDuvidosos(sum(dccg.valorCategoria),"
+ "dbcb.localidade,"
+ "dbcb.localidade.gerenciaRegional,"
+ "dccg.categoria ) "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and dbcb.localidade.id = :localidade "
+ "and dccg.categoria.id = :categoria "
+ "and dbcb.financiamentoTipo = :tipoFinanciamento "
+ "group by dbcb.localidade,dbcb.localidade.gerenciaRegional,dccg.categoria ";
// executa o hql
retorno = (ResumoDevedoresDuvidosos)
session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setInteger("tipoFinanciamento", FinanciamentoTipo.PARCELAMENTO_ESGOTO).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* Linha 05 Retorna o valor da categoria acumulado por financiamento por parcelamento servi�o,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* @param anoMesReferencia Ano e m�s de refer�ncia do faturamento
* @param idLocalidade C�digo da localidade
* @param idCategoria C�digo da categoria
*
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException Erro no Hibernate
*/
public Collection acumularValorCategoriaDebitoCobradoCategoriaTipoFinanciamentoParcelamentoServicos(
int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria)
throws ErroRepositorioException {
// cria a vari�vel que vai armazenar a cole��o pesquisada
Collection retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select new ResumoDevedoresDuvidosos(sum(dccg.valorCategoria)," +
"lict.sequenciaImpressao," +
"lict," +
"dbcb.localidade," +
"dbcb.localidade.gerenciaRegional," +
"dccg.categoria ) "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "inner join dbcb.lancamentoItemContabil lict "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and dbcb.localidade.id = :localidade"
+ "and dccg.categoria.id = :categoria"
+ "and dbcb.financiamentoTipo = :tipoFinanciamento"
+ "group by lict.sequenciaImpressao,lict,dbcb.localidade,dbcb.localidade.gerenciaRegional,dccg.categoria ";
// executa o hql
retorno = session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setInteger("tipoFinanciamento", FinanciamentoTipo.PARCELAMENTO_SERVICO).
list();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna a cole��o de resumo de faturamento criada
return retorno;
}
/**
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* Linha 06 Retorna o valor da categoria acumulado por financiamento juros parcelamentos,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* @param anoMesReferencia Ano e m�s de refer�ncia do faturamento
* @param idLocalidade C�digo da localidade
* @param idCategoria C�digo da categoria
*
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException Erro no Hibernate
*/
public ResumoDevedoresDuvidosos acumularValorCategoriaDebitoCobradoCategoriaTipoFinanciamentoJurosParcelamento(
int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria)
throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
ResumoDevedoresDuvidosos retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select new ResumoDevedoresDuvidosos(sum(dccg.valorCategoria),"
+ "dbcb.localidade,"
+ "dbcb.localidade.gerenciaRegional,"
+ "dccg.categoria ) "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and dbcb.localidade.id = :localidade "
+ "and dccg.categoria.id = :categoria "
+ "and dbcb.financiamentoTipo = :tipoFinanciamento "
+ "group by dbcb.localidade,dbcb.localidade.gerenciaRegional,dccg.categoria ";
// executa o hql
retorno = (ResumoDevedoresDuvidosos)
session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setInteger("tipoFinanciamento", FinanciamentoTipo.JUROS_PARCELAMENTO).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* Linha 07 Retorna o valor da categoria acumulado por financiamento por servi�o,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* @param anoMesReferencia Ano e m�s de refer�ncia do faturamento
* @param idLocalidade C�digo da localidade
* @param idCategoria C�digo da categoria
*
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException Erro no Hibernate
*/
public Collection acumularValorCategoriaDebitoTipoFinanciamentoServico(
int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria)
throws ErroRepositorioException {
// cria a vari�vel que vai armazenar a cole��o pesquisada
Collection retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select new ResumoDevedoresDuvidosos(sum(dccg.valorCategoria)," +
"lict.sequenciaImpressao," +
"lict," +
"dbcb.localidade," +
"dbcb.localidade.gerenciaRegional," +
"dccg.categoria ) "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "inner join dbcb.lancamentoItemContabil lict "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and dbcb.localidade.id = :localidade"
+ "and dccg.categoria.id = :categoria"
+ "and dbcb.financiamentoTipo = :tipoFinanciamento"
+ "group by lict.sequenciaImpressao,lict,dbcb.localidade,dbcb.localidade.gerenciaRegional,dccg.categoria ";
// executa o hql
retorno = session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setInteger("tipoFinanciamento", FinanciamentoTipo.SERVICO_NORMAL).
list();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna a cole��o pesquisada
return retorno;
}
/**
* [UC0345] - Gerar Relatorio de Resumo da Arrecada��o
*
* @author Vivianne Sousa
* @date 10/04/2007
*
* @param idLancamentoTipo
* @throws ErroRepositorioException
*/
public String obterDescricaoLancamentoTipo(Integer idLancamentoTipo)
throws ErroRepositorioException {
String retorno;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT descricao "
+ "FROM LancamentoTipo "
+ "WHERE id = :idLancamentoTipo ";
retorno = (String)session.createQuery(consulta).setInteger("idLancamentoTipo",idLancamentoTipo).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC00175] Gerar Lan�amentos Cont�beis do Faturamento
*
* Pesquisa os par�metros cont�bil do faturamento.
*
* @author Pedro Alexandre
* @date 24/05/2007
*
* @param idCategoria
* @param idItemLancamentoContabil
* @param idItemLancamento
* @param idTipoLancamento
* @return
* @throws ErroRepositorioException
*/
public Object[] obterParametrosContabilFaturamento(Integer idCategoria,Integer idLancamentoItemContabil, Integer idItemLancamento,Integer idTipoLancamento) throws ErroRepositorioException{
Object[] retorno;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT plcf.contaContabilDebito.id,plcf.contaContabilCredito.id,plcf.descricaoHistoricoDebito,plcf.descricaoHistoricoCredito "
+ "FROM FaturamentoContabilParametros plcf "
+ "LEFT JOIN plcf.categoria catg "
+ "LEFT JOIN plcf.lancamentoItemContabil lict "
+ "LEFT JOIN plcf.lancamentoItem lcit "
+ "LEFT JOIN plcf.lancamentoTipo lctp "
+ "WHERE catg.id = :idCategoria AND "
+ "lcit.id = :idItemLancamento AND "
+ "lctp.id = :idTipoLancamento ";
if(idLancamentoItemContabil == null){
consulta = consulta + "AND lict.id is null ";
}else{
consulta = consulta + "AND lict.id = :idLancamentoItemContabil ";
}
if(idLancamentoItemContabil == null){
retorno =(Object[]) session.createQuery(consulta)
.setInteger("idCategoria",idCategoria)
.setInteger("idItemLancamento",idItemLancamento)
.setInteger("idTipoLancamento",idTipoLancamento)
.uniqueResult();
}else{
retorno =(Object[]) session.createQuery(consulta)
.setInteger("idCategoria",idCategoria)
.setInteger("idLancamentoItemContabil",idLancamentoItemContabil)
.setInteger("idItemLancamento",idItemLancamento)
.setInteger("idTipoLancamento",idTipoLancamento)
.uniqueResult();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa as localidades que tem resumo de faturamento
* para o ano/m�s de faturamento informado.
*
* [UC00175] Gerar Lan�amentos Cont�beis do Faturamento
*
* @author Pedro Alexandre
* @date 25/05/2007
*
* @param anoMesFaturamento
* @return
* @throws ErroRepositorioException
*/
public Collection<Integer> pesquisarIdsLocalidadesParaGerarLancamentosContabeisFaturamento(Integer anoMesFaturamento) throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT DISTINCT (loca.id) "
+ "FROM ResumoFaturamento rfat "
+ "LEFT JOIN rfat.localidade loca "
+ "WHERE rfat.anoMesReferencia = :anoMesFaturamento" ;
retorno = session.createQuery(consulta)
.setInteger("anoMesFaturamento",anoMesFaturamento)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC00348] Gerar Lan�amentos Cont�beis da Arrecada��o
*
* Pesquisa os par�metros cont�bil da arrecada��o.
*
* @author Pedro Alexandre
* @date 31/05/2007
*
* @param idRecebimentoTipo
* @param idCategoria
* @param idItemLancamentoContabil
* @param idItemLancamento
* @param idTipoLancamento
* @return
* @throws ErroRepositorioException
*/
public Object[] obterParametrosContabilArrecadacao(Integer idRecebimentoTipo, Integer idCategoria,Integer idLancamentoItemContabil, Integer idItemLancamento,Integer idTipoLancamento) throws ErroRepositorioException{
Object[] retorno;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT plca.contaContabilDebito.id,plca.contaContabilCredito.id,plca.descricaoHistoricoDebito,plca.descricaoHistoricoCredito "
+ "FROM ArrecadacaoContabilParametros plca "
+ "LEFT JOIN plca.recebimentoTipo rctp "
+ "LEFT JOIN plca.categoria catg "
+ "LEFT JOIN plca.lancamentoItemContabil lict "
+ "LEFT JOIN plca.lancamentoItem lcit "
+ "LEFT JOIN plca.lancamentoTipo lctp "
+ "WHERE rctp.id = :idRecebimentoTipo AND "
+ "catg.id = :idCategoria AND "
+ "lcit.id = :idItemLancamento AND "
+ "lctp.id = :idTipoLancamento ";
if(idLancamentoItemContabil == null){
consulta = consulta + "AND lict.id is null ";
}else{
consulta = consulta + "AND lict.id = :idLancamentoItemContabil ";
}
if(idLancamentoItemContabil == null){
retorno =(Object[]) session.createQuery(consulta)
.setInteger("idRecebimentoTipo",idRecebimentoTipo)
.setInteger("idCategoria",idCategoria)
.setInteger("idItemLancamento",idItemLancamento)
.setInteger("idTipoLancamento",idTipoLancamento)
.uniqueResult();
}else{
retorno =(Object[]) session.createQuery(consulta)
.setInteger("idRecebimentoTipo",idRecebimentoTipo)
.setInteger("idCategoria",idCategoria)
.setInteger("idLancamentoItemContabil",idLancamentoItemContabil)
.setInteger("idItemLancamento",idItemLancamento)
.setInteger("idTipoLancamento",idTipoLancamento)
.uniqueResult();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa as localidades que tem resumo da arrecada��o
* para o ano/m�s de arrecada��o informado.
*
* [UC00348] Gerar Lan�amentos Cont�beis da Arrecada��o
*
* @author Pedro Alexandre
* @date 31/05/2007
*
* @param anoMesArrecadacao
* @return
* @throws ErroRepositorioException
*/
public Collection<Integer> pesquisarIdsLocalidadesParaGerarLancamentosContabeisArrecadacao(Integer anoMesArrecadacao) throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT DISTINCT (loca.id) "
+ "FROM ResumoArrecadacao rarr "
+ "LEFT JOIN rarr.localidade loca "
+ "WHERE rarr.anoMesReferencia = :anoMesArrecadacao" ;
retorno = session.createQuery(consulta)
.setInteger("anoMesArrecadacao",anoMesArrecadacao)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa os par�metros dos devedores duvidosos por
* ano/m�s de refer�ncia cont�bil.
*
* [UC0485] Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 06/06/2007
*
* @param anoMesReferenciaContabil
* @return
* @throws ErroRepositorioException
*/
public ParametrosDevedoresDuvidosos pesquisarParametrosDevedoresDuvidosos(Integer anoMesReferenciaContabil) throws ErroRepositorioException {
ParametrosDevedoresDuvidosos retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT pded "
+ "FROM ParametrosDevedoresDuvidosos pded "
+ "WHERE pded.anoMesReferenciaContabil = :anoMesReferenciaContabil ";
retorno =(ParametrosDevedoresDuvidosos) session.createQuery(consulta)
.setInteger("anoMesReferenciaContabil",anoMesReferenciaContabil)
.uniqueResult();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Atualiza com o valor nulo o m�s/ano de refer�ncia de baixa cont�bil
* das contas baixadas contabilmente no ano/m�s de refer�ncia
* para a localidade informada.
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Rafael Pinto, Pedro Alexandre
* @date 22/11/2006, 06/06/2007
*
* @param anoMesReferenciaContabil
* @param idLocalidade
* @throws ErroRepositorioException
*/
public void atualizaContaAnoMesReferenciaContabil(int anoMesReferenciaContabil, Integer idLocalidade, Integer idQuadra) throws ErroRepositorioException {
String update;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
Connection jdbcCon = session.connection();
update = "update faturamento.conta set "
+ "cnta_amreferenciabaixacontabil = null , "
+ "cnta_tmultimaalteracao = ? "
+ "where conta.loca_id= ? "
+ "and conta.qdra_id = ? "
+ "and conta.cnta_amreferenciabaixacontabil = ? " ;
st = jdbcCon.prepareStatement(update);
st.setTimestamp(1, Util.getSQLTimesTemp(new Date()));
st.setInt(2, idLocalidade);
st.setInt(3, idQuadra);
st.setInt(4, anoMesReferenciaContabil);
st.executeUpdate();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
/**
* Atualiza com o valor nulo o m�s/ano de refer�ncia de baixa cont�bil
* das contas baixadas contabilmente no ano/m�s de refer�ncia
* para a localidade informada.
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Rafael Pinto, Pedro Alexandre
* @date 22/11/2006, 06/06/2007
*
* @param anoMesReferenciaContabil
* @param idLocalidade
* @throws ErroRepositorioException
*/
public void atualizaContaAnoMesReferenciaContabil(int anoMesReferenciaContabil, Integer idLocalidade) throws ErroRepositorioException {
String update;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
Connection jdbcCon = session.connection();
update = "update faturamento.conta set "
+ "cnta_amreferenciabaixacontabil = null , "
+ "cnta_tmultimaalteracao = ? "
+ "where conta.loca_id= ? "
+ "and conta.cnta_amreferenciabaixacontabil = ? " ;
st = jdbcCon.prepareStatement(update);
st.setTimestamp(1, Util.getSQLTimesTemp(new Date()));
st.setInt(2, idLocalidade);
st.setInt(3, anoMesReferenciaContabil);
st.executeUpdate();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
/**
* Exclui os registros da tabela RESUMO_DEVEDORES_DUVIDOSOS
* por ano m�s ref�ncia cont�bil e localidade
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Rafael Pinto, Pedro Alexandre
* @date 22/11/2006, 06/06/2007
*
* @param anoMesReferenciaContabil
* @param idLocalidade
*
* @throws ErroRepositorioException
*/
public void removeResumoDevedoresDuvidososPorAnoMesReferenciaContabil(int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException{
Session session = HibernateUtil.getSession();
try {
String delete = "delete ResumoDevedoresDuvidosos as resumo "
+ "where resumo.anoMesReferenciaContabil = :anoMesReferencia "
+ "and resumo.localidade.id = :idLocalidade ";
session.createQuery(delete).
setInteger("anoMesReferencia", anoMesReferenciaContabil).
setInteger("idLocalidade", idLocalidade)
.executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* Pesquisa a cole��o de ids das localidades para processar o resumo
* dos devedores duvidosos.
*
* [UC0485] Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 25/06/2007
*
* @param anoMesReferenciaContabil
* @return
* @throws ErroRepositorioException
*/
public Collection<Integer> pesquisarIdsLocalidadesGerarResumoDevedoresDuvidosos(int anoMesReferenciaContabil)throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT DISTINCT loca.id "
+ "FROM Localidade loca "
+ "WHERE loca.indicadorUso = :indicadorUso ";
retorno = session.createQuery(consulta)
.setInteger("indicadorUso", ConstantesSistema.SIM)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Linha 01 Retorna o valor de �gua acumulado,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 12/06/2007
*
* @param anoMesReferenciaBaixaContabil
* @param idLocalidade
* @param idCategoria
* @param colecaoIdsContas
* @return
* @throws ErroRepositorioException
*/
public BigDecimal acumularValorAgua(int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria, Collection<Integer> colecaoIdsContas) throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
BigDecimal retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select sum(ctcg.valorAgua) "
+ "from ContaCategoria ctcg "
+ "inner join ctcg.comp_id.conta cnta "
+ "inner join ctcg.comp_id.categoria catg "
+ "inner join cnta.localidade loca "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and loca.id = :localidade "
+ "and catg.id = :categoria "
+ "and cnta.id in (:idsContas) ";
// executa o hql
retorno = (BigDecimal) session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setParameterList("idsContas", colecaoIdsContas).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* Linha 02 Retorna o valor do esgoto acumulado,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 13/06/2007
*
* @param anoMesReferenciaBaixaContabil
* @param idLocalidade
* @param idCategoria
* @param colecaoIdsContas
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException
*/
public BigDecimal acumularValorEsgoto(int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria, Collection<Integer> colecaoIdsContas) throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
BigDecimal retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select sum(ctcg.valorEsgoto) "
+ "from ContaCategoria ctcg "
+ "inner join ctcg.comp_id.conta cnta "
+ "inner join ctcg.comp_id.categoria catg "
+ "inner join cnta.localidade loca "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and loca.id = :localidade "
+ "and catg.id = :categoria "
+ "and cnta.id in(:idsContas) ";
// executa o hql
retorno = (BigDecimal) session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setParameterList("idsContas", colecaoIdsContas).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* Linha 03 Retorna o valor da categoria acumulado por tipo financiamento por parcelamento agua,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 13/06/2007
*
* @param anoMesReferenciaBaixaContabil
* @param idLocalidade
* @param idCategoria
* @param colecaoIdsContas
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException
*/
public BigDecimal acumularValorCategoriaDebitoCobradoCategoriaTipoFinanciamentoParcelamentoAgua(int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria, Collection<Integer> colecaoIdsContas) throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
BigDecimal retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select sum(dccg.valorCategoria) "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "inner join dccg.categoria catg "
+ "inner join dbcb.localidade loca "
+ "inner join dbcb.financiamentoTipo fntp "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and loca.id = :localidade "
+ "and catg.id = :categoria "
+ "and fntp.id = :tipoFinanciamento "
+ "and cnta.id in (:idsContas) ";
// executa o hql
retorno = (BigDecimal) session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setInteger("tipoFinanciamento", FinanciamentoTipo.PARCELAMENTO_AGUA).
setParameterList("idsContas", colecaoIdsContas).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* Linha 04 Retorna o valor da categoria acumulado por financiamento por parcelamento esgoto,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria.
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 13/06/2007
*
* @param anoMesReferenciaBaixaContabil
* @param idLocalidade
* @param idCategoria
* @param colecaoIdsContas
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException
*/
public BigDecimal acumularValorCategoriaDebitoCobradoCategoriaTipoFinanciamentoParcelamentoEsgoto(int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria, Collection<Integer> colecaoIdsContas) throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
BigDecimal retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select sum(dccg.valorCategoria) "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "inner join dbcb.localidade loca "
+ "inner join dccg.categoria catg "
+ "inner join dbcb.financiamentoTipo fntp "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and loca.id = :localidade "
+ "and catg.id = :categoria "
+ "and fntp.id = :tipoFinanciamento "
+ "and cnta.id in (:idsContas) ";
// executa o hql
retorno = (BigDecimal)
session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setInteger("tipoFinanciamento", FinanciamentoTipo.PARCELAMENTO_ESGOTO).
setParameterList("idsContas", colecaoIdsContas).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* Linha 06 Retorna o valor da categoria acumulado por financiamento juros parcelamentos,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 13/06/2007
*
* @param anoMesReferenciaBaixaContabil
* @param idLocalidade
* @param idCategoria
* @param colecaoIdsContas
* @return retorna o valor acumulado de acordo com os par�metros informados
* @throws ErroRepositorioException
*/
public BigDecimal acumularValorCategoriaDebitoCobradoCategoriaTipoFinanciamentoJurosParcelamento(int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria, Collection<Integer> colecaoIdsContas) throws ErroRepositorioException {
// cria o objeto de resumo de faturamento
BigDecimal retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select sum(dccg.valorCategoria) "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "inner join dbcb.localidade loca "
+ "inner join dccg.categoria catg "
+ "inner join dbcb.financiamentoTipo fntp "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and loca.id = :localidade "
+ "and catg.id = :categoria "
+ "and fntp.id = :tipoFinanciamento "
+ "and cnta.id in (:idsContas) ";
// executa o hql
retorno = (BigDecimal)
session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setInteger("tipoFinanciamento", FinanciamentoTipo.JUROS_PARCELAMENTO).
setParameterList("idsContas", colecaoIdsContas).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna o resumo de faturamento criado
return retorno;
}
/**
* Linha 05 Retorna o valor da categoria acumulado por financiamento por parcelamento servi�o,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 13/06/2007
*
* @param anoMesReferenciaBaixaContabil
* @param idLocalidade
* @param idCategoria
* @param colecaoIdsContas
* @return
* @throws ErroRepositorioException
*/
public Collection acumularValorCategoriaDebitoCobradoCategoriaPorTipoFinanciamento(
int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria,int idFinanciamentoTipo,Collection<Integer> colecaoIdsContas)
throws ErroRepositorioException {
// cria a vari�vel que vai armazenar a cole��o pesquisada
Collection retorno = null;
Collection colecaoTiposFinanciamento = new ArrayList();
colecaoTiposFinanciamento.add(idFinanciamentoTipo);
colecaoTiposFinanciamento.add(FinanciamentoTipo.ARRASTO_AGUA);
colecaoTiposFinanciamento.add(FinanciamentoTipo.ARRASTO_ESGOTO);
colecaoTiposFinanciamento.add(FinanciamentoTipo.ARRASTO_SERVICO);
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select sum(dccg.valorCategoria),lict.sequenciaImpressao,lict.id "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "inner join dbcb.lancamentoItemContabil lict "
+ "inner join dbcb.localidade loca "
+ "inner join dccg.categoria catg "
+ "inner join dbcb.financiamentoTipo fntp "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and loca.id = :localidade "
+ "and catg.id = :categoria "
+ "and fntp.id in (:idsTiposFinanciamento) "
+ "and cnta.id in (:idsContas) "
+ "group by lict.sequenciaImpressao,lict.id ";
// executa o hql
retorno = session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setParameterList("idsTiposFinanciamento", colecaoTiposFinanciamento).
setParameterList("idsContas", colecaoIdsContas).
list();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna a cole��o de resumo de faturamento criada
return retorno;
}
/**
* Atualiza com o valor de refer�ncia de baixa cont�bil
* das contas baixadas contabilmente no ano/m�s de refer�ncia
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Rafael Pinto, Pedro Alexandre, Arthur Carvalho
* @date 22/11/2006, 14/06/2007 , 06/12-2010
*
* @param anoMesReferenciaContabil
* @param colecaoIdsContas
* @throws ErroRepositorioException
*/
//Override - Metodo sobrescrito na classe RespositorioFinanceiroPostgres
public void atualizaContaAnoMesReferenciaContabilDevedoresDuvidosos(int anoMesReferenciaContabil, Integer idLocalidade, Integer idQuadra ,
Integer idParametrosDevedoresDuvidosos ) throws ErroRepositorioException {
String update;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
// declara o tipo de conexao
Connection jdbcCon = session.connection();
update = "UPDATE faturamento.conta cnta "
+ " SET cnta_amreferenciabaixacontabil = " + anoMesReferenciaContabil
+ " where cnta.loca_id = " + idLocalidade
+ " and cnta.qdra_id = " + idQuadra
+ " and cnta.dcst_idatual in ( 0 , 1 ,2 ) "
+ " and cnta.cnta_amreferenciaconta < " + anoMesReferenciaContabil
+ " and cnta.cnta_amreferenciabaixacontabil is null "
+ " and exists "
+ " (select ctcg.cnta_id "
+ " from faturamento.conta_categoria ctcg , cadastro.imovel_cobranca_situacao icbs, financeiro.param_deved_duvid_item pdd "
+ " where (cnta.cnta_id = ctcg.cnta_id and ctcg.catg_id in(1,2,3) ) "
+ " and (cnta.imov_id = icbs.imov_id and icbs.iscb_dtretiradacobranca is null) "
+ " and ( (pdd.cbst_id is null or icbs.cbst_id = pdd.cbst_id) "
+ " and (pdd.pded_id = "+idParametrosDevedoresDuvidosos+") "
+ " and abs(MONTHS_BETWEEN ( "
+ " to_date( SUBSTR(to_char( " + anoMesReferenciaContabil + " ), 5, 2) || '-01-' || SUBSTR(to_char(" + anoMesReferenciaContabil + "), 1, 4), 'MM-DD-YYYY'), "
+ " to_date(to_char(cnta.cnta_dtvencimentoconta, 'MM-DD-YYYY'), 'MM-DD-YYYY') "
+ " )) "
+ " >= pdd.pdit_nnmeses "
+ " and (cnta.cnta_vlagua + cnta.cnta_vlesgoto + cnta.cnta_vldebitos - cnta.cnta_vlcreditos - cnta.cnta_vlimpostos ) <= pdd.pdit_vlvalorlimite "
+ " ) "
+ " ) ";
st = jdbcCon.prepareStatement(update);
/*st.setInt(1, anoMesReferenciaContabil);
st.setInt(2, idLocalidade.intValue());
st.setInt(3, idQuadra.intValue());
st.setInt(4, DebitoCreditoSituacao.NORMAL.intValue());
st.setInt(5, DebitoCreditoSituacao.INCLUIDA.intValue());
st.setInt(6, DebitoCreditoSituacao.RETIFICADA.intValue());
st.setInt(7, anoMesReferenciaContabil);
st.setInt(8, Categoria.PUBLICO.intValue() );
st.setInt(9, idParametrosDevedoresDuvidosos.intValue() );
st.setString(10, anoMesReferenciaContabil+"" );
st.setString(11, anoMesReferenciaContabil+"" );*/
// executa o update
st.executeUpdate();
session.flush();
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
// *******************************Caern
/**
* Este met�do � utilizado para pesquisar os registros q ser�o
* usados para contru��o do txt do caso de uso
*
* [UC0469] Gerar Integra��o para a Contabilidade
*
* @author Fl�vio Cordeiro
* @date 06/06/2007
*
* @param idLancamentoOrigem
* @param anoMes
* @return
* @throws ErroRepositorioException
*/
//Override - Metodo sobrescrito na classe RepositorioFinanceiroPostgresHBM
public Collection pesquisarGerarIntegracaoContabilidadeCaern(String idLancamentoOrigem, String anoMes) throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select lcor.numeroCartao ,"//0
+ " lcor.codigoTipo ,"//1
+ " lcor.numeroFolha ,"//2
+ " cntc.indicadorLinha ,"//3
+ " cntc.prefixoContabil ,"//4
+ " cntc.numeroConta ,"//5
+ " cntc.numeroDigito ,"//6
+ " cntc.numeroTerceiros ,"//7
+ " lcor.codigoReferencia ,"//8
+ " sum(lcti.valorLancamento) ,"//9
+ " lcti.indicadorDebitoCredito ,"//10
+ " lcor.numeroCartao2 ,"//11
+ " lcor.numeroVersao ,"//12
+ " CASE WHEN cntc.indicadorCentroCusto = 1 THEN loca.codigoCentroCusto"
+ " ELSE null END as col_13_0_, "//13
+ " cntc.indicadorCentroCusto "//14
+ " from LancamentoContabilItem lcti " // lan�amento contabil item
+ " left join lcti.lancamentoContabil lcnb" //lan�amento cont�bil
+ " left join lcnb.localidade loca" //localidade
+ " left join lcnb.lancamentoOrigem lcor" //lan�amento origem
+ " left join lcti.contaContabil cntc" //conta contabil
+ " where lcnb.anoMes= :anoMes and lcor.id= :idLancamentoOrigem"
+ " group by lcti.indicadorDebitoCredito,"
+ " cntc.numeroConta, cntc.numeroDigito, cntc.numeroTerceiros ,"
+ " lcor.numeroCartao, lcor.codigoTipo,"
+ " lcor.numeroFolha, cntc.indicadorLinha, cntc.prefixoContabil ,"
+ " lcor.codigoReferencia, "
+ " lcor.numeroCartao2, lcor.numeroVersao, case when cntc.indicadorcentrocusto = 1 then loca.codigocentrocusto else null end, "
+ " cntc.indicadorCentroCusto";
retorno = session.createQuery(consulta)
.setInteger("anoMes",new Integer(anoMes))
.setInteger("idLancamentoOrigem",new Integer(idLancamentoOrigem))
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obt�m os dados do resumo dos devedores duvidosos
* a partir do ano e m�s de refer�ncia cont�bil e da localidade.
*
* [UC0486] - Gerar Lan�amentos Cont�beis dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 21/06/2007
*
* @param anoMesReferenciaContabil
* @param idLocalidade
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> obterDadosResumoDevedoresDuvidosos(Integer anoMesReferenciaContabil, Integer idLocalidade) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT loca.id, lctp.id, lcit.id, lict.id, catg.id, SUM(rded.valorBaixado) "
+ "FROM ResumoDevedoresDuvidosos rded "
+ "LEFT JOIN rded.localidade loca "
+ "LEFT JOIN rded.lancamentoTipo lctp "
+ "LEFT JOIN rded.lancamentoItem lcit "
+ "LEFT JOIN rded.lancamentoItemContabil lict "
+ "LEFT JOIN rded.categoria catg "
+ "WHERE rded.anoMesReferenciaContabil = :anoMesReferenciaContabil AND loca.id = :idLocalidade "
+ "GROUP BY loca.id, lctp.id, lcit.id, lict.id, catg.id "
+ "ORDER BY loca.id, lctp.id, lcit.id, lict.id, catg.id ";
retorno = session.createQuery(consulta)
.setInteger("anoMesReferenciaContabil",anoMesReferenciaContabil)
.setInteger("idLocalidade",idLocalidade)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0486] Gerar Lan�amentos Cont�beis dos Devedores Duvidosos
*
* Pesquisa os par�metros cont�bil dos devedores duvidosos.
*
* @author Pedro Alexandre
* @date 21/06/2007
*
* @param idCategoria
* @param idItemLancamentoContabil
* @param idItemLancamento
* @param idTipoLancamento
* @return
* @throws ErroRepositorioException
*/
public Object[] obterParametrosContabilDevedoresDuvidosos(Integer idCategoria,Integer idLancamentoItemContabil, Integer idItemLancamento,Integer idTipoLancamento) throws ErroRepositorioException{
Object[] retorno;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT ddcp.contaContabilDebito.id,ddcp.contaContabilCredito.id,ddcp.descricaoHistoricoDebito,ddcp.descricaoHistoricoCredito "
+ "FROM DevedoresDuvidososContabilParametro ddcp "
+ "LEFT JOIN ddcp.categoria catg "
+ "LEFT JOIN ddcp.lancamentoItemContabil lict "
+ "LEFT JOIN ddcp.lancamentoItem lcit "
+ "LEFT JOIN ddcp.lancamentoTipo lctp "
+ "WHERE catg.id = :idCategoria AND "
+ "lcit.id = :idItemLancamento AND "
+ "lctp.id = :idTipoLancamento ";
if(idLancamentoItemContabil == null){
consulta = consulta + "AND lict.id is null ";
}else{
consulta = consulta + "AND lict.id = :idLancamentoItemContabil ";
}
if(idLancamentoItemContabil == null){
retorno =(Object[]) session.createQuery(consulta)
.setInteger("idCategoria",idCategoria)
.setInteger("idItemLancamento",idItemLancamento)
.setInteger("idTipoLancamento",idTipoLancamento)
.uniqueResult();
}else{
retorno =(Object[]) session.createQuery(consulta)
.setInteger("idCategoria",idCategoria)
.setInteger("idLancamentoItemContabil",idLancamentoItemContabil)
.setInteger("idItemLancamento",idItemLancamento)
.setInteger("idTipoLancamento",idTipoLancamento)
.uniqueResult();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa a cole��o de ids das localidades para processar os lan�amentos
* cont�beis dos devedores duvidosos.
*
* [UC0485] Gerar Lan�amentos Cont�beis dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 25/06/2007
*
* @param anoMesReferenciaContabil
* @return
* @throws ErroRepositorioException
*/
public Collection<Integer> pesquisarIdsLocalidadesGerarLancamentosContabeisDevedoresDuvidosos(int anoMesReferenciaContabil)throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT DISTINCT loca.id "
+ "FROM ResumoDevedoresDuvidosos rded "
+ "INNER JOIN rded.localidade loca "
+ "WHERE rded.anoMesReferenciaContabil = :anoMesReferenciaContabil ";
retorno = session.createQuery(consulta)
.setInteger("anoMesReferenciaContabil", anoMesReferenciaContabil)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa uma cole��o de ids de lan�amentos cont�beis por localidade.
*
* @author Pedro Alexandre
* @date 26/06/2007
*
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param idLancamentoOrigem
* @return
* @throws ErroRepositorioException
*/
public Collection<Integer> pesquisarIdsLancamentosContabeis(Integer anoMesReferenciaContabil, Integer idLocalidade, Integer idLancamentoOrigem)throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT lcnb.id "
+ "FROM LancamentoContabil lcnb "
+ "INNER JOIN lcnb.localidade loca "
+ "INNER JOIN lcnb.lancamentoOrigem lcor "
+ "WHERE lcnb.anoMes = :anoMesReferenciaContabil "
+ "AND loca.id = :idLocalidade "
+ "AND lcor.id = :idLancamentoOrigem ";
retorno = session.createQuery(consulta)
.setInteger("anoMesReferenciaContabil", anoMesReferenciaContabil)
.setInteger("idLocalidade", idLocalidade)
.setInteger("idLancamentoOrigem", idLancamentoOrigem)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Remove os Itens do lan�amento cont�bil.
*
* @author Pedro Alexandre
* @date 26/06/2007
*
* @param idLancamentoContabil
* @throws ErroRepositorioException
*/
public void removerItensLancamentoContabil(Integer idLancamentoContabil) throws ErroRepositorioException{
Session session = HibernateUtil.getSession();
try {
String delete = "delete LancamentoContabilItem lcti "
+ "where lcti.lancamentoContabil.id = :idLancamentoContabil ";
session.createQuery(delete).setInteger("idLancamentoContabil", idLancamentoContabil)
.executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* Remove os Lan�amentos Cont�beis.
*
* @author Pedro Alexandre
* @date 26/06/2007
*
* @param colecaoIdsLancamentosContabeis
* @throws ErroRepositorioException
*/
public void removerLancamentosContabeis(Collection<Integer> colecaoIdsLancamentosContabeis) throws ErroRepositorioException{
Session session = HibernateUtil.getSession();
try {
String delete = "delete LancamentoContabil lcnb "
+ "where lcnb.id in (:idsLancamentosContabeis) ";
session.createQuery(delete).setParameterList("idsLancamentosContabeis", colecaoIdsLancamentosContabeis)
.executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* Linha 05 Retorna o valor da categoria acumulado por financiamento por parcelamento servi�o,
* de acordo com o ano/m�s de refer�ncia baixa contabil, a localiade, a categoria
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 13/06/2007
*
* @param anoMesReferenciaBaixaContabil
* @param idLocalidade
* @param idCategoria
* @param colecaoIdsContas
* @return
* @throws ErroRepositorioException
*/
public Collection acumularValorCategoriaDebitoCobradoCategoriaTipoFinanciamentoParcelamentoServico(int anoMesReferenciaBaixaContabil, int idLocalidade, int idCategoria,Collection<Integer> colecaoIdsContas) throws ErroRepositorioException {
// cria a vari�vel que vai armazenar a cole��o pesquisada
Collection retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "select sum(dccg.valorCategoria),lict.sequenciaImpressao,lict.id "
+ "from DebitoCobradoCategoria dccg "
+ "inner join dccg.debitoCobrado dbcb "
+ "inner join dbcb.conta cnta "
+ "inner join dbcb.lancamentoItemContabil lict "
+ "inner join dbcb.localidade loca "
+ "inner join dccg.categoria catg "
+ "inner join dbcb.financiamentoTipo fntp "
+ "where cnta.referenciaBaixaContabil = :anoMesReferencia "
+ "and loca.id = :localidade "
+ "and catg.id = :categoria "
+ "and fntp.id = :idTipoFinanciamento "
+ "and cnta.id in (:idsContas) "
+ "group by lict.sequenciaImpressao,lict.id ";
// executa o hql
retorno = session.createQuery(consulta).
setInteger("anoMesReferencia", anoMesReferenciaBaixaContabil).
setInteger("localidade", idLocalidade).
setInteger("categoria", idCategoria).
setInteger("idTipoFinanciamento", FinanciamentoTipo.PARCELAMENTO_SERVICO).
setParameterList("idsContas", colecaoIdsContas).
list();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna a cole��o de resumo de faturamento criada
return retorno;
}
//////////////////////////////////////////////////////////////////////////////////////////
/**
* Consulta ResumoDevedoresDuvidosos para a gera��o do relat�rio
* [UC0487] Gerar Relat�rio de Resumo de Devedores Duvidosos
* de acordo com a op��o de totaliza��o.
*
* @author Vivianne Sousa
* @created 19/07/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarResumoDevedoresDuvidososRelatorioPorEstado(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select sum(rdd.valorBaixado), " //0
+ "lt.descricao, " //1
+ "li.descricao, " //2
+ "lic.descricao, " //3
+ "lt.indicadorImpressao, " //4
+ "lt.indicadorTotal, " //5
+ "lt.id, " //6
+ "lt.lancamentoTipo.id, " //7
+ "rdd.categoria.id, " //8
+ "rdd.sequencialTipoLancamento, " //9
+ "rdd.sequencialItemTipoLancamento " //10
+ "from ResumoDevedoresDuvidosos rdd "
+ "left join rdd.lancamentoTipo lt "
+ "left join rdd.lancamentoItem li "
+ "left join rdd.lancamentoItemContabil lic "
+ "where rdd.anoMesReferenciaContabil = :anoMesReferencia and "
+ "(rdd.categoria.id = 1 or "
+ "rdd.categoria.id = 2 or "
+ "rdd.categoria.id = 3 or "
+ "rdd.categoria.id = 4) "
+ "group by lt.descricao,li.descricao,lic.descricao,lt.indicadorImpressao,lt.indicadorTotal,lt.id,lt.lancamentoTipo.id,rdd.categoria.id,rdd.sequencialTipoLancamento,rdd.sequencialItemTipoLancamento "
+ "order by rdd.sequencialTipoLancamento,rdd.sequencialItemTipoLancamento,rdd.categoria.id ";
retorno = session.createQuery(consulta).setInteger("anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consulta ResumoDevedoresDuvidosos para a gera��o do relat�rio
* [UC0487] Gerar Relat�rio de Resumo de Devedores Duvidosos
* de acordo com a op��o de totaliza��o.
*
* @author Vivianne Sousa
* @created 19/07/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarResumoDevedoresDuvidososRelatorioPorEstadoPorGerenciaRegional(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select sum(rdd.valorBaixado), "//0
+ "lt.descricao, "//1
+ "li.descricao, "//2
+ "lic.descricao, "//3
+ "lt.indicadorImpressao, "//4
+ "lt.indicadorTotal, "//5
+ "lt.id, "//6
+ "lt.lancamentoTipo.id, "//7
+ "rdd.categoria.id, "//8
+ "rdd.gerenciaRegional.nome, "//9
+ "rdd.gerenciaRegional.id, "//10
+ "rdd.sequencialTipoLancamento, "//11
+ "rdd.sequencialItemTipoLancamento "//12
+ "from ResumoDevedoresDuvidosos rdd "
+ "left join rdd.lancamentoTipo lt "
+ "left join rdd.lancamentoItem li "
+ "left join rdd.lancamentoItemContabil lic "
+ "where rdd.anoMesReferenciaContabil = :anoMesReferencia and "
+ "(rdd.categoria.id = 1 or rdd.categoria.id = 2 or rdd.categoria.id = 3 or rdd.categoria.id = 4) "
+ "group by rdd.gerenciaRegional.nome, rdd.gerenciaRegional.id, lt.descricao, li.descricao, "
+ "lic.descricao, lt.indicadorImpressao,lt.indicadorTotal, lt.id,lt.lancamentoTipo.id, "
+ "rdd.categoria.id, rdd.sequencialTipoLancamento,rdd.sequencialItemTipoLancamento "
+ "order by rdd.gerenciaRegional.id, rdd.sequencialTipoLancamento, "
+ "rdd.sequencialItemTipoLancamento, rdd.categoria.id ";
retorno = session.createQuery(consulta).setInteger("anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consulta ResumoDevedoresDuvidosos para a gera��o do relat�rio
* [UC0487] Gerar Relat�rio de Resumo de Devedores Duvidosos
* de acordo com a op��o de totaliza��o.
*
* @author Vivianne Sousa
* @created 19/07/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarResumoDevedoresDuvidososRelatorioEstadoPorUnidadeNegocio(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select sum(rdd.valorBaixado), "//0
+ "lt.descricao, "//1
+ "li.descricao, "//2
+ "lic.descricao, "//3
+ "lt.indicadorImpressao, "//4
+ "lt.indicadorTotal, "//5
+ "lt.id, "//6
+ "lt.lancamentoTipo.id, "//7
+ "rdd.categoria.id, "//8
// + "rdd.unidadeNegocio.nome, "//9
// + "rdd.unidadeNegocio.id, "//10
+ "rdd.localidade.unidadeNegocio.nome, "//9
+ "rdd.localidade.unidadeNegocio.id, "//10
+ "rdd.sequencialTipoLancamento, "//11
+ "rdd.sequencialItemTipoLancamento, "//12
+ "rdd.gerenciaRegional.nome, "//13
+ "rdd.gerenciaRegional.id "//14
+ "from ResumoDevedoresDuvidosos rdd "
+ "left join rdd.lancamentoTipo lt "
+ "left join rdd.lancamentoItem li "
+ "left join rdd.lancamentoItemContabil lic "
+ "where rdd.anoMesReferenciaContabil = :anoMesReferencia and "
+ "(rdd.categoria.id = 1 or rdd.categoria.id = 2 or rdd.categoria.id = 3 or rdd.categoria.id = 4) "
+ "group by rdd.localidade.unidadeNegocio.nome,rdd.localidade.unidadeNegocio.id,"
+ "lt.descricao, li.descricao, lic.descricao, lt.indicadorImpressao, lt.indicadorTotal, lt.id, "
+ "lt.lancamentoTipo.id, rdd.categoria.id, rdd.sequencialTipoLancamento, rdd.sequencialItemTipoLancamento, "
+ "rdd.gerenciaRegional.nome, rdd.gerenciaRegional.id "
+ "order by rdd.gerenciaRegional.nome, rdd.localidade.unidadeNegocio.nome, rdd.sequencialTipoLancamento, "
+ "rdd.sequencialItemTipoLancamento, rdd.categoria.id ";
retorno = session.createQuery(consulta).setInteger("anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consulta ResumoDevedoresDuvidosos para a gera��o do relat�rio
* [UC0487] Gerar Relat�rio de Resumo de Devedores Duvidosos
* de acordo com a op��o de totaliza��o.
*
* @author Vivianne Sousa
* @created 19/07/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarResumoDevedoresDuvidososRelatorioPorEstadoPorLocalidade(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select sum(rdd.valorBaixado), "//0
+ "lt.descricao, " //1
+ "li.descricao, " //2
+ "lic.descricao, " //3
+ "lt.indicadorImpressao, "//4
+ "lt.indicadorTotal, " //5
+ "lt.id, " //6
+ "lt.lancamentoTipo.id, "//7
+ "rdd.categoria.id, " //8
+ "rdd.gerenciaRegional.nome, "//9
+ "rdd.gerenciaRegional.id, " //10
+ "rdd.localidade.descricao, " //11
+ "rdd.localidade.id, " //12
+ "rdd.sequencialTipoLancamento, "//13
+ "rdd.sequencialItemTipoLancamento, "//14
+ "rdd.localidade.unidadeNegocio.nome, " //15
+ "rdd.localidade.unidadeNegocio.id " //16
+ "from ResumoDevedoresDuvidosos rdd "
+ "left join rdd.lancamentoTipo lt "
+ "left join rdd.lancamentoItem li "
+ "left join rdd.lancamentoItemContabil lic "
+ "where rdd.anoMesReferenciaContabil = :anoMesReferencia and "
+ "(rdd.categoria.id = 1 or rdd.categoria.id = 2 or rdd.categoria.id = 3 or rdd.categoria.id = 4) "
+ "group by rdd.gerenciaRegional.nome, rdd.gerenciaRegional.id, rdd.localidade.descricao, rdd.localidade.id, "
+ "lt.descricao, li.descricao, lic.descricao, lt.indicadorImpressao, lt.indicadorTotal, lt.id, "
+ "lt.lancamentoTipo.id, rdd.categoria.id, rdd.sequencialTipoLancamento, "
+ "rdd.sequencialItemTipoLancamento,rdd.localidade.unidadeNegocio.nome, rdd.localidade.unidadeNegocio.id "
+ " order by "
+ " rdd.localidade.id,"
+ " rdd.localidade.unidadeNegocio.id,"
+ " rdd.gerenciaRegional.id,"
+ " rdd.sequencialTipoLancamento,"
+ " rdd.sequencialItemTipoLancamento,"
+ " rdd.categoria.id";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consulta ResumoDevedoresDuvidosos para a gera��o do relat�rio
* [UC0487] Gerar Relat�rio de Resumo de Devedores Duvidosos
* de acordo com a op��o de totaliza��o.
*
* @author Vivianne Sousa
* @created 19/07/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarResumoDevedoresDuvidososRelatorioPorGerenciaRegional(
int anoMesReferencia, Integer gerenciaRegional)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select sum(rdd.valorBaixado), "//0
+ "lt.descricao, "//1
+ "li.descricao, "//2
+ "lic.descricao, "//3
+ "lt.indicadorImpressao, "//4
+ "lt.indicadorTotal, "//5
+ "lt.id, "//6
+ "lt.lancamentoTipo.id, "//7
+ "rdd.categoria.id, "//8
+ "rdd.gerenciaRegional.nome, "//9
+ "rdd.gerenciaRegional.id, "//10
+ "rdd.sequencialTipoLancamento, "//11
+ "rdd.sequencialItemTipoLancamento "//12
+ "from ResumoDevedoresDuvidosos rdd "
+ "left join rdd.lancamentoTipo lt "
+ "left join rdd.lancamentoItem li "
+ "left join rdd.lancamentoItemContabil lic "
+ "where rdd.anoMesReferenciaContabil = :anoMesReferencia and rdd.gerenciaRegional = :gerenciaRegional "
+ "and (rdd.categoria.id = 1 or rdd.categoria.id = 2 or rdd.categoria.id = 3 or rdd.categoria.id = 4) "
+ "group by lt.descricao, li.descricao, lic.descricao, lt.indicadorImpressao, "
+ "lt.indicadorTotal, lt.id, lt.lancamentoTipo.id, rdd.categoria.id, rdd.gerenciaRegional.nome, "
+ "rdd.gerenciaRegional.id, rdd.sequencialTipoLancamento, rdd.sequencialItemTipoLancamento "
+ "order by rdd.sequencialTipoLancamento, rdd.sequencialItemTipoLancamento, rdd.categoria.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).setInteger(
"gerenciaRegional", gerenciaRegional).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consulta ResumoDevedoresDuvidosos para a gera��o do relat�rio
* [UC0487] Gerar Relat�rio de Resumo de Devedores Duvidosos
* de acordo com a op��o de totaliza��o.
*
* @author Vivianne Sousa
* @created 19/07/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarResumoDevedoresDuvidososRelatorioPorGerenciaRegionalPorLocalidade(
int anoMesReferencia, Integer gerenciaRegional)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select sum(rdd.valorBaixado), "//0
+ "lt.descricao, "//1
+ "li.descricao, "//2
+ "lic.descricao, "//3
+ "lt.indicadorImpressao, "//4
+ "lt.indicadorTotal, "//5
+ "lt.id, "//6
+ "lt.lancamentoTipo.id, "//7
+ "rdd.categoria.id, "//8
+ "rdd.gerenciaRegional.nome, "//9
+ "rdd.gerenciaRegional.id, "//10
+ "rdd.localidade.descricao, "//11
+ "rdd.localidade.id, "//12
+ "rdd.sequencialTipoLancamento, "//13
+ "rdd.sequencialItemTipoLancamento "//14
+ "from ResumoDevedoresDuvidosos rdd "
+ "left join rdd.lancamentoTipo lt left join rdd.lancamentoItem li "
+ "left join rdd.lancamentoItemContabil lic "
+ "where rdd.anoMesReferenciaContabil = :anoMesReferencia and rdd.gerenciaRegional = :gerenciaRegional and "
+ "(rdd.categoria.id = 1 or rdd.categoria.id = 2 or rdd.categoria.id = 3 or rdd.categoria.id = 4) "
+ "group by rdd.localidade.descricao, rdd.localidade.id, lt.descricao, "
+ "li.descricao, lic.descricao, lt.indicadorImpressao, lt.indicadorTotal, lt.id, "
+ "lt.lancamentoTipo.id, rdd.categoria.id, rdd.gerenciaRegional.nome, rdd.gerenciaRegional.id, "
+ "rdd.sequencialTipoLancamento, rdd.sequencialItemTipoLancamento "
+ "order by rdd.localidade.id, rdd.sequencialTipoLancamento, "
+ "rdd.sequencialItemTipoLancamento, rdd.categoria.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).setInteger(
"gerenciaRegional", gerenciaRegional).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consulta ResumoDevedoresDuvidosos para a gera��o do relat�rio
* [UC0487] Gerar Relat�rio de Resumo de Devedores Duvidosos
* de acordo com a op��o de totaliza��o.
*
* @author Vivianne Sousa
* @created 19/07/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarResumoDevedoresDuvidososRelatorioPorUnidadeNegocio(
int anoMesReferencia, Integer unidadeNegocio) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select sum(rdd.valorBaixado), "//0
+ "lt.descricao, "//1
+ "li.descricao, "//2
+ "lic.descricao, "//3
+ "lt.indicadorImpressao, "//4
+ "lt.indicadorTotal, "//5
+ "lt.id, "//6
+ "lt.lancamentoTipo.id, "//7
+ "rdd.categoria.id, "//8
+ "rdd.localidade.unidadeNegocio.nome, "//9
+ "rdd.localidade.unidadeNegocio.id, "//10
+ "rdd.sequencialTipoLancamento, "//11
+ "rdd.sequencialItemTipoLancamento, "//12
+ "rdd.gerenciaRegional.nome," //13
+ "rdd.gerenciaRegional.id " //14
+ "from ResumoDevedoresDuvidosos rdd "
+ "left join rdd.lancamentoTipo lt "
+ "left join rdd.lancamentoItem li "
+ "left join rdd.lancamentoItemContabil lic "
+ "where rdd.anoMesReferenciaContabil = :anoMesReferencia and "
+ "rdd.localidade.unidadeNegocio = :unidadeNegocio and "
+ "(rdd.categoria.id = 1 or rdd.categoria.id = 2 or rdd.categoria.id = 3 or rdd.categoria.id = 4) "
+ "group by lt.descricao, li.descricao, lic.descricao, lt.indicadorImpressao, lt.indicadorTotal, lt.id, lt.lancamentoTipo.id, "
+ "rdd.categoria.id, rdd.localidade.unidadeNegocio.nome, rdd.localidade.unidadeNegocio.id, rdd.sequencialTipoLancamento, rdd.sequencialItemTipoLancamento, rdd.gerenciaRegional.nome, rdd.gerenciaRegional.id "
+ "order by rdd.sequencialTipoLancamento, rdd.sequencialItemTipoLancamento, rdd.categoria.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).setInteger("unidadeNegocio",unidadeNegocio).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consulta ResumoDevedoresDuvidosos para a gera��o do relat�rio
* [UC0487] Gerar Relat�rio de Resumo de Devedores Duvidosos
* de acordo com a op��o de totaliza��o.
*
* @author Vivianne Sousa
* @created 19/07/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarResumoDevedoresDuvidososRelatorioPorLocalidade(
int anoMesReferencia, Integer localidade)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select sum(rdd.valorBaixado), "//0
+ "lt.descricao, "//1
+ "li.descricao, "//2
+ "lic.descricao, "//3
+ "lt.indicadorImpressao, "//4
+ "lt.indicadorTotal, "//5
+ "lt.id, "//6
+ "lt.lancamentoTipo.id, "//7
+ "rdd.categoria.id, "//8
+ "rdd.localidade.descricao, "//9
+ "rdd.localidade.id, "//10
+ "rdd.sequencialTipoLancamento, "//11
+ "rdd.sequencialItemTipoLancamento "//12
+ "from ResumoDevedoresDuvidosos rdd "
+ "left join rdd.lancamentoTipo lt "
+ "left join rdd.lancamentoItem li "
+ "left join rdd.lancamentoItemContabil lic "
+ "where rdd.anoMesReferenciaContabil = :anoMesReferencia and "
+ "rdd.localidade = :localidade and "
+ "(rdd.categoria.id = 1 or rdd.categoria.id = 2 or rdd.categoria.id = 3 or rdd.categoria.id = 4) "
+ "group by lt.descricao, li.descricao, lic.descricao, lt.indicadorImpressao, lt.indicadorTotal, lt.id, lt.lancamentoTipo.id, "
+ "rdd.categoria.id, rdd.localidade.descricao, rdd.localidade.id, rdd.sequencialTipoLancamento, rdd.sequencialItemTipoLancamento "
+ "order by rdd.sequencialTipoLancamento, rdd.sequencialItemTipoLancamento, rdd.categoria.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).setInteger(
"localidade", localidade).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Remove as contas a receber cont�bil
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public void removerContasAReceberContabil(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "DELETE FROM ContaAReceberContabil contaAReceberContabil "
+ " WHERE contaAReceberContabil.localidade.id = :idLocalidade "
+ " and contaAReceberContabil.anoMesReferencia = :anoMesReferencia";
session.createQuery(consulta).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferencia",
anoMesReferenciaContabil).executeUpdate();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores de �gua e esgoto pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosContasCategoriaValorAguaEsgoto(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " contaCat.catg_id as idCategoria, sum(contaCat.ctcg_vlagua) as valorAgua, sum(contaCat.ctcg_vlesgoto) as valorEsgoto "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.conta_categoria contaCat "
+ " on conta.cnta_id = contaCat.cnta_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, contacat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorAgua",
Hibernate.BIG_DECIMAL).addScalar("valorEsgoto",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores de impostos pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 27/08/2008
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosContasCategoriaValorImpostos(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " contaCat.catg_id as idCategoria, "
+ " sum( round ( ( (cnta_vlimpostos / (select sum(ctcg_qteconomia) from faturamento.conta_categoria where cnta_id = conta.cnta_id)) * contaCat.ctcg_qteconomia ), 2 )) as valorImpostos "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.conta_categoria contaCat "
+ " on conta.cnta_id = contaCat.cnta_id "
+ " WHERE loca.loca_id = :idLocalidade and conta.cnta_vlimpostos is not null and conta.cnta_vlimpostos > 0 "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, contacat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorImpostos",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos cobrados para servi�os pela ger�ncia,
* localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitosCobradosCategoriaServico(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " debCobCat.catg_id as idCategoria, debCob.lict_id as idLancamentoItemContabil, "
+ " sum(debCobCat.dccg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.debito_cobrado debCob "
+ " on debCob.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.debito_cobrado_categoria debCobCat "
+ " on debCobCat.dbcb_id = debCob.dbcb_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "
+ " and ( debCob.fntp_id = :servico ) "
+ " GROUP BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria, idLancamentoItemContabil "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria, idLancamentoItemContabil ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("idLancamentoItemContabil",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"servico", FinanciamentoTipo.SERVICO_NORMAL).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos cobrados para parcelamentos pela ger�ncia,
* localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitosCobradosCategoriaParcelamento(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " debCobCat.catg_id as idCategoria, debCob.lict_id as idLancamentoItemContabil, "
+ " sum(debCobCat.dccg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca"
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.debito_cobrado debCob "
+ " on debCob.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.debito_cobrado_categoria debCobCat "
+ " on debCobCat.dbcb_id = debCob.dbcb_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "
+ " and debCob.fntp_id in ( :parcelamentoAgua, "
+ " :parcelamentoEsgoto, :parcelamentoServico, "
+ " :arrastoAgua, :arrastoEsgoto, "
+ " :arrastoServico, :jurosParcelamento ) "
+ " GROUP BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria, idLancamentoItemContabil "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria, idLancamentoItemContabil ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("idLancamentoItemContabil",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"parcelamentoAgua",
FinanciamentoTipo.PARCELAMENTO_AGUA).setInteger(
"parcelamentoEsgoto",
FinanciamentoTipo.PARCELAMENTO_ESGOTO).setInteger(
"parcelamentoServico",
FinanciamentoTipo.PARCELAMENTO_SERVICO).setInteger(
"arrastoAgua", FinanciamentoTipo.ARRASTO_AGUA)
.setInteger("arrastoEsgoto",
FinanciamentoTipo.ARRASTO_ESGOTO)
.setInteger("arrastoServico",
FinanciamentoTipo.ARRASTO_SERVICO).setInteger(
"jurosParcelamento",
FinanciamentoTipo.JUROS_PARCELAMENTO).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores das guias de pagamento para entradas de parcelamento
* pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosGuiasPagamentoCategoriaEntradaParcelamento(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " gpagCat.catg_id as idCategoria, sum(gpagCat.gpcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.guia_pagamento gpag "
+ " on loca.loca_id = gpag.loca_id "
+ " INNER JOIN faturamento.guia_pagamento_categoria gpagCat "
+ " on gpag.gpag_id = gpagCat.gpag_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( gpag.gpag_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and gpag.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( gpag.gpag_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and gpag.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and gpag.dcst_idanterior is null ) ) "
+ " and ( gpag.fntp_id = :entradaParcelamento ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, gpagcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"entradaParcelamento",
FinanciamentoTipo.ENTRADA_PARCELAMENTO).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores das guias de pagamento para servi�os pela ger�ncia,
* localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosGuiasPagamentoCategoriaServico(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " gpagCat.catg_id as idCategoria, gpag.lict_id as idLancamentoItemContabil, "
+ " sum(gpagCat.gpcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.guia_pagamento gpag "
+ " on loca.loca_id = gpag.loca_id "
+ " INNER JOIN faturamento.guia_pagamento_categoria gpagCat "
+ " on gpag.gpag_id = gpagCat.gpag_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( gpag.gpag_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and gpag.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( gpag.gpag_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and gpag.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and gpag.dcst_idanterior is null ) ) "
+ " and ( gpag.fntp_id = :servico ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, gpagcat.catg_id, gpag.lict_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria, idLancamentoItemContabil ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("idLancamentoItemContabil",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"servico", FinanciamentoTipo.SERVICO_NORMAL).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos realizados para pagamentos em duplicidade
* ou em excesso pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosRealizadosCategoriaPagamentoExcesso(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " credRealizadoCat.catg_id as idCategoria, sum(credRealizadoCat.crcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.credito_realizado credRealizado "
+ " on credRealizado.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.cred_realizado_catg credRealizadoCat "
+ " on credRealizadoCat.crrz_id = credRealizado.crrz_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "
+ " and ( credRealizado.crog_id in ( :pagamentoEmExcesso, :pagamentoDuplicidade) ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, credrealizadocat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"pagamentoEmExcesso",
CreditoOrigem.CONTAS_PAGAS_EM_EXCESSO).setInteger(
"pagamentoDuplicidade",
CreditoOrigem.CONTAS_PAGAS_EM_DUPLICIDADE_EXCESSO)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos realizados para descontos no parcelamento
* pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
@SuppressWarnings("unchecked")
public Collection<Object[]> pesquisarDadosCreditosRealizadosCategoriaDescontoParcelamento(
int anoMesReferenciaContabil, Integer idLocalidade, Integer idCreditoOrigem)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " credRealizadoCat.catg_id as idCategoria, sum(credRealizadoCat.crcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.credito_realizado credRealizado "
+ " on credRealizado.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.cred_realizado_catg credRealizadoCat "
+ " on credRealizadoCat.crrz_id = credRealizado.crrz_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "
+ " and ( credRealizado.crog_id = :idCreditoOrigem ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, credrealizadocat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia",Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorCategoria", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil", anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada", DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada", DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao", DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada", DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito", DebitoCreditoSituacao.DEBITO_PRESCRITO)
.setInteger("situacaoDebitoPrescritoContasIncluidas",DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("idCreditoOrigem",idCreditoOrigem)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos realizados para descontos condicionais
* pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosRealizadosCategoriaDescontoCondicional(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " credRealizadoCat.catg_id as idCategoria, sum(credRealizadoCat.crcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.credito_realizado credRealizado "
+ " on credRealizado.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.cred_realizado_catg credRealizadoCat "
+ " on credRealizadoCat.crrz_id = credRealizado.crrz_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil ) ) ) "
+ " and ( credRealizado.crog_id = :descontoCondicional ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, credrealizadocat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"descontoCondicional",
CreditoOrigem.VALORES_COBRADOS_INDEVIDAMENTE).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos realizados para descontos incondicionais
* pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosRealizadosCategoriaDescontoIncondicional(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " credRealizadoCat.catg_id as idCategoria, sum(credRealizadoCat.crcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.credito_realizado credRealizado "
+ " on credRealizado.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.cred_realizado_catg credRealizadoCat "
+ " on credRealizadoCat.crrz_id = credRealizado.crrz_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "
+ " and ( credRealizado.crog_id = :descontoIncondicional ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, credrealizadocat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"descontoIncondicional",
CreditoOrigem.DESCONTOS_INCONDICIONAIS).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos realizados para ajustes para zerar conta
* pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosRealizadosCategoriaAjusteZerarConta(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " credRealizadoCat.catg_id as idCategoria, sum(credRealizadoCat.crcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.credito_realizado credRealizado "
+ " on credRealizado.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.cred_realizado_catg credRealizadoCat "
+ " on credRealizadoCat.crrz_id = credRealizado.crrz_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "
+ " and ( credRealizado.crog_id = :ajusteZerarConta ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, credrealizadocat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"ajusteZerarConta",
CreditoOrigem.AJUSTES_PARA_ZERAR_CONTA).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos realizados para devolu��es pela ger�ncia,
* localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosRealizadosCategoriaDevolucao(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " credRealizadoCat.catg_id as idCategoria, sum(credRealizadoCat.crcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta "
+ " on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.credito_realizado credRealizado "
+ " on credRealizado.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.cred_realizado_catg credRealizadoCat "
+ " on credRealizadoCat.crrz_id = credRealizado.crrz_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and conta.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and ( conta.dcst_idanterior is null or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "
+ " and credRealizado.crog_id in ( :devolucaoAgua, "
+ " :devolucaoEsgoto, :servicoPagoIndevidamente, "
+ " :devolucaoJuros ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, credrealizadocat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session
.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorCategoria", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida",
DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",
DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("devolucaoAgua",
CreditoOrigem.DEVOLUCAO_TARIFA_AGUA)
.setInteger("devolucaoEsgoto",
CreditoOrigem.DEVOLUCAO_TARIFA_ESGOTO)
.setInteger(
"servicoPagoIndevidamente",
CreditoOrigem.SERVICOS_INDIRETOS_PAGOS_INDEVIDAMENTE)
.setInteger("devolucaoJuros",
CreditoOrigem.DEVOLUCAO_JUROS_PARCELAMENTO).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos a cobrar para servi�o pela ger�ncia,
* localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitoACobrarCategoriaServico(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " dbacCat.catg_id as idCategoria, dbac.lict_id as idLancamentoItemContabil, "
+ " sum( "
+ " CASE WHEN ( ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) < 13 ) "
+ " THEN "
+ " dbacCat.dbcg_vlcategoria - (round( (dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " ELSE "
+ " round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * 12 "
+ " END "
+ " ) as valorCurtoPrazo, "
+ " sum( "
+ " CASE WHEN ( "
+ " ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END) ) ) < 13 ) "
+ " THEN "
+ " 0.00 "
+ " ELSE "
+ " dbacCat.dbcg_vlcategoria - ( round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito ), 2 ) * ( 12 + dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " END "
+ " ) as valorLongoPrazo "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.debito_a_cobrar dbac "
+ " on dbac.loca_id = loca.loca_id "
+ " INNER JOIN faturamento.deb_a_cobrar_catg dbacCat "
+ " on dbacCat.dbac_id = dbac.dbac_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( dbac.dbac_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( dbac.dbac_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and dbac.dcst_idanterior is null ) ) "
+ " and ( dbac.fntp_id = :servico ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, dbaccat.catg_id, dbac.lict_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria, idLancamentoItemContabil ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("idLancamentoItemContabil",
Hibernate.INTEGER).addScalar("valorCurtoPrazo",
Hibernate.BIG_DECIMAL).addScalar("valorLongoPrazo",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"servico", FinanciamentoTipo.SERVICO_NORMAL).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos a cobrar para documentos emitidos pela
* ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitoACobrarCategoriaDocumentosEmitidos(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = " SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " dbacCat.catg_id as idCategoria, "
+ " sum( "
+ " CASE WHEN ( ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) < 13 ) "
+ " THEN "
+ " dbacCat.dbcg_vlcategoria - (round( (dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " ELSE "
+ " round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * 12 "
+ " END "
+ " ) as valorCurtoPrazo, "
+ " sum( "
+ " CASE WHEN ( "
+ " ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END) ) ) < 13 ) "
+ " THEN "
+ " 0.00 "
+ " ELSE "
+ " dbacCat.dbcg_vlcategoria - ( round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito ), 2 ) * ( 12 + dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " END "
+ " ) as valorLongoPrazo "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.debito_a_cobrar dbac "
+ " on dbac.loca_id = loca.loca_id "
+ " INNER JOIN faturamento.deb_a_cobrar_catg dbacCat "
+ " on dbacCat.dbac_id = dbac.dbac_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( dbac.dbac_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( dbac.dbac_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and dbac.dcst_idanterior is null ) ) "
+ " and ( dbac.pcgr_id = :documentoEmitido ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, dbaccat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCurtoPrazo",
Hibernate.BIG_DECIMAL).addScalar("valorLongoPrazo",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"documentoEmitido",
ParcelamentoGrupo.DOCUMENTOS_EMITIDOS).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos a cobrar para financiamentos a cobrar de
* curto prazo pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitoACobrarCategoriaFinancimentosCurtoPrazo(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = " SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " dbacCat.catg_id as idCategoria, "
+ " sum( "
+ " CASE WHEN ( ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) < 13 ) "
+ " THEN "
+ " dbacCat.dbcg_vlcategoria - (round( (dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " ELSE "
+ " round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * 12 "
+ " END "
+ " ) as valorCurtoPrazo, "
+ " sum( "
+ " CASE WHEN ( "
+ " ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END) ) ) < 13 ) "
+ " THEN "
+ " 0.00 "
+ " ELSE "
+ " dbacCat.dbcg_vlcategoria - ( round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito ), 2 ) * ( 12 + dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " END "
+ " ) as valorLongoPrazo "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.debito_a_cobrar dbac "
+ " on dbac.loca_id = loca.loca_id "
+ " INNER JOIN faturamento.deb_a_cobrar_catg dbacCat "
+ " on dbacCat.dbac_id = dbac.dbac_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( dbac.dbac_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( dbac.dbac_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and dbac.dcst_idanterior is null ) ) "
+ " and ( dbac.pcgr_id = :financiamentoCurtoPrazo ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, dbaccat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session
.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorCurtoPrazo", Hibernate.BIG_DECIMAL)
.addScalar("valorLongoPrazo", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida",
DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",
DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger(
"financiamentoCurtoPrazo",
ParcelamentoGrupo.FINANCIAMENTOS_A_COBRAR_CURTO_PRAZO)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos a cobrar para financiamentos a cobrar de
* longo prazo pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitoACobrarCategoriaFinancimentosLongoPrazo(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = " SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " dbacCat.catg_id as idCategoria, "
+ " sum( "
+ " CASE WHEN ( ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) < 13 ) "
+ " THEN "
+ " dbacCat.dbcg_vlcategoria - (round( (dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " ELSE "
+ " round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * 12 "
+ " END "
+ " ) as valorCurtoPrazo, "
+ " sum( "
+ " CASE WHEN ( "
+ " ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END) ) ) < 13 ) "
+ " THEN "
+ " 0.00 "
+ " ELSE "
+ " dbacCat.dbcg_vlcategoria - ( round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito ), 2 ) * ( 12 + dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " END "
+ " ) as valorLongoPrazo "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.debito_a_cobrar dbac "
+ " on dbac.loca_id = loca.loca_id "
+ " INNER JOIN faturamento.deb_a_cobrar_catg dbacCat "
+ " on dbacCat.dbac_id = dbac.dbac_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( dbac.dbac_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( dbac.dbac_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and dbac.dcst_idanterior is null ) ) "
+ " and ( dbac.pcgr_id = :financiamentoLongoPrazo ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, dbaccat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session
.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorCurtoPrazo", Hibernate.BIG_DECIMAL)
.addScalar("valorLongoPrazo", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida",
DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",
DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger(
"financiamentoLongoPrazo",
ParcelamentoGrupo.FINANCIAMENTOS_A_COBRAR_LONGO_PRAZO)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos a cobrar para parcelamentos a cobrar de
* curto prazo pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitoACobrarCategoriaParcelamentosCurtoPrazo(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = " SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " dbacCat.catg_id as idCategoria, "
+ " sum( "
+ " CASE WHEN ( ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) < 13 ) "
+ " THEN "
+ " dbacCat.dbcg_vlcategoria - (round( (dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " ELSE "
+ " round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * 12 "
+ " END "
+ " ) as valorCurtoPrazo, "
+ " sum( "
+ " CASE WHEN ( "
+ " ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END) ) ) < 13 ) "
+ " THEN "
+ " 0.00 "
+ " ELSE "
+ " dbacCat.dbcg_vlcategoria - ( round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito ), 2 ) * ( 12 + dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " END "
+ " ) as valorLongoPrazo "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.debito_a_cobrar dbac "
+ " on dbac.loca_id = loca.loca_id "
+ " INNER JOIN faturamento.deb_a_cobrar_catg dbacCat "
+ " on dbacCat.dbac_id = dbac.dbac_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( dbac.dbac_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( dbac.dbac_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and dbac.dcst_idanterior is null ) ) "
+ " and ( dbac.pcgr_id = :parcelamentoCurtoPrazo ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, dbaccat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session
.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorCurtoPrazo", Hibernate.BIG_DECIMAL)
.addScalar("valorLongoPrazo", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida",
DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",
DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger(
"parcelamentoCurtoPrazo",
ParcelamentoGrupo.PARCELAMENTOS_A_COBRAR_CURTO_PRAZO)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos a cobrar para parcelamentos a cobrar de
* longo prazo pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitoACobrarCategoriaParcelamentosLongoPrazo(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = " SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " dbacCat.catg_id as idCategoria, "
+ " sum( "
+ " CASE WHEN ( ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) < 13 ) "
+ " THEN "
+ " dbacCat.dbcg_vlcategoria - (round( (dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " ELSE "
+ " round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * 12 "
+ " END "
+ " ) as valorCurtoPrazo, "
+ " sum( "
+ " CASE WHEN ( "
+ " ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END) ) ) < 13 ) "
+ " THEN "
+ " 0.00 "
+ " ELSE "
+ " dbacCat.dbcg_vlcategoria - ( round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito ), 2 ) * ( 12 + dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " END "
+ " ) as valorLongoPrazo "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.debito_a_cobrar dbac "
+ " on dbac.loca_id = loca.loca_id "
+ " INNER JOIN faturamento.deb_a_cobrar_catg dbacCat "
+ " on dbacCat.dbac_id = dbac.dbac_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( dbac.dbac_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( dbac.dbac_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and dbac.dcst_idanterior is null ) ) "
+ " and ( dbac.pcgr_id = :parcelamentoLongoPrazo ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, dbaccat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session
.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorCurtoPrazo", Hibernate.BIG_DECIMAL)
.addScalar("valorLongoPrazo", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida",
DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",
DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger(
"parcelamentoLongoPrazo",
ParcelamentoGrupo.PARCELAMENTOS_A_COBRAR_LONGO_PRAZO)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos a cobrar para juros cobrados de
* longo prazo pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 26/05/2008
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitoACobrarCategoriaJurosCobrados(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = " SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " dbacCat.catg_id as idCategoria, "
+ " sum( "
+ " CASE WHEN ( ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) < 13 ) "
+ " THEN "
+ " dbacCat.dbcg_vlcategoria - (round( (dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " ELSE "
+ " round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito), 2 ) * 12 "
+ " END "
+ " ) as valorCurtoPrazo, "
+ " sum( "
+ " CASE WHEN ( "
+ " ( dbac.dbac_nnprestacaodebito - (dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END) ) ) < 13 ) "
+ " THEN "
+ " 0.00 "
+ " ELSE "
+ " dbacCat.dbcg_vlcategoria - ( round( ( dbacCat.dbcg_vlcategoria / dbac.dbac_nnprestacaodebito ), 2 ) * ( 12 + dbac.dbac_nnprestacaocobradas - ( "
+ " CASE WHEN ( dbac.dbac_amreferenciaprestacao is not null and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " END "
+ " ) as valorLongoPrazo "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.debito_a_cobrar dbac "
+ " on dbac.loca_id = loca.loca_id "
+ " INNER JOIN faturamento.deb_a_cobrar_catg dbacCat "
+ " on dbacCat.dbac_id = dbac.dbac_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( dbac.dbac_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( dbac.dbac_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and dbac.dcst_idanterior is null ) ) "
+ " and ( dbac.pcgr_id = :jurosCobrados ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, dbaccat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session
.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorCurtoPrazo", Hibernate.BIG_DECIMAL)
.addScalar("valorLongoPrazo", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida",
DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",
DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger(
"jurosCobrados",
ParcelamentoGrupo.JUROS_COBRADOS)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos d�bitos a cobrar para arrasto de �gua, arrasto de
* esgoto e arrasto de servi�o pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitoACobrarCategoriaArrasto(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " dbacCat.catg_id as idCategoria, sum(dbacCat.dbcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.debito_a_cobrar dbac "
+ " on dbac.loca_id = loca.loca_id "
+ " INNER JOIN faturamento.deb_a_cobrar_catg dbacCat "
+ " on dbacCat.dbac_id = dbac.dbac_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( dbac.dbac_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( dbac.dbac_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and dbac.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and dbac.dcst_idanterior is null ) ) "
+ " and dbac.fntp_id in ( :arrastoAgua, :arrastoEsgoto, :arrastoServico ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, dbaccat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"arrastoAgua", FinanciamentoTipo.ARRASTO_AGUA)
.setInteger("arrastoEsgoto",
FinanciamentoTipo.ARRASTO_ESGOTO)
.setInteger("arrastoServico",
FinanciamentoTipo.ARRASTO_SERVICO).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos a realizar para descontos concedidos no
* parcelamento pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
@SuppressWarnings("unchecked")
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaDescontosParcelamento(
int anoMesReferenciaContabil, Integer idLocalidade, Integer idCreditoOrigem)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( "
+ " CASE WHEN ( ( crar.crar_nnprestacaocredito - (crar.crar_nnprestacaorealizadas - ( "
+ " CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) < 13 ) "
+ " THEN "
+ " crarCat.cacg_vlcategoria - (round( (crarCat.cacg_vlcategoria / crar.crar_nnprestacaocredito), 2 ) * (crar.crar_nnprestacaorealizadas - ( "
+ " CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " ELSE "
+ " round( ( crarCat.cacg_vlcategoria / crar.crar_nnprestacaocredito), 2 ) * 12 "
+ " END "
+ " ) as valorCurtoPrazo, "
+ " sum( "
+ " CASE WHEN ( "
+ " ( crar.crar_nnprestacaocredito - (crar.crar_nnprestacaorealizadas - ( "
+ " CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END) ) ) < 13 ) "
+ " THEN "
+ " 0.00 "
+ " ELSE "
+ " crarCat.cacg_vlcategoria - ( round( ( crarCat.cacg_vlcategoria / crar.crar_nnprestacaocredito ), 2 ) * ( 12 + crar.crar_nnprestacaorealizadas - ( "
+ " CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) ) ) "
+ " END "
+ " ) as valorLongoPrazo "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on crar.loca_id = loca.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crarCat.crar_id = crar.crar_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :descontoParcelamento ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia",Hibernate.INTEGER)
.addScalar("idUnidadeNegocio",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("idCategoria",Hibernate.INTEGER)
.addScalar("valorCurtoPrazo",Hibernate.BIG_DECIMAL)
.addScalar("valorLongoPrazo",Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade",idLocalidade)
.setInteger("anoMesReferenciaContabil",anoMesReferenciaContabil)
.setInteger("situacaoNormal",DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",DebitoCreditoSituacao.DEBITO_PRESCRITO)
.setInteger("situacaoDebitoPrescritoContasIncluidas",DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("descontoParcelamento",idCreditoOrigem)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaValorResidualDescontosParcelamento(
int anoMesReferenciaContabil, Integer idLocalidade, Integer idCreditoOrigem)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( round ( ( (crar_vlresidualmesanterior / (select sum(cacg_qteconomia) from faturamento.cred_a_realiz_catg where crar_id = crar.crar_id)) * crarCat.cacg_qteconomia ), 2 )) as valorResidual "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crar.crar_id = crarCat.crar_id "
+ " WHERE loca.loca_id = :idLocalidade and crar.crar_vlresidualmesanterior is not null and crar.crar_vlresidualmesanterior > 0 "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :descontoParcelamento ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia",Hibernate.INTEGER)
.addScalar("idUnidadeNegocio",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("idCategoria",Hibernate.INTEGER)
.addScalar("valorResidual",Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade",idLocalidade)
.setInteger("anoMesReferenciaContabil",anoMesReferenciaContabil)
.setInteger("situacaoNormal",DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",DebitoCreditoSituacao.DEBITO_PRESCRITO)
.setInteger("situacaoDebitoPrescritoContasIncluidas",DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("descontoParcelamento",idCreditoOrigem).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos a realizar para devolu��es pela ger�ncia,
* localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaDevolucao(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( crarCat.cacg_vlcategoria - (round( ( crarCat.cacg_vlcategoria / crar.crar_nnprestacaocredito), 2 ) * ( crar.crar_nnprestacaorealizadas - "
+ " ( CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) "
+ " ) ) ) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crarCat.crar_id = crar.crar_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and crar.crog_id in ( :devolucaoAgua, "
+ " :devolucaoEsgoto, :servicoPagoIndevidamente, "
+ " :devolucaoJuros ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session
.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorCategoria", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida",
DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",
DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("devolucaoAgua",
CreditoOrigem.DEVOLUCAO_TARIFA_AGUA)
.setInteger("devolucaoEsgoto",
CreditoOrigem.DEVOLUCAO_TARIFA_ESGOTO)
.setInteger(
"servicoPagoIndevidamente",
CreditoOrigem.SERVICOS_INDIRETOS_PAGOS_INDEVIDAMENTE)
.setInteger("devolucaoJuros",
CreditoOrigem.DEVOLUCAO_JUROS_PARCELAMENTO).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores residuais para as devolu��es pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 27/08/2008
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaValorResidualDevolucao(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( round ( ( (crar_vlresidualmesanterior / (select sum(cacg_qteconomia) from faturamento.cred_a_realiz_catg where crar_id = crar.crar_id)) * crarCat.cacg_qteconomia ), 2 )) as valorResidual "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crar.crar_id = crarCat.crar_id "
+ " WHERE loca.loca_id = :idLocalidade and crar.crar_vlresidualmesanterior is not null and crar.crar_vlresidualmesanterior > 0 "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and crar.crog_id in ( :devolucaoAgua, "
+ " :devolucaoEsgoto, :servicoPagoIndevidamente, "
+ " :devolucaoJuros ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorResidual",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("devolucaoAgua",
CreditoOrigem.DEVOLUCAO_TARIFA_AGUA)
.setInteger("devolucaoEsgoto",
CreditoOrigem.DEVOLUCAO_TARIFA_ESGOTO)
.setInteger(
"servicoPagoIndevidamente",
CreditoOrigem.SERVICOS_INDIRETOS_PAGOS_INDEVIDAMENTE)
.setInteger("devolucaoJuros",
CreditoOrigem.DEVOLUCAO_JUROS_PARCELAMENTO).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos a realizar para descontos incondicionais
* pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaDescontoIncondicional(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( crarCat.cacg_vlcategoria - (round( ( crarCat.cacg_vlcategoria / crar.crar_nnprestacaocredito), 2 ) * ( crar.crar_nnprestacaorealizadas - "
+ " ( CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) "
+ " ) ) ) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crarCat.crar_id = crar.crar_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :descontoIncondicional ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger(
"descontoIncondicional",
CreditoOrigem.DESCONTOS_INCONDICIONAIS).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores residuais para os descontos incondicionais pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 27/08/2008
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaValorResidualDescontoIncondicional(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( round ( ( (crar_vlresidualmesanterior / (select sum(cacg_qteconomia) from faturamento.cred_a_realiz_catg where crar_id = crar.crar_id)) * crarCat.cacg_qteconomia ), 2 )) as valorResidual "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crar.crar_id = crarCat.crar_id "
+ " WHERE loca.loca_id = :idLocalidade and crar.crar_vlresidualmesanterior is not null and crar.crar_vlresidualmesanterior > 0 "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :descontoIncondicional ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorResidual",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger(
"descontoIncondicional",
CreditoOrigem.DESCONTOS_INCONDICIONAIS).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos a realizar para contas pagas em excesso
* ou em duplicidade pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaPagamentoExcesso(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( crarCat.cacg_vlcategoria - (round( ( crarCat.cacg_vlcategoria / crar.crar_nnprestacaocredito), 2 ) * ( crar.crar_nnprestacaorealizadas - "
+ " ( CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) "
+ " ) ) ) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crarCat.crar_id = crar.crar_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id in ( :pagamentoExcesso, :pagamentoDuplicidade ) )"
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).setInteger(
"pagamentoDuplicidade",
CreditoOrigem.CONTAS_PAGAS_EM_DUPLICIDADE_EXCESSO).setInteger(
"pagamentoExcesso", CreditoOrigem.CONTAS_PAGAS_EM_EXCESSO)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores residuais para os pagamentos em excesso ou duplicidade no parcelamento pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 27/08/2008
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaValorResidualPagamentoExcesso(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( round ( ( (crar_vlresidualmesanterior / (select sum(cacg_qteconomia) from faturamento.cred_a_realiz_catg where crar_id = crar.crar_id)) * crarCat.cacg_qteconomia ), 2 )) as valorResidual "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crar.crar_id = crarCat.crar_id "
+ " WHERE loca.loca_id = :idLocalidade and crar.crar_vlresidualmesanterior is not null and crar.crar_vlresidualmesanterior > 0 "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id in ( :pagamentoExcesso, :pagamentoDuplicidade ) )"
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorResidual",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada",DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao",DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito",DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("pagamentoExcesso",CreditoOrigem.CONTAS_PAGAS_EM_EXCESSO)
.setInteger("pagamentoDuplicidade",CreditoOrigem.CONTAS_PAGAS_EM_DUPLICIDADE_EXCESSO).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos a realizar para descontos condicionais
* pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaDescontoCondicional(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( crarCat.cacg_vlcategoria - (round( ( crarCat.cacg_vlcategoria / crar.crar_nnprestacaocredito), 2 ) * ( crar.crar_nnprestacaorealizadas - "
+ " ( CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) "
+ " ) ) ) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crarCat.crar_id = crar.crar_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :descontoCondicional ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("descontoCondicional",
CreditoOrigem.VALORES_COBRADOS_INDEVIDAMENTE).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores residuais para os descontos condicionais pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 27/08/2008
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaValorResidualDescontoCondicional(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( round ( ( (crar_vlresidualmesanterior / (select sum(cacg_qteconomia) from faturamento.cred_a_realiz_catg where crar_id = crar.crar_id)) * crarCat.cacg_qteconomia ), 2 )) as valorResidual "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crar.crar_id = crarCat.crar_id "
+ " WHERE loca.loca_id = :idLocalidade and crar.crar_vlresidualmesanterior is not null and crar.crar_vlresidualmesanterior > 0 "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :descontoCondicional ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorResidual",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger(
"descontoCondicional",
CreditoOrigem.VALORES_COBRADOS_INDEVIDAMENTE).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores residuais para os ajustes para zerar a conta no parcelamento pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 27/08/2008
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaValorResidualAjusteZerarConta(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( round ( ( (crar_vlresidualmesanterior / (select sum(cacg_qteconomia) from faturamento.cred_a_realiz_catg where crar_id = crar.crar_id)) * crarCat.cacg_qteconomia ), 2 )) as valorResidual "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crar.crar_id = crarCat.crar_id "
+ " WHERE loca.loca_id = :idLocalidade and crar.crar_vlresidualmesanterior is not null and crar.crar_vlresidualmesanterior > 0 "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :ajusteZerarConta ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorResidual",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger(
"ajusteZerarConta",
CreditoOrigem.AJUSTES_PARA_ZERAR_CONTA).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Seleciona as quadras da localidade informada onde existe contas a serem
* baixadas contabiolmente
*
* [UC0485] - Gerar Resumo dos Devedores Duvidosos
*
* @author Pedro Alexandre
* @date 22/11/2006
*
* @param anoMesReferenciaContabil
* @param idLocalidade
* @throws ErroRepositorioException
*/
public Collection<Integer> obterQuadrasPorLocalidadeParaGerarResumoDevedoresDuvidosos(int anoMesReferenciaContabil, int idLocalidade) throws ErroRepositorioException {
Collection<Integer> retorno = null;
StatelessSession session = HibernateUtil.getStatelessSession();
String consulta;
try {
consulta = " select distinct (qdra.qdra_id) as idQuadra " +
" from cadastro.quadra as qdra " +
" inner join cadastro.setor_comercial as setor on setor.stcm_id = qdra.stcm_id " +
" inner join cadastro.localidade as loca on loca.loca_id = setor.loca_id " +
" where loca.loca_id = :idLocalidade ";
retorno = session.createSQLQuery(consulta)
.addScalar("idQuadra", Hibernate.INTEGER)
.setInteger("idLocalidade",idLocalidade)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0485] Gerar Resumo dos Devedores Duvidosos
*
* verifica se a conta informada possui cliente respons�vel
* com esfera de poder de tipo de cliente igual a municipal,
* estadual ou federal.
*
* @author Pedro Alexandre
* @date 23/07/2007
*
* @param idConta
* @return
* @throws ErroRepositorioException
*/
public boolean verificarExistenciaClienteResponsavelConta(int idConta) throws ErroRepositorioException {
boolean retorno = false;
Collection retornoPesquisa = null;
Collection<Short> colecaoIdsEsferasPoder = new ArrayList();
colecaoIdsEsferasPoder.add(EsferaPoder.MUNICIPAL);
colecaoIdsEsferasPoder.add(EsferaPoder.ESTADUAL);
colecaoIdsEsferasPoder.add(EsferaPoder.FEDERAL);
StatelessSession session = HibernateUtil.getStatelessSession();
String consulta;
try {
consulta = "select clct.id " +
"from ClienteConta clct " +
"inner join clct.conta cnta " +
"inner join clct.cliente clie " +
"inner join clct.clienteRelacaoTipo crtp " +
"inner join clie.clienteTipo cltp " +
"inner join cltp.esferaPoder epod " +
"where cnta.id = :idConta and crtp.id = :idRelacaoTipo " +
"and epod.id in (:idsEsferasPoder) ";
retornoPesquisa = session.createQuery(consulta)
.setInteger("idConta", idConta)
.setInteger("idRelacaoTipo",ClienteRelacaoTipo.RESPONSAVEL)
.setParameterList("idsEsferasPoder",colecaoIdsEsferasPoder)
.list();
if(retornoPesquisa != null && !retornoPesquisa.isEmpty()){
retorno = true;
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar Saldo da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado
* @author: Francisco do Nascimento, Ivan Sergio
* @date: 21/12/2007
* 29/07/2010 - Solicitante: Eduardo. Retirado o item IMPOSTOS DEDUZIDOS da soma;
* 12/04/2011
* @param anoMesReferencia ano/mes
* @param gerencia Id da gerencia regional
* @param unidadeNegocio Id da unidade de negocio
* @param localidade Id da localidade
* @param municipio Id do munic�pio
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarSaldoEvolucaoContasAReceberContabilRelatorioPorEstado(
int anoMesReferencia, Integer gerencia, Integer unidadeNegocio, Integer localidade, Integer municipio)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
String groupBy = "";
String orderBy = "";
try {
// foram colocados os primeiros campos com valores fixos para permitir um unico tratamento
// na pesquisa por Estado, por Gerencia, por Unidade e por Localidade
consulta = "select '', 0, 0, ct.id, sum(crc.valorItemLancamento) "
+ (municipio != null ? ", muni.id " : "")
+ "from ContaAReceberContabil crc "
+ (municipio != null ? " inner join crc.localidade loc " +
" inner join loc.municipio muni " : "")
+ "left join crc.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where crc.anoMesReferencia = :anoMesReferencia "
+ " and crc.lancamentoTipo != " + LancamentoTipo.VALORES_CONTABILIZADOS_COMO_PERDAS.toString()
+ " and crc.lancamentoTipo != " + LancamentoTipo.RECEBIMENTOS_NAO_IDENTIFICADOS.toString()
+ " and crc.lancamentoItem != " + LancamentoItem.IMPOSTOS_DEDUZIDOS.toString()
+ (gerencia != null ? " and crc.gerenciaRegional = " + gerencia : "")
+ (unidadeNegocio != null ? " and crc.unidadeNegocio = " + unidadeNegocio : "")
+ (localidade != null ? " and crc.localidade.id = " + localidade : "")
+ (municipio != null ? " and loc.municipio.id = muni.id " +
" and muni.id = " + municipio : "");
if(municipio != null){
groupBy = " GROUP BY muni.id, ct.id ";
orderBy = " ORDER BY muni.id, ct.id ";
}else{
groupBy = " GROUP BY ct.id ";
orderBy = " ORDER BY ct.id ";
}
consulta += groupBy + orderBy;
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado
* @author: Francisco do Nascimento, Diogo Peixoto
* @date: 26/12/2007, 12/04/2011
* @param anoMesReferencia ano/mes
* @param gerencia Id da gerencia regional
* @param unidadeNegocio Id da unidade de negocio
* @param localidade Id da localidade
* @param municipio Id do munic�pio
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarDadosEvolucaoContasAReceberContabilRelatorioPorEstado(
int anoMesReferencia, Integer gerencia, Integer unidadeNegocio, Integer localidade, Integer municipio)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
String groupBy = "";
String orderBy = "";
try {
// foram colocados os dois primeiros campos com valores fixos para permitir um unico tratamento
// na pesquisa por Estado, por Gerencia, por Unidade e por Localidade
consulta = "select '', 0, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento," +
" ct.id, sum(rf.valorItemFaturamento) "
+ (municipio != null ? ", muni.id " : "")
+ "from ResumoFaturamento rf "
+ (municipio != null ? " inner join rf.localidade loc " +
" inner join loc.municipio muni " : "")
+ "left join rf.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where rf.anoMesReferencia = :anoMesReferencia "
+ (gerencia != null ? " and rf.gerenciaRegional = " + gerencia : "")
+ (unidadeNegocio != null ? " and rf.unidadeNegocio = " + unidadeNegocio : "")
+ (localidade != null ? " and rf.localidade.id = " + localidade : "")
+ (municipio != null ? " and loc.municipio.id = muni.id " +
" and muni.id = " + municipio : "");
if(municipio != null){
groupBy = " group by muni.id, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id ";
orderBy = " order by muni.id, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id ";
}else{
groupBy = " group by rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id ";
orderBy = " order by rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id ";
}
consulta += groupBy + orderBy;
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados de recebimentos do Relatorio da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado
* @author: Francisco do Nascimento, Diogo Peixoto
* @date: 07/01/2008, 12/04/2011
* @param anoMesReferencia ano/mes
* @param gerencia Id da gerencia regional
* @param unidadeNegocio Id da unidade de negocio
* @param localidade Id da localidade
* @param municipio Id do munic�pio
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarRecebimentosContasAReceberContabilRelatorioPorEstado(
int anoMesReferencia, Integer gerencia, Integer unidadeNegocio, Integer localidade, Integer municipio)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
String groupBy = "";
String orderBy = "";
try {
// foram colocados os dois primeiros campos com valores fixos para permitir um unico tratamento
// na pesquisa por Estado, por Gerencia, por Unidade e por Localidade
consulta = "select '', 0, ra.sequenciaTipoLancamento, ct.id, sum(ra.valorItemArrecadacao) "
+ (municipio != null ? ", muni.id " : "")
+ "from ResumoArrecadacao ra "
+ (municipio != null ? " inner join ra.localidade loc " +
" inner join loc.municipio muni " : "")
+ "left join ra.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where ra.anoMesReferencia = :anoMesReferencia "
+ (gerencia != null ? " and ra.gerenciaRegional = " + gerencia : "")
+ (unidadeNegocio != null ? " and ra.unidadeNegocio = " + unidadeNegocio : "")
+ (localidade != null ? " and ra.localidade.id = " + localidade : "")
+ (municipio != null ? " and loc.municipio.id = muni.id " +
" and muni.id = " + municipio : "");
if(municipio != null){
groupBy = " group by muni.id, ra.sequenciaTipoLancamento, ct.id ";
orderBy = " order by muni.id, ra.sequenciaTipoLancamento, ct.id ";
}else{
groupBy = " group by ra.sequenciaTipoLancamento, ct.id ";
orderBy = " order by ra.sequenciaTipoLancamento, ct.id ";
}
consulta += groupBy + orderBy;
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar Saldo da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Gerencia Regional
* @author: Francisco do Nascimento
* @date: 21/12/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarSaldoEvolucaoContasAReceberContabilRelatorioPorGerenciaRegional(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select crc.gerenciaRegional.nome, crc.gerenciaRegional.id, 0, ct.id, " +
"sum(crc.valorItemLancamento) " +
"from ContaAReceberContabil crc "
+ "left join crc.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where crc.anoMesReferencia = :anoMesReferencia "
+ " and crc.lancamentoTipo != " + LancamentoTipo.VALORES_CONTABILIZADOS_COMO_PERDAS.toString()
+ " and crc.lancamentoTipo != " + LancamentoTipo.RECEBIMENTOS_NAO_IDENTIFICADOS.toString()
+ " group by crc.gerenciaRegional.nome, crc.gerenciaRegional.id, ct.id "
+ "order by crc.gerenciaRegional.id, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Gerencia Regional
* @author: Francisco do Nascimento
* @date: 26/12/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarDadosEvolucaoContasAReceberContabilRelatorioPorGerenciaRegional(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select rf.gerenciaRegional.nome, rf.gerenciaRegional.id, " +
"rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id, sum(rf.valorItemFaturamento) " +
"from ResumoFaturamento rf "
+ "left join rf.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where rf.anoMesReferencia = :anoMesReferencia "
+ "group by rf.gerenciaRegional.nome, rf.gerenciaRegional.id,rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id "
+ "order by rf.gerenciaRegional.id, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados de recebimentos do Relatorio da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Gerencia Regional
* @author: Francisco do Nascimento
* @date: 07/01/2008
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarRecebimentosContasAReceberContabilRelatorioPorGerenciaRegional(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select ra.gerenciaRegional.nome, ra.gerenciaRegional.id, " +
"ra.sequenciaTipoLancamento, ct.id, sum(ra.valorItemArrecadacao) " +
"from ResumoArrecadacao ra "
+ "left join ra.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where ra.anoMesReferencia = :anoMesReferencia "
+ "group by ra.gerenciaRegional.nome, ra.gerenciaRegional.id, ra.sequenciaTipoLancamento, ct.id "
+ "order by ra.gerenciaRegional.id, ra.sequenciaTipoLancamento, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar Saldo da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Unidade de Negocio
* @author: Francisco do Nascimento
* @date: 21/12/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarSaldoEvolucaoContasAReceberContabilRelatorioPorUnidadeNegocio(
int anoMesReferencia, Integer gerencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select crc.unidadeNegocio.nome, crc.unidadeNegocio.id , 0, ct.id, " +
"sum(crc.valorItemLancamento) " +
"from ContaAReceberContabil crc "
+ "left join crc.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where crc.anoMesReferencia = :anoMesReferencia "
+ " and crc.lancamentoTipo != " + LancamentoTipo.VALORES_CONTABILIZADOS_COMO_PERDAS.toString()
+ " and crc.lancamentoTipo != " + LancamentoTipo.RECEBIMENTOS_NAO_IDENTIFICADOS.toString()
+ (gerencia != null ? " and crc.gerenciaRegional = " + gerencia : "")
+ " group by crc.unidadeNegocio.nome, crc.unidadeNegocio.id, ct.id "
+ "order by crc.unidadeNegocio.id, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Unidade de Negocio
* @author: Francisco do Nascimento
* @date: 26/12/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarDadosEvolucaoContasAReceberContabilRelatorioPorUnidadeNegocio(
int anoMesReferencia, Integer gerencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select rf.unidadeNegocio.nome, rf.unidadeNegocio.id, " +
"rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id, sum(rf.valorItemFaturamento) " +
"from ResumoFaturamento rf "
+ "left join rf.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where rf.anoMesReferencia = :anoMesReferencia "
+ (gerencia != null ? " and rf.gerenciaRegional = " + gerencia : "")
+ " group by rf.unidadeNegocio.nome, rf.unidadeNegocio.id, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id "
+ "order by rf.unidadeNegocio.id, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados de recebimentos do Relatorio da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Unidade de Negocio
* @author: Francisco do Nascimento
* @date: 07/01/2008
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarRecebimentosContasAReceberContabilRelatorioPorUnidadeNegocio(
int anoMesReferencia, Integer gerencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select ra.unidadeNegocio.nome, ra.unidadeNegocio.id, " +
"ra.sequenciaTipoLancamento, ct.id, sum(ra.valorItemArrecadacao) " +
"from ResumoArrecadacao ra "
+ "left join ra.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where ra.anoMesReferencia = :anoMesReferencia "
+ (gerencia != null ? " and ra.gerenciaRegional = " + gerencia : "")
+ " group by ra.unidadeNegocio.nome, ra.unidadeNegocio.id, ra.sequenciaTipoLancamento, ct.id "
+ "order by ra.unidadeNegocio.id, ra.sequenciaTipoLancamento, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar Saldo da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Unidade de Negocio
* @author: Francisco do Nascimento
* @date: 21/12/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarSaldoEvolucaoContasAReceberContabilRelatorioPorLocalidade(
int anoMesReferencia, Integer gerencia, Integer unidadeNegocio) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select crc.localidade.descricao, crc.localidade.id , 0, ct.id, " +
"sum(crc.valorItemLancamento) " +
"from ContaAReceberContabil crc "
+ "left join crc.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where crc.anoMesReferencia = :anoMesReferencia "
+ " and crc.lancamentoTipo != " + LancamentoTipo.VALORES_CONTABILIZADOS_COMO_PERDAS.toString()
+ " and crc.lancamentoTipo != " + LancamentoTipo.RECEBIMENTOS_NAO_IDENTIFICADOS.toString()
+ (gerencia != null ? " and crc.gerenciaRegional = " + gerencia : "")
+ (unidadeNegocio != null ? " and crc.unidadeNegocio = " + unidadeNegocio : "")
+ " group by crc.localidade.descricao, crc.localidade.id, ct.id "
+ "order by crc.localidade.id, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar Saldo da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Munic�pio
* @author: Diogo Peixoto
* @date: 12/04/2011
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarSaldoEvolucaoContasAReceberContabilRelatorioPorMunicipio(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select muni.nome, muni.id , 0, ct.id, " +
"sum(crc.valorItemLancamento) " +
"from ContaAReceberContabil crc "
+ "inner join crc.localidade loc "
+ "inner join loc.municipio muni "
+ "left join crc.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where crc.anoMesReferencia = :anoMesReferencia "
+ " and crc.lancamentoTipo != " + LancamentoTipo.VALORES_CONTABILIZADOS_COMO_PERDAS.toString()
+ " and crc.lancamentoTipo != " + LancamentoTipo.RECEBIMENTOS_NAO_IDENTIFICADOS.toString()
+ " group by muni.nome, muni.id, ct.id "
+ " order by muni.id, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Unidade de Negocio
* @author: Francisco do Nascimento
* @date: 26/12/2007
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarDadosEvolucaoContasAReceberContabilRelatorioPorLocalidade(
int anoMesReferencia, Integer gerencia, Integer unidadeNegocio) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select rf.localidade.descricao, rf.localidade.id, " +
"rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id, sum(rf.valorItemFaturamento) " +
"from ResumoFaturamento rf "
+ "left join rf.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where rf.anoMesReferencia = :anoMesReferencia "
+ (gerencia != null ? " and rf.gerenciaRegional = " + gerencia : "")
+ (unidadeNegocio != null ? " and rf.unidadeNegocio = " + unidadeNegocio : "")
+ " group by rf.localidade.descricao, rf.localidade.id, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id "
+ "order by rf.localidade.id, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Munic�pio
* @author: Diogo Peixoto
* @date: 12/04/2011
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarDadosEvolucaoContasAReceberContabilRelatorioPorMunicipio(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select muni.nome, muni.id, " +
"rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id, sum(rf.valorItemFaturamento) " +
"from ResumoFaturamento rf "
+ "inner join rf.localidade loc "
+ "inner join loc.municipio muni "
+ "left join rf.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where rf.anoMesReferencia = :anoMesReferencia "
+ " group by muni.nome, muni.id, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id "
+ "order by muni.id, rf.sequenciaTipoLancamento, rf.sequenciaItemTipoLancamento, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0751] - Gerar Valor Referente a Volumes Consumidos e N�o Faturados
*
* Remove o valor dos volumes consumidos e n�o faturados
*
* @author Rafael Corr�a, Pedro Alexandre
* @date 19/02/2008, 08/07/2008
*
* @param idLocalidade
* @param anoMesReferenciaFaturamento Ano e m�s de refer�ncia faturamento
* @throws ErroRepositorioException Erro no hibernate
*/
public void removerValorVolumesConsumidosNaoFaturados(int anoMesReferenciaFaturamento, Integer idLocalidade) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
Connection jdbcCon = session.connection();
String consulta = "delete from financeiro.valor_vol_cons_nao_fatur vcnf "
+ "where vcnf.loca_id = ? "
+ "and vcnf.vcnf_amreferencia = ?";
st = jdbcCon.prepareStatement(consulta);
st.setInt(1, idLocalidade);
st.setInt(2, anoMesReferenciaFaturamento);
st.executeUpdate();
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
/*// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o hql
consulta = "delete from financeiro.valor_vol_cons_nao_fatur vcnf "
+ "where vcnf.loca_id = :idLocalidade "
+ "and vcnf.vcnf_amreferencia = :anoMesReferencia";
session.createSQLQuery(consulta)
.setInteger("idLocalidade",idLocalidade)
.setInteger("anoMesReferencia",anoMesReferenciaFaturamento)
.executeUpdate();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}*/
}
/**
* [UC0751] - Gerar Valor Referente a Volumes Consumidos e N�o Faturados
*
* Acumula os valores de �gua e esgoto pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a, Pedro Alexandre
* @date 08/11/2007, 08/07/2008
*
* @param idLocalidade
* @param anoMesReferenciaFaturamento
* Ano e m�s de refer�ncia faturamento
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosValorVolumesConsumidosNaoFaturadosAguaEsgoto(
int anoMesReferenciaFaturamento, Integer idLocalidade, Date ultimoDiaMesCorrenteFaturamento)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT contaCat.catg_id as idCategoria , "
+ " sum( "
+ " CASE WHEN ( ( mdhi.mdhi_dtleituraatualfaturamento - mdhi.mdhi_dtleitantfatmt ) > 0 ) "
+ " THEN ( "
+ " ( round( "
+ " contaCat.ctcg_vlagua / ( mdhi.mdhi_dtleituraatualfaturamento - mdhi.mdhi_dtleitantfatmt ), 2 "
+ " ) ) * "
+ " ( :ultimoDiaMesCorrenteFaturamento - mdhi.mdhi_dtleituraatualfaturamento ) "
+ " ) "
+ " ELSE "
+ " 0 "
+ " END "
+ " ) as valorAgua, "
+ " sum( "
+ " CASE WHEN ( ( mdhi.mdhi_dtleituraatualfaturamento - mdhi.mdhi_dtleitantfatmt ) > 0 ) "
+ " THEN ( "
+ " ( round( "
+ " contaCat.ctcg_vlesgoto / ( mdhi.mdhi_dtleituraatualfaturamento - mdhi.mdhi_dtleitantfatmt ), 2 "
+ " ) ) * "
+ " ( :ultimoDiaMesCorrenteFaturamento - mdhi.mdhi_dtleituraatualfaturamento ) "
+ " ) "
+ " ELSE "
+ " 0 "
+ " END "
+ " ) as valorEsgoto "
+ " FROM faturamento.conta conta "
+ " INNER JOIN faturamento.conta_categoria contaCat on conta.cnta_id = contaCat.cnta_id "
+ " INNER JOIN micromedicao.medicao_historico mdhi on conta.imov_id = mdhi.lagu_id and conta.cnta_amreferenciaconta = mdhi.mdhi_amleitura and mdhi.medt_id = :ligacaoAgua and mdhi.mdhi_amleitura =:anoMesReferenciaFaturamento "
+ " WHERE conta.loca_id = :idLocalidade "
+ " and conta.cnta_amreferenciaconta = :anoMesReferenciaFaturamento "
+ " and ( conta.dcst_idatual = :situacaoNormal or conta.dcst_idanterior = :situacaoNormal ) "
+ " GROUP BY contacat.catg_id " ;
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("idCategoria",Hibernate.INTEGER)
.addScalar("valorAgua",Hibernate.BIG_DECIMAL)
.addScalar("valorEsgoto",Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade",idLocalidade)
.setInteger("anoMesReferenciaFaturamento",anoMesReferenciaFaturamento)
.setInteger("situacaoNormal",DebitoCreditoSituacao.NORMAL)
.setInteger("ligacaoAgua",MedicaoTipo.LIGACAO_AGUA)
.setDate("ultimoDiaMesCorrenteFaturamento",ultimoDiaMesCorrenteFaturamento)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados de recebimentos do Relatorio da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Unidade de Negocio
* @author: Francisco do Nascimento
* @date: 07/01/2008
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarRecebimentosContasAReceberContabilRelatorioPorLocalidade(
int anoMesReferencia, Integer gerencia, Integer unidadeNegocio) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select ra.localidade.descricao, ra.localidade.id, " +
"ra.sequenciaTipoLancamento, ct.id, sum(ra.valorItemArrecadacao) " +
"from ResumoArrecadacao ra "
+ "left join ra.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where ra.anoMesReferencia = :anoMesReferencia "
+ (gerencia != null ? " and ra.gerenciaRegional = " + gerencia : "")
+ (unidadeNegocio != null ? " and ra.unidadeNegocio = " + unidadeNegocio : "")
+ " group by ra.localidade.descricao, ra.localidade.id, ra.sequenciaTipoLancamento, ct.id "
+ "order by ra.localidade.id, ra.sequenciaTipoLancamento, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consultar dados de recebimentos do Relatorio da Evolucao de Contas a Receber Contabil
* [UC0718 - Gerar Relat�rio da Evolu��o do Contas a Receber Cont�bil] por Estado e por Munic�pio
* @author: Diogo Peixoto
* @date: 12/04/2011
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarRecebimentosContasAReceberContabilRelatorioPorMunicipio(
int anoMesReferencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select muni.nome, muni.id, " +
"ra.sequenciaTipoLancamento, ct.id, sum(ra.valorItemArrecadacao) " +
"from ResumoArrecadacao ra "
+ "inner join ra.localidade loc "
+ "inner join loc.municipio muni "
+ "left join ra.categoria cat "
+ "left join cat.categoriaTipo ct "
+ "where ra.anoMesReferencia = :anoMesReferencia "
+ " group by muni.nome, muni.id, ra.sequenciaTipoLancamento, ct.id "
+ "order by muni.id, ra.sequenciaTipoLancamento, ct.id ";
retorno = session.createQuery(consulta).setInteger(
"anoMesReferencia", anoMesReferencia).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
public Collection consultarDadosRelatorioSaldoContasAReceberContabil(String opcaoTotalizacao,
int anoMesReferencia, Integer gerencia, Integer unidadeNegocio, Integer localidade, Integer municipio)
throws ErroRepositorioException{
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
String joinMunicipio = " left join cadastro.municipio muni on ( loc.muni_idprincipal = muni.muni_id )\n ";
String where = "";
// Unidade de Negocio
if ( unidadeNegocio != null && !unidadeNegocio.equals( 0 ) ){
where += " and uniNeg.uneg_id = :idUnidadeNegocio";
}
// Gerencia Regional
if ( gerencia != null && !gerencia.equals( 0 ) ){
where += " and gerReg.greg_id = :idGerenciaRegional";
}
// Localidade
if ( localidade != null && !localidade.equals( 0 ) ){
where += " and loc.loca_id = :idLocalidade";
}
// Munic�pio
if (municipio != null && !municipio.equals(0)){
where += " and muni.muni_id = :idMunicipio";
}
if(opcaoTotalizacao.equals("estadoMunicipio") || opcaoTotalizacao.equals("municipio")){
joinMunicipio = " inner join cadastro.municipio muni on ( loc.muni_idprincipal = muni.muni_id )\n ";
}
try {
// constroi o sql
consulta =
"select \n " +
" visao.col0, \n " +
" visao.col1, \n " +
" visao.col2, \n " +
" visao.col3, \n " +
" visao.col4, \n " +
" visao.col5, \n " +
" visao.col6, \n " +
" visao.crct_nnsequenciatipolancamento, \n " +
" visao.crct_nnseqitemtplanc, \n " +
" visao.lctp_dstipolancamento, \n " +
" visao.lcit_dsitemlancamento, \n " +
" visao.numeroConta, \n " +
" visao.cgtp_id, \n " +
" sum(coalesce(visao.crct_vlitemlancamento, 0)) as valor,\n " +
" visao.lict_dsitemlancamentocontabil,\n " +
" visao.lctp_id, \n " +
" visao.catg_id \n " +
(municipio != null && !municipio.equals(0) ? ", visao.muni_nmmunicipio " : "") +
"from \n " +
"( \n " +
"select \n " +
" -- 0 \n " +
" case \n " +
" when :opcaoTotalizacao = 'localidade' or \n " +
" :opcaoTotalizacao = 'estadoLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalLocalidade' or \n " +
" :opcaoTotalizacao = 'unidadeNegocioLocalidade' or \n " +
" :opcaoTotalizacao = 'unidadeNegocio' or \n " +
" :opcaoTotalizacao = 'estadoUnidadeNegocio' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalUnidadeNegocio' then \n " +
" gerReg.greg_id \n " +
" else \n " +
" 0 \n " +
" end as col0, \n " +
" -- 1 \n " +
" case \n " +
" when :opcaoTotalizacao = 'localidade' or \n " +
" :opcaoTotalizacao = 'estadoLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalLocalidade' or \n " +
" :opcaoTotalizacao = 'unidadeNegocioLocalidade' or \n " +
" :opcaoTotalizacao = 'unidadeNegocio' or \n " +
" :opcaoTotalizacao = 'estadoUnidadeNegocio' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalUnidadeNegocio' then \n " +
" gerReg.greg_nmregional \n " +
" else \n " +
" '' \n " +
" end as col1, \n " +
" -- 2 \n " +
" case \n " +
" when :opcaoTotalizacao = 'localidade' or \n " +
" :opcaoTotalizacao = 'estadoLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalUnidadeNegocio' then \n " +
" uniNeg.uneg_id \n " +
" else \n " +
" 0 \n " +
" end as col2, \n " +
" -- 3 \n " +
" case \n " +
" when :opcaoTotalizacao = 'localidade' or \n " +
" :opcaoTotalizacao = 'estadoLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalUnidadeNegocio' then \n " +
" uniNeg.uneg_nmunidadenegocio \n " +
" else \n " +
" '' \n " +
" end as col3, \n " +
" -- 4 \n " +
" case \n " +
" when :opcaoTotalizacao = 'localidade' or \n " +
" :opcaoTotalizacao = 'estadoLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalUnidadeNegocio' then \n " +
" loc.loca_cdcentrocusto \n " +
" else \n " +
" '' \n " +
" end as col4, \n " +
" -- 5 \n " +
" case \n " +
" when :opcaoTotalizacao = 'estadoGerencia' then \n " +
" gerReg.greg_nmregional \n " +
" when :opcaoTotalizacao = 'localidade' or \n " +
" :opcaoTotalizacao = 'estadoLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalUnidadeNegocio' then \n " +
" loc.loca_nmlocalidade \n " +
" when :opcaoTotalizacao = 'unidadeNegocio' or \n " +
" :opcaoTotalizacao = 'estadoUnidadeNegocio' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalUnidadeNegocio' then \n " +
" uniNeg.uneg_nmunidadenegocio \n " +
" when :opcaoTotalizacao = 'estadoMunicipio' or \n " +
" :opcaoTotalizacao = 'municipio' then \n " +
" muni.muni_nmmunicipio \n " +
" else \n " +
" '' \n " +
" end as col5, \n " +
" -- 6 \n " +
" case \n " +
" when :opcaoTotalizacao = 'estadoGerencia' then \n " +
" gerReg.greg_id \n " +
" when :opcaoTotalizacao = 'localidade' or \n " +
" :opcaoTotalizacao = 'estadoLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalLocalidade' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalUnidadeNegocio' then \n " +
" loc.loca_id \n " +
" when :opcaoTotalizacao = 'unidadeNegocio' or \n " +
" :opcaoTotalizacao = 'estadoUnidadeNegocio' or \n " +
" :opcaoTotalizacao = 'gerenciaRegionalUnidadeNegocio' then \n " +
" uniNeg.uneg_id \n " +
" when :opcaoTotalizacao = 'estadoMunicipio' or \n " +
" :opcaoTotalizacao = 'municipio' then \n " +
" muni.muni_id \n " +
" else \n " +
" 0 \n " +
" end as col6, \n " +
" conRecCon.crct_nnsequenciatipolancamento, \n " +
" conRecCon.crct_nnseqitemtplanc, \n " +
" lanTip.lctp_dstipolancamento, \n " +
" lanIte.lcit_dsitemlancamento, \n " +
" case\n " +
" when catTip.cgtp_id = 1 then\n " +
" coalesce( conConPar.cnct_nnconta, '0' )\n " +
" else\n " +
" coalesce( conConPub.cnct_nnconta, '0' )\n " +
" end as numeroConta,\n " +
" catTip.cgtp_id,\n " +
" conRecCon.crct_vlitemlancamento,\n " +
" lanIteCon.lict_dsitemlancamentocontabil,\n " +
" lanTip.lctp_id,\n " +
" cat.catg_id\n " +
(municipio != null && !municipio.equals(0) ? ", muni.muni_nmmunicipio " : "") +
"from\n " +
" financeiro.contas_a_receber_contb conRecCon\n " +
" left join cadastro.gerencia_regional gerReg on ( conRecCon.greg_id = gerReg.greg_id )\n " +
" left join cadastro.unidade_negocio uniNeg on ( conRecCon.uneg_id = uniNeg.uneg_id )\n " +
" left join cadastro.localidade loc on ( conRecCon.loca_id = loc.loca_id )\n " +
joinMunicipio +
" left join cadastro.categoria cat on ( conRecCon.catg_id = cat.catg_id )\n " +
" left join cadastro.categoria_tipo catTip on ( cat.cgtp_id = catTip.cgtp_id )\n " +
" left join financeiro.lancamento_tipo lanTip on ( conRecCon.lctp_id = lanTip.lctp_id )\n " +
" left join financeiro.lancamento_item lanIte on ( conRecCon.lcit_id = lanIte.lcit_id )\n " +
" left join financeiro.lancamento_item_contabil lanIteCon on ( conRecCon.lict_id = lanIteCon.lict_id )\n " +
" left join financeiro.contas_a_rec_contb_param conRecConParPar on ( ( conRecConParPar.lict_id = conRecCon.lict_id or conRecConParPar.lict_id is null ) and conRecConParPar.lctp_id = conRecCon.lctp_id and conRecConParPar.lcit_id = conRecCon.lcit_id and conRecConParPar.cgtp_id = 1 )\n " +
" left join financeiro.conta_contabil conConPar on ( conRecConParPar.cnct_id = conConPar.cnct_id )\n " +
" left join financeiro.contas_a_rec_contb_param conRecConParPub on ( ( conRecConParPub.lict_id = conRecCon.lict_id or conRecConParPub.lict_id is null ) and conRecConParPub.lctp_id = conRecCon.lctp_id and conRecConParPub.lcit_id = conRecCon.lcit_id and conRecConParPub.cgtp_id = 2 )\n " +
" left join financeiro.conta_contabil conConPub on ( conRecConParPub.cnct_id = conConPub.cnct_id )\n " +
"where\n " +
" conRecCon.crct_amreferencia = :anoMesReferencia" + where +
") visao\n " +
"group by\n " +
(municipio != null && !municipio.equals(0) ? " visao.muni_nmmunicipio, " : "") +
" visao.col0,\n " +
" visao.col1,\n " +
" visao.col2,\n " +
" visao.col3,\n " +
" visao.col4,\n " +
" visao.col5,\n " +
" visao.col6,\n " +
" visao.crct_nnsequenciatipolancamento,\n " +
" visao.crct_nnseqitemtplanc,\n " +
" visao.lctp_dstipolancamento,\n " +
" visao.lcit_dsitemlancamento,\n " +
" visao.cgtp_id,\n " +
" visao.numeroConta,\n " +
" visao.lict_dsitemlancamentocontabil,\n " +
" visao.lctp_id,\n " +
" visao.catg_id " +
"order by\n " +
(municipio != null && !municipio.equals(0) ? " visao.muni_nmmunicipio, " : "") +
" visao.col0,\n " +
" visao.col1,\n " +
" visao.col2,\n " +
" visao.col3,\n " +
" visao.col4,\n " +
" visao.col5,\n " +
" visao.col6,\n " +
" visao.crct_nnsequenciatipolancamento,\n " +
" visao.crct_nnseqitemtplanc,\n " +
" visao.lctp_dstipolancamento,\n " +
" visao.lcit_dsitemlancamento,\n " +
" visao.numeroConta,\n " +
" visao.cgtp_id,\n " +
" visao.lict_dsitemlancamentocontabil,\n " +
" visao.lctp_id,\n " +
" visao.catg_id";
// executa o sql
SQLQuery query =
session.createSQLQuery(consulta);
// Unidade de Negocio
if ( unidadeNegocio != null && !unidadeNegocio.equals( 0 ) ){
query.setInteger( "idUnidadeNegocio", unidadeNegocio );
}
// Gerencia Regional
if ( gerencia != null && !gerencia.equals( 0 ) ){
query.setInteger( "idGerenciaRegional", gerencia );
}
// Localidade
if ( localidade != null && !localidade.equals( 0 ) ){
query.setInteger( "idLocalidade", localidade );
}
//Munic�pio
if(municipio != null && !municipio.equals(0)){
query.setInteger( "idMunicipio", municipio);
}
retorno = query
.addScalar( "col0", Hibernate.INTEGER )
.addScalar( "col1", Hibernate.STRING )
.addScalar( "col2", Hibernate.INTEGER )
.addScalar( "col3", Hibernate.STRING )
.addScalar( "col4", Hibernate.STRING )
.addScalar( "col5", Hibernate.STRING )
.addScalar( "col6", Hibernate.INTEGER )
.addScalar( "crct_nnsequenciatipolancamento", Hibernate.INTEGER )
.addScalar( "crct_nnseqitemtplanc", Hibernate.INTEGER )
.addScalar( "lctp_dstipolancamento", Hibernate.STRING )
.addScalar( "lcit_dsitemlancamento", Hibernate.STRING )
.addScalar( "numeroConta", Hibernate.INTEGER )
.addScalar( "cgtp_id", Hibernate.INTEGER )
.addScalar( "valor", Hibernate.BIG_DECIMAL )
.addScalar( "lict_dsitemlancamentocontabil", Hibernate.STRING )
.addScalar( "lctp_id", Hibernate.INTEGER )
.addScalar( "catg_id", Hibernate.INTEGER )
.setString( "opcaoTotalizacao", opcaoTotalizacao )
.setInteger( "anoMesReferencia", anoMesReferencia ).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�oMunicipio
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0799] - Gerar Txt das Contas Baixadas Contabilmente
*
* @author: Vivianne Sousa
* @date: 09/04/2008
*
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> consultarDadosContasBaixadasContabilmentePorQuadraFaixa1(
Integer referenciaInicio, Integer referenciaFinal ,Integer quadra,Short periodicidade) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = montarConsultaContasBaixadasContabilmente(
referenciaInicio, referenciaFinal, false, true,periodicidade);
if (referenciaInicio == null || referenciaInicio.equals(0)){
retorno = session.createSQLQuery(consulta)
.addScalar("referenciaBaixaContabil",Hibernate.INTEGER)
.addScalar("idImovel",Hibernate.INTEGER)
.addScalar("referenciaFatura",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("cdSetorComercial",Hibernate.INTEGER)
.addScalar("quadra",Hibernate.INTEGER)
.addScalar("lote",Hibernate.SHORT)
.addScalar("sublote",Hibernate.SHORT)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.addScalar("usuario",Hibernate.STRING)
.addScalar("situacaoAgua",Hibernate.STRING)
.addScalar("situacaoEsgoto",Hibernate.STRING)
.setInteger("quadra",quadra)
.setInteger("usuario",ClienteRelacaoTipo.USUARIO)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaFinal",ConstantesSistema.FAIXA_VALOR_1)
.list();
}else{
retorno = session.createSQLQuery(consulta)
.addScalar("referenciaBaixaContabil",Hibernate.INTEGER)
.addScalar("idImovel",Hibernate.INTEGER)
.addScalar("referenciaFatura",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("cdSetorComercial",Hibernate.INTEGER)
.addScalar("quadra",Hibernate.INTEGER)
.addScalar("lote",Hibernate.SHORT)
.addScalar("sublote",Hibernate.SHORT)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.addScalar("usuario",Hibernate.STRING)
.addScalar("situacaoAgua",Hibernate.STRING)
.addScalar("situacaoEsgoto",Hibernate.STRING)
.setInteger("quadra",quadra)
.setInteger("usuario",ClienteRelacaoTipo.USUARIO)
.setInteger("referenciaInicio",referenciaInicio)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaFinal",ConstantesSistema.FAIXA_VALOR_1)
.list();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0799] - Gerar Txt das Contas Baixadas Contabilmente
*
* @author: Vivianne Sousa
* @date: 09/05/2008
*
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> consultarDadosContasBaixadasContabilmentePorQuadraFaixa2(
Integer referenciaInicio, Integer referenciaFinal ,Integer quadra,Short periodicidade) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = montarConsultaContasBaixadasContabilmente(
referenciaInicio, referenciaFinal, true, true, periodicidade);
if (referenciaInicio == null || referenciaInicio.equals(0)){
retorno = session.createSQLQuery(consulta)
.addScalar("referenciaBaixaContabil",Hibernate.INTEGER)
.addScalar("idImovel",Hibernate.INTEGER)
.addScalar("referenciaFatura",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("cdSetorComercial",Hibernate.INTEGER)
.addScalar("quadra",Hibernate.INTEGER)
.addScalar("lote",Hibernate.SHORT)
.addScalar("sublote",Hibernate.SHORT)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.addScalar("usuario",Hibernate.STRING)
.addScalar("situacaoAgua",Hibernate.STRING)
.addScalar("situacaoEsgoto",Hibernate.STRING)
.setInteger("quadra",quadra)
.setInteger("usuario",ClienteRelacaoTipo.USUARIO)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaInicio",ConstantesSistema.FAIXA_VALOR_1_MAIS_1)
.setBigDecimal("valorFaixaFinal",ConstantesSistema.FAIXA_VALOR_2)
.list();
}else{
retorno = session.createSQLQuery(consulta)
.addScalar("referenciaBaixaContabil",Hibernate.INTEGER)
.addScalar("idImovel",Hibernate.INTEGER)
.addScalar("referenciaFatura",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("cdSetorComercial",Hibernate.INTEGER)
.addScalar("quadra",Hibernate.INTEGER)
.addScalar("lote",Hibernate.SHORT)
.addScalar("sublote",Hibernate.SHORT)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.addScalar("usuario",Hibernate.STRING)
.addScalar("situacaoAgua",Hibernate.STRING)
.addScalar("situacaoEsgoto",Hibernate.STRING)
.setInteger("quadra",quadra)
.setInteger("usuario",ClienteRelacaoTipo.USUARIO)
.setInteger("referenciaInicio",referenciaInicio)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaInicio",ConstantesSistema.FAIXA_VALOR_1_MAIS_1)
.setBigDecimal("valorFaixaFinal",ConstantesSistema.FAIXA_VALOR_2)
.list();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0799] - Gerar Txt das Contas Baixadas Contabilmente
*
* @author: Vivianne Sousa
* @date: 09/05/2008
*
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> consultarDadosContasBaixadasContabilmentePorQuadraFaixa3(
Integer referenciaInicio, Integer referenciaFinal ,Integer quadra,Short periodicidade) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = montarConsultaContasBaixadasContabilmente(
referenciaInicio, referenciaFinal, true, false, periodicidade);
if (referenciaInicio == null || referenciaInicio.equals(0)){
retorno = session.createSQLQuery(consulta)
.addScalar("referenciaBaixaContabil",Hibernate.INTEGER)
.addScalar("idImovel",Hibernate.INTEGER)
.addScalar("referenciaFatura",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("cdSetorComercial",Hibernate.INTEGER)
.addScalar("quadra",Hibernate.INTEGER)
.addScalar("lote",Hibernate.SHORT)
.addScalar("sublote",Hibernate.SHORT)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.addScalar("usuario",Hibernate.STRING)
.addScalar("situacaoAgua",Hibernate.STRING)
.addScalar("situacaoEsgoto",Hibernate.STRING)
.setInteger("quadra",quadra)
.setInteger("usuario",ClienteRelacaoTipo.USUARIO)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaInicio",ConstantesSistema.FAIXA_VALOR_3)
.list();
}else{
retorno = session.createSQLQuery(consulta)
.addScalar("referenciaBaixaContabil",Hibernate.INTEGER)
.addScalar("idImovel",Hibernate.INTEGER)
.addScalar("referenciaFatura",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("cdSetorComercial",Hibernate.INTEGER)
.addScalar("quadra",Hibernate.INTEGER)
.addScalar("lote",Hibernate.SHORT)
.addScalar("sublote",Hibernate.SHORT)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.addScalar("usuario",Hibernate.STRING)
.addScalar("situacaoAgua",Hibernate.STRING)
.addScalar("situacaoEsgoto",Hibernate.STRING)
.setInteger("quadra",quadra)
.setInteger("usuario",ClienteRelacaoTipo.USUARIO)
.setInteger("referenciaInicio",referenciaInicio)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaInicio",ConstantesSistema.FAIXA_VALOR_3)
.list();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0799] - Gerar Txt das Contas Baixadas Contabilmente
*
* @author: Vivianne Sousa
* @date: 09/05/2008
*
* @exception ErroRepositorioException
* Repositorio Exception
*/
public String montarConsultaContasBaixadasContabilmente(
Integer referenciaInicio, Integer referenciaFinal,
boolean valorFaixaInicio, boolean valorFaixaFinal,Short periodicidade) {
String consulta = "";
consulta = " (SELECT " +
" ct.cnta_amreferenciabaixacontabil as referenciaBaixaContabil, " +
" im.imov_id as idImovel, " +
" ct.cnta_amreferenciaconta as referenciaFatura, " +
" ct.loca_id as idLocalidade, " +
" ct.cnta_cdsetorcomercial as cdSetorComercial, " +
" ct.cnta_nnquadra as quadra, " +
" ct.cnta_nnlote as lote, " +
" ct.cnta_nnsublote as sublote, " +
" (ct.cnta_vlagua+ct.cnta_vlesgoto+ct.cnta_vldebitos-ct.cnta_vlcreditos) as valorConta, " +
" cl.clie_nmcliente as usuario, " +
" la.last_dsligacaoaguasituacao as situacaoAgua, " +
" le.lest_dsligacaoesgotosituacao as situacaoEsgoto " +
" FROM faturamento.conta ct " +
" INNER JOIN atendimentopublico.ligacao_agua_situacao la ON la.last_id = ct.last_id " +
" INNER JOIN atendimentopublico.ligacao_esgoto_situacao le ON le.lest_id = ct.lest_id " +
" INNER JOIN cadastro.imovel im ON im.imov_id = ct.imov_id " +
" INNER JOIN cadastro.cliente_imovel ci ON im.imov_id = ci.imov_id AND ci.crtp_id = :usuario AND ci.clim_dtrelacaofim is null " +
" INNER JOIN cadastro.cliente cl ON ci.clie_id = cl.clie_id " +
" WHERE ct.qdra_id = :quadra ";
if (referenciaInicio != null && !referenciaInicio.equals(0) &&
referenciaFinal != null && !referenciaFinal.equals(0)){
consulta = consulta +
" AND ct.cnta_amreferenciabaixacontabil between :referenciaInicio AND :referenciaFinal ";
}else if(referenciaFinal != null && !referenciaFinal.equals(0)){
consulta = consulta +
" AND ct.cnta_amreferenciabaixacontabil <= :referenciaFinal ";
}
if (valorFaixaInicio && valorFaixaFinal){
consulta = consulta +
" AND (ct.cnta_vlagua+ct.cnta_vlesgoto+ct.cnta_vldebitos-ct.cnta_vlcreditos)" +
" between :valorFaixaInicio AND :valorFaixaFinal ";
}else if(valorFaixaInicio){
consulta = consulta +
" AND (ct.cnta_vlagua+ct.cnta_vlesgoto+ct.cnta_vldebitos-ct.cnta_vlcreditos) >= :valorFaixaInicio ";
}else if(valorFaixaFinal){
consulta = consulta +
" AND (ct.cnta_vlagua+ct.cnta_vlesgoto+ct.cnta_vldebitos-ct.cnta_vlcreditos) <= :valorFaixaFinal ";
}
consulta = consulta + ")" ;
// " ORDER BY ct.cnta_amreferenciabaixacontabil, im.imov_id, ct.cnta_amreferenciaconta) " +
if(!periodicidade.equals(ConstantesSistema.ACUMULADO)){
consulta = consulta + " UNION " +
" (SELECT " +
" ct.cnhi_amreferenciabaixacontabil as referenciaBaixaContabil, " +
" im.imov_id as idImovel, " +
" ct.cnhi_amreferenciaconta as referenciaFatura, " +
" ct.loca_id as idLocalidade, " +
" ct.cnhi_cdsetorcomercial as cdSetorComercial, " +
" ct.cnhi_nnquadra as quadra, " +
" ct.cnhi_nnlote as lote, " +
" ct.cnhi_nnsublote as sublote, " +
" (ct.cnhi_vlagua+ct.cnhi_vlesgoto+ct.cnhi_vldebitos-ct.cnhi_vlcreditos) as valorConta, " +
" cl.clie_nmcliente as usuario, " +
" la.last_dsligacaoaguasituacao as situacaoAgua, " +
" le.lest_dsligacaoesgotosituacao as situacaoEsgoto " +
" FROM faturamento.conta_historico ct " +
" INNER JOIN atendimentopublico.ligacao_agua_situacao la ON la.last_id = ct.last_id " +
" INNER JOIN atendimentopublico.ligacao_esgoto_situacao le ON le.lest_id = ct.lest_id " +
" INNER JOIN cadastro.imovel im ON im.imov_id = ct.imov_id " +
" INNER JOIN cadastro.cliente_imovel ci ON im.imov_id = ci.imov_id AND ci.crtp_id = :usuario AND ci.clim_dtrelacaofim is null " +
" INNER JOIN cadastro.cliente cl ON ci.clie_id = cl.clie_id " +
" WHERE ct.qdra_id = :quadra ";
if (referenciaInicio != null && !referenciaInicio.equals(0) &&
referenciaFinal != null && !referenciaFinal.equals(0)){
consulta = consulta +
" AND ct.cnhi_amreferenciabaixacontabil between :referenciaInicio AND :referenciaFinal ";
}else if(referenciaFinal != null && !referenciaFinal.equals(0)){
consulta = consulta +
" AND ct.cnhi_amreferenciabaixacontabil <= :referenciaFinal ";
}
if (valorFaixaInicio && valorFaixaFinal){
consulta = consulta +
"AND (ct.cnhi_vlagua+ct.cnhi_vlesgoto+ct.cnhi_vldebitos-ct.cnhi_vlcreditos)" +
" between :valorFaixaInicio AND :valorFaixaFinal ";
}else if(valorFaixaInicio){
consulta = consulta +
"AND (ct.cnhi_vlagua+ct.cnhi_vlesgoto+ct.cnhi_vldebitos-ct.cnhi_vlcreditos) >= :valorFaixaInicio ";
}else if(valorFaixaFinal){
consulta = consulta +
" AND (ct.cnhi_vlagua+ct.cnhi_vlesgoto+ct.cnhi_vldebitos-ct.cnhi_vlcreditos) <= :valorFaixaFinal ";
}
consulta = consulta + ")";
// " ORDER BY ct.cnhi_amreferenciabaixacontabil, im.imov_id, ct.cnhi_amreferenciaconta) " ;
}
return consulta;
}
/**
* [UC0799] - Gerar Txt das Contas Baixadas Contabilmente
*
* @author: Vivianne Sousa
* @date: 20/05/2008
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarSomatorioValorContasBaixadasContabilmenteFaixa1(
Integer referenciaInicio, Integer referenciaFinal,Short periodicidade) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = montarConsultaSomatorioValorContasBaixadasContabilmente(
referenciaInicio, referenciaFinal, false, true, periodicidade);
if (referenciaInicio == null || referenciaInicio.equals(0)){
retorno = session.createSQLQuery(consulta)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaFinal",ConstantesSistema.FAIXA_VALOR_1)
.list();
}else{
retorno = session.createSQLQuery(consulta)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.setInteger("referenciaInicio",referenciaInicio)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaFinal",ConstantesSistema.FAIXA_VALOR_1)
.list();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0799] - Gerar Txt das Contas Baixadas Contabilmente
*
* @author: Vivianne Sousa
* @date: 20/05/2008
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarSomatorioValorContasBaixadasContabilmenteFaixa2(
Integer referenciaInicio, Integer referenciaFinal,Short periodicidade) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = montarConsultaSomatorioValorContasBaixadasContabilmente(
referenciaInicio, referenciaFinal, true, true, periodicidade);
if (referenciaInicio == null || referenciaInicio.equals(0)){
retorno = session.createSQLQuery(consulta)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaInicio",ConstantesSistema.FAIXA_VALOR_1_MAIS_1)
.setBigDecimal("valorFaixaFinal",ConstantesSistema.FAIXA_VALOR_2)
.list();
}else{
retorno = session.createSQLQuery(consulta)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.setInteger("referenciaInicio",referenciaInicio)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaInicio",ConstantesSistema.FAIXA_VALOR_1_MAIS_1)
.setBigDecimal("valorFaixaFinal",ConstantesSistema.FAIXA_VALOR_2)
.list();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0799] - Gerar Txt das Contas Baixadas Contabilmente
*
* @author: Vivianne Sousa
* @date: 20/05/2008
*
* @return
* @throws ErroRepositorioException
*/
public Collection consultarSomatorioValorContasBaixadasContabilmenteFaixa3(
Integer referenciaInicio, Integer referenciaFinal,Short periodicidade ) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = montarConsultaSomatorioValorContasBaixadasContabilmente(
referenciaInicio, referenciaFinal, true, false, periodicidade);
if (referenciaInicio == null || referenciaInicio.equals(0)){
retorno = session.createSQLQuery(consulta)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaInicio",ConstantesSistema.FAIXA_VALOR_3)
.list();
}else{
retorno = session.createSQLQuery(consulta)
.addScalar("valorConta",Hibernate.BIG_DECIMAL)
.setInteger("referenciaInicio",referenciaInicio)
.setInteger("referenciaFinal",referenciaFinal)
.setBigDecimal("valorFaixaInicio",ConstantesSistema.FAIXA_VALOR_3)
.list();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0799] - Gerar Txt das Contas Baixadas Contabilmente
*
* @author: Vivianne Sousa
* @date: 20/05/2008
*
* @exception ErroRepositorioException
* Repositorio Exception
*/
public String montarConsultaSomatorioValorContasBaixadasContabilmente(
Integer referenciaInicio, Integer referenciaFinal,
boolean valorFaixaInicio, boolean valorFaixaFinal,Short periodicidade) {
String consulta = "";
consulta = " (SELECT " +
" sum(ct.cnta_vlagua+ct.cnta_vlesgoto+ct.cnta_vldebitos-ct.cnta_vlcreditos) as valorConta " +
" FROM faturamento.conta ct " +
" WHERE ";
if (referenciaInicio != null && !referenciaInicio.equals(0) &&
referenciaFinal != null && !referenciaFinal.equals(0)){
consulta = consulta +
" ct.cnta_amreferenciabaixacontabil between :referenciaInicio AND :referenciaFinal ";
}else if(referenciaFinal != null && !referenciaFinal.equals(0)){
consulta = consulta +
" ct.cnta_amreferenciabaixacontabil <= :referenciaFinal ";
}
if (valorFaixaInicio && valorFaixaFinal){
consulta = consulta +
" AND (ct.cnta_vlagua+ct.cnta_vlesgoto+ct.cnta_vldebitos-ct.cnta_vlcreditos)" +
" between :valorFaixaInicio AND :valorFaixaFinal ";
}else if(valorFaixaInicio){
consulta = consulta +
" AND (ct.cnta_vlagua+ct.cnta_vlesgoto+ct.cnta_vldebitos-ct.cnta_vlcreditos) >= :valorFaixaInicio ";
}else if(valorFaixaFinal){
consulta = consulta +
" AND (ct.cnta_vlagua+ct.cnta_vlesgoto+ct.cnta_vldebitos-ct.cnta_vlcreditos) <= :valorFaixaFinal ";
}
consulta = consulta + ")" ;
if(!periodicidade.equals(ConstantesSistema.ACUMULADO)){
consulta = consulta +" UNION " +
" (SELECT " +
" sum(ct.cnhi_vlagua+ct.cnhi_vlesgoto+ct.cnhi_vldebitos-ct.cnhi_vlcreditos) as valorConta " +
" FROM faturamento.conta_historico ct " +
" WHERE ";
if (referenciaInicio != null && !referenciaInicio.equals(0) &&
referenciaFinal != null && !referenciaFinal.equals(0)){
consulta = consulta +
" ct.cnhi_amreferenciabaixacontabil between :referenciaInicio AND :referenciaFinal ";
}else if(referenciaFinal != null && !referenciaFinal.equals(0)){
consulta = consulta +
" ct.cnhi_amreferenciabaixacontabil <= :referenciaFinal ";
}
if (valorFaixaInicio && valorFaixaFinal){
consulta = consulta +
"AND (ct.cnhi_vlagua+ct.cnhi_vlesgoto+ct.cnhi_vldebitos-ct.cnhi_vlcreditos)" +
" between :valorFaixaInicio AND :valorFaixaFinal ";
}else if(valorFaixaInicio){
consulta = consulta +
"AND (ct.cnhi_vlagua+ct.cnhi_vlesgoto+ct.cnhi_vldebitos-ct.cnhi_vlcreditos) >= :valorFaixaInicio ";
}else if(valorFaixaFinal){
consulta = consulta +
" AND (ct.cnhi_vlagua+ct.cnhi_vlesgoto+ct.cnhi_vldebitos-ct.cnhi_vlcreditos) <= :valorFaixaFinal ";
}
consulta = consulta + ")";
}
return consulta;
}
/**
* [UC0824] Gerar Relat�rio dos Par�metros Cont�beis
*
* @author Bruno Barros
* @date 08/07/2008
*
* @return Collection<RelatorioParametrosContabeisFaturamentoBean>
* @throws ErroRepositorioException
*/
public Collection<Object[]>
pesquisarDadosRelatorioParametrosContabeisFaturamento( Integer referenciaContabil ) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
if ( referenciaContabil != null ){
consulta =
"select " +
" * " +
"from " +
"( " +
"select " +
" lanTip.lctp_dstipolancamento as descricaoTipoLancamento, " +
" lanIte.lcit_dsitemlancamento as descricaoItemLancamento, " +
" null as descricaoitemlancamentocontabi, " +
" cat.catg_dsabreviado as descricaoCategoria, " +
" conConDeb.cnct_nnconta as numeroContaDebito, " +
" conConCre.cnct_nnconta as numeroContaCredito, " +
" sum(coalesce( resFat.rfat_vlitemfaturamento, 0 ) ) as total, " +
" fatConPar.plcf_id, " +
" resFat.rfat_nnsequenciatipolancamento, " +
" resfat.rfat_nnseqitemtplanc, " +
" resFat.catg_id " +
"from " +
" financeiro.resumo_faturamento resFat " +
" inner join financeiro.lancamento_tipo lanTip on ( lanTip.lctp_id = resFat.lctp_id ) " +
" inner join financeiro.lancamento_item lanIte on ( lanIte.lcit_id = resFat.lcit_id ) " +
" inner join faturamento.fatur_contb_parametros fatConPar on ( fatConPar.lctp_id = resFat.lctp_id and fatConPar.lcit_id = resFat.lcit_id and fatConPar.catg_id = resFat.catg_id ) " +
" inner join financeiro.conta_contabil conConCre on ( conConCre.cnct_id = fatConPar.cnct_idcredito ) " +
" inner join financeiro.conta_contabil conConDeb on ( conConDeb.cnct_id = fatConPar.cnct_iddebito ) " +
" inner join cadastro.categoria cat on ( cat.catg_id = resFat.catg_id ) " +
"where " +
" resFat.rfat_amreferencia = :amReferencia and resFat.lict_id is null " +
"group by " +
" lanTip.lctp_dstipolancamento, " +
" lanIte.lcit_dsitemlancamento, " +
" cat.catg_dsabreviado, " +
" conConCre.cnct_nnconta, " +
" conConDeb.cnct_nnconta, " +
" fatConPar.plcf_id, " +
" resFat.rfat_nnsequenciatipolancamento, " +
" resfat.rfat_nnseqitemtplanc, " +
" resFat.catg_id " +
"union " +
"select " +
" lanTip.lctp_dstipolancamento as descricaoTipoLancamento, " +
" lanIte.lcit_dsitemlancamento as descricaoItemLancamento, " +
" lanIteCon.lict_dsitemlancamentocontabil, " +
" cat.catg_dsabreviado as descricaoCategoria, " +
" conConDeb.cnct_nnconta as numeroContaDebito, " +
" conConCre.cnct_nnconta as numeroContaCredito, " +
" sum(coalesce( resFat.rfat_vlitemfaturamento, 0 ) ) as total, " +
" fatConPar.plcf_id, " +
" resFat.rfat_nnsequenciatipolancamento, " +
" resfat.rfat_nnseqitemtplanc, " +
" resFat.catg_id " +
"from " +
" financeiro.resumo_faturamento resFat " +
" inner join financeiro.lancamento_tipo lanTip on ( lanTip.lctp_id = resFat.lctp_id ) " +
" inner join financeiro.lancamento_item lanIte on ( lanIte.lcit_id = resFat.lcit_id ) " +
" inner join faturamento.fatur_contb_parametros fatConPar on ( fatConPar.lctp_id = resFat.lctp_id and fatConPar.lcit_id = resFat.lcit_id and fatConPar.catg_id = resFat.catg_id and resFat.lict_id = fatConPar.lict_id ) " +
" left join financeiro.lancamento_item_contabil lanIteCon on ( resFat.lict_id = lanIteCon.lict_id ) " +
" inner join financeiro.conta_contabil conConCre on ( conConCre.cnct_id = fatConPar.cnct_idcredito ) " +
" inner join financeiro.conta_contabil conConDeb on ( conConDeb.cnct_id = fatConPar.cnct_iddebito ) " +
" inner join cadastro.categoria cat on ( cat.catg_id = resFat.catg_id ) " +
"where " +
" resFat.rfat_amreferencia = :amReferencia and resFat.lict_id is not null " +
"group by " +
" lanTip.lctp_dstipolancamento, " +
" lanIte.lcit_dsitemlancamento, " +
" lanIteCon.lict_dsitemlancamentocontabil, " +
" cat.catg_dsabreviado, " +
" conConCre.cnct_nnconta, " +
" conConDeb.cnct_nnconta, " +
" fatConPar.plcf_id, " +
" resFat.rfat_nnsequenciatipolancamento, " +
" resfat.rfat_nnseqitemtplanc, " +
" resFat.catg_id ) juncao " +
"order by " +
" juncao.rfat_nnsequenciatipolancamento, " +
" juncao.rfat_nnseqitemtplanc, " +
" juncao.catg_id ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("descricaoTipoLancamento", Hibernate.STRING)
.addScalar("descricaoItemLancamento", Hibernate.STRING)
.addScalar("descricaoitemlancamentocontabi", Hibernate.STRING)
.addScalar("descricaoCategoria", Hibernate.STRING)
.addScalar("numeroContaDebito", Hibernate.STRING)
.addScalar("numeroContaCredito", Hibernate.STRING)
.addScalar("total", Hibernate.BIG_DECIMAL)
.setInteger( "amReferencia", referenciaContabil ).list();
} else {
consulta =
"select " +
" lanTip.lctp_dstipolancamento descricaoTipoLancamento, " +
" lanIte.lcit_dsitemlancamento as descricaoItemLancamento, " +
" lanIteCon.lict_dsitemlancamentocontabil as descricaoitemlancamentocontabi, " +
" cat.catg_dsabreviado as descricaoCategoria, " +
" conConDeb.cnct_nnconta as numeroContaDebito, " +
" conConCre.cnct_nnconta as numeroContaCredito " +
"from " +
" faturamento.fatur_contb_parametros fatConPar " +
" inner join financeiro.lancamento_tipo lanTip on ( fatConPar.lctp_id = lanTip.lctp_id ) " +
" inner join financeiro.lancamento_item lanIte on ( fatConPar.lcit_id = lanIte.lcit_id ) " +
" inner join financeiro.conta_contabil conConCre on ( fatConPar.cnct_idcredito = conConCre.cnct_id ) " +
" inner join financeiro.conta_contabil conConDeb on ( fatConPar.cnct_iddebito = conConDeb.cnct_id ) " +
" inner join cadastro.categoria cat on ( cat.catg_id = fatConPar.catg_id ) " +
" left join financeiro.lancamento_item_contabil lanIteCon on ( lanIteCon.lict_id = fatConPar.lict_id ) " +
"order by " +
" case when ( lanIteCon.lict_dsitemlancamentocontabil is null ) then 0 else 1 end, " +
" fatConPar.plcf_id ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("descricaoTipoLancamento", Hibernate.STRING)
.addScalar("descricaoItemLancamento", Hibernate.STRING)
.addScalar("descricaoitemlancamentocontabi", Hibernate.STRING)
.addScalar("descricaoCategoria", Hibernate.STRING)
.addScalar("numeroContaDebito", Hibernate.STRING)
.addScalar("numeroContaCredito", Hibernate.STRING).list();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0824] Gerar Relat�rio dos Par�metros Cont�beis
*
* @author Bruno Barros
* @date 08/07/2008
*
* @return Collection<RelatorioParametrosContabeisArrecadacaoBean>
* @throws ErroRepositorioException
*/
public Collection<Object[]>
pesquisarDadosRelatorioParametrosContabeisArrecadacao( Integer referenciaContabil ) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
if ( referenciaContabil != null ){
consulta =
"select " +
" * " +
"from " +
"( " +
"select " +
" b.rctp_dsrecebimentotipo as recebimentoTipo, " +
" c.lctp_dstipolancamento as descricaoTipoLancamento, " +
" d.lcit_dsitemlancamento as descricaoItemLancamento, " +
" h.catg_dsabreviado as descricaoCategoria, " +
" null as descricaoitemlancamentocontabi, " +
" g.cnct_nnconta as numeroContaCredito, " +
" f.cnct_nnconta as numeroContaDebito, " +
" sum( coalesce( a.rarr_vlitemarrecadacao, 0 ) ) as total, " +
" e.plca_id, " +
" a.rarr_nnsequenciatipolancamento, " +
" a.rarr_nnseqitemtplanc, " +
" a.catg_id " +
"from " +
" arrecadacao.resumo_arrecadacao a " +
" inner join arrecadacao.recebimento_tipo b on ( a.rctp_id=b.rctp_id ) " +
" inner join financeiro.lancamento_tipo c on ( a.lctp_id=c.lctp_id ) " +
" inner join financeiro.lancamento_item d on ( a.lcit_id=d.lcit_id ) " +
" inner join arrecadacao.arrec_contb_parametros e on ( a.rctp_id=e.rctp_id and a.lctp_id=e.lctp_id and a.lcit_id=e.lcit_id and a.catg_id = e.catg_id) " +
" inner join financeiro.conta_contabil f on ( e.cnct_iddebito=f.cnct_id ) " +
" inner join financeiro.conta_contabil g on ( e.cnct_idcredito=g.cnct_id ) " +
" inner join cadastro.categoria h on ( a.catg_id = h.catg_id ) " +
"where " +
" a.rarr_amreferencia = :amReferencia and a.lict_id is null " +
"group by " +
" b.rctp_dsrecebimentotipo,c.lctp_dstipolancamento,d.lcit_dsitemlancamento,h.catg_dsabreviado,g.cnct_nnconta,f.cnct_nnconta,e.plca_id,a.rarr_nnsequenciatipolancamento,a.rarr_nnseqitemtplanc,a.catg_id " +
"union " +
"select " +
" b.rctp_dsrecebimentotipo, " +
" c.lctp_dstipolancamento, " +
" d.lcit_dsitemlancamento, " +
" i.catg_dsabreviado, " +
" e.lict_dsitemlancamentocontabil, " +
" h.cnct_nnconta, " +
" g.cnct_nnconta, " +
" sum( coalesce( a.rarr_vlitemarrecadacao, 0 ) ), " +
" f.plca_id, " +
" a.rarr_nnsequenciatipolancamento, " +
" a.rarr_nnseqitemtplanc, " +
" a.catg_id " +
"from " +
" arrecadacao.resumo_arrecadacao a " +
" inner join arrecadacao.recebimento_tipo b on ( a.rctp_id=b.rctp_id ) " +
" inner join financeiro.lancamento_tipo c on ( a.lctp_id=c.lctp_id ) " +
" inner join financeiro.lancamento_item d on ( a.lcit_id=d.lcit_id ) " +
" inner join financeiro.lancamento_item_contabil e on ( a.lict_id=e.lict_id ) " +
" inner join arrecadacao.arrec_contb_parametros f on ( a.rctp_id=f.rctp_id and a.lctp_id=f.lctp_id and a.lcit_id=f.lcit_id and a.lict_id=f.lict_id and f.catg_id = a.catg_id ) " +
" inner join financeiro.conta_contabil g on ( f.cnct_iddebito=g.cnct_id ) " +
" inner join financeiro.conta_contabil h on ( f.cnct_idcredito=h.cnct_id ) " +
" inner join cadastro.categoria i on ( a.catg_id=i.catg_id ) " +
"where " +
" a.rarr_amreferencia = :amReferencia and a.lict_id is not null " +
"group by " +
" b.rctp_dsrecebimentotipo,c.lctp_dstipolancamento,d.lcit_dsitemlancamento,i.catg_dsabreviado,e.lict_dsitemlancamentocontabil,h.cnct_nnconta,g.cnct_nnconta,f.plca_id,a.rarr_nnsequenciatipolancamento,a.rarr_nnseqitemtplanc,a.catg_id " +
") juncao " +
"order by " +
" juncao.rarr_nnsequenciatipolancamento, " +
" juncao.rarr_nnseqitemtplanc, " +
" juncao.catg_id ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("recebimentoTipo", Hibernate.STRING)
.addScalar("descricaoTipoLancamento", Hibernate.STRING)
.addScalar("descricaoItemLancamento", Hibernate.STRING)
.addScalar("descricaoCategoria", Hibernate.STRING)
.addScalar("descricaoitemlancamentocontabi", Hibernate.STRING)
.addScalar("numeroContaCredito", Hibernate.STRING)
.addScalar("numeroContaDebito", Hibernate.STRING)
.addScalar("total", Hibernate.BIG_DECIMAL)
.setInteger( "amReferencia", referenciaContabil ).list();
} else {
consulta =
"select " +
" * " +
"from " +
"( " +
"select " +
" b.rctp_dsrecebimentotipo recebimentoTipo, " +
" c.lctp_dstipolancamento as descricaoTipoLancamento, " +
" d.lcit_dsitemlancamento as descricaoItemLancamento, " +
" g.catg_dsabreviado as descricaoCategoria, " +
" null as descricaoitemlancamentocontabi, " +
" e.cnct_nnconta as numeroContaCredito, " +
" f.cnct_nnconta as numeroContaDebito, " +
" a.plca_id, " +
" 1 as ordenacao " +
"from " +
" arrecadacao.arrec_contb_parametros a " +
" inner join arrecadacao.recebimento_tipo b on ( a.rctp_id = b.rctp_id ) " +
" inner join financeiro.lancamento_tipo c on ( a.lctp_id =c.lctp_id ) " +
" inner join financeiro.lancamento_item d on ( a.lcit_id = d.lcit_id ) " +
" inner join financeiro.conta_contabil e on ( a.cnct_iddebito = e.cnct_id ) " +
" inner join financeiro.conta_contabil f on ( a.cnct_idcredito = f.cnct_id ) " +
" inner join cadastro.categoria g on ( a.catg_id = g.catg_id ) " +
"where " +
" a.lict_id is null " +
"union " +
"select " +
" b.rctp_dsrecebimentotipo as recebimentoTipo, " +
" c.lctp_dstipolancamento as descricaoTipoLancamento, " +
" d.lcit_dsitemlancamento as descricaoItemLancamento, " +
" h.catg_dsabreviado as descricaoCategoria, " +
" e.lict_dsitemlancamentocontabil as descricaoitemlancamentocontabi, " +
" f.cnct_nnconta as numeroContaCredito, " +
" g.cnct_nnconta as numeroContaDebito, " +
" a.plca_id, " +
" 2 as ordenacao " +
"from " +
" arrecadacao.arrec_contb_parametros a " +
" inner join arrecadacao.recebimento_tipo b on ( a.rctp_id = b.rctp_id ) " +
" inner join financeiro.lancamento_tipo c on ( a.lctp_id =c.lctp_id ) " +
" inner join financeiro.lancamento_item d on ( a.lcit_id = d.lcit_id ) " +
" inner join financeiro.lancamento_item_contabil e on ( a.lict_id = e.lict_id ) " +
" inner join financeiro.conta_contabil f on ( a.cnct_iddebito = f.cnct_id ) " +
" inner join financeiro.conta_contabil g on ( a.cnct_idcredito = g.cnct_id ) " +
" inner join cadastro.categoria h on ( a.catg_id = h.catg_id ) " +
"where " +
" a.lict_id is not null " +
") as juncao " +
"order by " +
" ordenacao, plca_id ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("recebimentoTipo", Hibernate.STRING)
.addScalar("descricaoTipoLancamento", Hibernate.STRING)
.addScalar("descricaoItemLancamento", Hibernate.STRING)
.addScalar("descricaoCategoria", Hibernate.STRING)
.addScalar("descricaoitemlancamentocontabi", Hibernate.STRING)
.addScalar("numeroContaCredito", Hibernate.STRING)
.addScalar("numeroContaDebito", Hibernate.STRING).list();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0822] Gerar Relat�rio do Valor Referente a Volumes Consumidos e N�o Faturados
*
* @author Victor Cisneiros
* @date 15/07/2008
*/
public List<RelatorioVolumesConsumidosNaoFaturadosBean> pesquisarVolumesConsumidosNaoFaturados(
Integer mesAno, String opcaoTotalizacao, Integer idEntidade) throws ErroRepositorioException {
List<RelatorioVolumesConsumidosNaoFaturadosBean> retorno =
new ArrayList<RelatorioVolumesConsumidosNaoFaturadosBean>();
List<Object[]> retornoConsulta = null;
Session session = HibernateUtil.getSession();
String groupBy = "GROUP BY ";
String orderBy = "ORDER BY ";
String joinMunicipio = "LEFT JOIN l.municipio m ";
if(opcaoTotalizacao.equals("municipio") || opcaoTotalizacao.equals("estadoPorMunicipio")){
joinMunicipio = "INNER JOIN l.municipio m ";
}
String consulta =
"SELECT " +
"g.id, " + // 0
"g.nomeAbreviado, " + // 1
"g.nome, " + // 2
"u.id, " + // 3
"u.nomeAbreviado, " + // 4
"u.nome, " + // 5
"l.id, " + // 6
"l.descricao, " + // 7
"c.id, " + // 8
"c.descricaoAbreviada, " + // 9
"sum( CASE WHEN v.lancamentoItem.id = 1 THEN v.valorItemLancamento ELSE 0 END ), " + // 10
"sum( CASE WHEN v.lancamentoItem.id = 2 THEN v.valorItemLancamento ELSE 0 END ), " + // 11
"sum( v.valorItemLancamento ), " + // 12
"m.id, " + //13
"m.nome " + //14
"FROM ValorVolumesConsumidosNaoFaturado v " +
"INNER JOIN v.gerenciaRegional g " +
"INNER JOIN v.unidadeNegocio u " +
"INNER JOIN v.localidade l " +
joinMunicipio +
"INNER JOIN v.categoria c " +
"WHERE " +
"(v.lancamentoItem.id = 1 OR v.lancamentoItem.id = 2) " +
" AND v.anoMesReferencia = :anoMesReferencia ";
if (opcaoTotalizacao.equals("gerenciaRegional") ||
opcaoTotalizacao.equals("gerenciaRegionalPorUnidadeNegocio") ||
opcaoTotalizacao.equals("gerenciaRegionalPorLocalidade")) {
consulta += " AND g.id = :idEntidade ";
}
else if (opcaoTotalizacao.equals("unidadeNegocio") ||
opcaoTotalizacao.equals("unidadeNegocioPorLocalidade")) {
consulta += " AND u.id = :idEntidade ";
}
else if (opcaoTotalizacao.equals("localidade")) {
consulta += " AND l.id = :idEntidade ";
}
else if(opcaoTotalizacao.equals("municipio")){
consulta += " AND m.id = :idEntidade ";
}
if(opcaoTotalizacao.equals("municipio") || opcaoTotalizacao.equals("estadoPorMunicipio")){
groupBy +=
"m.id, " +
"m.nome, " +
"g.id, " + // 0
"g.nomeAbreviado, " + // 1
"g.nome, " + // 2
"u.id, " + // 3
"u.nomeAbreviado, " + // 4
"u.nome, " + // 5
"l.id, " + // 6
"l.descricao, " + // 7
"c.id, " + // 8
"c.descricaoAbreviada "; // 9
orderBy +=
"m.id, " +
"m.nome, " +
"g.id, " + // 0
"g.nomeAbreviado, " + // 1
"g.nome, " + // 2
"u.id, " + // 3
"u.nomeAbreviado, " + // 4
"u.nome, " + // 5
"l.id, " + // 6
"l.descricao, " + // 7
"c.id, " + // 8
"c.descricaoAbreviada "; // 9
}else{
groupBy +=
"g.id, " + // 0
"g.nomeAbreviado, " + // 1
"g.nome, " + // 2
"u.id, " + // 3
"u.nomeAbreviado, " + // 4
"u.nome, " + // 5
"l.id, " + // 6
"l.descricao, " + // 7
"c.id, " + // 8
"c.descricaoAbreviada, " + // 9
"m.id, " + // 12
"m.nome "; // 13
orderBy += "g.id, " + // 0
"g.nomeAbreviado, " + // 1
"g.nome, " + // 2
"u.id, " + // 3
"u.nomeAbreviado, " + // 4
"u.nome, " + // 5
"l.id, " + // 6
"l.descricao, " + // 7
"c.id, " + // 8
"c.descricaoAbreviada, " + // 9
"m.id, " + // 12
"m.nome "; // 13
}
consulta += groupBy + orderBy;
try {
Query q = session.createQuery(consulta);
q.setInteger("anoMesReferencia", mesAno);
if (idEntidade != null) {
q.setInteger("idEntidade", idEntidade);
}
retornoConsulta = (List<Object[]>) q.list();
RelatorioVolumesConsumidosNaoFaturadosBean bean = null;
GerenciaRegional gerencia = null;
UnidadeNegocio unidade = null;
Localidade localidade = null;
Municipio municipio = null;
Categoria categoria = null;
for (Object[] linha : retornoConsulta) {
bean = new RelatorioVolumesConsumidosNaoFaturadosBean();
gerencia = new GerenciaRegional();
unidade = new UnidadeNegocio();
localidade = new Localidade();
categoria = new Categoria();
gerencia.setId((Integer) linha[0]);
gerencia.setNomeAbreviado((String) linha[1]);
gerencia.setNome((String) linha[2]);
unidade.setId((Integer) linha[3]);
unidade.setNomeAbreviado((String) linha[4]);
unidade.setNome((String) linha[5]);
localidade.setId((Integer) linha[6]);
localidade.setDescricao((String) linha[7]);
Integer idMuni = (Integer) linha[13];
String nomeMuni = (String) linha[14];
if(idMuni != null && nomeMuni != null && !nomeMuni.equals("")){
municipio = new Municipio();
municipio.setId(idMuni);
municipio.setNome(nomeMuni);
}
categoria.setId((Integer) linha[8]);
categoria.setDescricaoAbreviada((String) linha[9]);
bean.setValorDeAgua((BigDecimal) linha[10]);
bean.setValorDeEsgoto((BigDecimal) linha[11]);
bean.setValorTotal((BigDecimal) linha[12]);
bean.setGerencia(gerencia);
bean.setUnidade(unidade);
bean.setLocalidade(localidade);
bean.setCategoria(categoria);
bean.setMunicipio(municipio);
retorno.add(bean);
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
// *******************************Caern
/**
* Este met�do � utilizado para pesquisar os registros q ser�o
* usados para contru��o do txt do caso de uso
*
* [UC0469] Gerar Integra��o para a Contabilidade
*
* @author Arthur Carvalho
* @date 02/03/09
*
* @param idLancamentoOrigem
* @param anoMes
* @return
* @throws ErroRepositorioException
*/
public Collection pesquisarGerarIntegracaoContabilidadeCaema(String idLancamentoOrigem, String anoMes) throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select lcor.numeroCartao ,"//0
+ " lcor.codigoTipo ,"//1
+ " lcor.numeroFolha ,"//2
+ " cntc.indicadorLinha ,"//3
+ " cntc.prefixoContabil ,"//4
+ " cntc.numeroConta ,"//5
+ " cntc.numeroDigito ,"//6
+ " cntc.numeroTerceiros ,"//7
+ " lcor.codigoReferencia ,"//8
+ " sum(lcti.valorLancamento) ,"//9
+ " lcti.indicadorDebitoCredito ,"//10
+ " lcor.numeroCartao2 ,"//11
+ " lcor.numeroVersao ,"//12
+ " loca.id, "//13
+ " loca.codigoCentroCusto,"//14
+ " cntc.indicadorCentroCusto, " //15
+ " lcor.numeroHistoricoDebito, " //16
+ " lcor.numeroHistoricoCredito " //17
+ " from LancamentoContabilItem lcti " // lan�amento contabil item
+ " left join lcti.lancamentoContabil lcnb" //lan�amento cont�bil
+ " left join lcnb.localidade loca" //localidade
+ " left join lcnb.lancamentoOrigem lcor" //lan�amento origem
+ " left join lcti.contaContabil cntc" //conta contabil
+ " where lcnb.anoMes= :anoMes and lcor.id= :idLancamentoOrigem "
+ " group by loca.id, cntc.numeroConta, lcti.indicadorDebitoCredito,"
+ " cntc.numeroConta ,cntc.numeroDigito ,cntc.numeroTerceiros ,"
+ " lcor.numeroCartao, lcor.codigoTipo,"
+ " lcor.numeroFolha, cntc.indicadorLinha ,cntc.prefixoContabil ,"
+ " lcor.codigoReferencia ,"
+ " lcor.numeroCartao2 ,lcor.numeroVersao ,loca.codigoCentroCusto, cntc.indicadorCentroCusto, "
+ " lcor.numeroHistoricoDebito, lcor.numeroHistoricoCredito "
+ " order by loca.id, cntc.numeroConta, lcti.indicadorDebitoCredito desc";
retorno = session.createQuery(consulta)
.setInteger("anoMes",new Integer(anoMes))
.setInteger("idLancamentoOrigem",new Integer(idLancamentoOrigem))
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula CTCG_VLAGUA e CTCG_VLESGOTO da tabela CONTA_CATEGORIA
* e da tabela CONTA com CNTA_AMREFERENCIABAIXACONTABIL diferente de nulo
*
* @author Vivianne Sousa
* @date 14/08/2009
*
* @param idLocalidade
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosContasCategoriaValorAguaEsgoto(Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT "
+ " loca.greg_id as idGerencia, "
+ " loca.uneg_id as idUnidadeNegocio, "
+ " loca.loca_id as idLocalidade, "
+ " contaCat.catg_id as idCategoria, "
+ " sum(contaCat.ctcg_vlagua) as valorAgua, "
+ " sum(contaCat.ctcg_vlesgoto) as valorEsgoto "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.conta_categoria contaCat on conta.cnta_id = contaCat.cnta_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and conta.cnta_amreferenciabaixacontabil is not null "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, contacat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia",Hibernate.INTEGER)
.addScalar("idUnidadeNegocio",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("idCategoria",Hibernate.INTEGER)
.addScalar("valorAgua",Hibernate.BIG_DECIMAL)
.addScalar("valorEsgoto",Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade",idLocalidade).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula DCCG_VLCATEGORIA da tabela DEBITO_COBRADO_CATEGORIA
* com DBCB_ID=DBCB_ID da tabela DEBITO_COBRADO e
* CNTA_ID=CNTA_ID da tabela CONTA
* com CNTA_AMREFERENCIABAIXACONTABIL diferente de nulo
*
* @author Vivianne Sousa
* @date 14/08/2009
*
* @param idLocalidade
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosDebitosCobradosCategoria( Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT "
+ " loca.greg_id as idGerencia, "
+ " loca.uneg_id as idUnidadeNegocio, "
+ " loca.loca_id as idLocalidade, "
+ " debCobCat.catg_id as idCategoria, "
+ " sum(debCobCat.dccg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.debito_cobrado debCob on debCob.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.debito_cobrado_categoria debCobCat on debCobCat.dbcb_id = debCob.dbcb_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and conta.cnta_amreferenciabaixacontabil is not null "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, debcobcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia",Hibernate.INTEGER)
.addScalar("idUnidadeNegocio",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("idCategoria",Hibernate.INTEGER)
.addScalar("valorCategoria",Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade",idLocalidade)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula negativamente CRCG_VLCATEGORIA
* da tabela CREDITO_REALIZADO_CATEGORIA
* com CRRZ_ID=CRRZ_ID da tabela CREDITO_REALIZADO
* e CNTA_ID=CNTA_ID da tabela CONTA
* com CNTA_AMREFERENCIABAIXACONTABIL diferente de nulo
*
* @author Vivianne Sousa
* @date 14/08/2009
*
* @param idLocalidade
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosRealizadosCategoria(Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT "
+ " loca.greg_id as idGerencia, "
+ " loca.uneg_id as idUnidadeNegocio, "
+ " loca.loca_id as idLocalidade, "
+ " credRealizadoCat.catg_id as idCategoria, "
+ " sum(credRealizadoCat.crcg_vlcategoria) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta on loca.loca_id = conta.loca_id "
+ " INNER JOIN faturamento.credito_realizado credRealizado on credRealizado.cnta_id = conta.cnta_id "
+ " INNER JOIN faturamento.cred_realizado_catg credRealizadoCat on credRealizadoCat.crrz_id = credRealizado.crrz_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and conta.cnta_amreferenciabaixacontabil is not null "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, credrealizadocat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia",Hibernate.INTEGER)
.addScalar("idUnidadeNegocio",Hibernate.INTEGER)
.addScalar("idLocalidade",Hibernate.INTEGER)
.addScalar("idCategoria",Hibernate.INTEGER)
.addScalar("valorCategoria",Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade",idLocalidade)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* @author Vivianne Sousa
* @date 17/08/2009
*
* @param idLocalidade
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarValorPagamentoImovel(
Integer idLocalidade, Integer anoMesReferenciaArrecadacao)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
// constroi o sql
consulta = " SELECT "
+ " sum(pgmt.pgmt_vlpagamento) as valorPagamento, "
+ " pgmt.imov_id as idImovel "
+ " FROM arrecadacao.pagamento pgmt "
+ " WHERE "
+ " pgmt.loca_id= :idLocalidade "
+ " and pgmt.pgmt_amreferenciaarrecadacao < :anoMesReferenciaArrecadacao "
+ " and pgmt.pgst_idatual in (:idDoctoInexistente, :idValorNConfere, :idDoctoAContabilizar) "
+ " GROUP BY pgmt.imov_id ";
// executa o sql
retorno = session.createSQLQuery(consulta)
.addScalar("idImovel",Hibernate.INTEGER)
.addScalar("valorPagamento",Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade",idLocalidade)
.setInteger("anoMesReferenciaArrecadacao",anoMesReferenciaArrecadacao)
.setInteger("idDoctoInexistente", PagamentoSituacao.DOCUMENTO_INEXISTENTE)
.setInteger("idValorNConfere", PagamentoSituacao.VALOR_NAO_CONFERE)
.setInteger("idDoctoAContabilizar", PagamentoSituacao.DOCUMENTO_A_CONTABILIZAR)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
* @author Vivianne Sousa
* @date 17/08/2009
*
* @throws ErroRepositorioException
*/
public Localidade pesquisarUnidadeNegocioEGerenciaDaLocalidade(
Integer idLocalidade)throws ErroRepositorioException{
Localidade retorno = null;
Session session = HibernateUtil.getSession();
String consulta = "";
try {
consulta = "select loca "
+ "FROM Localidade loca "
+ "INNER JOIN loca.unidadeNegocio unidade "
+ "INNER JOIN loca.gerenciaRegional gerencia "
+ "WHERE loca.id = :idLocalidade ";
retorno = (Localidade)session.createQuery(consulta)
.setInteger("idLocalidade",idLocalidade).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Este met�do � utilizado para pesquisar os registros q ser�o
* usados para contru��o do txt do caso de uso
*
* [UC0469] Gerar Integra��o para a Contabilidade - COSANPA
*
* @author Raphael Rossiter
* @date 17/11/2009
*
* @param idLancamentoOrigem
* @param anoMes
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarGerarIntegracaoContabilidadeCOSANPA(String idLancamentoOrigem, String anoMes)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select cntc.numeroConta, " // 0
+ " loca.codigoCentroCusto, "// 1
+ " lcti.indicadorDebitoCredito, "// 2
+ " lcor.codigoReferencia, "// 3
+ " lcti.valorLancamento, "// 4
+ " cntc.prefixoContabil, "// 5
+ " cntc.nomeConta, "// 6
+ " lcti.dataLancamento, "// 7
+ " lcti.descricaoHistorico, "// 8
+ " lcti.codigoTerceiro, "// 9
+ " cntc.indicadorCentroCusto "// 10
+ " from LancamentoContabilItem lcti " // lan�amento contabil item
+ " left join lcti.lancamentoContabil lcnb" //lan�amento cont�bil
+ " left join lcnb.localidade loca" //localidade
+ " left join lcnb.lancamentoOrigem lcor" //lan�amento origem
+ " left join lcti.contaContabil cntc" //conta contabil
+ " where lcnb.anoMes= :anoMes and lcor.id= :idLancamentoOrigem"
+ " order by loca.id";
retorno = session.createQuery(consulta)
.setInteger("anoMes",new Integer(anoMes))
.setInteger("idLancamentoOrigem",new Integer(idLancamentoOrigem))
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0989] Gerar Resumo de Documentos a Receber
*
* @author Raphael Rossiter
* @date 10/03/2010
*
* @param anoMesReferenciaRecebimentos
* @param idLocalidade
* @throws ErroRepositorioException
*/
public void removerDocumentosAReceberResumo(
int anoMesReferenciaRecebimentos, Integer idLocalidade, Session session)
throws ErroRepositorioException {
// Session session = HibernateUtil.getSession();
String delete;
try {
delete = "DELETE FROM DocumentosAReceberResumo drrs "
+ " WHERE drrs.localidade.id = :idLocalidade "
+ " and drrs.anoMesReferenciaRecebimentos = :anoMesReferencia ";
session.createQuery(delete).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferencia",
anoMesReferenciaRecebimentos).executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
// finally {
// HibernateUtil.closeSession(session);
// }
}
/**
* [UC0989] Gerar Resumo de Documentos a Receber
*
* @author Raphael Rossiter, Mariana Victor
* @date 10/03/2010, 29/03/2011
*
* @param anoMesReferenciaContabil
* @param idLocalidade
* @return Collection<Object[]>
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarContasAReceberParaResumo(
int anoMesReferenciaContabil, Integer idLocalidade, Session session) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, "//0, 1
+ " loca.loca_id as idLocalidade, "//2
+ " (CASE WHEN conta.iper_id IS NOT NULL THEN conta.iper_id ELSE 5 END) as idImovelPerfil, "//3 ImovelPerfil.NORMAL = 5
+ " (CASE WHEN cltp.epod_id IS NOT NULL THEN cltp.epod_id ELSE 4 END) as idEsferaPoder, "//4 EsferaPoder.PARTICULAR = 4
+ " (CASE WHEN (select ctcg.catg_id from faturamento.conta_categoria ctcg "
+ " where ctcg.cnta_id = conta.cnta_id "
+ " and ROWNUM <= 1 order by ctcg.ctcg_qteconomia desc, ctcg.catg_id asc) IS NOT NULL "
+ " THEN (select ctcg.catg_id from faturamento.conta_categoria ctcg "
+ " where ctcg.cnta_id = conta.cnta_id "
+ " and ROWNUM <= 1 order by ctcg.ctcg_qteconomia desc, ctcg.catg_id asc ) ELSE 1 END) as idCategoria, "//5 Categoria.RESIDENCIAL = 1
+" 1 as idDocumentoTipo, "//6 DocumentoTipo.CONTA
+ " conta.cnta_dtvencimentoconta as dataVencimento, "//7
// VALORES DE �GUA, ESGOTO, D�BITO E CR�DITO
+ " count(conta.cnta_id) as quantidadeDocumentos, "//8
+ " sum(coalesce(conta.cnta_vlagua,0)) as valorAguaCategoria, "//9
+ " sum(coalesce(conta.cnta_vlesgoto,0)) as valorEsgotoCategoria, "//10
+ " sum(coalesce(conta.cnta_vldebitos,0)) as valorDebitoCategoria, "//11
+ " sum(coalesce(conta.cnta_vlcreditos,0)) as valorCreditoCategoria, "//12
// VALOR DOS IMPOSTOS
+ " sum(coalesce(conta.cnta_vlimpostos,0)) as valorImpostos, "//13
+ " fdrc.fdrc_id AS idFaixa " //14
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.conta conta on loca.loca_id = conta.loca_id "
+ " LEFT JOIN cadastro.cliente_conta clct on conta.cnta_id = clct.cnta_id and clct.crtp_id = 3 " //ClienteRelacaoTipo.RESPONSAVEL = 3
+ " LEFT JOIN cadastro.cliente resp on clct.clie_id = resp.clie_id "
+ " LEFT JOIN cadastro.cliente_tipo cltp on resp.cltp_id = cltp.cltp_id "
+ " LEFT JOIN financeiro.faixa_docs_a_receber fdrc ON (fdrc.fdrc_vlfaixainicial <= (coalesce(conta.cnta_vlagua,0) + coalesce(conta.cnta_vlesgoto,0) + coalesce(conta.cnta_vldebitos,0) - (coalesce(conta.cnta_vlcreditos,0) + coalesce(conta.cnta_vlimpostos,0))) "
+ " AND fdrc.fdrc_vlfaixafinal >= (coalesce(conta.cnta_vlagua,0) + coalesce(conta.cnta_vlesgoto,0) + coalesce(conta.cnta_vldebitos,0) - (coalesce(conta.cnta_vlcreditos,0) + coalesce(conta.cnta_vlimpostos,0)))) "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( conta.cnta_amreferenciacontabil <= :anoMesReferenciaContabil and conta.dcst_idatual "
+ " in ( :situacaoNormal, :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( conta.cnta_amreferenciacontabil > :anoMesReferenciaContabil and conta.dcst_idatual "
+ " in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) "
/*+ " and ( conta.dcst_idanterior is null "
+ " or ( conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) ) ) ) "*/
/**
* @Date 02/08/2013
*
* Altera��o na gera��o do resumo de documentos a receber
* */
+ " and ((conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior <> :situacaoIncluida ) "
+ " or (conta.cnta_amreferenciaconta <= :anoMesReferenciaContabil and conta.dcst_idanterior is null )) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, (case when conta.iper_id is not null then conta.iper_id else " + ImovelPerfil.NORMAL.toString()+ " end), (case when conta.iper_id is not null then conta.iper_id else " + ImovelPerfil.NORMAL.toString() +" end), "
+ " (case when cltp.epod_id is not null then cltp.epod_id else "+ EsferaPoder.PARTICULAR.toString()+" end), idCategoria, idDocumentoTipo, dataVencimento, idFaixa "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idImovelPerfil, idImovelPerfil, "
+ " idEsferaPoder, idCategoria, idDocumentoTipo, dataVencimento, idFaixa ";
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idImovelPerfil", Hibernate.INTEGER)
.addScalar("idEsferaPoder", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("idDocumentoTipo", Hibernate.INTEGER)
.addScalar("dataVencimento", Hibernate.DATE)
.addScalar("quantidadeDocumentos", Hibernate.INTEGER)
.addScalar("valorAguaCategoria", Hibernate.BIG_DECIMAL)
.addScalar("valorEsgotoCategoria", Hibernate.BIG_DECIMAL)
.addScalar("valorDebitoCategoria", Hibernate.BIG_DECIMAL)
.addScalar("valorCreditoCategoria", Hibernate.BIG_DECIMAL)
.addScalar("valorImpostos", Hibernate.BIG_DECIMAL)
.addScalar("idFaixa", Hibernate.INTEGER)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil", anoMesReferenciaContabil)
.setInteger("situacaoNormal",DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada", DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada", DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao", DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada", DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito", DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas", DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
// finally {
// HibernateUtil.closeSession(session);
// }
return retorno;
}
/**
* [UC0989] Gerar Resumo de Documentos a Receber
*
* @author Raphael Rossiter, Mariana Victor
* @date 10/03/2010, 29/03/2011
*
* @param anoMesReferenciaContabil
* @param idLocalidade
* @return Collection<Object[]>
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarGuiasPagamentoAReceberParaResumo(
int anoMesReferenciaContabil, Integer idLocalidade, Session session) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, "//0, 1
+ " loca.loca_id as idLocalidade, "//2
+ " (CASE WHEN imov.iper_id IS NOT NULL THEN imov.iper_id ELSE "
+ ImovelPerfil.NORMAL.toString() + " END) as idImovelPerfil, "//3
+ " (CASE WHEN cltp.epod_id IS NOT NULL THEN cltp.epod_id ELSE "
+ EsferaPoder.PARTICULAR.toString() + " END) as idEsferaPoder, "//4
+ " (CASE WHEN (select gpcg.catg_id from faturamento.guia_pagamento_categoria gpcg "
+ " where gpcg.gpag_id = gpag.gpag_id "
+ " and ROWNUM <= 1 order by gpcg.gpcg_qteconomia desc, gpcg.catg_id asc ) IS NOT NULL "
+ " THEN (select gpcg.catg_id from faturamento.guia_pagamento_categoria gpcg "
+ " where gpcg.gpag_id = gpag.gpag_id "
+ " and ROWNUM <= 1 order by gpcg.gpcg_qteconomia desc, gpcg.catg_id asc ) ELSE "
+ Categoria.RESIDENCIAL.toString() + " END) as idCategoria, "//5
+ DocumentoTipo.GUIA_PAGAMENTO.toString() + " as idDocumentoTipo, "//6
+ " gpag.gpag_dtvencimento as dataVencimento, "//7
+ " count(gpag.gpag_id) as quantidadeDocumentos, "//8
+ " sum(coalesce(gpag.gpag_vldebito,0)) as valorCategoria, "//9
+ " fdrc.fdrc_id AS idFaixa " //10
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.guia_pagamento gpag on loca.loca_id = gpag.loca_id "
+ " LEFT JOIN cadastro.imovel imov on imov.imov_id = gpag.imov_id "
+ " LEFT JOIN cadastro.cliente_guia_pagamento clgp on gpag.gpag_id = clgp.gpag_id and clgp.crtp_id = "
+ ClienteRelacaoTipo.RESPONSAVEL.toString()
+ " LEFT JOIN cadastro.cliente resp on clgp.clie_id = resp.clie_id "
+ " LEFT JOIN cadastro.cliente_tipo cltp on resp.cltp_id = cltp.cltp_id "
+ " LEFT JOIN financeiro.faixa_docs_a_receber fdrc ON fdrc.fdrc_vlfaixainicial <= coalesce(gpag.gpag_vldebito,0) "
+ " AND fdrc.fdrc_vlfaixafinal >= coalesce(gpag.gpag_vldebito,0)"
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( gpag.gpag_amreferenciacontabil <= :anoMesReferenciaContabil and gpag.dcst_idatual "
+ " in ( :situacaoNormal, :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( gpag.gpag_amreferenciacontabil > :anoMesReferenciaContabil and gpag.dcst_idatual "
+ " in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) "
+ " and gpag.dcst_idanterior is null ) ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, (case when imov.iper_id is not null then imov.iper_id else "+ ImovelPerfil.NORMAL.toString() + " end), (case when imov.iper_id is not null then imov.iper_id else "+ ImovelPerfil.NORMAL.toString() +" end), "
+ " (case when cltp.epod_id is not null then cltp.epod_id else "+ EsferaPoder.PARTICULAR.toString()+" end), idCategoria, idDocumentoTipo, dataVencimento, idFaixa "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idImovelPerfil, idImovelPerfil, "
+ " idEsferaPoder, idCategoria, idDocumentoTipo, dataVencimento, idFaixa ";
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idImovelPerfil", Hibernate.INTEGER)
.addScalar("idEsferaPoder", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("idDocumentoTipo", Hibernate.INTEGER)
.addScalar("dataVencimento", Hibernate.DATE)
.addScalar("quantidadeDocumentos", Hibernate.INTEGER)
.addScalar("valorCategoria", Hibernate.BIG_DECIMAL)
.addScalar("idFaixa", Hibernate.INTEGER)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil", anoMesReferenciaContabil)
.setInteger("situacaoNormal",DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada", DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada", DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao", DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada", DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito", DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
// finally {
// HibernateUtil.closeSession(session);
// }
return retorno;
}
/**
* [UC0989] Gerar Resumo de Documentos a Receber
*
* @author Raphael Rossiter, Mariana Victor
* @date 10/03/2010, 29/03/2011
*
* @param anoMesReferenciaContabil
* @param idLocalidade
* @return Collection<Object[]>
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarDebitosACobrarAReceberParaResumo(
int anoMesReferenciaContabil, Integer idLocalidade, Session session) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, "//0, 1
+ " loca.loca_id as idLocalidade, "//2
+ " (CASE WHEN imov.iper_id IS NOT NULL THEN imov.iper_id ELSE "
+ ImovelPerfil.NORMAL.toString() + " END) as idImovelPerfil, "//3
+ " (CASE WHEN cltp.epod_id IS NOT NULL THEN cltp.epod_id ELSE "
+ EsferaPoder.PARTICULAR.toString() + " END) as idEsferaPoder, "//4
+ " (CASE WHEN (select dbcg.catg_id from faturamento.deb_a_cobrar_catg dbcg "
+ " where dbcg.dbac_id = dbac.dbac_id "
+ " and ROWNUM <= 1 order by dbcg.dbcg_qteconomia desc, dbcg.catg_id asc) IS NOT NULL "
+ " THEN (select dbcg.catg_id from faturamento.deb_a_cobrar_catg dbcg "
+ " where dbcg.dbac_id = dbac.dbac_id "
+ " and ROWNUM <= 1 order by dbcg.dbcg_qteconomia desc, dbcg.catg_id asc ) ELSE "
+ Categoria.RESIDENCIAL.toString() + " END) as idCategoria, "//5
+ DocumentoTipo.DEBITO_A_COBRAR.toString() + " as idDocumentoTipo, "//6
+ " count(dbac.dbac_id) as quantidadeDocumentos, "//7
+ " sum(( coalesce(dbac.dbac_vldebito,0) - "
+ " (round(( coalesce(dbac.dbac_vldebito,0) / dbac.dbac_nnprestacaodebito ),2) "
+ " * dbac.dbac_nnprestacaocobradas))) as valorCategoria, "//8
+ " fdrc.fdrc_id AS idFaixa, " //9
+ " sum( ( coalesce(dbac.dbac_vldebito,0) - "
+ " (round( ( coalesce(dbac.dbac_vldebito,0) / dbac.dbac_nnprestacaodebito ),2) "
+ " * (dbac.dbac_nnprestacaocobradas - (CASE WHEN(dbac.dbac_amreferenciaprestacao is not null "
+ " and dbac.dbac_amreferenciaprestacao > :anoMesReferenciaContabil) THEN 1 ELSE 0 END) ) ) ) ) "
+ " as valorCategoriaSemParcelaAtual "//10
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.debito_a_cobrar dbac on loca.loca_id = dbac.loca_id "
+ " INNER JOIN cadastro.imovel imov on imov.imov_id = dbac.imov_id "
+ " LEFT JOIN cadastro.cliente_imovel clim on imov.imov_id = clim.imov_id and clim.crtp_id = "
+ ClienteRelacaoTipo.RESPONSAVEL.toString() + " and clim.clim_dtrelacaofim is null "
+ " LEFT JOIN cadastro.cliente resp on clim.clie_id = resp.clie_id "
+ " LEFT JOIN cadastro.cliente_tipo cltp on resp.cltp_id = cltp.cltp_id "
+ " LEFT JOIN financeiro.faixa_docs_a_receber fdrc ON (fdrc.fdrc_vlfaixainicial <= (coalesce(dbac.dbac_vldebito,0) - (round(( coalesce(dbac.dbac_vldebito,0) /dbac.dbac_nnprestacaodebito ),2) " +
" * dbac.dbac_nnprestacaocobradas)) "
+ " AND fdrc.fdrc_vlfaixafinal >= (coalesce(dbac.dbac_vldebito,0) - (round(( coalesce(dbac.dbac_vldebito,0) /dbac.dbac_nnprestacaodebito ),2) " +
" * dbac.dbac_nnprestacaocobradas))) "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( dbac.dbac_amreferenciacontabil <= :anoMesReferenciaContabil and dbac.dcst_idatual "
+ " in ( :situacaoNormal, :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( dbac.dbac_amreferenciacontabil > :anoMesReferenciaContabil and dbac.dcst_idatual "
+ " in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) "
+ " and dbac.dcst_idanterior is null ) ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, (case when imov.iper_id is not null then imov.iper_id else " + ImovelPerfil.NORMAL.toString() +" end), (case when imov.iper_id is not null then imov.iper_id else " + ImovelPerfil.NORMAL.toString() +" end), "
+ " (case when cltp.epod_id is not null then cltp.epod_id else "+ EsferaPoder.PARTICULAR.toString()+" end), idCategoria, idDocumentoTipo, idFaixa "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idImovelPerfil, idImovelPerfil, "
+ " idEsferaPoder, idCategoria, idDocumentoTipo, idFaixa ";
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idImovelPerfil", Hibernate.INTEGER)
.addScalar("idEsferaPoder", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("idDocumentoTipo", Hibernate.INTEGER)
.addScalar("quantidadeDocumentos", Hibernate.INTEGER)
.addScalar("valorCategoria", Hibernate.BIG_DECIMAL)
.addScalar("idFaixa", Hibernate.INTEGER)
.addScalar("valorCategoriaSemParcelaAtual", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil", anoMesReferenciaContabil)
.setInteger("situacaoNormal",DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada", DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada", DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao", DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada", DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito", DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
// finally {
// HibernateUtil.closeSession(session);
// }
return retorno;
}
/**
* [UC0989] Gerar Resumo de Documentos a Receber
*
* @author Raphael Rossiter, Mariana Victor
* @date 10/03/2010, 29/03/2011
*
* @param anoMesReferenciaContabil
* @param idLocalidade
* @return Collection<Object[]>
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarCreditosARealizarAReceberParaResumo(
int anoMesReferenciaContabil, Integer idLocalidade, Session session) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, "//0, 1
+ " loca.loca_id as idLocalidade, "//2
+ " (CASE WHEN imov.iper_id IS NOT NULL THEN imov.iper_id ELSE "
+ ImovelPerfil.NORMAL.toString() + " END) as idImovelPerfil, "//3
+ " (CASE WHEN cltp.epod_id IS NOT NULL THEN cltp.epod_id ELSE "
+ EsferaPoder.PARTICULAR.toString() + " END) as idEsferaPoder, "//4
+ " (CASE WHEN (select cacg.catg_id from faturamento.cred_a_realiz_catg cacg "
+ " where cacg.crar_id = crar.crar_id "
+ " and ROWNUM <= 1 order by cacg.cacg_qteconomia desc, cacg.catg_id asc) IS NOT NULL "
+ " THEN (select cacg.catg_id from faturamento.cred_a_realiz_catg cacg "
+ " where cacg.crar_id = crar.crar_id "
+ " and ROWNUM <= 1 order by cacg.cacg_qteconomia desc, cacg.catg_id asc ) ELSE "
+ Categoria.RESIDENCIAL.toString() + " END) as idCategoria, "//5
+ DocumentoTipo.CREDITO_A_REALIZAR.toString() + " as idDocumentoTipo, "//6
+ " count(crar.crar_id) as quantidadeDocumentos, "//7
+ " sum( ( ( coalesce(crar.crar_vlcredito,0) - round((coalesce(crar.crar_vlcredito,0) / crar.crar_nnprestacaocredito),2) "
+ " * crar.crar_nnprestacaorealizadas ) + coalesce(crar.crar_vlresidualmesanterior,0) ) ) as valorCategoria, "//8
+ " fdrc.fdrc_id AS idFaixa, " //9
+ " sum( ( ( coalesce(crar.crar_vlcredito,0) - round((coalesce(crar.crar_vlcredito,0) / crar.crar_nnprestacaocredito),2) "
+ " * (crar.crar_nnprestacaorealizadas - (CASE WHEN(crar.crar_amreferenciaprestacao is not null "
+ " and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil) THEN 1 ELSE 0 END ) ) ) "
+ " + coalesce(crar.crar_vlresidualmesanterior,0 ) ) ) as valorCategoriaSemParcelaAtual "//10
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar on loca.loca_id = crar.loca_id "
+ " INNER JOIN cadastro.imovel imov on imov.imov_id = crar.imov_id "
+ " LEFT JOIN cadastro.cliente_imovel clim on imov.imov_id = clim.imov_id and clim.crtp_id = "
+ ClienteRelacaoTipo.RESPONSAVEL.toString() + " and clim.clim_dtrelacaofim is null "
+ " LEFT JOIN cadastro.cliente resp on clim.clie_id = resp.clie_id "
+ " LEFT JOIN cadastro.cliente_tipo cltp on resp.cltp_id = cltp.cltp_id "
+ " LEFT JOIN financeiro.faixa_docs_a_receber fdrc ON (fdrc.fdrc_vlfaixainicial <= ( ( coalesce(crar.crar_vlcredito,0) - round((coalesce(crar.crar_vlcredito,0) / crar.crar_nnprestacaocredito),2) "
+ " * crar.crar_nnprestacaorealizadas ) + coalesce(crar.crar_vlresidualmesanterior,0) ) "
+ " AND fdrc.fdrc_vlfaixafinal >= ( ( coalesce(crar.crar_vlcredito,0) - round((coalesce(crar.crar_vlcredito,0) / crar.crar_nnprestacaocredito),2) "
+ " * crar.crar_nnprestacaorealizadas ) + coalesce(crar.crar_vlresidualmesanterior,0) )) "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil and crar.dcst_idatual "
+ " in ( :situacaoNormal, :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil and crar.dcst_idatual "
+ " in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) "
+ " and crar.dcst_idanterior is null ) ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, (case when imov.iper_id is not null then imov.iper_id else " + ImovelPerfil.NORMAL.toString() +" end), (case when imov.iper_id is not null then imov.iper_id else " + ImovelPerfil.NORMAL.toString() +" end), "
+ " (case when cltp.epod_id is not null then cltp.epod_id else "+ EsferaPoder.PARTICULAR.toString()+" end), idCategoria, idDocumentoTipo, idFaixa "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idImovelPerfil, idImovelPerfil, "
+ " idEsferaPoder, idCategoria, idDocumentoTipo, idFaixa ";
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idImovelPerfil", Hibernate.INTEGER)
.addScalar("idEsferaPoder", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("idDocumentoTipo", Hibernate.INTEGER)
.addScalar("quantidadeDocumentos", Hibernate.INTEGER)
.addScalar("valorCategoria", Hibernate.BIG_DECIMAL)
.addScalar("idFaixa", Hibernate.INTEGER)
.addScalar("valorCategoriaSemParcelaAtual", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil", anoMesReferenciaContabil)
.setInteger("situacaoNormal",DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada", DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada", DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao", DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada", DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito", DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas", DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
// finally {
// HibernateUtil.closeSession(session);
// }
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gregId," //0
+ " localidade.uneg_id as unegId, " //1
+ " pag.loca_id as locaId, "//2
+ " categoria.catg_id as catgId,"//3
+ " aviso.arrc_id as arrecadadorId,"//4
+ " agencia.bnco_id as banco,"//5
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"//6
+ " aviso.avbc_dtrealizada as dtRealizada," //7
+ " sum(contaCategoria.ctcg_vlagua) as somaagua,"//8
+ " sum(contaCategoria.ctcg_vlesgoto) as somaesgoto"//9
+ " from arrecadacao.pagamento pag"
+ " inner join faturamento.conta conta on conta.cnta_id = pag.cnta_id"
+ " inner join faturamento.conta_categoria contaCategoria on contaCategoria.cnta_id = conta.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " inner join cadastro.categoria categoria on categoria.catg_id = contaCategoria.catg_id"
+ " inner join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " inner join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " inner join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where"
+ " (pgst_idatual = 0"
+ " or ( "
+ " pgst_idatual = 10 "
+ " and pgmt_vlpagamento = "
+ " (cnta_vlagua+cnta_vlesgoto+ "
+ " cnta_vldebitos-cnta_vlcreditos- "
+ " cnta_vlimpostos))) "
+ " and cnta_amreferenciabaixacontabil is null"
+ " and avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id, "
+ " pag.loca_id, "
+ " categoria.catg_id,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " categoria.catg_id,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gregId", Hibernate.INTEGER)
.addScalar("unegId", Hibernate.INTEGER)
.addScalar("locaId", Hibernate.INTEGER)
.addScalar("catgId", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somaagua", Hibernate.BIG_DECIMAL)
.addScalar("somaesgoto", Hibernate.BIG_DECIMAL)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0992] Gerar Lan�amentos Cont�beis dos Avisos Banc�rios
*
* @author Raphael Rossiter
* @date 22/02/2010
*
* @param anoMesReferenciaArrecadacao
* @return Collection
* @throws ErroRepositorioException
*/
public List<AvisoBancario> pesquisarAvisosBancariosParaGerarLancamentosContabeis(Integer anoMesReferenciaArrecadacao)
throws ErroRepositorioException{
List<AvisoBancario> retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "SELECT avbc "
+ " FROM AvisoBancario avbc "
+ " INNER JOIN avbc.arrecadador arrc "
+ " INNER JOIN FETCH avbc.contaBancaria ctbc "
+ " LEFT JOIN FETCH avbc.arrecadacaoForma arfm "
+ " WHERE avbc.anoMesReferenciaArrecadacao <= :anoMesReferenciaArrecadacao "
+ " AND avbc.valorContabilizado <> avbc.valorRealizado "
+ " AND (avbc.valorRealizado IS NOT NULL AND avbc.valorRealizado > :zero) "
+ " ORDER BY arrc.id, avbc.dataRealizada ";
retorno = session.createQuery(consulta)
.setInteger("anoMesReferenciaArrecadacao", anoMesReferenciaArrecadacao.intValue())
.setBigDecimal("zero", new BigDecimal("0.00")).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0992] Gerar Lan�amentos Cont�beis dos Avisos Banc�rios
*
* @author Raphael Rossiter
* @date 22/02/2010
*
* @param nomeConta
* @return ContaContabil
* @throws ErroRepositorioException
*/
public ContaContabil pesquisarContaContabilPorNomeConta(String nomeConta)
throws ErroRepositorioException{
ContaContabil retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "SELECT cnct "
+ " FROM ContaContabil cnct "
+ " WHERE cnct.nomeConta = :nomeConta ";
retorno = (ContaContabil) session.createQuery(consulta)
.setString("nomeConta", nomeConta).setMaxResults(1).uniqueResult();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0992] Gerar Lan�amentos Cont�beis dos Avisos Banc�rios
*
* @author Raphael Rossiter
* @date 22/02/2010
*
* @param idAvisoBancario
* @param valorContabilizado
* @throws ErroRepositorioException
*/
public void atualizarValorContabilizado(Integer idAvisoBancario, BigDecimal valorContabilizado)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String atualizarValorContabilizado;
try {
atualizarValorContabilizado = "UPDATE AvisoBancario "
+ "SET avbc_vlcontabilizado = :valorContabilizado, avbc_tmultimaalteracao = :ultimaAlteracao "
+ "WHERE avbc_id = :idAvisoBancario ";
session.createQuery(atualizarValorContabilizado)
.setInteger("idAvisoBancario", idAvisoBancario)
.setBigDecimal("valorContabilizado", valorContabilizado)
.setTimestamp("ultimaAlteracao", new Date()).executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarResumoPagamentoContaCredito(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gregId, "
+ " localidade.uneg_id as unegId, "
+ " pag.loca_id as locaId, "
+ " creditoCategoria.catg_id as categoriaId,"
+ " aviso.arrc_id as arrecadadorId,"
+ " agencia.bnco_id as banco,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " aviso.avbc_dtrealizada as dtRealizada, "
+ " sum(creditoCategoria.crcg_vlcategoria) as somacreditos"
+ " from arrecadacao.pagamento pag"
+ " inner join faturamento.conta conta on conta.cnta_id = pag.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join faturamento.credito_realizado credito on credito.cnta_id = pag.cnta_id"
+ " left join faturamento.cred_realizado_catg creditoCategoria on creditoCategoria.crrz_id = credito.crrz_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
+ " (pgst_idatual = 0 or "
+ " ( "
+ " pgst_idatual = 10 "
+ " and pgmt_vlpagamento = "
+ " (cnta_vlagua+cnta_vlesgoto + "
+ " cnta_vldebitos-cnta_vlcreditos - "
+ " cnta_vlimpostos))) "
+ " and cnta_amreferenciabaixacontabil is null"
+ " and creditoCategoria.crcg_vlcategoria > 0"
+ " and avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " creditocategoria.catg_id,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " categoriaId,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gregId", Hibernate.INTEGER)
.addScalar("unegId", Hibernate.INTEGER)
.addScalar("locaId", Hibernate.INTEGER)
.addScalar("categoriaId", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somacreditos", Hibernate.BIG_DECIMAL)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarResumoPagamentoContaServico(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gregId,"
+ " localidade.uneg_id as unegId, "
+ " pag.loca_id as locaId,"
+ " debitoCategoria.catg_id as categoriaId, "
+ " aviso.arrc_id as arrecadadorId,"
+ " agencia.bnco_id as banco,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " aviso.avbc_dtrealizada as dtRealizada, "
+ " sum(debitoCategoria.dccg_vlcategoria) as somacreditos, "
+ " debitoTipo.cnct_id as contaContabil "
+ " from arrecadacao.pagamento pag"
+ " inner join faturamento.conta conta on conta.cnta_id = pag.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join faturamento.debito_cobrado debito on debito.cnta_id = pag.cnta_id"
+ " left join faturamento.debito_cobrado_categoria debitoCategoria on debitoCategoria.dbcb_id = debito.dbcb_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " inner join faturamento.debito_tipo debitoTipo on debitoTipo.dbtp_id = debito.dbtp_id "
+ " where"
+ " (pgst_idatual = 0"
+ " or ( "
+ " pgst_idatual = 10 "
+ " and pgmt_vlpagamento = "
+ " (cnta_vlagua+cnta_vlesgoto + "
+ " cnta_vldebitos-cnta_vlcreditos - "
+ " cnta_vlimpostos))) "
+ " and cnta_amreferenciabaixacontabil is null"
+ " and avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " debitocategoria.catg_id,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada, "
+ " contaContabil "
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " categoriaId,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada, "
+ " contaContabil ";
retorno = session.createSQLQuery(consulta)
.addScalar("gregId", Hibernate.INTEGER)
.addScalar("unegId", Hibernate.INTEGER)
.addScalar("locaId", Hibernate.INTEGER)
.addScalar("categoriaId", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somacreditos", Hibernate.BIG_DECIMAL)
.addScalar("contaContabil", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarImpostoResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " pag.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " localidade.loca_nmlocalidade as localidadeNome,"
+ " sum(conta.cnta_vlimpostos) as somaimposto,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId"
+ " from arrecadacao.pagamento pag"
+ " inner join faturamento.conta conta on conta.cnta_id = pag.cnta_id"
+ " inner join faturamento.conta_categoria contaCategoria on contaCategoria.cnta_id = conta.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
+ " conta.cnta_amreferenciabaixacontabil is null"
+ " and conta.cnta_vlimpostos > 0"
+ " and (pgst_idatual = 0"
+ " or ( pgst_idatual = 10 and pgmt_vlpagamento = "
+ " (cnta_vlagua + cnta_vlesgoto + cnta_vldebitos - cnta_vlcreditos - cnta_vlimpostos) ))"
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " pag.imov_id,"
+ " contaCategoria.catg_id,"
+ " aviso.avbc_dtrealizada,"
+ " localidade.loca_nmlocalidade,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao,"
+ " agencia.bnco_id,"
+ " aviso.arrc_id"
+ " order by "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " pag.imov_id,"
+ " contaCategoria.catg_id,"
+ " aviso.avbc_dtrealizada,"
+ " localidade.loca_nmlocalidade";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("localidadeNome", Hibernate.STRING)
.addScalar("somaimposto", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco" , Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarDividaAtivaResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select"
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " pag.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dtRealizada,"
+ " sum(pgmt_vlpagamento) as somaativa, "
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId"
+ " from arrecadacao.pagamento pag"
+ " inner join faturamento.conta conta on conta.cnta_id = pag.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
+ " conta.cnta_amreferenciabaixacontabil is not null"
+ " and (pgst_idatual = 0 "
+ " or ( pgst_idatual = 10 and pgmt_vlpagamento = "
+ " (cnta_vlagua + cnta_vlesgoto + cnta_vldebitos - cnta_vlcreditos - cnta_vlimpostos) )) "
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao,"
+ " agencia.bnco_id,"
+ " aviso.arrc_id"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somaativa", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarDividaAtivaHistoricoResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " pag.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dtRealizada,"
+ " sum(pghi_vlpagamento) as somaativa,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId"
+ " from arrecadacao.pagamento_historico pag"
+ " inner join faturamento.conta_historico conta on conta.cnta_id = pag.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
+ " conta.cnhi_amreferenciabaixacontabil is not null"
+ " and (pgst_idatual = 0 "
+ " or ( pgst_idatual = 10 and pghi_vlpagamento = "
+ " (cnhi_vlagua + cnhi_vlesgoto + cnhi_vldebitos - cnhi_vlcreditos - cnhi_vlimpostos) )) "
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada, "
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao,"
+ " agencia.bnco_id,"
+ " aviso.arrc_id"
+ " order by "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somaativa", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarResumoHistoricoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select"
+ " localidade.greg_id as gregId," //0
+ " localidade.uneg_id as unegId, " //1
+ " pag.loca_id as locaId,"//2
+ " contaCategoria.catg_id as catgId,"//3
+ " aviso.arrc_id as arrecadadorId,"//4
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"//5
+ " agencia.bnco_id as banco,"//6
+ " aviso.avbc_dtrealizada as dtRealizada," //7
+ " sum(contaCategoria.ctch_vlagua) as somaagua," //8
+ " sum(contaCategoria.ctch_vlesgoto) as somaesgoto" //9
+ " from arrecadacao.pagamento_historico pag"
+ " inner join faturamento.conta_historico conta on conta.cnta_id = pag.cnta_id"
+ " inner join faturamento.conta_catg_hist contaCategoria on contaCategoria.cnta_id = conta.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
+ " (pgst_idatual = 0"
+ " or ( "
+ " pgst_idatual = 10 "
+ " and pghi_vlpagamento = "
+ " (cnhi_vlagua+cnhi_vlesgoto + "
+ " cnhi_vldebitos-cnhi_vlcreditos - "
+ " cnhi_vlimpostos ))) "
+ " and cnhi_amreferenciabaixacontabil is null"
+ " and avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " contacategoria.catg_id,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " catgId,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gregId", Hibernate.INTEGER)
.addScalar("unegId", Hibernate.INTEGER)
.addScalar("locaId", Hibernate.INTEGER)
.addScalar("catgId", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somaagua", Hibernate.BIG_DECIMAL)
.addScalar("somaesgoto", Hibernate.BIG_DECIMAL)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarResumoHistoricoPagamentoContaCredito(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gregId, "
+ " localidade.uneg_id as unegId, "
+ " pag.loca_id as locaId, "
+ " creditoCategoria.catg_id as categoriaId,"
+ " aviso.arrc_id as arrecadadorId,"
+ " agencia.bnco_id as banco,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " aviso.avbc_dtrealizada as dtRealizada, "
+ " sum(creditoCategoria.crch_vlcategoria) as somacreditos"
+ " from arrecadacao.pagamento_historico pag"
+ " inner join faturamento.conta_historico conta on conta.cnta_id = pag.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join faturamento.cred_realizado_hist credito on credito.cnta_id = pag.cnta_id"
+ " left join faturamento.cred_realizado_catg_hist creditoCategoria on creditoCategoria.crhi_id = credito.crhi_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
+ " (pgst_idatual = 0"
+ " or ( "
+ " pgst_idatual = 10 "
+ " and pghi_vlpagamento = "
+ " (cnhi_vlagua+cnhi_vlesgoto + "
+ " cnhi_vldebitos-cnhi_vlcreditos - "
+ " cnhi_vlimpostos )))"
+ " and cnhi_amreferenciabaixacontabil is null"
+ " and creditoCategoria.crch_vlcategoria > 0"
+ " and avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " creditocategoria.catg_id,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " categoriaId,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gregId", Hibernate.INTEGER)
.addScalar("unegId", Hibernate.INTEGER)
.addScalar("locaId", Hibernate.INTEGER)
.addScalar("categoriaId", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somacreditos", Hibernate.BIG_DECIMAL)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarResumoHistoricoPagamentoContaServico(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gregId,"
+ " localidade.uneg_id as unegId, "
+ " pag.loca_id as locaId,"
+ " debitoCategoria.catg_id as categoriaId, "
+ " aviso.arrc_id as arrecadadorId,"
+ " agencia.bnco_id as banco,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " aviso.avbc_dtrealizada as dtRealizada, "
+ " sum(debitoCategoria.dcch_vlcategoria) as somacreditos, "
+ " debitoTipo.cnct_id as contaContabil "
+ " from arrecadacao.pagamento_historico pag"
+ " inner join faturamento.conta_historico conta on conta.cnta_id = pag.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join faturamento.debito_cobrado_historico debito on debito.cnta_id = pag.cnta_id"
+ " left join faturamento.deb_cobrado_catg_hist debitoCategoria on debitoCategoria.dbhi_id = debito.dbhi_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " inner join faturamento.debito_tipo debitoTipo on debitoTipo.dbtp_id = debito.dbtp_id "
+ " where"
+ " (pgst_idatual = 0"
+ " or ( "
+ " pgst_idatual = 10 "
+ " and pghi_vlpagamento = "
+ " (cnhi_vlagua+cnhi_vlesgoto + "
+ " cnhi_vldebitos-cnhi_vlcreditos - "
+ " cnhi_vlimpostos))) "
+ " and cnhi_amreferenciabaixacontabil is null"
+ " and avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " debitocategoria.catg_id,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada, "
+ " contaContabil "
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " pag.loca_id,"
+ " categoriaId,"
+ " aviso.arrc_id,"
+ " agencia.bnco_id,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao,"
+ " aviso.avbc_dtrealizada, "
+ " contaContabil ";
retorno = session.createSQLQuery(consulta)
.addScalar("gregId", Hibernate.INTEGER)
.addScalar("unegId", Hibernate.INTEGER)
.addScalar("locaId", Hibernate.INTEGER)
.addScalar("categoriaId", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somacreditos", Hibernate.BIG_DECIMAL)
.addScalar("contaContabil", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarImpostoHistoricoResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " pag.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " localidade.loca_nmlocalidade as localidadeNome,"
+ " sum(conta.cnhi_vlimpostos) as somaimposto,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId"
+ " from arrecadacao.pagamento_historico pag"
+ " inner join faturamento.conta_historico conta on conta.cnta_id = pag.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
+ " conta.cnhi_amreferenciabaixacontabil is null"
+ " and conta.cnhi_vlimpostos > 0"
+ " and(pgst_idatual = 0"
+ " or ( "
+ " pgst_idatual = 10 "
+ " and pghi_vlpagamento = "
+ " (cnhi_vlagua+cnhi_vlesgoto+ "
+ " cnhi_vldebitos-cnhi_vlcreditos- "
+ " cnhi_vlimpostos))) "
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " localidade.loca_nmlocalidade,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao,"
+ " agencia.bnco_id,"
+ " aviso.arrc_id"
+ " order by "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " localidade.loca_nmlocalidade";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("localidadeNome", Hibernate.STRING)
.addScalar("somaimposto", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco" , Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarPagamentoGuiaResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " guiaPagamentoCategoria.catg_id as categoriaId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " sum(guiaPagamentoCategoria.gpcg_vlcategoria) as somapagamentoguia,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId,"
+ " debitoTipo.cnct_id as contaContabil "
+ " from arrecadacao.pagamento pag"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " inner join faturamento.guia_pagamento_categoria guiaPagamentoCategoria on guiaPagamentoCategoria.gpag_id = pag.gpag_id"
+ " inner join faturamento.guia_pagamento guiaPagamento on guiaPagamento.gpag_id = pag.gpag_id"
+ " inner join faturamento.debito_tipo debitoTipo on debitoTipo.dbtp_id = guiaPagamento.dbtp_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
+ " (pag.pgst_idatual = 0 or pag.pgst_idatual = 10)"
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " guiaPagamentoCategoria.catg_id,"
+ " aviso.avbc_dtrealizada,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao,"
+ " agencia.bnco_id,"
+ " aviso.arrc_id,"
+ " debitotipo.cnct_id"
+ " order by "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " guiaPagamentoCategoria.catg_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("categoriaId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("somapagamentoguia", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("contaContabil", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarPagamentoGuiaHistoricoResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id as localidadeId,"
+ " guiaPagamentoCategoria.catg_id as categoriaId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " sum(guiaPagamentoCategoria.gpch_vlcategoria) as somapagamentoguia,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId, "
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId, "
+ " debitoTipo.cnct_id as contaContabil "
+ " from arrecadacao.pagamento_historico pag"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " inner join faturamento.guia_pagto_catg_hist guiaPagamentoCategoria on guiaPagamentoCategoria.gpag_id = pag.gpag_id"
+ " inner join faturamento.guia_pagamento guiaPagamento on guiaPagamento.gpag_id = pag.gpag_id "
+ " inner join faturamento.debito_tipo debitoTipo on debitoTipo.dbtp_id = guiaPagamento.dbtp_id "
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where"
+ " (pag.pgst_idatual = 0 or pag.pgst_idatual = 10)"
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " guiaPagamentoCategoria.catg_id,"
+ " aviso.avbc_dtrealizada,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao, "
+ " agencia.bnco_id,"
+ " aviso.arrc_id, "
+ " debitoTipo.cnct_id "
+ " order by "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " guiaPagamentoCategoria.catg_id,"
+ " aviso.avbc_dtrealizada,"
+ " debitoTipo.cnct_id ";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("categoriaId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("somapagamentoguia", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("contaContabil", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarOutrasReceitasResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select"
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " pag.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " sum(pag.pgmt_vlpagamento) as somapagamento,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId, "
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId,"
+ " contaCategoria.catg_id as categoriaId"
+ " from arrecadacao.pagamento pag"
+ " inner join faturamento.conta conta on conta.cnta_id = pag.cnta_id"
+ " inner join faturamento.conta_categoria contaCategoria on conta.cnta_id = contaCategoria.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where"
+ " conta.cnta_amreferenciabaixacontabil is null"
+ " and pag.pgst_idatual = 10"
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " and (pag.pgmt_vlpagamento <> (conta.cnta_vlagua + conta.cnta_vlesgoto + conta.cnta_vldebitos - conta.cnta_vlcreditos - conta.cnta_vlimpostos))"
+ " group by "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao, "
+ " agencia.bnco_id,"
+ " aviso.arrc_id,"
+ " contacategoria.catg_id"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("somapagamento", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("categoriaId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarPagamentoNaoClassificadoResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " pag.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " sum(pag.pgmt_vlpagamento) as somapagamento, "
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId, "
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId"
+ " from arrecadacao.pagamento pag"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " inner join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " inner join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " inner join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
+ " pag.pgst_idatual not in (10, 0)"
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao, "
+ " agencia.bnco_id,"
+ " aviso.arrc_id"
+ " order by"
+ " pag.imov_id desc";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("somapagamento", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarPagamentoNaoClassificadoHistoricoResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " pag.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " sum(pag.pghi_vlpagamento) as somapagamento,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId"
+ " from arrecadacao.pagamento_historico pag"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
// + " (pag.pgst_idatual <> 10 or pag.pgst_idatual <> 0)"
+ " pag.pgst_idatual not in (10, 0)"
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao,"
+ " agencia.bnco_id,"
+ " aviso.arrc_id"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("somapagamento", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarPagamentoDebitoCobrarResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select"
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " debitoCobrarCategoria.catg_id as categoriaId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " sum(pag.pgmt_vlpagamento) as somapagamentoDebCobrar,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId,"
+ " debitoTipo.cnct_id as contaContabil"
+ " from arrecadacao.pagamento pag"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " inner join faturamento.deb_a_cobrar_catg debitoCobrarCategoria on debitoCobrarCategoria.dbac_id = pag.dbac_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " inner join faturamento.debito_a_cobrar debitoCobrar on debitoCobrar.dbac_id = pag.dbac_id "
+ " inner join faturamento.debito_tipo debitoTipo on debitoTipo.dbtp_id = pag.dbtp_id "
+ " where "
+ " (pag.pgst_idatual = 0 or pag.pgst_idatual = 10)"
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " debitoCobrarCategoria.catg_id,"
+ " aviso.avbc_dtrealizada,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao,"
+ " agencia.bnco_id,"
+ " aviso.arrc_id,"
+ " debitotipo.cnct_id"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " debitoCobrarCategoria.catg_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("categoriaId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("somapagamentoDebCobrar", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("contaContabil", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarPagamentoDebitoCobrarHistoricoResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select"
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " debitoCobrarCategoria.catg_id as categoriaId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " sum(pag.pghi_vlpagamento) as somapagamentoDebCobrar,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId,"
+ " debitoTipo.cnct_id as contaContabil"
+ " from arrecadacao.pagamento_historico pag"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " inner join faturamento.deb_a_cobrar_catg_hist debitoCobrarCategoria on debitoCobrarCategoria.dbac_id = pag.dbac_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " inner join faturamento.deb_a_cobrar_catg_hist debitoCobrar on debitoCobrar.dbac_id = pag.dbac_id "
+ " inner join faturamento.debito_tipo debitoTipo on debitoTipo.dbtp_id = pag.dbtp_id "
+ " where "
+ " (pag.pgst_idatual = 0 or pag.pgst_idatual = 10)"
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " debitoCobrarCategoria.catg_id,"
+ " aviso.avbc_dtrealizada,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao,"
+ " agencia.bnco_id,"
+ " aviso.arrc_id,"
+ " debitotipo.cnct_id"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " debitoCobrarCategoria.catg_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("categoriaId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("somapagamentoDebCobrar", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.addScalar("contaContabil", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fl�vio Cordeiro
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarPagamentoHistoricoSemCorrespondenteResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select "
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId, "
+ " localidade.loca_id as localidadeId,"
+ " pag.imov_id as imovelId, "
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " sum(pag.pghi_vlpagamento) as somapagamento,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId"
+ " from arrecadacao.pagamento_historico pag "
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where"
// + " pag.cnta_id is null and pag.gpag_id is null and dbac_id is null and"
+ " pag.pgst_idatual not in ( 10, 0 )"
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id , "
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " arrecadadorcontrato.ctbc_iddepositoarrecadacao,"
+ " agencia.bnco_id,"
+ " aviso.arrc_id"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("somapagamento", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
public Collection pesquisarResumoReceitaAgrupadoPorBanco(ResumoReceitaHelper resumo)
throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "SELECT "
+ " resumo.banco.id, "
+ " resumo.contaBancaria.numeroConta,"
+ " resumo.contaContabil.numeroConta,"
+ " sum(resumo.valorReceita) as receita "
+ " FROM ResumoReceita resumo "
+ " WHERE 1=1 ";
if(resumo.getAnoMes() != null && !resumo.getAnoMes().equals("")){
consulta += " and resumo.anoMesReferencia = " + resumo.getAnoMes();
}
if(resumo.getGerenciaRegionalId() != null && !resumo.getGerenciaRegionalId().equals("")){
consulta += " and resumo.gerenciaRegional.id = " + resumo.getGerenciaRegionalId();
}
if(resumo.getLocalidadeInicial() != null && !resumo.getLocalidadeInicial().equals("")){
if(resumo.getLocalidadeFinal() != null && !resumo.getLocalidadeFinal().equals("")){
consulta += "and (resumo.localidade.id between "
+ resumo.getLocalidadeInicial()
+ " and "
+ resumo.getLocalidadeFinal()+") ";
}else{
consulta += " and resumo.localidade.id = " + resumo.getLocalidadeInicial();
}
}
if(resumo.getCategoriaId() != null && !resumo.getCategoriaId().equals("")){
consulta += " and resumo.categoria.id = " + resumo.getCategoriaId();
}
if(resumo.getUnidadeNegocioId() != null && !resumo.getUnidadeNegocioId().equals("")){
consulta += " and resumo.unidadeNegocio = " + resumo.getUnidadeNegocioId();
}
consulta += " GROUP BY "
+ " resumo.banco.id, "
+ " resumo.contaBancaria.numeroConta, "
+ " resumo.contaContabil.numeroConta "
+ " ORDER BY resumo.banco.id, "
+ " resumo.contaBancaria.numeroConta, "
+ " resumo.contaContabil.numeroConta ";
retorno = session.createQuery(consulta).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
public Collection pesquisarResumoReceitaRelatorioAnalitico(ResumoReceitaHelper resumo)
throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "SELECT "
+ " resumo.banco.id, "
+ " resumo.contaBancaria.numeroConta,"
+ " resumo.arrecadador.id, "
+ " resumo.dataRealizada, "
+ " resumo.contaContabil.numeroConta,"
+ " sum(resumo.valorReceita) as receita "
+ " FROM ResumoReceita resumo "
+ " WHERE 1=1 ";
if(resumo.getAnoMes() != null && !resumo.getAnoMes().equals("")){
consulta += " and resumo.anoMesReferencia = " + resumo.getAnoMes();
}
if(resumo.getGerenciaRegionalId() != null && !resumo.getGerenciaRegionalId().equals("")){
consulta += " and resumo.gerenciaRegional.id = " + resumo.getGerenciaRegionalId();
}
if(resumo.getLocalidadeInicial() != null && !resumo.getLocalidadeInicial().equals("")){
if(resumo.getLocalidadeFinal() != null && !resumo.getLocalidadeFinal().equals("")){
consulta += "and (resumo.localidade.id between "
+ resumo.getLocalidadeInicial()
+ " and "
+ resumo.getLocalidadeFinal()+") ";
}else{
consulta += " and resumo.localidade.id = " + resumo.getLocalidadeInicial();
}
}
if(resumo.getCategoriaId() != null && !resumo.getCategoriaId().equals("")){
consulta += " and resumo.categoria.id = " + resumo.getCategoriaId();
}
if(resumo.getUnidadeNegocioId() != null && !resumo.getUnidadeNegocioId().equals("")){
consulta += " and resumo.unidadeNegocio = " + resumo.getUnidadeNegocioId();
}
consulta += " GROUP BY "
+ " resumo.banco.id, "
+ " resumo.contaBancaria.numeroConta, "
+ " resumo.arrecadador.id, "
+ " resumo.dataRealizada, "
+ " resumo.contaContabil.numeroConta"
+ " ORDER BY resumo.banco.id, "
+ " resumo.contaBancaria.numeroConta, "
+ " resumo.arrecadador.id, "
+ " resumo.dataRealizada, "
+ " resumo.contaContabil.numeroConta";
retorno = session.createQuery(consulta).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fernando Fontelles Filho
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarOutrasReceitasHistoricoResumoPagamentoConta(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select"
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " pag.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dataRealizada,"
+ " sum(pag.pghi_vlpagamento) as somapagamento,"
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId, "
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId, "
//+ " contaCategoria.catg_id as categoriaId"
+ " debitoTipo.cnct_id as contaContabil"
+ " from arrecadacao.pagamento_historico pag"
//+ " inner join faturamento.conta_historico conta on conta.cnta_id = pag.cnta_id"
//+ " inner join faturamento.conta_categoria_historico contaCategoria on conta.cnta_id = contaCategoria.cnta_id"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = pag.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = pag.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " inner join faturamento.debito_tipo debitoTipo on debitoTipo.dbtp_id = pag.dbtp_id "
+ " where"
//+ " conta.cnta_amreferenciabaixacontabil is null"
+ " pag.pgst_idatual = 10 or pag.pgst_idatual = 0"
+ " and pag.cnta_id is null and pag.gpag_id is null and dbac_id is null "
+ " and aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
//+ " and (pag.pgmt_vlpagamento <> (conta.cnta_vlagua + conta.cnta_vlesgoto + conta.cnta_vldebitos - conta.cnta_vlcreditos - conta.cnta_vlimpostos))"
+ " group by "
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id ,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " contaBancariaId, "
+ " banco,"
+ " arrecadadorId, "
+ " contaContabil "
//+ " categoriaId"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " pag.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " contaContabil ";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dataRealizada", Hibernate.TIMESTAMP)
.addScalar("somapagamento", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
//.addScalar("categoriaId", Hibernate.INTEGER)
.addScalar("contaContabil", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fernando Fontelles Filho
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarDevolucaoAvisoBancarioResumo(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select"
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " dev.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dtRealizada,"
+ " sum(devl_vldevolucao) as somaDevolucao, "
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId"
+ " from arrecadacao.devolucao dev"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = dev.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = dev.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
//+ " avbc_vldevolucaocalculado > 0 "
+ " aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " dev.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " contaBancariaId,"
+ " banco,"
+ " arrecadadorId"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " dev.imov_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somaDevolucao", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* @param dataInicial
* @param dataFinal
* @return
* @throws ErroRepositorioException
*
* Autor: Fernando Fontelles Filho
* [UC 0982] Gerar Resumo da Receita
* [SB 0001] Resumo dos Pagamentos de Contas
*
*/
public Collection pesquisarDevolucaoAvisoBancarioHistoricoResumo(Date dataInicial, Date dataFinal)
throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select"
+ " localidade.greg_id as gerenciaId,"
+ " localidade.uneg_id as unidadeId,"
+ " localidade.loca_id as localidadeId,"
+ " dev.imov_id as imovelId,"
+ " aviso.avbc_dtrealizada as dtRealizada,"
+ " sum(dehi_vldevolucao) as somaDevolucao, "
+ " arrecadadorContrato.ctbc_iddepositoarrecadacao as contaBancariaId,"
+ " agencia.bnco_id as banco,"
+ " aviso.arrc_id as arrecadadorId"
+ " from arrecadacao.devolucao_historico dev"
+ " inner join arrecadacao.aviso_bancario aviso on aviso.avbc_id = dev.avbc_id"
+ " inner join cadastro.localidade localidade on localidade.loca_id = dev.loca_id"
+ " left join arrecadacao.arrecadador_contrato arrecadadorContrato on arrecadadorContrato.arrc_id = aviso.arrc_id"
+ " left join arrecadacao.conta_bancaria contaBancaria on contaBancaria.ctbc_id = arrecadadorContrato.ctbc_iddepositoarrecadacao"
+ " left join arrecadacao.agencia agencia on agencia.agen_id = contaBancaria.agen_id"
+ " where "
//+ " avbc_vldevolucaocalculado > 0 "
+ " aviso.avbc_dtrealizada between :dataInicial and :dataFinal"
+ " group by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " dev.imov_id,"
+ " aviso.avbc_dtrealizada,"
+ " contaBancariaId,"
+ " banco,"
+ " arrecadadorId"
+ " order by"
+ " localidade.greg_id,"
+ " localidade.uneg_id,"
+ " localidade.loca_id,"
+ " dev.imov_id,"
+ " aviso.avbc_dtrealizada";
retorno = session.createSQLQuery(consulta)
.addScalar("gerenciaId", Hibernate.INTEGER)
.addScalar("unidadeId", Hibernate.INTEGER)
.addScalar("localidadeId", Hibernate.INTEGER)
.addScalar("imovelId", Hibernate.INTEGER)
.addScalar("dtRealizada", Hibernate.TIMESTAMP)
.addScalar("somaDevolucao", Hibernate.BIG_DECIMAL)
.addScalar("contaBancariaId", Hibernate.INTEGER)
.addScalar("banco", Hibernate.INTEGER)
.addScalar("arrecadadorId", Hibernate.INTEGER)
.setTimestamp("dataInicial", dataInicial)
.setTimestamp("dataFinal", dataFinal)
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [SB0001] - Acumular o resumo dos devedores duvidosos
*
* TIPO FINANCIAMENTO = AGUA
*
* @author Arthur Carvalho
* @date 08/11/2010
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param anoMesString
* @param idParametrosDevedoresDuvidosos
* @return
* @throws ErroRepositorioException
*/
public BigDecimal obterValorTotalContasDevedoresDuvidosos( int anoMesReferenciaContabil, Integer idLocalidade, Integer idQuadra, String anoMesString,
Integer idParametrosDevedoresDuvidosos)
throws ErroRepositorioException {
BigDecimal retorno = BigDecimal.ZERO;
StatelessSession session = HibernateUtil.getStatelessSession();
String consulta;
try {
consulta = " select sum(cnta.cnta_vlagua + cnta.cnta_vlesgoto + cnta.cnta_vldebitos - cnta.cnta_vlcreditos ) as valorContas "
+ " from faturamento.conta cnta "
+ " where cnta.loca_id = :idLocalidade "
+ " and cnta.qdra_id = :idQuadra "
+ " and cnta.dcst_idatual in ( 0 , 1 ,2 ) "
+ " and cnta.cnta_amreferenciaconta < :anoMesReferencia "
+ " and cnta.cnta_amreferenciabaixacontabil is null "
+ " and exists "
+ " (select ctcg.cnta_id "
+ " from faturamento.conta_categoria ctcg , cadastro.imovel_cobranca_situacao icbs, financeiro.param_deved_duvid_item pdd "
+ " where (cnta.cnta_id = ctcg.cnta_id and ctcg.catg_id in (1,2,3) ) "
+ " and (cnta.imov_id = icbs.imov_id and icbs.iscb_dtretiradacobranca is null) "
+ " and ( (pdd.cbst_id is null or icbs.cbst_id = pdd.cbst_id) "
+ " and (pdd.pded_id = :idParametrosDevedoresDuvidosos ) "
+ " and abs(MONTHS_BETWEEN ( "
+ " to_date( SUBSTR(to_char( :anoMesReferencia ), 5, 2) || '-01-' || SUBSTR(to_char( :anoMesReferencia ), 1, 4), 'MM-DD-YYYY'), "
+ " to_date(to_char(cnta.cnta_dtvencimentoconta, 'MM-DD-YYYY'), 'MM-DD-YYYY') "
+ " )) "
+ " >= pdd.pdit_nnmeses "
+ " and (cnta.cnta_vlagua + cnta.cnta_vlesgoto + cnta.cnta_vldebitos - cnta.cnta_vlcreditos - cnta.cnta_vlimpostos ) <= pdd.pdit_vlvalorlimite "
+ " ) "
+ " ) ";
//System.out.println("" + consulta);
retorno = (BigDecimal) session.createSQLQuery(consulta)
.addScalar("valorContas", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.setInteger("idParametrosDevedoresDuvidosos", idParametrosDevedoresDuvidosos)
.setInteger("idQuadra", idQuadra)
.uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [SB0001] - Acumular o resumo dos devedores duvidosos
*
* TIPO FINANCIAMENTO = AGUA
*
* @author Arthur Carvalho
* @date 08/11/2010
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param anoMesString
* @param idParametrosDevedoresDuvidosos
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarValorAguaAgrupadoPorCategoriaDevedoresDuvidosos(int anoMesReferenciaContabil,
Integer idLocalidade, Integer idQuadra, Integer idParametrosDevedoresDuvidosos) throws ErroRepositorioException {
StatelessSession session = HibernateUtil.getStatelessSession();
Collection retorno = null;
String consulta = "";
try {
consulta = "select sum(ctcg.ctcg_vlagua) as valorAgua, "
+ " categoria.catg_id as categoria "
+ " from faturamento.conta_categoria ctcg"
+ " inner join faturamento.conta cnta on cnta.cnta_id = ctcg.cnta_id"
+ " inner join cadastro.categoria categoria on categoria.catg_id = ctcg.catg_id"
+ " inner join cadastro.imovel imov on imov.imov_id = cnta.imov_id "
+ " where"
+ " cnta.loca_id = :idLocalidade "
+ " and cnta.qdra_id = :idQuadra "
+ " and cnta.cnta_amreferenciabaixacontabil = :anoMesReferencia "
+ " group by categoria.catg_id ";
retorno = session.createSQLQuery(consulta)
.addScalar("valorAgua",Hibernate.BIG_DECIMAL)
.addScalar("categoria", Hibernate.INTEGER)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.setInteger("idQuadra", idQuadra)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [SB0001] - Acumular o resumo dos devedores duvidosos
*
* TIPO FINANCIAMENTO = ESGOTO
*
* @author Arthur Carvalho
* @date 08/11/2010
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param anoMesString
* @param idParametrosDevedoresDuvidosos
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarValorEsgotoAgrupadoPorCategoriaDevedoresDuvidosos(int anoMesReferenciaContabil,
Integer idLocalidade, Integer idQuadra, Integer idParametrosDevedoresDuvidosos) throws ErroRepositorioException{
StatelessSession session = HibernateUtil.getStatelessSession();
Collection retorno = null;
String consulta = "";
try {
consulta = "select sum(ctcg.ctcg_vlesgoto) as valorEsgoto, "
+ " categoria.catg_id as categoria "
+ " from faturamento.conta_categoria ctcg"
+ " inner join faturamento.conta cnta on cnta.cnta_id = ctcg.cnta_id"
+ " inner join cadastro.categoria categoria on categoria.catg_id = ctcg.catg_id"
+ " inner join cadastro.imovel imov on imov.imov_id = cnta.imov_id "
+ " where"
+ " cnta.loca_id = :idLocalidade "
+ " and cnta.qdra_id = :idQuadra "
+ " and cnta.cnta_amreferenciabaixacontabil = :anoMesReferencia "
+ " group by categoria.catg_id ";
retorno = session.createSQLQuery(consulta)
.addScalar("valorEsgoto",Hibernate.BIG_DECIMAL)
.addScalar("categoria", Hibernate.INTEGER)
.setInteger("idQuadra", idQuadra)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [SB0001] - Acumular o resumo dos devedores duvidosos
*
* TIPO FINANCIAMENTO = PARCELAMENTOS COBRADOS (agua)
*
* @author Arthur Carvalho
* @date 08/11/2010
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param anoMesString
* @param idParametrosDevedoresDuvidosos
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarValorAguaParcelamentoAgrupadoPorCategoriaDevedoresDuvidosos( int anoMesReferenciaContabil,
Integer idLocalidade, Integer idQuadra, Integer idParametrosDevedoresDuvidosos) throws ErroRepositorioException {
StatelessSession session = HibernateUtil.getStatelessSession();
Collection retorno = null;
String consulta = "";
try {
consulta = " select sum(dccg.dccg_vlcategoria) as valorCategoria,"
+ " dccg.catg_id as categoria"
+ " from faturamento.conta cnta "
+ " inner join faturamento.debito_cobrado dbcb on dbcb.cnta_id = cnta.cnta_id"
+ " inner join faturamento.debito_cobrado_categoria dccg on dccg.dbcb_id = dbcb.dbcb_id"
+ " where "
+ " cnta.loca_id = :idLocalidade"
+ " and cnta.qdra_id = :idQuadra"
+ " and cnta.cnta_amreferenciabaixacontabil = :anoMesReferencia "
+ " and dbcb.fntp_id = :parcelamentoAgua "
+ " group by dccg.catg_id";
retorno = session.createSQLQuery(consulta)
.addScalar("valorCategoria",Hibernate.BIG_DECIMAL)
.addScalar("categoria", Hibernate.INTEGER)
.setInteger("idLocalidade", idLocalidade)
.setInteger("parcelamentoAgua" , FinanciamentoTipo.PARCELAMENTO_AGUA)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.setInteger("idQuadra", idQuadra)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [SB0001] - Acumular o resumo dos devedores duvidosos
*
* TIPO FINANCIAMENTO = PARCELAMENTOS COBRADOS (esgoto)
*
* @author Arthur Carvalho
* @date 08/11/2010
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param anoMesString
* @param idParametrosDevedoresDuvidosos
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarValorEsgotoParcelamentoAgrupadoPorCategoriaDevedoresDuvidosos( int anoMesReferenciaContabil,
Integer idLocalidade, Integer idQuadra, Integer idParametrosDevedoresDuvidosos ) throws ErroRepositorioException {
StatelessSession session = HibernateUtil.getStatelessSession();
Collection retorno = null;
String consulta = "";
try {
consulta = " select sum(dccg.dccg_vlcategoria) as valorCategoria,"
+ " dccg.catg_id as categoria"
+ " from faturamento.conta cnta "
+ " inner join faturamento.debito_cobrado dbcb on dbcb.cnta_id = cnta.cnta_id"
+ " inner join faturamento.debito_cobrado_categoria dccg on dccg.dbcb_id = dbcb.dbcb_id"
+ " where "
+ " cnta.loca_id = :idLocalidade"
+ " and cnta.qdra_id = :idQuadra"
+ " and cnta.cnta_amreferenciabaixacontabil = :anoMesReferencia "
+ " and dbcb.fntp_id = :parcelamentoEsgoto"
+ " group by dccg.catg_id";
retorno = session.createSQLQuery(consulta)
.addScalar("valorCategoria",Hibernate.BIG_DECIMAL)
.addScalar("categoria", Hibernate.INTEGER)
.setInteger("idLocalidade", idLocalidade)
.setInteger("parcelamentoEsgoto" , FinanciamentoTipo.PARCELAMENTO_ESGOTO)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.setInteger("idQuadra", idQuadra)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [SB0001] - Acumular o resumo dos devedores duvidosos
*
* TIPO FINANCIAMENTO = PARCELAMENTOS COBRADOS (grupo contabil)
*
* @author Arthur Carvalho
* @date 08/11/2010
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param anoMesString
* @param idParametrosDevedoresDuvidosos
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarValorServicoParceladoDevedoresDuvidosos( int anoMesReferenciaContabil,
Integer idLocalidade, Integer idQuadra, Integer idParametrosDevedoresDuvidosos) throws ErroRepositorioException {
StatelessSession session = HibernateUtil.getStatelessSession();
Collection retorno = null;
String consulta = "";
try {
consulta= " select sum(dccg.dccg_vlcategoria) as valorCategoria," //0
+ " lict.lict_nnsequenciaimpressao as numeroSequenciaImpressao, "//1
+ " lict.lict_id as financiamentoTipo, "//2
+ " dccg.catg_id as categoria "//3
+ " from faturamento.conta cnta "
+ " inner join faturamento.debito_cobrado dbcb on dbcb.cnta_id = cnta.cnta_id"
+ " inner join faturamento.debito_cobrado_categoria dccg on dccg.dbcb_id = dbcb.dbcb_id"
+ " inner join financeiro.lancamento_item_contabil lict on dbcb.lict_id = lict.lict_id"
+ " where "
+ " cnta.loca_id = :idLocalidade"
+ " and cnta.qdra_id = :idQuadra"
+ " and cnta.cnta_amreferenciabaixacontabil = :anoMesReferencia "
+ " and dbcb.fntp_id in( :parcelamentoServico , :entradaParcelamento) "
+ " group by lict.lict_nnsequenciaimpressao , lict.lict_id , dccg.catg_id " ;
retorno = session.createSQLQuery(consulta)
.addScalar("valorCategoria",Hibernate.BIG_DECIMAL)
.addScalar("numeroSequenciaImpressao", Hibernate.SHORT)
.addScalar("financiamentoTipo", Hibernate.INTEGER)
.addScalar("categoria", Hibernate.INTEGER)
.setInteger("idLocalidade", idLocalidade)
.setInteger("parcelamentoServico", FinanciamentoTipo.PARCELAMENTO_SERVICO)
.setInteger("entradaParcelamento", FinanciamentoTipo.ENTRADA_PARCELAMENTO)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.setInteger("idQuadra", idQuadra)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [SB0001] - Acumular o resumo dos devedores duvidosos
*
* TIPO FINANCIAMENTO = PARCELAMENTOS COBRADOS (juros)
*
* @author Arthur Carvalho
* @date 08/11/2010
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param anoMesString
* @param idParametrosDevedoresDuvidosos
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarValorJurosDoParcelamentoDevedoresDuvidosos( int anoMesReferenciaContabil,
Integer idLocalidade, Integer idQuadra, Integer idParametrosDevedoresDuvidosos ) throws ErroRepositorioException {
StatelessSession session = HibernateUtil.getStatelessSession();
Collection retorno = null;
String consulta = "";
try {
consulta= " select sum(dccg.dccg_vlcategoria) as valorCategoria,"
+ " dccg.catg_id as categoria"
+ " from faturamento.conta cnta "
+ " inner join faturamento.debito_cobrado dbcb on dbcb.cnta_id = cnta.cnta_id"
+ " inner join faturamento.debito_cobrado_categoria dccg on dccg.dbcb_id = dbcb.dbcb_id"
+ " where "
+ " cnta.loca_id = :idLocalidade"
+ " and cnta.qdra_id = :idQuadra"
+ " and cnta.cnta_amreferenciabaixacontabil = :anoMesReferencia "
+ " and dbcb.fntp_id = :jurosParcelamento "
+ " group by dccg.catg_id ";
retorno = session.createSQLQuery(consulta)
.addScalar("valorCategoria",Hibernate.BIG_DECIMAL)
.addScalar("categoria", Hibernate.INTEGER)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.setInteger("jurosParcelamento" , FinanciamentoTipo.JUROS_PARCELAMENTO)
.setInteger("idQuadra", idQuadra)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [SB0001] - Acumular o resumo dos devedores duvidosos
*
* TIPO FINANCIAMENTO = FINANCIAMENTOS COBRADOS
*
* @author Arthur Carvalho
* @date 08/11/2010
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param anoMesString
* @param idParametrosDevedoresDuvidosos
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarValorPorTipoFinanciamentoDevedoresDuvidosos( int anoMesReferenciaContabil,
Integer idLocalidade, Integer idQuadra, Integer idParametrosDevedoresDuvidosos) throws ErroRepositorioException {
StatelessSession session = HibernateUtil.getStatelessSession();
Collection retorno = null;
String consulta = "";
try {
consulta= " select sum(dccg.dccg_vlcategoria) as valorCategoria," //0
+ " lict.lict_nnsequenciaimpressao as numeroSequenciaImpressao,"//1
+ " lict.lict_id as financiamentoTipo,"//2
+ " dccg.catg_id as categoria"//3
+ " from faturamento.conta cnta "
+ " inner join faturamento.debito_cobrado dbcb on dbcb.cnta_id = cnta.cnta_id"
+ " inner join faturamento.debito_cobrado_categoria dccg on dccg.dbcb_id = dbcb.dbcb_id"
+ " inner join financeiro.lancamento_item_contabil lict on dbcb.lict_id = lict.lict_id"
+ " where "
+ " cnta.loca_id = :idLocalidade"
+ " and cnta.qdra_id = :idQuadra"
+ " and cnta.cnta_amreferenciabaixacontabil = :anoMesReferencia "
+ " and dbcb.fntp_id in ( :servicoNormal, :arrastoAgua, :arrastoEsgoto, :arrastoServico) "
+ " group by lict.lict_nnsequenciaimpressao , lict.lict_id , dccg.catg_id " ;
retorno = session.createSQLQuery(consulta)
.addScalar("valorCategoria",Hibernate.BIG_DECIMAL)
.addScalar("numeroSequenciaImpressao", Hibernate.SHORT)
.addScalar("financiamentoTipo", Hibernate.INTEGER)
.addScalar("categoria", Hibernate.INTEGER)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.setInteger("servicoNormal" , FinanciamentoTipo.SERVICO_NORMAL)
.setInteger("arrastoAgua" , FinanciamentoTipo.ARRASTO_AGUA)
.setInteger("arrastoEsgoto" , FinanciamentoTipo.ARRASTO_ESGOTO)
.setInteger("arrastoServico" , FinanciamentoTipo.ARRASTO_SERVICO)
.setInteger("idQuadra", idQuadra)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [SB0001] - Acumular o resumo dos devedores duvidosos
*
*
* @author Arthur Carvalho
* @date 08/11/2010
* @param anoMesReferenciaContabil
* @param idLocalidade
* @param anoMesString
* @param idParametrosDevedoresDuvidosos
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarDevolucoesValoresContaDevedoresDuvidosos( int anoMesReferenciaContabil,
Integer idLocalidade, Integer idQuadra, Integer idParametrosDevedoresDuvidosos) throws ErroRepositorioException {
StatelessSession session = HibernateUtil.getStatelessSession();
Collection retorno = null;
String consulta = "";
try {
consulta= " select sum(crcg.crcg_vlcategoria) as valorCategoria," //0
+ " lict.lict_nnsequenciaimpressao as numeroSequenciaImpressao,"//1
+ " lict.lict_id as financiamentoTipo,"//2
+ " crcg.catg_id as categoria"//3
+ " from faturamento.cred_realizado_catg crcg"
+ " inner join faturamento.credito_realizado crrz on crrz.crrz_id = crcg.crrz_id"
+ " inner join faturamento.conta cnta on cnta.cnta_id = crrz.cnta_id"
+ " inner join financeiro.lancamento_item_contabil lict on crrz.lict_id = lict.lict_id"
+ " inner join financeiro.lancamento_item lcit on lict.lcit_id = lcit.lcit_id"
+ " where "
+ " cnta.loca_id = :idLocalidade"
+ " and cnta.qdra_id = :idQuadra"
+ " and cnta.cnta_amreferenciabaixacontabil = :anoMesReferencia "
+ " group by lict.lict_nnsequenciaimpressao , lict.lict_id , crcg.catg_id " ;
retorno = session.createSQLQuery(consulta)
.addScalar("valorCategoria",Hibernate.BIG_DECIMAL)
.addScalar("numeroSequenciaImpressao", Hibernate.SHORT)
.addScalar("financiamentoTipo", Hibernate.INTEGER)
.addScalar("categoria", Hibernate.INTEGER)
.setInteger("idLocalidade", idLocalidade)
.setInteger("idQuadra", idQuadra)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
*/
public Collection<Integer> pesquisarIdsQuadrasParaGerarResumoDevedoresDuvidosos(Integer idLocalidade)throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT DISTINCT qdra.id "
+ "FROM Quadra qdra "
+ "inner join qdra.setorComercial setor "
+ "inner join setor.localidade loca "
+ "WHERE loca.id = :idLocalidade ";
retorno = session.createQuery(consulta)
.setInteger("idLocalidade", idLocalidade)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0989] Gerar Resumo de Documentos a Receber
*
* @author Mariana Victor
* @date 28/03/2011
*
* @param anoMesReferenciaRecebimentos
* @param idLocalidade
* @throws ErroRepositorioException
*/
public void removerDocumentosAReceberFaixaResumo(
int anoMesReferenciaRecebimentos, Integer idLocalidade, Session session)
throws ErroRepositorioException {
// Session session = HibernateUtil.getSession();
String delete;
try {
delete = "DELETE FROM DocumentosAReceberFaixaResumo drfx "
+ " WHERE drfx.documentosAReceberResumo.id IN "
+ " (SELECT drrs.id FROM DocumentosAReceberResumo drrs WHERE drrs.localidade.id = :idLocalidade "
+ " AND drrs.anoMesReferenciaRecebimentos = :anoMesReferencia) ";
session.createQuery(delete).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferencia",
anoMesReferenciaRecebimentos).executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
// finally {
// HibernateUtil.closeSession(session);
// }
}
/**
* Este met�do � utilizado para pesquisar os registros q ser�o
* usados para contru��o do txt do caso de uso
*
* [UC0469] Gerar Integra��o para a Contabilidade
*
* @author Tiago Moreno
* @date 28/06/11
*
* @param idLancamentoOrigem
* @param anoMes
* @return
* @throws ErroRepositorioException
*/
public Collection pesquisarGerarIntegracaoContabilidadeCosama(String idLancamentoOrigem, String anoMes) throws ErroRepositorioException{
Collection retorno;
Session session = HibernateUtil.getSession();
String consulta;
try{
consulta = "select lcor.numeroCartao ,"//0
+ " lcor.codigoTipo ,"//1
+ " lcor.numeroFolha ,"//2
+ " cntc.indicadorLinha ,"//3
+ " cntc.prefixoContabil ,"//4
+ " cntc.numeroConta ,"//5
+ " cntc.numeroDigito ,"//6
+ " cntc.numeroTerceiros ,"//7
+ " lcor.codigoReferencia ,"//8
+ " sum(lcti.valorLancamento) ,"//9
+ " lcti.indicadorDebitoCredito ,"//10
+ " lcor.numeroCartao2 ,"//11
+ " lcor.numeroVersao ,"//12
+ " loca.id, "//13
+ " loca.codigoCentroCusto,"//14
+ " cntc.indicadorCentroCusto, " //15
+ " lcor.numeroHistoricoDebito, " //16
+ " lcor.numeroHistoricoCredito " //17
+ " from LancamentoContabilItem lcti " // lan�amento contabil item
+ " left join lcti.lancamentoContabil lcnb" //lan�amento cont�bil
+ " left join lcnb.localidade loca" //localidade
+ " left join lcnb.lancamentoOrigem lcor" //lan�amento origem
+ " left join lcti.contaContabil cntc" //conta contabil
+ " where lcnb.anoMes= :anoMes and lcor.id= :idLancamentoOrigem "
+ " group by loca.id, cntc.numeroConta, lcti.indicadorDebitoCredito,"
+ " cntc.numeroConta ,cntc.numeroDigito ,cntc.numeroTerceiros ,"
+ " lcor.numeroCartao, lcor.codigoTipo,"
+ " lcor.numeroFolha, cntc.indicadorLinha ,cntc.prefixoContabil ,"
+ " lcor.codigoReferencia ,"
+ " lcor.numeroCartao2 ,lcor.numeroVersao ,loca.codigoCentroCusto, cntc.indicadorCentroCusto, "
+ " lcor.numeroHistoricoDebito, lcor.numeroHistoricoCredito "
+ " order by loca.id, cntc.numeroConta, lcti.indicadorDebitoCredito desc";
retorno = session.createQuery(consulta)
.setInteger("anoMes",new Integer(anoMes))
.setInteger("idLancamentoOrigem",new Integer(idLancamentoOrigem))
.list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
*
* [UC0485] Gerar Resumo dos Devedores Duvidosos
*
* @author Arthur Carvalho
* @date 16/09/2011
*
* @param anoMesReferenciaContabil
* @return
* @throws ErroRepositorioException
*/
public void atualizarValorBaixadoParametrosDevedoresDuvidosos(Integer anoMesReferenciaContabil, BigDecimal valorTotalValoresBaixados) throws ErroRepositorioException {
String update;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
// declara o tipo de conexao
Connection jdbcCon = session.connection();
update = " update financeiro.param_deved_duvid pdd "
+ " set pdd.pded_vlbaixado = (" + valorTotalValoresBaixados + " + (select p.pded_vlbaixado from financeiro.param_deved_duvid p where p.pded_amreferenciacontabil = "+ anoMesReferenciaContabil+ " )) "
+ "WHERE pdd.pded_amreferenciacontabil = " + anoMesReferenciaContabil +" ";
st = jdbcCon.prepareStatement(update);
// executa o update
st.executeUpdate();
session.flush();
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
/**
*
* Pesquisa os Valores Baixados No resumo Agrupados Por Localidade
*
* @author Arthur Carvalho
* @date 19/09/2011
* @param anoMesReferenciaContabil
* @return
* @throws ErroRepositorioException
*/
public Collection<Object[]> pesquisarValorBaixadoAgrupadoPorLocalidadeResumoDevedoresDuvidosos( int anoMesReferenciaContabil ) throws ErroRepositorioException {
StatelessSession session = HibernateUtil.getStatelessSession();
Collection retorno = null;
String consulta = "";
try {
consulta = " select sum(rded_vlvalorbaixado) as valorBaixado , loca_id as localidade"
+ " from financeiro.resumo_deved_duvid "
+ " where rded_amreferenciacontabil = :anoMesReferencia "
+ " group by loca_id " ;
retorno = session.createSQLQuery(consulta)
.addScalar("valorBaixado",Hibernate.BIG_DECIMAL)
.addScalar("localidade", Hibernate.INTEGER)
.setInteger("anoMesReferencia", anoMesReferenciaContabil)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*
* Acumula os valores dos cr�ditos a realizar para ajustes para zerar contas
* pela ger�ncia, localidade e categoria
*
* @author Rafael Corr�a
* @date 08/11/2007
*
* @param idLocalidade
* @param anoMesReferenciaContabil
* Ano e m�s de refer�ncia contabil
* @throws ErroRepositorioException
* Erro no hibernate
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarCategoriaAjusteZerarConta(
int anoMesReferenciaContabil, Integer idLocalidade)
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
// cria uma sess�o com o hibernate
Session session = HibernateUtil.getSession();
// cria a vari�vel que vai conter o hql
String consulta;
try {
// constroi o sql
consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( crarCat.cacg_vlcategoria - (round( ( crarCat.cacg_vlcategoria / crar.crar_nnprestacaocredito), 2 ) * ( crar.crar_nnprestacaorealizadas - "
+ " ( CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) "
+ " ) ) ) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crarCat.crar_id = crar.crar_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :ajusteZerarConta ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
// executa o sql
retorno = session.createSQLQuery(consulta).addScalar("idGerencia",
Hibernate.INTEGER).addScalar("idUnidadeNegocio",
Hibernate.INTEGER).addScalar("idLocalidade",
Hibernate.INTEGER).addScalar("idCategoria",
Hibernate.INTEGER).addScalar("valorCategoria",
Hibernate.BIG_DECIMAL).setInteger("idLocalidade",
idLocalidade).setInteger("anoMesReferenciaContabil",
anoMesReferenciaContabil).setInteger("situacaoNormal",
DebitoCreditoSituacao.NORMAL).setInteger(
"situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada",
DebitoCreditoSituacao.RETIFICADA).setInteger(
"situacaoCancelada",
DebitoCreditoSituacao.CANCELADA).setInteger(
"situacaoCanceladaPorRetificacao",
DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",
DebitoCreditoSituacao.PARCELADA).setInteger(
"situacaoDebitoPrescrito",
DebitoCreditoSituacao.DEBITO_PRESCRITO)
/**
* Inclusao das contas incluidas canceladas por prescri��o
* de d�bito na gera��o do resumo*/
.setInteger("situacaoDebitoPrescritoContasIncluidas",
DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("ajusteZerarConta",
CreditoOrigem.AJUSTES_PARA_ZERAR_CONTA).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*/
public Collection<Object[]> pesquisarDadosCreditosARealizar(int anoMesReferenciaContabil,
Integer idLocalidade, Integer creditoOrigem) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
Session session = HibernateUtil.getSession();
try {
String consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( crarCat.cacg_vlcategoria - (round( ( crarCat.cacg_vlcategoria / crar.crar_nnprestacaocredito), 2 ) * ( crar.crar_nnprestacaorealizadas - "
+ " ( CASE WHEN ( crar.crar_amreferenciaprestacao is not null and crar.crar_amreferenciaprestacao > :anoMesReferenciaContabil ) "
+ " THEN 1 "
+ " ELSE 0 "
+ " END ) "
+ " ) ) ) as valorCategoria "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crarCat.crar_id = crar.crar_id "
+ " WHERE loca.loca_id = :idLocalidade "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :creditoOrigem ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorCategoria", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil", anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada", DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada", DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao", DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada", DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito", DebitoCreditoSituacao.DEBITO_PRESCRITO)
.setInteger("situacaoDebitoPrescritoContasIncluidas", DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("creditoOrigem", creditoOrigem)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0714] - Gerar Contas a Receber Cont�bil
*/
public Collection<Object[]> pesquisarDadosCreditosARealizarValorResidual(int anoMesReferenciaContabil,
Integer idLocalidade, Integer creditoOrigem) throws ErroRepositorioException {
Collection<Object[]> retorno = null;
Session session = HibernateUtil.getSession();
try {
String consulta = "SELECT loca.greg_id as idGerencia, loca.uneg_id as idUnidadeNegocio, loca.loca_id as idLocalidade, "
+ " crarCat.catg_id as idCategoria, "
+ " sum( round ( ( (crar_vlresidualmesanterior / (select sum(cacg_qteconomia) from faturamento.cred_a_realiz_catg where crar_id = crar.crar_id)) * crarCat.cacg_qteconomia ), 2 )) as valorResidual "
+ " FROM cadastro.localidade loca "
+ " INNER JOIN faturamento.credito_a_realizar crar "
+ " on loca.loca_id = crar.loca_id "
+ " INNER JOIN faturamento.cred_a_realiz_catg crarCat "
+ " on crar.crar_id = crarCat.crar_id "
+ " WHERE loca.loca_id = :idLocalidade and crar.crar_vlresidualmesanterior is not null and crar.crar_vlresidualmesanterior > 0 "
+ " and ( ( crar.crar_amreferenciacontabil <= :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoNormal, "
+ " :situacaoIncluida, :situacaoRetificada ) ) "
+ " or ( crar.crar_amreferenciacontabil > :anoMesReferenciaContabil "
+ " and crar.dcst_idatual in ( :situacaoCancelada, :situacaoCanceladaPorRetificacao, "
+ " :situacaoParcelada, :situacaoDebitoPrescrito, :situacaoDebitoPrescritoContasIncluidas ) and crar.dcst_idanterior is null ) ) "
+ " and ( crar.crog_id = :creditoOrigem ) "
+ " GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, crarcat.catg_id "
+ " ORDER BY idGerencia, idUnidadeNegocio, idLocalidade, idCategoria ";
retorno = session.createSQLQuery(consulta)
.addScalar("idGerencia", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("valorResidual", Hibernate.BIG_DECIMAL)
.setInteger("idLocalidade", idLocalidade)
.setInteger("anoMesReferenciaContabil", anoMesReferenciaContabil)
.setInteger("situacaoNormal", DebitoCreditoSituacao.NORMAL)
.setInteger("situacaoIncluida", DebitoCreditoSituacao.INCLUIDA)
.setInteger("situacaoRetificada", DebitoCreditoSituacao.RETIFICADA)
.setInteger("situacaoCancelada", DebitoCreditoSituacao.CANCELADA)
.setInteger("situacaoCanceladaPorRetificacao", DebitoCreditoSituacao.CANCELADA_POR_RETIFICACAO)
.setInteger("situacaoParcelada",DebitoCreditoSituacao.PARCELADA)
.setInteger("situacaoDebitoPrescrito", DebitoCreditoSituacao.DEBITO_PRESCRITO)
.setInteger("situacaoDebitoPrescritoContasIncluidas",DebitoCreditoSituacao.DEBITO_PRESCRITO_CONTAS_INCLUIDAS)
.setInteger("creditoOrigem", creditoOrigem)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Collection<Object[]> pesquisarDadosRelatorioParametrosContabeisContasAReceber( Integer referenciaContabil ) throws ErroRepositorioException{
Collection<Object[]> retorno = null;
Session session = HibernateUtil.getSession();
StringBuilder select = new StringBuilder();
select.append("select lanTip.lctp_dstipolancamento as descricaoTipoLancamento, ")
.append("lanIte.lcit_dsitemlancamento as descricaoItemLancamento, ")
.append("cat.catg_dsabreviado as descricaoCategoria, ")
.append(" case when catTip.cgtp_id = 1 then coalesce( conConPar.cnct_nnconta, '0' ) ")
.append(" else coalesce( conConPub.cnct_nnconta, '0' ) ")
.append(" end as numeroConta, ")
.append("sum(coalesce( conRec.crct_vlitemlancamento, 0 ) ) as valorItemLancamento, ")
.append("conRec.crct_nnsequenciatipolancamento, ")
.append("conRec.crct_nnseqitemtplanc, ")
.append("conRec.catg_id ");
StringBuilder from = new StringBuilder();
from.append("FROM financeiro.contas_a_receber_contb conRec ")
.append("inner join financeiro.lancamento_tipo lanTip on ( lanTip.lctp_id = conRec.lctp_id ) ")
.append("inner join financeiro.lancamento_item lanIte on ( lanIte.lcit_id = conRec.lcit_id ) ")
.append("inner join financeiro.contas_a_rec_contb_param conRecConParPar on ( ( conRecConParPar.lict_id = conRec.lict_id or conRecConParPar.lict_id is null ) and conRecConParPar.lctp_id = conRec.lctp_id and conRecConParPar.lcit_id = conRec.lcit_id and conRecConParPar.cgtp_id = 1 ) ")
.append("inner join financeiro.conta_contabil conConPar on ( conRecConParPar.cnct_id = conConPar.cnct_id ) ")
.append("inner join financeiro.contas_a_rec_contb_param conRecConParPub on ( ( conRecConParPub.lict_id = conRec.lict_id or conRecConParPub.lict_id is null ) and conRecConParPub.lctp_id = conRec.lctp_id and conRecConParPub.lcit_id = conRec.lcit_id and conRecConParPub.cgtp_id = 2 ) ")
.append("inner join financeiro.conta_contabil conConPub on ( conRecConParPub.cnct_id = conConPub.cnct_id ) ")
.append("inner join cadastro.categoria cat on ( cat.catg_id = conRec.catg_id ) ")
.append("inner join cadastro.categoria_tipo catTip on ( cat.cgtp_id = catTip.cgtp_id ) ");
StringBuilder where = new StringBuilder();
where.append("where conRec.crct_amreferencia =:data ");
StringBuilder groupBy = new StringBuilder();
groupBy.append("group by lanTip.lctp_dstipolancamento,lanIte.lcit_dsitemlancamento,cat.catg_dsabreviado,4, ")
.append("conRec.crct_nnsequenciatipolancamento,conRec.crct_nnseqitemtplanc,conRec.catg_id ");
StringBuilder orderBy = new StringBuilder();
orderBy.append("order by conRec.crct_nnsequenciatipolancamento,conRec.crct_nnseqitemtplanc,conRec.catg_id;");
StringBuilder sql = new StringBuilder();
sql.append(select)
.append(from)
.append(where)
.append(groupBy)
.append(orderBy);
try {
retorno = session.createSQLQuery(sql.toString())
.addScalar("descricaoTipoLancamento", Hibernate.STRING)
.addScalar("descricaoItemLancamento", Hibernate.STRING)
.addScalar("descricaoCategoria", Hibernate.STRING)
.addScalar("numeroConta", Hibernate.STRING)
.addScalar("valorItemLancamento", Hibernate.BIG_DECIMAL)
.setInteger("data", referenciaContabil)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
}