package gcom.financeiro; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.cliente.EsferaPoder; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cobranca.DocumentoTipo; import gcom.faturamento.debito.DebitoCreditoSituacao; import gcom.util.ErroRepositorioException; import gcom.util.HibernateUtil; import java.math.BigDecimal; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Collection; import org.hibernate.Hibernate; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.StatelessSession; /** * Repositorio para financeiro * * @author Raphael Rossiter * @since 09/01/2006 */ public class RepositorioFinanceiroPostgresHBM extends RepositorioFinanceiroHBM { 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 " + 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 ctcg.catg_id from faturamento.conta_categoria ctcg " + " where ctcg.cnta_id = conta.cnta_id " + " order by ctcg.ctcg_qteconomia desc, ctcg.catg_id asc limit 1) IS NOT NULL " + " THEN (select ctcg.catg_id from faturamento.conta_categoria ctcg " + " where ctcg.cnta_id = conta.cnta_id " + " order by ctcg.ctcg_qteconomia desc, ctcg.catg_id asc limit 1 ) ELSE " + Categoria.RESIDENCIAL.toString() + " END) as idCategoria, "//5 + DocumentoTipo.CONTA.toString() + " as idDocumentoTipo, "//6 + " 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 = " + ClienteRelacaoTipo.RESPONSAVEL.toString() + " 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 ) " + " 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, (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).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } // finally { // HibernateUtil.closeSession(session); // } return retorno; } 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 " + " order by gpcg.gpcg_qteconomia desc, gpcg.catg_id asc limit 1 ) IS NOT NULL " + " THEN (select gpcg.catg_id from faturamento.guia_pagamento_categoria gpcg " + " where gpcg.gpag_id = gpag.gpag_id " + " order by gpcg.gpcg_qteconomia desc, gpcg.catg_id asc limit 1) 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 ) " + " 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).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } // finally { // HibernateUtil.closeSession(session); // } return retorno; } 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 " + " order by dbcg.dbcg_qteconomia desc, dbcg.catg_id asc limit 1) IS NOT NULL " + " THEN (select dbcg.catg_id from faturamento.deb_a_cobrar_catg dbcg " + " where dbcg.dbac_id = dbac.dbac_id " + " order by dbcg.dbcg_qteconomia desc, dbcg.catg_id asc limit 1) 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 ) " + " 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).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } // finally { // HibernateUtil.closeSession(session); // } return retorno; } 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 " + " order by cacg.cacg_qteconomia desc, cacg.catg_id asc limit 1 ) IS NOT NULL " + " THEN (select cacg.catg_id from faturamento.cred_a_realiz_catg cacg " + " where cacg.crar_id = crar.crar_id " + " order by cacg.cacg_qteconomia desc, cacg.catg_id asc limit 1) 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 ) " + " 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).list(); } 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 15/12/2010 * * @param idLancamentoOrigem * @param anoMes * @return * @throws ErroRepositorioException */ @Override 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, col_13_0_, " + " 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; } /** * 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 */ 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 as cnta " + "SET cnta_amreferenciabaixacontabil = ? " + "where cnta.loca_id = ? " + "and cnta.qdra_id = ? " + "and cnta.dcst_idatual in ( ? , ? , ? ) " + "and cnta.cnta_amreferenciaconta < ? " + "and cnta.cnta_amreferenciabaixacontabil is null " + "and exists " + "(select ctcg.cnta_id " + "from faturamento.conta_categoria as ctcg " + "inner join cadastro.imovel_cobranca_situacao as icbs on (cnta.imov_id = icbs.imov_id and icbs.iscb_dtretiradacobranca is null) " + "inner join financeiro.param_deved_duvid_item as pdd on ( (pdd.cbst_id is null or icbs.cbst_id = pdd.cbst_id) " + "and (pdd.pded_id = ?) " + "and abs((( extract( year from to_date( substring( ? , 1, 4) || substring( ? , 5, 2) || '-01-', 'YYYY-MM-DD' ) ) - extract( year from to_date( cnta.cnta_dtvencimentoconta, 'YYYY-MM-DD' ) ) ) * 12 ) + " + "( extract( month from to_date( substring( ? , 1, 4) || substring( ? , 5, 2) || '-01-', 'YYYY-MM-DD' ) ) ) - extract( month from to_date( cnta.cnta_dtvencimentoconta, 'YYYY-MM-DD' ) ) ) >= pdd.pdit_nnmeses " + "and (cnta.cnta_vlagua + cnta.cnta_vlesgoto + cnta.cnta_vldebitos - cnta.cnta_vlcreditos - cnta.cnta_vlimpostos ) <= pdd.pdit_vlvalorlimite " + " ) " + "where (cnta.cnta_id = ctcg.cnta_id and ctcg.catg_id in(1,2,3)) " + ") "; st = jdbcCon.prepareStatement(update); st.setInt(1, anoMesReferenciaContabil); st.setInt(2, idLocalidade); st.setInt(3, idQuadra); st.setInt(4, DebitoCreditoSituacao.NORMAL); st.setInt(5, DebitoCreditoSituacao.INCLUIDA); st.setInt(6, DebitoCreditoSituacao.RETIFICADA); st.setInt(7, anoMesReferenciaContabil); st.setInt(8, idParametrosDevedoresDuvidosos ); st.setInt(9, anoMesReferenciaContabil ); st.setInt(10, anoMesReferenciaContabil ); st.setInt(11, anoMesReferenciaContabil ); st.setInt(12, 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); } } /** * [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 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 - cnta.cnta_vlimpostos ) as valorContas " + " from faturamento.conta_categoria as ctcg" + " inner join faturamento.conta as cnta on cnta.cnta_id = ctcg.cnta_id" + " inner join cadastro.imovel as imov on imov.imov_id = cnta.imov_id " + " where" + " cnta.loca_id = :idLocalidade " + " and cnta.qdra_id = :idQuadra " + " and cnta.cnta_amreferenciabaixacontabil = :anoMesReferencia " + " and exists ( select ctcg.cnta_id " + "from faturamento.conta_categoria as ctcg " + "inner join cadastro.imovel_cobranca_situacao as icbs on (cnta.imov_id = icbs.imov_id and icbs.iscb_dtretiradacobranca is null) " + "inner join financeiro.param_deved_duvid_item as pdd on ( (pdd.cbst_id is null or icbs.cbst_id = pdd.cbst_id) " + "and (pdd.pded_id = :idParametrosDevedoresDuvidosos) " + "and abs((( extract( year from to_date( substring(:anoMesReferencia , 1, 4) || substring(:anoMesReferencia , 5, 2) || '-01-', 'YYYY-MM-DD' ) ) - extract( year from to_date( cnta.cnta_dtvencimentoconta, 'YYYY-MM-DD' ) ) ) * 12 ) + " + "( extract( month from to_date( substring(:anoMesReferencia , 1, 4) || substring(:anoMesReferencia , 5, 2) || '-01-', 'YYYY-MM-DD' ) ) ) - extract( month from to_date( cnta.cnta_dtvencimentoconta, 'YYYY-MM-DD' ) ) ) >= pdd.pdit_nnmeses " + "and (cnta.cnta_vlagua + cnta.cnta_vlesgoto + cnta.cnta_vldebitos - cnta.cnta_vlcreditos - cnta.cnta_vlimpostos ) <= pdd.pdit_vlvalorlimite " + " ) " + "where (cnta.cnta_id = ctcg.cnta_id and ctcg.catg_id in(1,2,3) ) " + " ) "; 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 as ctcg" + " inner join faturamento.conta as cnta on cnta.cnta_id = ctcg.cnta_id" + " inner join cadastro.categoria as categoria on categoria.catg_id = ctcg.catg_id" + " inner join cadastro.imovel as 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 as ctcg" + " inner join faturamento.conta as cnta on cnta.cnta_id = ctcg.cnta_id" + " inner join cadastro.categoria as categoria on categoria.catg_id = ctcg.catg_id" + " inner join cadastro.imovel as 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 as cnta " + " inner join faturamento.debito_cobrado as dbcb on dbcb.cnta_id = cnta.cnta_id" + " inner join faturamento.debito_cobrado_categoria as 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 as cnta " + " inner join faturamento.debito_cobrado as dbcb on dbcb.cnta_id = cnta.cnta_id" + " inner join faturamento.debito_cobrado_categoria as 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 as cnta " + " inner join faturamento.debito_cobrado as dbcb on dbcb.cnta_id = cnta.cnta_id" + " inner join faturamento.debito_cobrado_categoria as dccg on dccg.dbcb_id = dbcb.dbcb_id" + " inner join financeiro.lancamento_item_contabil as 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 as cnta " + " inner join faturamento.debito_cobrado as dbcb on dbcb.cnta_id = cnta.cnta_id" + " inner join faturamento.debito_cobrado_categoria as 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 as cnta " + " inner join faturamento.debito_cobrado as dbcb on dbcb.cnta_id = cnta.cnta_id" + " inner join faturamento.debito_cobrado_categoria as dccg on dccg.dbcb_id = dbcb.dbcb_id" + " inner join financeiro.lancamento_item_contabil as 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 as crcg" + " inner join faturamento.credito_realizado as crrz on crrz.crrz_id = crcg.crrz_id" + " inner join faturamento.conta as cnta on cnta.cnta_id = crrz.cnta_id" + " inner join financeiro.lancamento_item_contabil as lict on crrz.lict_id = lict.lict_id" + " inner join financeiro.lancamento_item as 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; } /** * * * [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 " + " set pded_vlbaixado = " + valorTotalValoresBaixados + " + (select p.pded_vlbaixado from financeiro.param_deved_duvid as p where p.pded_amreferenciacontabil = "+ anoMesReferenciaContabil+ " ) " + "WHERE 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); } } }