package gcom.spcserasa;
import gcom.arrecadacao.pagamento.GuiaPagamento;
import gcom.arrecadacao.pagamento.GuiaPagamentoHistorico;
import gcom.arrecadacao.pagamento.Pagamento;
import gcom.arrecadacao.pagamento.PagamentoSituacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.ClienteTipo;
import gcom.cadastro.cliente.EsferaPoder;
import gcom.cadastro.geografico.UnidadeFederacao;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelCobrancaSituacao;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.cobranca.CobrancaDebitoSituacao;
import gcom.cobranca.CobrancaGrupo;
import gcom.cobranca.CobrancaSituacao;
import gcom.cobranca.DocumentoTipo;
import gcom.cobranca.NegativacaoComando;
import gcom.cobranca.NegativacaoCriterio;
import gcom.cobranca.NegativacaoImoveis;
import gcom.cobranca.Negativador;
import gcom.cobranca.NegativadorContrato;
import gcom.cobranca.NegativadorExclusaoMotivo;
import gcom.cobranca.NegativadorMovimento;
import gcom.cobranca.NegativadorMovimentoReg;
import gcom.cobranca.NegativadorMovimentoRegParcelamento;
import gcom.cobranca.NegativadorRegistroTipo;
import gcom.cobranca.NegativadorRetornoMotivo;
import gcom.cobranca.ResumoNegativacao;
import gcom.cobranca.ResumoNegativacaoHelper;
import gcom.cobranca.bean.ComandoNegativacaoHelper;
import gcom.cobranca.bean.ComandoNegativacaoTipoCriterioHelper;
import gcom.cobranca.bean.DadosConsultaNegativacaoHelper;
import gcom.cobranca.parcelamento.Parcelamento;
import gcom.cobranca.parcelamento.ParcelamentoSituacao;
import gcom.faturamento.conta.Conta;
import gcom.faturamento.conta.ContaHistorico;
import gcom.faturamento.debito.DebitoACobrar;
import gcom.faturamento.debito.DebitoACobrarHistorico;
import gcom.faturamento.debito.DebitoCreditoSituacao;
import gcom.faturamento.debito.DebitoTipo;
import gcom.gui.cobranca.spcserasa.RelatorioAcompanhamentoClientesNegativadosHelper;
import gcom.spcserasa.bean.DadosNegativacaoRetornoHelper;
import gcom.spcserasa.bean.InserirComandoNegativacaoPorCriterioHelper;
import gcom.spcserasa.bean.NegativadorMovimentoHelper;
import gcom.util.CollectionUtil;
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.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
public class RepositorioSpcSerasaHBM implements IRepositorioSpcSerasa {
protected static IRepositorioSpcSerasa instancia;
protected RepositorioSpcSerasaHBM() {
}
public static IRepositorioSpcSerasa getInstancia() {
String dialect = HibernateUtil.getDialect();
if (dialect.toUpperCase().contains("ORACLE")){
if (instancia == null) {
instancia = new RepositorioSpcSerasaHBM();
}
} else {
if (instancia == null) {
instancia = new RepositorioSpcSerasaPostgresHBM();
}
}
return instancia;
}
/**
* Seleciona o dados do Negativador
*
* @author Marcio Roberto
* @date 30/10/2007
*
* @param
*
* @return
* @throws ErroRepositorioException
*/
public List getDadosNegativador(int idNegativador)
throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " neg "
+ " from gcom.cobranca.Negativador neg "
+ " where neg.id = :idNegativador ";
retorno = session.createQuery(hql).setInteger("idNegativador", idNegativador).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosNegativador");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Seleciona o dados do Negativador
*
* @author Marcio Roberto
* @date 30/10/2007
*
* @param
*
* @return
* @throws ErroRepositorioException
*/
public List getDadosContratoNegativador(int idNegativador)
throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " negCon "
+ " from gcom.cobranca.NegativadorContrato negCon "
+ " where negCon.negativador.id = :idNegativador "
+ " and (negCon.dataContratoEncerramento = null or negCon.dataContratoEncerramento > :dataAtual ) ";
retorno = session.createQuery(hql).setInteger("idNegativador", idNegativador).setTimestamp("dataAtual", new Date()).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosContratoNegativador");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Insere comando Negativa��o
*
* @author Marcio Roberto
* @date 30/10/2007
*
* @param
*
* @return
* @throws ErroRepositorioException
*/
public Integer inserirComandoNegativacao(int idNegativador, int idUsuarioResponsavel,
String identificacaoCI) throws ErroRepositorioException {
String insert;
Session session = HibernateUtil.getSession();
Connection con = null;
Statement stmt = null;
int nextValId = 0;
try {
con = session.connection();
stmt = con.createStatement();
insert = "insert into cobranca.negativacao_comando ("
+ " ngcm_id, " // 01
+ " ngcm_icsimulacao," // 02
+ " ngcm_iccomandocriterio, " // 03
+ " ngcm_dtprevista, " // 04
+ " ngcm_tmcomando, " // 05
+ " ngcm_tmrealizacao, " // 06
+ " ngcm_qtinclusoes, " // 07
+ " ngcm_vldebito, " // 08
+ " ngcm_qtitensincluidos, " // 09
+ " ngcm_tmultimaalteracao, " // 10
+ " usur_id, " // 11
+ " ngcm_dsci, " // 12
+ " negt_id ) " // 13
+ " values ( "
+ Util.obterNextValSequence("cobranca.seq_negativacao_comando") + ", "
+ " 2, " // 02
+ " 2, " // 03
+ Util.obterSQLDataAtual()+ " , " // 04
+ Util.obterSQLDataAtual() + " , " // 05
+ Util.obterSQLDataAtual() + " , " // 06
+ "null," // 07
+ "null," // 08
+ "null," // 09
+ Util.obterSQLDataAtual() + " , " // 10
+ idUsuarioResponsavel+", " // 11
+ "'"+identificacaoCI+"'"+", " // 12
+ idNegativador +")"; // 13
stmt.executeUpdate(insert);
//System.out.print("1 - INSERINDO NEGATIVACAO COMANDO!! ");
nextValId = this.getNextNegativadorComando();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
nextValId = 0;
throw new ErroRepositorioException(e, "Erro no Hibernate negativacao comando ");
} catch (SQLException e) {
nextValId = 0;
throw new ErroRepositorioException(e, "Erro no Insert negativacao comando ");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
try {
con.close();
stmt.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro ao fechar conex�es");
}
}
return nextValId;
}
/**
* Insere comando Negativa��o
*
* @author Marcio Roberto
* @date 30/10/2007
*
* @param
* @return
*
* @return
* @throws ErroRepositorioException
*/
public List getComandoCriterioNegativacao(int idNegativador, int idUsuarioResponsavel,
String identificacaoCI) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " negCom.id, " // 01
+ " negCom.indicadorComandoCriterio, " // 02
+ " negCom.dataPrevista, " // 03
+ " negCom.dataHoraComando, " // 04
+ " negCom.dataHoraRealizacao, " // 05
+ " negCom.quantidadeInclusoes, " // 06
+ " negCom.valorDebito, " // 07
+ " negCom.quantidadeItensIncluidos, " // 08
+ " negCom.descricaoComunicacaoInterna, " // 09
+ " negCom.indicadorSimulacao, " // 10
+ " negCom.usuario, " // 11
+ " negCrit.cliente.id " // 12
+ " from gcom.cobranca.NegativacaoCriterio negCrit "
+ " inner join negCrit.negativacaoComando as negCom "
+ " inner join negCrit.cliente as cli "
+ " where negCom.negativador.id = :idNegativador ";
retorno = session.createQuery(hql).setInteger("idNegativador", idNegativador).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getComandoCriterioNegativacao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem dados Imovel
*
* @author Marcio Roberto
* @date 01/10/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getDadosImoveis(int idImovel) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " imov "
+ " from gcom.cadastro.imovel.Imovel imov "
+ " inner join fetch imov.localidade as loca "
+ " inner join fetch imov.quadra as quand "
+ " inner join fetch imov.imovelPerfil iper "
+ " inner join fetch quand.setorComercial as stcom "
+ " where imov.id = :idImovel ";
retorno = session.createQuery(hql).setInteger("idImovel", idImovel).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosImoveis");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem DadosCliente
*
* @author Marcio Roberto
* @date 01/10/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getDadosCliente(int idCliente) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " cli "
+ " from gcom.cadastro.cliente.Cliente cli "
+ " inner join cli.clienteEnderecos as cli_ender "
+ " left join fetch cli.unidadeFederacao as unid_fed"
+ " where cli.id = :idCliente ";
retorno = session.createQuery(hql).setInteger("idCliente", idCliente).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosImoveis");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 29/10/2007
*
* @param comandoNegativacaoHelper
* @return Collection
* @throws ErroRepositorioException
*/
public Integer pesquisarComandoNegativacao(ComandoNegativacaoHelper comandoNegativacaoHelper)
throws ErroRepositorioException {
Integer retorno = null;
Query query = null;
Map parameters = new HashMap();
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select count(negatComando.ngcm_id) as total"
+ " from cobranca.negativacao_comando negatComando"
+ " left join cobranca.negativacao_criterio negatCriterio on negatComando.ngcm_id = negatCriterio.ngcm_id"
+ " left join seguranca.usuario usuario on usuario.usur_id = negatComando.usur_id ";
consulta = consulta + criarCondicionaisComandoNegativacao(comandoNegativacaoHelper, parameters);
query = session.createSQLQuery(consulta)
.addScalar("total" , Hibernate.INTEGER);
Set set = parameters.keySet();
Iterator iterMap = set.iterator();
while (iterMap.hasNext()) {
String key = (String) iterMap.next();
if (parameters.get(key) instanceof Date) {
Date data = (Date) parameters.get(key);
query.setTimestamp(key, data);
} else {
query.setParameter(key, parameters.get(key));
}
}
retorno = (Integer) query.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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 29/10/2007
*
* @param comandoNegativacaoHelper
* @return
* @throws ErroRepositorioException
*/
public String criarCondicionaisComandoNegativacao( ComandoNegativacaoHelper comandoNegativacaoHelper, Map parameters ) {
String sql = " where ";
if (comandoNegativacaoHelper.getTituloComando() != null && !comandoNegativacaoHelper.getTituloComando().equals("")) {
if(comandoNegativacaoHelper.getTipoPesquisaTituloComando().equals(ConstantesSistema.TIPO_PESQUISA_INICIAL)){
sql = sql + "upper(negatCriterio.ngct_dstitulo) like '"
+ comandoNegativacaoHelper.getTituloComando().toUpperCase() + "%' and ";
}else{
sql = sql + "upper(negatCriterio.ngct_dstitulo) like '%"
+ comandoNegativacaoHelper.getTituloComando().toUpperCase() + "%' and ";
}
}
if(comandoNegativacaoHelper.getIndicadorComandoSimulado() != null && !(comandoNegativacaoHelper.getIndicadorComandoSimulado().equals(new Short("3")))){
sql = sql + " negatComando.ngcm_icsimulacao = " + comandoNegativacaoHelper.getIndicadorComandoSimulado() + " and ";
}
if (comandoNegativacaoHelper.getGeracaoComandoInicio() != null && !comandoNegativacaoHelper.getGeracaoComandoInicio().equals("")) {
String data1 = Util.recuperaDataInvertida(comandoNegativacaoHelper.getGeracaoComandoInicio());
if (data1 != null && !data1.equals("") && data1.trim().length() == 8) {
data1 = data1.substring(6, 8) + "/" + data1.substring(4, 6) + "/" + data1.substring(0, 4);
}
sql = sql + " negatComando.ngcm_tmcomando >= :dataGeracaoComandoInicio and ";
parameters.put("dataGeracaoComandoInicio", Util.formatarDataInicial( Util.converteStringParaDate(data1) ) );
}
if (comandoNegativacaoHelper.getGeracaoComandoFim() != null && !comandoNegativacaoHelper.getGeracaoComandoFim().equals("")) {
String data2 = Util.recuperaDataInvertida(comandoNegativacaoHelper.getGeracaoComandoFim());
if (data2 != null && !data2.equals("") && data2.trim().length() == 8) {
data2 = data2.substring(6, 8) + "/" + data2.substring(4, 6) + "/" + data2.substring(0, 4);
}
sql = sql + " negatComando.ngcm_tmcomando <= :dataGeracaoComandoFim and ";
parameters.put("dataGeracaoComandoFim", Util.formatarDataFinal( Util.converteStringParaDate(data2) ));
}
if (comandoNegativacaoHelper.getExecucaoComandoInicio() != null && !comandoNegativacaoHelper.getExecucaoComandoInicio().equals("")) {
String data1 = Util.recuperaDataInvertida(comandoNegativacaoHelper.getExecucaoComandoInicio());
if (data1 != null && !data1.equals("") && data1.trim().length() == 8) {
data1 = data1.substring(6, 8) + "/" + data1.substring(4, 6) + "/" + data1.substring(0, 4);
}
sql = sql + " negatComando.ngcm_tmrealizacao >= :dataExecucaoComandoInicio and ";
parameters.put("dataExecucaoComandoInicio", Util.formatarDataInicial( Util.converteStringParaDate(data1) ));
}
if (comandoNegativacaoHelper.getExecucaoComandoFim() != null && !comandoNegativacaoHelper.getExecucaoComandoFim().equals("")) {
String data2 = Util.recuperaDataInvertida(comandoNegativacaoHelper.getExecucaoComandoFim());
if (data2 != null && !data2.equals("") && data2.trim().length() == 8) {
data2 = data2.substring(6, 8) + "/" + data2.substring(4, 6) + "/" + data2.substring(0, 4);
}
sql = sql + " negatComando.ngcm_tmrealizacao <= :dataExecucaoComandoFim and ";
parameters.put("dataExecucaoComandoFim", Util.formatarDataFinal( Util.converteStringParaDate(data2) ));
}
if(comandoNegativacaoHelper.getIdUsuarioResponsavel() != null){
sql = sql + " usuario.usur_id = " + comandoNegativacaoHelper.getIdUsuarioResponsavel() + " and ";
}
// retira o " and " q fica sobrando no final da query
sql = Util.removerUltimosCaracteres(sql, 4);
return sql;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 29/10/2007
*
* @param comandoNegativacaoHelper
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarComandoNegativacaoParaPaginacao(
ComandoNegativacaoHelper comandoNegativacaoHelper, Integer numeroPagina)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
Map parameters = new HashMap();
Query query = null;
try {
consulta = "select "
+ " negatComando.ngcm_id as idNegatComando,"
+ " negatCriterio.ngct_dstitulo as tituloNegatCriterio,"
+ " negatComando.ngcm_icsimulacao as indicadorSimulacao,"
+ " negatComando.ngcm_tmcomando as dataHoraComando,"
+ " negatComando.ngcm_tmrealizacao as dataHoraRealizacao,"
+ " negatComando.ngcm_qtinclusoes as quantidadeInclusoes,"
+ " usuario.usur_nmusuario as nomeUsuario"
+ " from cobranca.negativacao_comando negatComando"
+ " left join cobranca.negativacao_criterio negatCriterio on negatComando.ngcm_id = negatCriterio.ngcm_id"
+ " left join seguranca.usuario usuario on usuario.usur_id = negatComando.usur_id ";
consulta = consulta + criarCondicionaisComandoNegativacao(comandoNegativacaoHelper, parameters);
query = session.createSQLQuery(consulta)
.addScalar("idNegatComando" , Hibernate.INTEGER)
.addScalar("tituloNegatCriterio" , Hibernate.STRING)
.addScalar("indicadorSimulacao" , Hibernate.SHORT)
.addScalar("dataHoraComando" , Hibernate.TIMESTAMP)
.addScalar("dataHoraRealizacao" , Hibernate.TIMESTAMP)
.addScalar("quantidadeInclusoes" , Hibernate.INTEGER)
.addScalar("nomeUsuario" , Hibernate.STRING);
//ITERA OS PARAMETROS E COLOCA OS MESMOS NA QUERY
Set set = parameters.keySet();
Iterator iterMap = set.iterator();
while (iterMap.hasNext()) {
String key = (String) iterMap.next();
if (parameters.get(key) instanceof Date) {
Date data = (Date) parameters.get(key);
query.setTimestamp(key, data);
}else {
query.setParameter(key, parameters.get(key));
}
}
if ( numeroPagina != null ) {
retorno = query.setFirstResult(10 * numeroPagina).setMaxResults(10).list();
} else {
//Caso relatorio.
retorno = query.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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 31/10/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Integer pesquisarDadosInclusoesComandoNegativacao(Integer idComandoNegativacao)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta ="select count(*)"
+ " from NegativadorMovimentoReg negMovReg"
+ " inner join negMovReg.negativadorMovimento negMov"
+ " inner join negMov.negativacaoComando negCom"
+ " inner join negCom.negativador neg"
+ " left join neg.cliente clie"
+ " left join negMovReg.imovel imovNegMovReg"
+ " left join negMovReg.cobrancaDebitoSituacao cobDebSit"
+ " left join negMovReg.usuario usur"
+ " where negCom.id = :idComandoNegativacao and imovNegMovReg.id is not null";
retorno = (Integer)session.createQuery(consulta).setInteger("idComandoNegativacao",
idComandoNegativacao).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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 31/10/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarDadosInclusoesComandoNegativacaoParaPaginacao(Integer idComandoNegativacao , Integer numeroPagina)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta ="select"
+ " clie.nome,"
+ " negCom.quantidadeInclusoes,"
+ " negCom.valorDebito,"
+ " negCom.quantidadeItensIncluidos,"
+ " imovNegMovReg.id,"
+ " negMovReg.numeroCpf,"
+ " negMovReg.numeroCnpj,"
+ " negMovReg.valorDebito,"
+ " cobDebSit.descricao,"
+ " negMovReg.dataSituacaoDebito,"
+ " negMovReg.indicadorAceito,"
+ " negMovReg.indicadorCorrecao,"
+ " negMovReg.codigoExclusaoTipo,"
+ " usur.nomeUsuario"
+ " from NegativadorMovimentoReg negMovReg"
+ " inner join negMovReg.negativadorMovimento negMov"
+ " inner join negMov.negativacaoComando negCom"
+ " inner join negCom.negativador neg"
+ " left join neg.cliente clie"
+ " left join negMovReg.imovel imovNegMovReg"
+ " left join negMovReg.cobrancaDebitoSituacao cobDebSit"
+ " left join negMovReg.usuario usur"
+ " where negCom.id = :idComandoNegativacao and imovNegMovReg.id is not null";
retorno = session.createQuery(consulta).setInteger("idComandoNegativacao",
idComandoNegativacao).setFirstResult(10 * numeroPagina).setMaxResults(10).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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 09/11/2007
*
* @param idComandoNegativacao
* @return Object[]
* @throws ErroRepositorioException
*/
public Object[] pesquisarParametrosComandoNegativacao(Integer idComandoNegativacao)
throws ErroRepositorioException {
Object[] retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
// DADOS GERAIS
+ " clieNeg.clie_nmcliente as negativador," //00
+ " negCom.ngcm_qtinclusoes as quantidadeInclusoes," //01
+ " negCom.ngcm_vldebito as valorTotalDebito," //02
+ " negCom.ngcm_qtitensincluidos as quantidadeItensIncluidos," //03
+ " negCri.ngct_dstitulo as tituloComando," //04
+ " negCri.ngct_dssolicitacao as descricaoSolicitacao," //05
+ " negCom.ngcm_icsimulacao as indicadorSimulacao," //06
+ " negCom.ngcm_dtprevista as dataPrevistaExecucao," //07
+ " usur.usur_nmusuario as nomeUsuario," //08
+ " negCri.ngct_qtmaximainclusoes as quantidadeMaximaInclusoes,"//09
//DADOS DO DEBITO
+ " negCri.ngct_amreferenciacontainicial as referenciaInicial," //10
+ " negCri.ngct_amreferenciacontafinal as referenciaFinal," //11
+ " negCri.ngct_dtvencimentodebitoinicial as vencimentoInicial,"//12
+ " negCri.ngct_dtvencimentodebitofinal as vencimentoFinal," //13
+ " negCri.ngct_vlminimodebito as valoMinimoDebito," //14
+ " negCri.ngct_vlmaximodebito as valoMaximoDebito," //15
+ " negCri.ngct_qtminimacontas as qtdMinimaContas," //16
+ " negCri.ngct_qtmaximacontas as qtdMaximaContas," //17
+ " negCri.ngct_icnegativcontarevisao as indicadorContaRevisao,"//18
+ " negCri.ngct_icnegativguiapagamento as indicadorGuiaPagamento,"//19
+ " negCri.ngct_icparcelamentoatraso as indicadorParcelamentoAtraso,"//20
+ " negCri.ngct_nndiasparcelamentoatraso as numDiasAtrasoParcelamento,"//21
+ " negCri.ngct_icnegativrecbmtoctparcel as indicadorcartaparcelamentoatra,"//22
+ " negCri.ngct_nndiasatrasorecbctparcel as numDiasAtrasoAposRecCarta,"//23
//DADOS DO IMOVEL
+ " clie.clie_id as idCliente," //24
+ " clie.clie_nmcliente as nomeCliente," //25
+ " cliReTipo.crtp_dsclienterelacaotipo as tipoRelClie," //26
+ " negCri.ngct_icnegativimvparalisacao as indicadorEspCobranca,"//27
+ " negCri.ngct_icnegativimvsitcob as indicadorSitCobranca,"//28
//DADOS DA LOCALIZA��O
+ " locInicial.loca_nmlocalidade as locInicial," //29
+ " locFinal.loca_nmlocalidade as locFinal," //30
+ " setorInicial.stcm_nmsetorcomercial as setComInicial," //31
+ " setorFinal.stcm_nmsetorcomercial as setComFinal," //32
// DADOS GERAIS
+ " usur.usur_id as idUsuario," //33
+ " negCri.ngct_id as idNegativacaoCriterio," //34
+ " negCom.ngcm_tmultimaalteracao as ultimaAlteracaoNegComando,"//35
+ " neg.negt_id as idNegativador," //36
+ " negCom.ngcm_idcomandosimulacao as idComandoSimulacao," //37
//DADOS DA LOCALIZA��O
+ " negCri.loca_idinicial as idLocInicial," //38
+ " negCri.loca_idfinal as idLocFinal," //39
+ " negCri.ngct_cdsetorcomercialinicial as codSetComInicial," //40
+ " negCri.ngct_cdsetorcomercialfinal as codSetComFinal," //41
+ " negCom.ngcm_icbaixarenda as indicadorBaixaRenda, " //42
+ " negCri.ngct_nndiasretorno as numeroDiasRetorno, " //43
+ " negCri.ngct_id as idNegativacaoCriterio2, " //44
+ " negCom.ngcm_icmincontasnomecliente as indMinContas, " //45
// DADOS GERAIS
+ " negCom.ngcm_icorgaopublico as indicadorOrgaoPublico " //46
+ " from cobranca.negativacao_comando negCom"
+ " inner join cobranca.negativador neg on neg.negt_id = negCom.negt_id"
+ " left join cadastro.cliente clieNeg on clieNeg.clie_id = neg.clie_id"
+ " left join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id"
+ " left join cadastro.cliente clie on negCri.clie_id = clie.clie_id"
+ " left join seguranca.usuario usur on usur.usur_id = negCom.usur_id"
+ " left join cadastro.cliente_relacao_tipo cliReTipo on cliReTipo.crtp_id = negCri.crtp_id"
+ " left join cobranca.negatv_crit_subcategoria negCritSub on negCritSub.ngct_id = negCri.ngct_id"
+ " left join cadastro.localidade locInicial on locInicial.loca_id = negCri.loca_idInicial"
+ " left join cadastro.setor_comercial setorInicial on locInicial.loca_id = setorInicial.loca_id"
+ " left join cadastro.localidade locFinal on locFinal.loca_id = negCri.loca_idFinal"
+ " left join cadastro.setor_comercial setorFinal on locFinal.loca_id = setorFinal.loca_id"
+ " where negCom.ngcm_id = :id";
Collection lista = new ArrayList();
lista = session.createSQLQuery(consulta)
.addScalar("negativador" , Hibernate.STRING)
.addScalar("quantidadeInclusoes" , Hibernate.INTEGER)
.addScalar("valorTotalDebito" , Hibernate.BIG_DECIMAL)
.addScalar("quantidadeItensIncluidos" , Hibernate.INTEGER)
.addScalar("tituloComando" , Hibernate.STRING)
.addScalar("descricaoSolicitacao" , Hibernate.STRING)
.addScalar("indicadorSimulacao" , Hibernate.SHORT)
.addScalar("dataPrevistaExecucao" , Hibernate.DATE)
.addScalar("nomeUsuario" , Hibernate.STRING)
.addScalar("quantidadeMaximaInclusoes", Hibernate.INTEGER)
.addScalar("referenciaInicial" , Hibernate.INTEGER)
.addScalar("referenciaFinal" , Hibernate.INTEGER)
.addScalar("vencimentoInicial" , Hibernate.DATE)
.addScalar("vencimentoFinal" , Hibernate.DATE)
.addScalar("valoMinimoDebito" , Hibernate.BIG_DECIMAL)
.addScalar("valoMaximoDebito" , Hibernate.BIG_DECIMAL)
.addScalar("qtdMinimaContas" , Hibernate.INTEGER)
.addScalar("qtdMaximaContas" , Hibernate.INTEGER)
.addScalar("indicadorContaRevisao" , Hibernate.SHORT)
.addScalar("indicadorGuiaPagamento" , Hibernate.SHORT)
.addScalar("indicadorParcelamentoAtraso" , Hibernate.SHORT)
.addScalar("numDiasAtrasoParcelamento" , Hibernate.INTEGER)
.addScalar("indicadorcartaparcelamentoatra" , Hibernate.SHORT)
.addScalar("numDiasAtrasoAposRecCarta" , Hibernate.INTEGER)
.addScalar("idCliente" , Hibernate.INTEGER)
.addScalar("nomeCliente" , Hibernate.STRING)
.addScalar("tipoRelClie" , Hibernate.STRING)
.addScalar("indicadorEspCobranca" , Hibernate.SHORT)
.addScalar("indicadorSitCobranca" , Hibernate.SHORT)
.addScalar("locInicial" , Hibernate.STRING)
.addScalar("locFinal" , Hibernate.STRING)
.addScalar("setComInicial" , Hibernate.STRING)
.addScalar("setComFinal" , Hibernate.STRING)
.addScalar("idUsuario" ,Hibernate.INTEGER)
.addScalar("idNegativacaoCriterio",Hibernate.INTEGER)
.addScalar("ultimaAlteracaoNegComando", Hibernate.TIMESTAMP)
.addScalar("idNegativador", Hibernate.INTEGER)
.addScalar("idComandoSimulacao", Hibernate.INTEGER)
.addScalar("idLocInicial", Hibernate.INTEGER)
.addScalar("idLocFinal", Hibernate.INTEGER)
.addScalar("codSetComInicial", Hibernate.INTEGER)
.addScalar("codSetComFinal", Hibernate.INTEGER)
.addScalar("indicadorBaixaRenda",Hibernate.SHORT)
.addScalar("numeroDiasRetorno", Hibernate.INTEGER)
.addScalar("idNegativacaoCriterio2", Hibernate.INTEGER)
.addScalar("indMinContas",Hibernate.SHORT)
.addScalar("indicadorOrgaoPublico", Hibernate.SHORT)
.setInteger("id", new Integer(idComandoNegativacao).intValue())
.setMaxResults(1).list();
if (lista != null && !lista.isEmpty())
retorno = (Object[]) lista.iterator().next();
} 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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 22/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarTitularidadeCpfCnpjNegativacao(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "cpfTipo.cpft_dstipocpf as titularidadeNeg, "
+ "negCriTipo.ncct_nnordemselecao as ordem, "
+ "negCriTipo.ncct_iccoincidente as coincidente, "
+ "cpfTipo.cpft_id as idTitularidadeNeg "
+ "from cobranca.negativacao_comando negCom "
+ "inner join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id "
+ "inner join cobranca.negatv_crit_cpf_tipo negCriTipo on negCriTipo.ngct_id = negCri.ngct_id "
+ "inner join cadastro.cpf_tipo cpfTipo on negCriTipo.cpft_id = cpfTipo.cpft_id "
+ "where negCom.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("titularidadeNeg" , Hibernate.STRING)
.addScalar("ordem" , Hibernate.SHORT)
.addScalar("coincidente" , Hibernate.SHORT)
.addScalar("idTitularidadeNeg" ,Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 23/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarGrupoCobranca(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "cobGrp.cbgr_dscobrancagrupo as descricaoGrupo, "
+ "cobGrp.cbgr_id as idGrupo "
+ "from cobranca.negativacao_comando negCom "
+ "inner join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id "
+ "inner join cobranca.negativ_crit_cobr_grupo negCriCobGrp on negCriCobGrp.ngct_id = negCri.ngct_id "
+ "inner join cobranca.cobranca_grupo cobGrp on cobGrp.cbgr_id = negCriCobGrp.cbgr_id "
+ "where negCom.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("descricaoGrupo" , Hibernate.STRING)
.addScalar("idGrupo", Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 23/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarGerenciaRegional(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "gerReg.greg_nmregional as nomeRegional, "
+ "gerReg.greg_id as idRegional "
+ "from cobranca.negativacao_comando negCom "
+ "inner join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id "
+ "inner join cobranca.negativ_crit_ger_reg negCriGerReg on negCriGerReg.ngct_id = negCri.ngct_id "
+ "inner join cadastro.gerencia_regional gerReg on gerReg.greg_id = negCriGerReg.greg_id "
+ "where negCom.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("nomeRegional" , Hibernate.STRING)
.addScalar("idRegional", Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 23/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarUnidadeNegocio(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "uniNeg.uneg_nmunidadenegocio as unidadeNegocio, "
+ "uniNeg.uneg_id as idUnidadeNegocio "
+ "from cobranca.negativacao_comando negCom "
+ "inner join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id "
+ "inner join cobranca.negativ_crit_und_neg negCriUnNeg on negCriUnNeg.ngct_id = negCri.ngct_id "
+ "inner join cadastro.unidade_negocio uniNeg on uniNeg.uneg_id = negCriUnNeg.uneg_id "
+ "where negCom.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("unidadeNegocio" , Hibernate.STRING)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 26/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarEloPolo(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "loc.loca_nmlocalidade as nomeLocalidade, "
+ "loc.loca_id as idLocalidade "
+ "from cobranca.negativacao_comando negCom "
+ "inner join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id "
+ "inner join cobranca.negativ_crit_elo negCriElo on negCriElo.ngct_id= negCri.ngct_id "
+ "inner join cadastro.localidade loc on loc.loca_id = negCriElo.loca_id "
+ "where negCom.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("nomeLocalidade" , Hibernate.STRING)
.addScalar("idLocalidade", Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 26/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarSubcategoria(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "sub.scat_dssubcategoria as decricaoSubcategoria, "
+ "sub.scat_id as idSubcategoria "
+ "from cobranca.negativacao_comando negCom "
+ "inner join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id "
+ "inner join cobranca.negatv_crit_subcategoria negCriSub on negCriSub.ngct_id = negCri.ngct_id "
+ "inner join cadastro.subcategoria sub on sub.scat_id = negCriSub.scat_id "
+ "where negCom.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("decricaoSubcategoria" , Hibernate.STRING)
.addScalar("idSubcategoria", Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 26/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarPerfilImovel(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "imvPerf.iper_dsimovelperfil as decricaoPerfilImovel, "
+ "imvPerf.iper_id as idPerfilImovel "
+ "from cobranca.negativacao_comando negCom "
+ "inner join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id "
+ "inner join cobranca.negatv_crit_imv_perfil negCriImPer on negCriImPer.ngct_id = negCri.ngct_id "
+ "inner join cadastro.imovel_perfil imvPerf on imvPerf.iper_id = negCriImPer.iper_id "
+ "where negCom.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("decricaoPerfilImovel" , Hibernate.STRING)
.addScalar("idPerfilImovel", Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* Obtem Negativador Movimento id
*
* @author Marcio Roberto
* @date 07/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer getNegativadorMovimento() throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select max(id) from gcom.cobranca.NegativadorMovimento ";
retorno = (Integer) session.createQuery(hql).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getNegativadorComando");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
*
* @author Marcio Roberto
* @date 07/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer getTpoRegistro(int idNegativador, char tipo) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " negTp.id "
+ " from gcom.cobranca.NegativadorRegistroTipo negTp "
+ " inner join negTp.negativador as neg "
+ " where neg.id = :idNegativador "
+ " and negTp.codigoRegistro = "+"'"+tipo+"'";
retorno = (Integer) session.createQuery(hql).setInteger("idNegativador", idNegativador).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getTpoRegistro");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
*
* @author Marcio Roberto
* @date 08/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer getSaEnvioContratoNegativador(int idNegativador) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " max(negCon.numeroSequencialEnvio) "
+ " from gcom.cobranca.NegativadorContrato negCon "
+ " where negCon.negativador.id = :idNegativador "
+ " and (negCon.dataContratoEncerramento = null or negCon.dataContratoEncerramento > :dataAtual ) ";
retorno = (Integer) session.createQuery(hql).setInteger("idNegativador", idNegativador).setTimestamp("dataAtual", new Date()).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getNegativadorComando");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem getDadosEnderecoCliente
*
* @author Marcio Roberto
* @date 08/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getDadosEnderecoCliente(int idCliente) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " cli_ender "
+ " from gcom.cadastro.cliente.ClienteEndereco cli_ender "
+ " inner join fetch cli_ender.logradouroCep as logCep "
+ " inner join fetch cli_ender.cliente as cli "
+ " inner join fetch cli_ender.logradouroBairro as logBairr "
+ " inner join fetch logBairr.bairro as bairr "
+ " inner join fetch logCep.cep as cep "
+ " where cli.id = :idCliente "
+ " and cli_ender.indicadorEnderecoCorrespondencia = 1 ";
retorno = session.createQuery(hql).setInteger("idCliente", idCliente).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosEnderecoCliente");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem getDadosEnderecoClienteAlternativo
*
* @author Marcio Roberto
* @date 08/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getBairroCep(int idCliEnder) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " cep.bairro "
+ " from gcom.cadastro.endereco.LogradouroCep logCep "
+ " inner join logCep.cep as cep "
+ " where logCep.id = :idCliEnder ";
retorno = session.createQuery(hql).setInteger("idCliEnder", idCliEnder).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosEnderecoClienteAlternativo");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem getDadosEnderecoClienteAlternativo
*
* @author Marcio Roberto
* @date 08/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getCep(int idCliente) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select cli_ender "
+ " from gcom.cadastro.cliente.ClienteEndereco cli_ender "
+ " inner join fetch cli_ender.logradouroCep as logCep "
+ " inner join fetch cli_ender.cliente as cli "
+ " inner join fetch logCep.cep "
+ " where cli.id = :idCliente "
+ " and cli_ender.indicadorEnderecoCorrespondencia = 1 ";
retorno = session.createQuery(hql).setInteger("idCliente", idCliente).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getCep");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem getMunicipio
*
* @author Marcio Roberto
* @date 08/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getMunicipio(int idLogradouroBairro) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " logBairro "
+ " from gcom.cadastro.endereco.LogradouroBairro logBairro "
+ " inner join fetch logBairro.bairro as bairro "
+ " inner join fetch bairro.municipio as muni "
+ " where logBairro.id = :idLogradouroBairro ";
retorno = session.createQuery(hql).setInteger("idLogradouroBairro", idLogradouroBairro).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getMunicipio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem getMunicipioCep
*
* @author Marcio Roberto
* @date 08/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public String getMunicipioCep(int idCliEnder) throws ErroRepositorioException {
String retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " cep.municipio "
+ " from gcom.cadastro.endereco.LogradouroCep logCep "
+ " inner join logCep.cep as cep "
+ " where logCep.id = :idCliEnder ";
retorno = (String) session.createQuery(hql).setInteger("idCliEnder", idCliEnder).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getMunicipioCep");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem getUnidadeFederativa
*
* @author Marcio Roberto
* @date 08/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getUnidadeFederativa(int idLogradouroBairro) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " logBairro "
+ " from gcom.cadastro.endereco.LogradouroBairro logBairro "
+ " inner join fetch logBairro.bairro as bairro "
+ " inner join fetch bairro.municipio as muni "
+ " inner join fetch muni.unidadeFederacao as unFe "
+ " where logBairro.id = :idLogradouroBairro ";
retorno = session.createQuery(hql).setInteger("idLogradouroBairro", idLogradouroBairro).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getUnidadeFederativa");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem getDDD
*
* @author Marcio Roberto
* @date 08/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getDddFone(int idCliente) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " cliFone "
+ " from gcom.cadastro.cliente.ClienteFone cliFone "
+ " inner join fetch cliFone.cliente as cli "
+ " where cliFone.cliente.id = :idCliente "
+ " and cliFone.indicadorTelefonePadrao = 1";
retorno = session.createQuery(hql).setInteger("idCliente",
idCliente).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDDD");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem geraRegistroNegativacaoRegDetalhe
*
* @author Marcio Roberto
* @date 08/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer geraRegistroNegativacaoRegDetalhe(int idNegativador, int idUsuarioResponsavel,
int saenvio, int idNegativadorComando, int idNegativacaoMovimento, StringBuilder registro,
int quantidadeRegistros, int idNegCriterio) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String insert;
Connection con = null;
Statement stmt = null;
int nextValId = 0;
try {
con = session.connection();
stmt = con.createStatement();
Integer idNrTipo = NegativadorRegistroTipo.ID_SERASA_DETALHE;
if (new Integer(idNegativador).equals(Negativador.NEGATIVADOR_SPC)){
idNrTipo = NegativadorRegistroTipo.ID_SPC_DETALHE_CONSUMIDOR;
}
insert = "insert into cobranca.negatd_movimento_reg ("
+ " nmrg_id, " // 01
+ " ngmv_id, " // 02
+ " nmrg_idreginclusao, " // 03
+ " nrtp_id, " // 04
+ " nmrg_cnregistro, " // 05
+ " nmrg_tmultimaalteracao, " // 06
+ " usur_id, " // 07
+ " nmrg_cdexclusaotipo, " // 08
+ " nmrg_icaceito, " // 09
+ " nmrg_iccorrecao, " // 10
+ " nmrg_vldebito, " // 11
+ " cdst_id, " // 12
+ " nmrg_dtsituacaodebito, " // 13
+ " imov_id, " // 14
+ " loca_id, " // 15
+ " qdra_id, " // 16
+ " nmrg_cdsetorcomercial, " // 17
+ " nmrg_nnquadra, " // 18
+ " iper_id, " // 19
+ " ngct_id, " // 20
+ " clie_id, " // 21
+ " catg_id, " // 22
+ " cpft_id, " // 23
+ " nmrg_nncpf, " // 24
+ " nmrg_nncnpj, " // 25
+ " nemt_id, " // 26
+ " nmrg_icsitdefinitiva, " // 27
+ " nmrg_nnregistro ) " // 28
+ " values ( "
+ Util.obterNextValSequence("cobranca.seq_negatd_movimento_reg") + ", "
+ idNegativacaoMovimento+", " // 02
+ "null, " // 03
+ idNrTipo+", " // 04
+ "'"+registro.toString()+"'"+", " // 05
+ Util.obterSQLDataAtual() +" , " // 06
+ "null," // 07
+ "null," // 08
+ "0," // 09
+ "0," // 10
+ "null," // 11
+ "null," // 12
+ "null," // 13
+ "null," // 14
+ "null," // 15
+ "null," // 16
+ "null," // 17
+ "null," // 18
+ "null," // 19
+ idNegCriterio+", " // 20
+ "null," // 21
+ "null," // 22
+ "null," // 23
+ "null," // 24
+ "null," // 25
+ "null," // 26
+ "2, " // 27
+ quantidadeRegistros+")"; // 28
stmt.executeUpdate(insert);
nextValId = this.getNextNegativadorMovimentoReg();
//System.out.print("1 - INSERINDO geraRegistroNegativacaoRegDetalhe!! ");
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
nextValId = 0;
throw new ErroRepositorioException(e, "Erro no Hibernate geraRegistroNegativacaoRegDetalhe ");
} catch (SQLException e) {
nextValId = 0;
throw new ErroRepositorioException(e, "Erro no Insert geraRegistroNegativacaoRegDetalhe ");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
try {
stmt.close();
con.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro ao fechar conex�es");
}
}
return nextValId;
}
/**
* Obtem geraRegistroNegativacaoMovimentoReg
*
* @author Marcio Roberto
* @date 12/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer geraRegistroNegativacaoRegDetalheSPC(
int idnegativador, int idNegativacaoMovimento, StringBuilder registro,
int quantidadeRegistros, BigDecimal valorTotalDebitos, int idDebitoSituacao,
int idImovel, int idLocalidade, int idQuadra, int stComercialCD, int numeroQuadra,
int iper_id, int idCliente, int idCategoria, String cpfCliente, String cnpjCliente, Integer idNegCriterio) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String insert;
Connection con = null;
Statement stmt = null;
int nextValId = 0;
try {
con = session.connection();
stmt = con.createStatement();
Integer idNrTipo = NegativadorRegistroTipo.ID_SPC_DETALHE_SPC;
if(new Integer(idnegativador).equals(Negativador.NEGATIVADOR_SERASA)) {
idNrTipo = NegativadorRegistroTipo.ID_SERASA_DETALHE;
}
insert = "insert into cobranca.negatd_movimento_reg ("
+ " nmrg_id, " // 01
+ " ngmv_id, " // 02
+ " nmrg_idreginclusao, " // 03
+ " nrtp_id, " // 04
+ " nmrg_cnregistro, " // 05
+ " nmrg_tmultimaalteracao, " // 06
+ " usur_id, " // 07
+ " nmrg_cdexclusaotipo, " // 08
+ " nmrg_icaceito, " // 09
+ " nmrg_iccorrecao, " // 10
+ " nmrg_vldebito, " // 11
+ " cdst_id, " // 12
+ " nmrg_dtsituacaodebito, " // 13
+ " imov_id, " // 14
+ " loca_id, " // 15
+ " qdra_id, " // 16
+ " nmrg_cdsetorcomercial, " // 17
+ " nmrg_nnquadra, " // 18
+ " iper_id, " // 19
+ " ngct_id, " // 20
+ " clie_id, " // 21
+ " catg_id, " // 22
+ " nemt_id," ; // 23
if(cpfCliente != null && cpfCliente.length() > 0){
insert = insert + " nmrg_nncpf, " ; // 24
}else{
insert = insert + " nmrg_nncnpj, " ; // 25
}
insert = insert + " cpft_id, " // 26
+ " nmrg_icsitdefinitiva, " // 27
+ " nmrg_nnregistro) " // 28
+ " values ( "
+ Util.obterNextValSequence("cobranca.seq_negatd_movimento_reg") + ", "
+ idNegativacaoMovimento+", " // 02
+ "null, " // 03
+ idNrTipo+", " // 04
+ "'"+registro.toString().replace("'","\\'")+"'"+", " // 05
+ Util.obterSQLDataAtual() + " , " // 06
+ "null," // 07
+ "null," // 08
+ "null," // 09
+ "null," // 10
+ valorTotalDebitos+", " // 11
+ idDebitoSituacao+", " // 12
+ Util.obterSQLDataAtual() + " ," // 13
+ idImovel+", " // 14
+ idLocalidade+", " // 15
+ idQuadra+", " // 16
+ stComercialCD+", " // 17
+ numeroQuadra+", " // 18
+ iper_id+", " // 19
+ idNegCriterio+"," // 20
+ idCliente+", " // 21
+ idCategoria+", " // 22
+ "null," ; // 23
if(cpfCliente != null && cpfCliente.length() > 0){
insert = insert + "'"+cpfCliente+"'"+", "; // 24
}else{
insert = insert + "'"+cnpjCliente+"'"+", "; // 25
}
insert = insert + "null," // 26
+ "2, " // 27
+ quantidadeRegistros+")"; // 28
stmt.executeUpdate(insert);
//System.out.print("1 - INSERINDO geraRegistroNegativacaoRegDetalheSPC!! ");
nextValId = this.getNextNegativadorMovimentoReg();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate geraRegistroNegativacaoRegDetalheSPC ");
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Insert geraRegistroNegativacaoRegDetalheSPC ");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
try {
stmt.close();
con.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro ao fechar conex�es");
}
}
return nextValId;
}
/**
* obtemDebitoSituacao
*
* @author Marcio Roberto
* @date 12/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer obtemDebitoSituacao() throws ErroRepositorioException {
Integer retorno;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " cobDebSit.id "
+ " from gcom.cobranca.CobrancaDebitoSituacao cobDebSit "
+ " where cobDebSit.descricao = "+"'"+"PENDENTE"+"'";
retorno = (Integer) session.createQuery(hql).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate obtemDebitoSituacao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public void geraRegistroNegativacaoMovimentoRegItem(int idDebitoSituacao, BigDecimal valorDocumento,
int idRegistroDetalhe, int idDocumentoTipo, Integer idGuiaPagamento, Integer idConta) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Connection con = null;
Statement stmt = null;
try {
con = session.connection();
stmt = con.createStatement();
String insert = "insert into cobranca.negatd_mov_reg_item ("
+ " nmri_id , " // 01
+ " nmrg_id , " // 02
+ " dotp_id , " // 03
+ " dbac_id , " // 04
+ " gpag_id , " // 05
+ " cnta_id , " // 06
+ " cdst_id , " // 07
+ " nmri_vldebito , " // 08
+ " nmri_dtsituacaodebito , " // 09
+ " cdst_idaposexclusao , " // 10
+ " nmri_dtsitdebaposexclusao , " // 11
+ " nmri_icsitdefinitiva," + " nmri_tmultimaalteracao) " // 12
+ " values ( "
+ Util.obterNextValSequence("cobranca.seq_negatd_mov_reg_item") + ", " // 01
+ idRegistroDetalhe + ", " // 02
+ idDocumentoTipo + ", " // 03
+ "null, " // 04
+ idGuiaPagamento + ", " // 05
+ idConta + ", " // 06
+ idDebitoSituacao + ", " // 07
+ valorDocumento + ", " // 08
+ Util.obterSQLDataAtual() + " , " // 09
+ "null, " // 10
+ "null, " // 11
+ "2," + Util.obterSQLDataAtual() + " ) "; // 12
stmt.executeUpdate(insert);
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate geraRegistroNegativacaoMovimentoRegItem ");
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Insert geraRegistroNegativacaoMovimentoRegItem ");
} finally {
HibernateUtil.closeSession(session);
try {
stmt.close();
con.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro ao fechar conex�es");
}
}
}
/**
* geraRegistroImovelNegativacao
*
* @author Marcio Roberto
* @date 13/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public void geraRegistroImovelNegativacao(int idNegativadorComando, int idImovel) throws ErroRepositorioException {
Session session = HibernateUtil.getSessionGerencial();
String insert;
Connection con = null;
Statement stmt = null;
try {
con = session.connection();
stmt = con.createStatement();
insert = "insert into cobranca.negativacao_imoveis ("
+ " ngim_id , " // 01
+ " ngim_tmultimaalteracao , " // 02
+ " ngcm_id , " // 03
+ " imov_id , " // 04
+ " ngim_icexcluido , " // 05
+ " ngim_dtexclusao) " // 06
+ " values ( "
+ Util.obterNextValSequence("cobranca.seq_negativacao_imoveis") +", "
+ idNegativadorComando+", " // 02
+ idImovel+", " // 03
+ Util.obterSQLDataAtual() + " , " // 04
+ "2, " // 05
+ "null) "; // 06
stmt.executeUpdate(insert);
//System.out.print("1 - INSERINDO geraRegistroImovelNegativacao!! ");
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate geraRegistroImovelNegativacao ");
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Insert geraRegistroImovelNegativacao ");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
try {
stmt.close();
con.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro ao fechar conex�es");
}
}
}
/**
* getNextNegativadorMovimentoReg
*
* @author Marcio Roberto
* @date 14/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer getNextNegativadorMovimentoReg() throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select max(id) from gcom.cobranca.NegativadorMovimentoReg ";
retorno = (Integer) session.createQuery(hql).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getNextNegativadorMovimentoReg");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem Negativacao Comando
*
* @author Marcio Roberto
* @date 26/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getNegativacaoComando(int idNegativacaoComando) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " negComando "
+ " from gcom.cobranca.NegativacaoComando negComando "
+ " where negComando.id = :idNegativacaoComando ";
retorno = session.createQuery(hql).setInteger("idNegativacaoComando",
idNegativacaoComando).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getNegativacaoComando");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem Negativacao Criterio
*
* @author Marcio Roberto
* @date 26/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List getNegativacaoCriterio(int idNegativacaoComando) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " negCriterio "
+ " from gcom.cobranca.NegativacaoCriterio negCriterio "
+ " inner join fetch negCriterio.negativacaoComando as negComando "
+ " inner join fetch negComando.negativador as neg "
+ " inner join fetch negCriterio.cliente as cliente "
+ " where negComando.id = :idNegativacaoComando ";
retorno = session.createQuery(hql).setInteger("idNegativacaoComando",
idNegativacaoComando).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getNegativacaoCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Obtem Negativacao Criterio
*
* @author Marcio Roberto
* @date 26/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Collection getImoveisClienteCriterio(int idCliente) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select distinct "
+ " imov "
+ " from "
+ " gcom.cadastro.cliente.Cliente as cli, "
+ " gcom.cobranca.NegativacaoCriterio as negCriterio "
+ " inner join cli.clienteImoveis as clienteImov "
+ " inner join clienteImov.imovel as imov "
+ " inner join imov.imovelPerfil as imovPerf "
+ " where cli.id = :idCliente "
+ " and negCriterio.cliente = cli ";
retorno = session.createQuery(hql).setInteger("idCliente",
idCliente).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getNegativacaoCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC 0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 26/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarTipoCliente(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "clTipo.cltp_dsclientetipo as descricaoClienteTipo, "
+ "clTipo.cltp_id as idClienteTipo "
+ "from cobranca.negativacao_comando negCom "
+ "inner join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id "
+ "inner join cobranca.negatv_crit_cliente_tipo criCliTip on criCliTip.ngct_id = negCri.ngct_id "
+ "inner join cadastro.cliente_tipo clTipo on clTipo.cltp_id = criCliTip.cltp_id "
+ "where negCom.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("descricaoClienteTipo", Hibernate.STRING)
.addScalar("idClienteTipo", Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* Verifica se h� negativa��o para aquele imovel
*
* @author Marcio Roberto
* @date 29/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer verificaExistenciaNegativacao(int idImovel)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " count(negImovel.id) "
+ " from gcom.cobranca.NegativacaoImoveis as negImovel "
+ " inner join negImovel.imovel as imov "
+ " inner join negImovel.negativacaoComando as negCom "
+ " inner join negCom.negativador as neg "
+ " where negImovel.indicadorExcluido = 2 "
+ " and negImovel.imovel.id = :idImovel ";
retorno = (Integer) session.createQuery(hql).setInteger("idImovel",
idImovel).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaExistenciaNegativacao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* obtem dados cliente da negativacao
*
* @author Marcio Roberto
* @date 29/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List obtemTitularidadesDocumentos(int idNegativadorCriterio)
throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " negCritCpfTp "
+ " from gcom.cobranca.NegativacaoCriterioCpfTipo negCritCpfTp "
+ " inner join negCritCpfTp.negativacaoCriterio as negCrit "
+ " where negCrit.id = :idNegativadorCriterio "
+ " order by negCritCpfTp.numeroOrdemSelecao ";
retorno = session.createQuery(hql).setInteger(
"idNegativadorCriterio", idNegativadorCriterio).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate obtemTitularidadesDocumentos");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* obtem titularidade dos documentos
*
* @author Marcio Roberto
* @date 29/11/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List obtemDadosClienteNegativacao(int idImovel, Short idClienteRelacaoTipo)
throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " cliente "
+ " from gcom.cadastro.cliente.Cliente cliente "
+ " inner join fetch cliente.clienteImoveis as cliImov "
+ " inner join fetch cliImov.imovel as imov "
+ " where cliImov.dataFimRelacao is null "
+ " and imov.id = :idImovel "
+ " and cliImov.clienteRelacaoTipo = :idClienteRelacaoTipo ";
retorno = session.createQuery(hql).setInteger("idImovel",
idImovel).setInteger("idClienteRelacaoTipo", idClienteRelacaoTipo)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate obtemDadosClienteNegativacao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica se h� ocorrencia do imovel na tabela cobranca situacao.
*
* @author Marcio Roberto
* @date 03/12/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer verificaExistenciaImovelCobrancaSituacao(int idImovel)
throws ErroRepositorioException {
Integer retorno = 0;
Session session = HibernateUtil.getSession();
try {
String hql = " select count(imoCobSit.id) "
+ " from gcom.cadastro.imovel.ImovelCobrancaSituacao imoCobSit "
+ " inner join imoCobSit.imovel as imov "
+ " where imov.id = :idImovel "
+ " and imoCobSit.dataRetiradaCobranca is null ";
retorno = (Integer) session.createQuery(hql).setInteger("idImovel",
idImovel).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaExistenciaImovelCobrancaSituacao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica se as subCategorias do imovel corresponde as subCategorias do criterio da negativacao.
*
* @author Marcio Roberto
* @date 03/12/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer verificaSubCategoriaImovelNegativacaoCriterio(int idImovel, int idCriterio)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " count( negCriSubCat.comp_id.subcategoria.id) "
+ " from gcom.cobranca.NegativacaoCriterioSubcategoria negCriSubCat "
+ " where negCriSubCat.comp_id.subcategoria.id in (select "
+ " subCat.comp_id.subcategoria.id "
+ " from gcom.cadastro.imovel.ImovelSubcategoria as subCat "
+ " where subCat.comp_id.imovel.id = :idImovel) "
+ " and "
+ " negCriSubCat.comp_id.negativacaoCriterio.id = :idCriterio ";
retorno = (Integer) session.createQuery(hql).setInteger("idImovel",
idImovel).setInteger("idCriterio",idCriterio).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaSubCategoriaImovelNegativacaoCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica se os Perfis do imovel corresponde aos Perfis do criterio da negativacao.
*
* @author Marcio Roberto
* @date 03/12/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer verificaPerfilImovelNegativacaoCriterio(int idCriterio, int imovelPerfil)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " count( negCriImoPer.comp_id.imovelPerfil) "
+ " from gcom.cobranca.NegativacaoCriterioImovelPerfil negCriImoPer "
+ " where negCriImoPer.comp_id.negativacaoCriterio.id = :idCriterio "
+ " and negCriImoPer.comp_id.imovelPerfil = :imovelPerfil ";
retorno = (Integer) session.createQuery(hql).setInteger("idCriterio",
idCriterio).setInteger("imovelPerfil",imovelPerfil).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaPerfilImovelNegativacaoCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica se o cliente usuario do imovel corresponde ao cliente tipo da negativacao criterio
*
* @author Marcio Roberto
* @date 03/12/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer verificaTipoClienteNegativacaoCriterio(int idImovel, int idCriterio)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " count(negCriCliTip.comp_id.clienteTipo) "
+ " from gcom.cobranca.NegativacaoCriterioClienteTipo negCriCliTip "
+ " where negCriCliTip.comp_id.clienteTipo = (select "
+ " cliente.clienteTipo.id "
+ " from gcom.cadastro.cliente.Cliente as cliente "
+ " inner join cliente.clienteTipo as clienteTipo "
+ " inner join cliente.clienteImoveis as cliImov "
+ " inner join cliImov.imovel as imov "
+ " where cliImov.dataFimRelacao is null "
+ " and imov.id = :idImovel "
+ " and cliImov.clienteRelacaoTipo = :idClienteUsuario)" // cliente usu�rio = 2
+ " and negCriCliTip.comp_id.negativacaoCriterio = :idCriterio ";
retorno = (Integer) session.createQuery(hql).setInteger("idImovel",
idImovel).setShort("idClienteUsuario", ClienteRelacaoTipo.USUARIO).setInteger("idCriterio",idCriterio).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaTipoClienteNegativacaoCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica Situacao Cobranca
*
* @author Rafael Pinto
* @date 26/01/2011
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer verificaCobrancaSituacaoNegativacaoCriterio(int idImovel, int idCriterio)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select count(negativacao.cobrancaSituacao.id) "
+ " from NegativacaoCriterioSituacaoCobranca negativacao "
+ " where negativacao.negativacaoCriterio.id = :idCriterio "
+ " and negativacao.cobrancaSituacao.id in (select "
+ " imoCobSit.cobrancaSituacao.id "
+ " from ImovelCobrancaSituacao imoCobSit "
+ " inner join imoCobSit.imovel as imov "
+ " where imov.id = :idImovel "
+ " and imoCobSit.dataRetiradaCobranca is null )";
retorno = (Integer) session.createQuery(hql).
setInteger("idImovel",idImovel).
setInteger("idCriterio",idCriterio).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaCobrancaSituacaoNegativacaoCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica se situacao cobranca tipo e a mesma do imovel
*
* @author Rafael Pinto
* @date 27/01/2010
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer verificaCobrancaSituacaoEspecialNegativacaoCriterio(int idImovel, int idCriterio)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select count(negativacao.cobrancaSituacaoTipo.id) "
+ " from NegativacaoCriterioSituacaoEspecialCobranca negativacao "
+ " where negativacao.negativacaoCriterio.id = :idCriterio "
+ " and negativacao.cobrancaSituacaoTipo.id in (select "
+ " imoCobSit.cobrancaSituacaoTipo.id "
+ " from CobrancaSituacaoHistorico imoCobSit "
+ " inner join imoCobSit.imovel as imov "
+ " where imov.id = :idImovel "
+ " and imoCobSit.anoMesCobrancaRetirada is null )";
retorno = (Integer) session.createQuery(hql).
setInteger("idImovel",idImovel).
setInteger("idCriterio",idCriterio).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaCobrancaSituacaoEspecialNegativacaoCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica ocorrencia debito cobrado conta imovel.
*
* @author Marcio Roberto
* @date 05/12/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer verificaDebitoCobradoConta(int idConta)
throws ErroRepositorioException {
Integer retorno = 0;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+" count(imov.id) "
+" from gcom.faturamento.debito.DebitoCobrado debCob "
+" inner join debCob.conta as conta "
+" inner join debCob.financiamentoTipo as finTipo "
+" inner join conta.imovel as imov "
+" where finTipo.id in (2,3,4,8) "
+" and conta.id = :idConta ";
retorno = (Integer) session.createQuery(hql).setInteger("idConta",
idConta).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaDebitoCobradoConta");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica ocorrencia debito cobrado conta imovel.
*
* @author Marcio Roberto
* @date 05/12/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public List verificaImovelParcelamento(int idImovel)
throws ErroRepositorioException {
List retorno;
Session session = HibernateUtil.getSession();
try {
String hql = " select parc "
+" from gcom.cobranca.parcelamento.Parcelamento parc "
+" inner join parc.imovel as imov "
+" inner join fetch parc.cliente as cli "
+" left join fetch cli.unidadeFederacao as unfe "
+" where imov.id = :idImovel "
+" order by parc.parcelamento desc ";
retorno = (List) session.createQuery(hql).setInteger("idImovel",
idImovel).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaImovelParcelamento");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica ocorrencia debito cobrado conta imovel.
*
* @author Marcio Roberto, Raphael Rossiter
* @date 05/12/2007, 29/10/2010
*
* @param
* @return
* @throws ErroRepositorioException
*/
//OVERRIDE - Metodo sobrescrito no classe RepositorioScpSerasaPostgres
public Integer verificaCartaAvisoParcelamento(int idImovel,int numeroDiasAtrasoRecebCartaParcel)
throws ErroRepositorioException {
Integer retorno;
Session session = HibernateUtil.getSession();
try {
String consulta = "select count(a.cbdo_id) as total from cobranca.cobranca_documento a"
+ " inner join cobranca.documento_tipo b on a.dotp_id = b.dotp_id"
+ " inner join cadastro.imovel c on a.imov_id = c.imov_id"
+ " where c.imov_id = :idImovel and a.cbdo_tmemissao < (SELECT sysdate - INTERVAL '" + numeroDiasAtrasoRecebCartaParcel + " DAYS') "
+ " and b.dotp_id = 26";
retorno =(Integer) session.createSQLQuery(consulta)
.addScalar("total" , Hibernate.INTEGER)
.setInteger("idImovel", idImovel).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaCartaAvisoParcelamento");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Referente a [SB0004] UC0671 - Gerar Movimento de Inclus�o de Negativa��o
*
* M�todo que consulta todos os imoveis que est�o nas condi��es 1,2,3,4,5 e 6
*
* @author Thiago Toscano
* @date 27/02/2007
*
* @param
* @return List
* @throws ErroRepositorioException
*/
public List getImovelCondicao(List IdImovel) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
StringBuilder sb = new StringBuilder();
sb.append(" select i from gcom.cadastro.imovel.Imovel i ");
sb.append(" left join i.cobrancaSituacaoTipo cst ");
sb.append(" left join i.imovelPerfil ip ");
if (IdImovel != null && !IdImovel.isEmpty()) {
sb.append(" where ( ");
Iterator it = IdImovel.iterator();
boolean primerio = true;
while (it.hasNext()) {
Integer id = (Integer)it.next();
if (primerio) {
sb.append(" i.id = " + id);
primerio = false;
} else {
sb.append(" or i.id = " + id);
}
}
sb.append(" ) ");
}
retorno = (List) session.createQuery(sb.toString()).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Referente a [SB0004] UC0671 - Gerar Movimento de Inclus�o de Negativa��o
*
* Condi��es 1,2,3,4,5 e 6 referente a diferentes crit�rios
*
* @author Marcio Roberto
* @date 10/12/2007
*
* @param
* @return List de ids dos imoveis
* @throws ErroRepositorioException
*/
public List getImovelCondicao(NegativacaoCriterio nCriterio, int tipoCondicao)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
String sql = null;
try {
switch (tipoCondicao) {
case 1:
// condicao 1
sql = " select i.imov_id idImovel from cadastro.imovel i where i.qdra_id in ( "
+" select "
+" qd.qdra_id "
+" from "
+" cobranca.negativacao_criterio nCriterio "
+" inner join cobranca.negativ_crit_cobr_grupo cnccg on( nCriterio.ngct_id = cnccg.ngct_id) "
+" inner join cobranca.cobranca_grupo cg on( cg.cbgr_id = cnccg.cbgr_id) "
+" inner join micromedicao.rota rt on( rt.cbgr_id = cg.cbgr_id) "
+" inner join cadastro.quadra qd on( qd.rota_id = rt.rota_id) "
+" where "
+" nCriterio.ngct_id = " + nCriterio.getId()
+" ) ";
// hql = " select "
// +" imov "
// +" from gcom.cadastro.imovel.Imovel as imov "
// +" inner join fetch imov.quadra as quad "
// +" inner join fetch quad.rota as rot "
// +" where rot.cobrancaGrupo.id in (select "
// +" negCritGrupo.comp_id.cobrancaGrupo"
// +" from gcom.cobranca.NegativCritCobrGrupo as negCritGrupo "
// +" where negCritGrupo.comp_id.negativacaoCriterio = :idNegativacaoCriterio)";
break;
case 2:
// condicao 2
sql = "select i.imov_id as idImovel from cadastro.imovel as i where i.loca_id in ( "
+" select "
+" l.loca_id "
+" from "
+" cobranca.negativacao_criterio nCriterio "
+" inner join cobranca.negativ_crit_ger_reg ncgr on( nCriterio.ngct_id = ncgr.ngct_id) "
+" inner join cadastro.localidade l on( l.greg_id = ncgr.greg_id) "
+" where "
+" nCriterio.ngct_id = " + nCriterio.getId()
+" ) ";
// hql = " select "
// +" imov "
// +" from gcom.cadastro.imovel.Imovel as imov "
// +" inner join fetch imov.localidade as loc "
// +" inner join fetch loc.unidadeNegocio as undNeg "
// +" where undNeg.gerenciaRegional.id in (select "
// +" negCriGerReg.comp_id.gerenciaRegional "
// +" from gcom.cobranca.NegativCritGerReg as negCriGerReg "
// +" where negCriGerReg.comp_id.negativacaoCriterio = :idNegativacaoCriterio)";
break;
case 3:
sql = " select i.imov_id as idImovel from cadastro.imovel as i where i.loca_id in ( "
+" select "
+" l.loca_id "
+" from "
+" cobranca.negativacao_criterio nCriterio "
+" inner join cobranca.negativ_crit_und_neg ncun on( nCriterio.ngct_id = ncun.ngct_id) "
+" inner join cadastro.localidade l on( l.uneg_id = ncun.uneg_id) "
+" where "
+" nCriterio.ngct_id = " + nCriterio.getId()
+" ) ";
break;
case 4:
// condicao 4
sql = " select i.imov_id as idImovel from cadastro.imovel as i where i.loca_id in ( "
+" select "
+" nce.loca_id "
+" from "
+" cobranca.negativacao_criterio nCriterio "
+" inner join cobranca.negativ_crit_elo nce on( nCriterio.ngct_id = nce.ngct_id) "
+" "
+" where "
+" nCriterio.ngct_id = " + nCriterio.getId()
+" ) ";
break;
case 5:
// condicao 5
sql = " select i.imov_id as idImovel from cadastro.imovel as i "
+" where i.loca_id between " + nCriterio.getLocalidadeInicial().getId() + " and "
+ nCriterio.getLocalidadeFinal().getId();
break;
/* case 6:
// condicao 6
sql = " select i.imov_id as idImovel from cadastro.imovel as i "
+" where i.loca_id between " + nCriterio.getLocalidadeInicial() + " and "
+ nCriterio.getLocalidadeFinal()+ " and i.stcm_id between " + setorComercialOrigemID + "" +
+ " and "+ setorComercialDestinoID;
// hql = " select "
// +" imov "
// +" from gcom.cadastro.imovel.Imovel as imov "
// +" inner join fetch imov.setorComercial as setCom "
// +" inner join fetch setCom.localidade as loc "
// +" where ( loc.id in (select "
// +" negCri.localidadeInicial.id "
// +" from gcom.cobranca.NegativacaoCriterio as negCri "
// +" inner join fetch negCri.localidadeInicial as locIni "
// +" where negCri.id = :idNegativacaoCriterio "
// +" and locIni.id is not null)) "
// +" and (setCom.id in (select "
// +" negCri.codigoSetorComercialInicial "
// +" from gcom.cobranca.NegativacaoCriterio as negCri "
// +" inner join fetch negCri.localidadeInicial as locIni "
// +" where negCri.id = :idNegativacaoCriterio "
// +" and locIni.id is not null "
// +" and negCri.codigoSetorComercialInicial is not null) "
// +" or setCom.id in (select "
// +" negCri.codigoSetorComercialFinal "
// +" from gcom.cobranca.NegativacaoCriterio as negCri "
// +" inner join fetch negCri.localidadeInicial as locIni "
// +" where negCri.id = :idNegativacaoCriterio "
// +" and locIni.id is not null "
// +" and negCri.codigoSetorComercialInicial is not null) "
// +" ) ";
break;*/
default:
sql = " select i.imov_id as idImovel from cadastro.imovel as i ";
}
retorno = (List) session.createSQLQuery(sql)
.addScalar("idImovel" , Hibernate.INTEGER).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* getNextNegativadorComando
*
* @author Marcio Roberto
* @date 19/12/2007
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Integer getNextNegativadorComando() throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select max(id) from gcom.cobranca.NegativacaoComando ";
retorno = (Integer) session.createQuery(hql).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getNextNegativadorComando ");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* M�todo consuta os Negativadores que tenham movimento de Exclus�o do spc ou serasa
*
* [UC0673] - Gerar Movimento da Exclus�o de Negativa��o
* [SB0003] - Selecionar Negativadores
*
*
* @author Thiago Toscano
* @date 21/12/2007
*
*/
public Collection consultarNegativadoresParaExclusaoMovimento() throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String consulta = " select negt.negt_id as idNegativador, "
+ " clie.clie_id as idCliente,"
+ " clie.clie_nmcliente as nomeCliente"
+ " from cadastro.cliente clie"
+ " inner join cobranca.negativador negt on(negt.clie_id = clie.clie_id)"
+ " inner join cobranca.negativador_contrato ngcn on(ngcn.negt_id = negt.negt_id)"
+ " where ngcn_dtcontratoencerramento is null or ngcn_dtcontratofim >= :data"
+ " order by clie.clie_nmcliente ";
Collection coll =(Collection) session.createSQLQuery(consulta)
.addScalar("idNegativador" , Hibernate.INTEGER)
.addScalar("idCliente" , Hibernate.INTEGER)
.addScalar("nomeCliente" , Hibernate.STRING)
.setDate("data", new Date())
.list();
if (coll != null) {
Iterator it = coll.iterator();
while(it.hasNext()) {
Object[] obj = (Object[]) it.next();
Cliente c = new Cliente();
c.setId((Integer)obj[1]);
c.setNome((String)obj[2]);
Negativador n = new Negativador();
n.setId((Integer)obj[0]);
n.setCliente(c);
retorno.add(n);
}
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* M�todo consuta os NegativadoresMovimentoReg que tenham movimento de Exclus�o do spc ou serasa
*
* [UC0673] - Gerar Movimento da Exclus�o de Negativa��o
* [SB0003] - Selecionar Negativadores
*
* @param ids-id do negativador
* @return Colecao de negativadorMovimentoReg
* @author Thiago Toscano
* @date 21/12/2007
*
*/
public Collection<NegativadorMovimentoReg> consultarNegativacoesParaExclusaoMovimento(Integer[] idNegativador) throws ErroRepositorioException {
Collection retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String consulta = " select nmrg "
+ " from NegativadorMovimentoReg nmrg"
+ " left join fetch nmrg.negativadorMovimento ngmv "
+ " left join fetch ngmv.negativador negt "
+ " left join fetch negt.cliente clie "
+ " left join fetch nmrg.imovel imov "
+ " left join fetch imov.cobrancaSituacao cbst "
+ " left join fetch nmrg.cobrancaDebitoSituacao cdst "
+ " where nmrg.codigoExclusaoTipo is null and "
+ " nmrg.indicadorAceito = 1 and "
+ " nmrg.cobrancaDebitoSituacao.id is not null and "
+ " nmrg.cobrancaDebitoSituacao.id <> 1 and"
+ " ngmv.codigoMovimento=1 and "
+ " nmrg.negativadorRegistroTipo.id in (select nrtp.id from NegativadorRegistroTipo nrtp "
+ " where nrtp.codigoRegistro = 'D' and nrtp.negativador.id in(:idNegativador)) "
+ " and nmrg.numeroRegistro <> 0 "
+ " order by nmrg.id, nmrg.numeroRegistro " ;
retorno =(Collection) session.createQuery(consulta)
.setParameterList("idNegativador", idNegativador).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public NegativadorContrato consultarNegativadorContratoVigente(Integer negativador) throws ErroRepositorioException {
NegativadorContrato retorno = null;
Session session = HibernateUtil.getSession();
try {
String consulta = " select nc"
+ " from gcom.cobranca.NegativadorContrato nc"
+ " inner join fetch nc.negativador negativador"
+ " where(nc.dataContratoEncerramento is null or "
+ " nc.dataContratoFim >= :data) and "
+ " negativador.id = :negativador ";
List colecao = session.createQuery(consulta)
.setDate("data", new Date())
.setInteger("negativador", negativador)
.setMaxResults(1).list();
if (colecao != null && !colecao.isEmpty())
retorno = (NegativadorContrato) colecao.iterator().next();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* M�todo que consulta os NegativadorMovimentoReg que representam o arquivo
* dos movimentos de exclusao de negativacao, para a geracao do arquvo txt
*
* [UC0673] - Gerar Movimento da Exclus�o de Negativa��o
* [SB0009] - Gerar Arquivo TxT para Envio ao Negativador
*
* @author Thiago Toscano
* @date 27/12/2007
*
* @param idMovimento
* @throws ErroRepositorioException
*/
public Collection consultarNegativadorMovimentoRegistroParaGerarArquivo(Integer codigoNegativadorMovimento, String tipoRegistro) throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String hql = null;
try {
hql =
" select nmr "
+" from gcom.cobranca.NegativadorMovimentoReg nmr "
+" inner join fetch nmr.negativadorRegistroTipo nrt "
+" inner join fetch nmr.negativadorMovimento nm "
+" inner join fetch nm.negativador n "
+" where "
+" nm.id = " + codigoNegativadorMovimento + " and "
+" nrt.codigoRegistro = '" + tipoRegistro + "'"
+" order by nmr.numeroRegistro";
retorno = session.createQuery(hql).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* M�todo usado para pesquisa de Comando Negativa��o (Helper)
*
* [UC0655] Filtrar Comando Negativa��o
* @author Thiago Vieira
* @date 02/01/2008
*
* @param comandoNegativacaoHelper
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarComandoNegativacaoHelper(
ComandoNegativacaoHelper comandoNegativacaoHelper)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ " negatComando.id,"
+ " negatCriterio.descricaoTitulo,"
+ " negatComando.indicadorSimulacao,"
+ " negatComando.dataHoraComando,"
+ " negatComando.dataHoraRealizacao,"
+ " negatComando.quantidadeInclusoes,"
+ " usuario.nomeUsuario, "
+ " cliente.nome"
+ " from gcom.cobranca.NegativacaoCriterio negatCriterio "
+ " inner join negatCriterio.negativacaoComando negatComando "
+ " inner join negatComando.negativador negativador "
+ " inner join negatComando.usuario usuario "
+ " inner join negativador.cliente cliente";
String sql = " where negatComando.indicadorComandoCriterio = 1 and negatComando.dataHoraRealizacao is null and ";
if (comandoNegativacaoHelper.getTituloComando() != null && !comandoNegativacaoHelper.getTituloComando().equals("")) {
if(comandoNegativacaoHelper.getTipoPesquisaTituloComando().equals(ConstantesSistema.TIPO_PESQUISA_INICIAL)){
sql = sql + "upper(negatCriterio.descricaoTitulo) like '"
+ comandoNegativacaoHelper.getTituloComando().toUpperCase() + "%' and ";
}else{
sql = sql + "upper(negatCriterio.descricaoTitulo) like '%"
+ comandoNegativacaoHelper.getTituloComando().toUpperCase() + "%' and ";
}
}
if(!(comandoNegativacaoHelper.getIndicadorComandoSimulado().equals(new Short("3")))){
sql = sql + " negatComando.indicadorSimulacao = " + comandoNegativacaoHelper.getIndicadorComandoSimulado() + " and ";
}
if ( comandoNegativacaoHelper.getGeracaoComandoInicio() != null &&
!comandoNegativacaoHelper.getGeracaoComandoInicio().equals("") &&
comandoNegativacaoHelper.getGeracaoComandoFim() != null &&
!comandoNegativacaoHelper.getGeracaoComandoFim().equals("") &&
comandoNegativacaoHelper.getGeracaoComandoInicio().equals(comandoNegativacaoHelper.getGeracaoComandoFim())){
String data1 = Util.recuperaDataInvertida(comandoNegativacaoHelper.getGeracaoComandoInicio());
if (data1 != null && !data1.equals("")
&& data1.trim().length() == 8) {
data1 = data1.substring(0, 4) + "-" + data1.substring(4, 6)
+ "-" + data1.substring(6, 8);
}
sql = sql + " negatComando.dataHoraComando >= to_date('" + data1 + " 00:00:00','YYYY-MM-DD HH24:MI:SS') and ";
sql = sql + " negatComando.dataHoraComando < to_date('" + data1 + " 23:59:59','YYYY-MM-DD HH24:MI:SS') and ";
} else {
if (comandoNegativacaoHelper.getGeracaoComandoInicio() != null &&
!comandoNegativacaoHelper.getGeracaoComandoInicio().equals("")) {
String data1 = Util.recuperaDataInvertida(comandoNegativacaoHelper.getGeracaoComandoInicio());
if (data1 != null && !data1.equals("")
&& data1.trim().length() == 8) {
data1 = data1.substring(0, 4) + "-" + data1.substring(4, 6)
+ "-" + data1.substring(6, 8);
}
sql = sql + " negatComando.dataHoraComando >= to_date('" + data1 + " 00:00:00','YYYY-MM-DD HH24:MI:SS') and ";
}
if (comandoNegativacaoHelper.getGeracaoComandoFim() != null &&
!comandoNegativacaoHelper.getGeracaoComandoFim().equals("")) {
String data2 = Util.recuperaDataInvertida(comandoNegativacaoHelper.getGeracaoComandoFim());
if (data2 != null && !data2.equals("")
&& data2.trim().length() == 8) {
data2 = data2.substring(0, 4) + "-" + data2.substring(4, 6)
+ "-" + data2.substring(6, 8);
}
sql = sql + " negatComando.dataHoraComando <= to_date('" + data2 + " 23:59:59','YYYY-MM-DD HH24:MI:SS') and ";
}
}
if(comandoNegativacaoHelper.getIdUsuarioResponsavel() != null){
sql = sql + " usuario.id = " + comandoNegativacaoHelper.getIdUsuarioResponsavel() + " and ";
}
if(comandoNegativacaoHelper.getIdNegativador() != null && comandoNegativacaoHelper.getIdNegativador() != -1){
sql = sql + " negativador.id = " + comandoNegativacaoHelper.getIdNegativador() + " and ";
}
if (!sql.equals(" where ")) {
consulta = consulta + sql;
}
if (consulta.substring(consulta.length() - 5, consulta.length()).equals(" and ")){
consulta = Util.removerUltimosCaracteres(consulta, 4);
}
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;
}
/**
* [UC0651] Inserir Comando Negativa��o
* [SB0003] Determinar Data Prevista para Execu��o do Comando
*
* @author Ana Maria
* @date 11/12/2007
*
* @param idNegativador
* @return Date
* @throws ErroRepositorioException
*/
public Date pesquisarUltimaDataRealizacaoComando(Integer idNegativador, Integer icSimulacao)
throws ErroRepositorioException {
Date retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select max(ngcm.dataHoraRealizacao) "
+ "from NegativacaoComando ngcm "
+ "where ngcm.dataHoraRealizacao is not null and ngcm.negativador.id = :idNegativador "
+ "and ngcm.indicadorSimulacao = :icSimulacao";
retorno = (Date) session.createQuery(consulta)
.setInteger("idNegativador", idNegativador)
.setInteger("icSimulacao", icSimulacao)
.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;
}
/**
* [UC0651] Inserir Comando Negativa��o
* [FS0015] Verificar exist�ncia de negativa��o para o im�vel no negativador
*
* @author Ana Maria
* @date 04/12/2007
*
* @param idImovel
* @return Boolean
* @throws ErroRepositorioException
*/
public Boolean verificarExistenciaNegativacaoImovel(Integer idImovel) throws ErroRepositorioException {
Integer pesquisar = null;
Boolean retorno = false;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select nmrg.id "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " inner join nmrg.imovel imov "
+ " left join nmrg.negativadorMovimentoRegInclusao nmrgInclusao "
+ " where imov.id = :idImovel "
+ " and nmrg.codigoExclusaoTipo is null "
+ " and nmrgInclusao.id is null "
+ " and (nmrg.indicadorAceito = :indicadorAceito or nmrg.indicadorAceito is null)";
pesquisar = (Integer) session.createQuery(consulta)
.setShort("indicadorAceito", ConstantesSistema.SIM)
.setInteger("idImovel", idImovel).setMaxResults(1).uniqueResult();
if (pesquisar != null && !pesquisar.equals("")) {
retorno = true;
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0651] Inserir Comando Negativa��o
* //[FS0014]- Verificar exist�ncia de comando para os mesmos par�metros
*
* @author Ana Maria
* @date 13/12/2007
*
* @param InserirComandoNegativacaoPorCriterioHelper
* @return Integer
* @throws ErroRepositorioException
*/
public String verificarExistenciaComandoMesmoParametro(InserirComandoNegativacaoPorCriterioHelper helper)
throws ErroRepositorioException {
String retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select negt.cliente.nome"
+ " from NegativacaoComando ngcm"
+ " inner join ngcm.negativador negt"
+ " where negt.id = :idNegativador"
+ " and ngcm.indicadorComandoCriterio = :icComandoCriterio"
+ " and ngcm.indicadorSimulacao = :icSimulacao"
+ " and ngcm.dataPrevista = :dataPrevista"
+ " and ngcm.dataHoraRealizacao is null";
retorno = (String) session.createQuery(consulta)
.setInteger("idNegativador", helper.getNegativacaoComando().getNegativador().getId())
.setShort("icComandoCriterio", helper.getNegativacaoComando().getIndicadorComandoCriterio())
.setShort("icSimulacao", helper.getNegativacaoComando().getIndicadorSimulacao())
.setDate("dataPrevista", helper.getNegativacaoComando().getDataPrevista())
.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;
}
/**
* M�todo que retorna todas NegativacaoComando que ainda nao tenha sido executada (dataHoraRealizacao == null)
* [UC0687] Executar Comando de Negativa��o
* [Fluxo Principal] - Item 2.0
*
* @author Thiago Toscano
* @date 21/01/2008
*
* @return
* @throws ErroRepositorioException
*/
public NegativacaoComando consultarNegativacaoComandadoParaExecutar()
throws ErroRepositorioException {
NegativacaoComando retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nc"
+ " from gcom.cobranca.NegativacaoComando nc"
+ " inner join fetch nc.negativador negativador"
+ " where nc.dataPrevista <= :dataAtual "
+ " and nc.dataHoraRealizacao is null";
retorno = (NegativacaoComando) session.createQuery(hql)
.setTimestamp("dataAtual", new Date())
.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;
}
/**
*
* Consulta os Negativadores para a geracao do resumo diario da negativacao
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* Fluxo principal Item 1.0
*
* @author Thiago Toscano
* @date 07/01/2008
*/
public List consultarLocalidadeParaGerarResumoDiarioNegativacao()
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select distinct(l.id) "
+ " from gcom.cobranca.NegativadorMovimentoReg nmr"
+ " left join nmr.localidade l "
+ " left join nmr.negativadorMovimento nm "
+ " where "
+ " nm.codigoMovimento = 1 "
+ " and nmr.imovel is not null "
+ " and nmr.indicadorAceito = 1 ";
retorno = (List) session.createQuery(hql).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 as rotas para a geracao do resumo diario da negativacao
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* Fluxo principal Item 1.0
*
* @author Francisco do Nascimento
* @date 03/02/2009
*/
public List consultarRotasParaGerarResumoDiarioNegativacao()
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String sql = " SELECT distinct q.rota_id as idRota from cadastro.setor_comercial sc " +
"join cadastro.quadra q on q.stcm_id = sc.stcm_id " +
"where loca_id in " +
" (select distinct nmr.loca_id from cobranca.negatd_movimento_reg nmr " +
" join cobranca.negativador_movimento nm on nmr.ngmv_id = nm.ngmv_id " +
" where nm.ngmv_cdmovimento = " + NegativadorMovimento.CODIGO_MOVIMENTO_INCLUSAO +
" and nmr.imov_id is not null " +
" and nmr.nmrg_icaceito = " + ConstantesSistema.SIM + ")";
retorno = (List) session.createSQLQuery(sql)
.addScalar("idRota" , Hibernate.INTEGER)
.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 os Negativadores para a geracao do resumo diario da negativacao
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* Fluxo principal Item 1.0
*
* @author Thiago Toscano,Vivianne Sousa, Ivan Sergio
* @date 07/01/2008,30/10/2009
* @alteracao: RM3755 - Adicionado o LAST_ID e LEST_ID;
*
*/
// OVERRIDE - Metodo sobrescrito na classe RepositoripSpcSeresaPostgresHBM
public List consultarNegativacaoParaGerarResumoDiarioNegativacao(Integer idRota)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String sql = "select "
+ " ngmv.negt_id as idNegativador,"
+ " ngmv.ngcm_id as idNegativadorComando,"
+ " ngmv.ngmv_dtprocessamentoenvio as dataProcessamento,"
+ " case when nmrg.nmrg_cdexclusaotipo is not null then"
+ " case when (ngim_dtexclusao - ngmv_dtprocessamentoenvio) > 30 then 1"
+ " else 2 end "
+ " else "
+ " case when (to_date(sysdate) - ngmv_dtprocessamentoenvio) > 30 then 1"
+ " else 2 end "
+ " end as confirmada,"
+ " nmrg.cdst_id as idCobrancaDebitoSituacao, "
+ " rota.cbgr_id as idCobrancaGrupo, "
+ " loca.greg_id as idGerenciaRegional, "
+ " loca.uneg_id as idUnidadeNegocio, "
+ " loca.loca_cdelo as codigoElo, "
+ " nmrg.loca_id as idLocalidade, "
+ " qdra.stcm_id as idSetorComercil, "
+ " nmrg.qdra_id as idQuadra, "
+ " nmrg.nmrg_cdsetorcomercial as codigoSetorComercial, "
+ " nmrg.nmrg_nnquadra as numeroQuadra,"
+ " nmrg.iper_id as idImovelPerfil, "
+ " nmrg.catg_id as idCategoria, "
+ " clie.cltp_id as idClienteTipo, "
+ " cltp.epod_id as idEsferaPoder,"
+ " count(distinct(nmrg.nmrg_id)) as qtdeNegativadorMovimentoReg, "
+ " sum(nmri_vldebito) as valorDebito,"
// + " sum(case when nmri.cdst_id=1 then nmri_vldebito else 0 end) as valorPendente,"
// + " sum(case when nmri.cdst_id=2 then nmri_vldebito else 0 end) as valorPago,"
// + " sum(case when nmri.cdst_id=3 then nmri_vldebito else 0 end) as valorParcelado,"
// + " sum(case when nmri.cdst_id=4 then nmri_vldebito else 0 end) as valorCancelado"
//Vivianne Sousa - 15/03/2010 - analista:Fatima Sampaio
+ " sum(case when nmrg.nmrg_cdexclusaotipo is null then "
+ " case when nmri.cdst_id=1 then nmri_vldebito else 0 end "
+ " else "
+ " case when nmri.cdst_idaposexclusao=1 then nmri_vldebito else 0 end "
+ " end) as valorPendente, "
+ " sum(case when nmrg.nmrg_cdexclusaotipo is null then "
+ " case when nmri.cdst_id=2 then nmri_vldebito else 0 end "
+ " else "
+ " case when nmri.cdst_idaposexclusao=2 then nmri_vldebito else 0 end "
+ " end) as valorPago, "
+ " sum(case when nmrg.nmrg_cdexclusaotipo is null then "
+ " case when nmri.cdst_id=3 then nmri_vldebito else 0 end "
+ " else "
+ " case when nmri.cdst_idaposexclusao=3 then nmri_vldebito else 0 end "
+ " end) as valorParcelado, "
+ " sum(case when nmrg.nmrg_cdexclusaotipo is null then "
+ " case when nmri.cdst_id=4 then nmri_vldebito else 0 end "
+ " else "
+ " case when nmri.cdst_idaposexclusao=4 then nmri_vldebito else 0 end "
+ " end) as valorCancelado, "
+ " nmrg.last_id as idSituacaoAgua, " // 24
+ " nmrg.lest_id as idSituacaoEsgoto " // 25
+ " from"
+ " cobranca.negatd_movimento_reg nmrg"
+ " inner join cobranca.negativador_movimento ngmv on ngmv.ngmv_id=nmrg.ngmv_id"
+ " inner join cobranca.negativacao_imoveis ngim on ngim.ngcm_id=ngmv.ngcm_id and ngim.imov_id=nmrg.imov_id"
+ " inner join cadastro.quadra qdra on qdra.qdra_id=nmrg.qdra_id"
+ " inner join micromedicao.rota rota on rota.rota_id=qdra.rota_id"
+ " inner join cadastro.localidade loca on loca.loca_id=nmrg.loca_id"
+ " inner join cadastro.cliente clie on clie.clie_id=nmrg.clie_id"
+ " inner join cadastro.cliente_tipo cltp on cltp.cltp_id=clie.cltp_id"
+ " inner join cobranca.negatd_mov_reg_item nmri on nmri.nmrg_id=nmrg.nmrg_id"
+ " where"
+ " nmrg.nmrg_icaceito=1"
+ " and ngmv.ngmv_cdmovimento=1 "
+ " and nmrg.imov_id is not null"
+ " and rota.rota_id = :idRota"
+ " group by"
+ " ngmv.negt_id,ngmv.ngcm_id,ngmv.ngmv_dtprocessamentoenvio,"
+ " case when nmrg.nmrg_cdexclusaotipo is not null then"
+ " case when (ngim_dtexclusao - ngmv_dtprocessamentoenvio) > 30 then 1"
+ " else 2 end "
+ " else "
+ " case when (to_date(sysdate) - ngmv_dtprocessamentoenvio) > 30 then 1"
+ " else 2 end "
+ " end, "
+ " nmrg.cdst_id,rota.cbgr_id,loca.greg_id,loca.uneg_id,loca.loca_cdelo,nmrg.loca_id,qdra.stcm_id,nmrg.qdra_id,"
+ " nmrg.nmrg_cdsetorcomercial,nmrg.nmrg_nnquadra,nmrg.iper_id,nmrg.catg_id,clie.cltp_id,cltp.epod_id,nmrg.last_id, nmrg.lest_id";
retorno = (List) session.createSQLQuery(sql)
.addScalar("idNegativador", Hibernate.INTEGER)
.addScalar("idNegativadorComando", Hibernate.INTEGER)
.addScalar("dataProcessamento", Hibernate.DATE)
.addScalar("confirmada", Hibernate.INTEGER)
.addScalar("idCobrancaDebitoSituacao", Hibernate.INTEGER)
.addScalar("idCobrancaGrupo", Hibernate.INTEGER)
.addScalar("idGerenciaRegional", Hibernate.INTEGER)
.addScalar("idUnidadeNegocio", Hibernate.INTEGER)
.addScalar("codigoElo", Hibernate.INTEGER)
.addScalar("idLocalidade", Hibernate.INTEGER)
.addScalar("idSetorComercil", Hibernate.INTEGER)
.addScalar("idQuadra", Hibernate.INTEGER)
.addScalar("codigoSetorComercial", Hibernate.INTEGER)
.addScalar("numeroQuadra", Hibernate.INTEGER)
.addScalar("idImovelPerfil", Hibernate.INTEGER)
.addScalar("idCategoria", Hibernate.INTEGER)
.addScalar("idClienteTipo", Hibernate.INTEGER)
.addScalar("idEsferaPoder", Hibernate.INTEGER)
.addScalar("qtdeNegativadorMovimentoReg", Hibernate.INTEGER)
.addScalar("valorDebito", Hibernate.BIG_DECIMAL)
.addScalar("valorPendente", Hibernate.BIG_DECIMAL)
.addScalar("valorPago", Hibernate.BIG_DECIMAL)
.addScalar("valorParcelado", Hibernate.BIG_DECIMAL)
.addScalar("valorCancelado", Hibernate.BIG_DECIMAL)
.addScalar("idSituacaoAgua", Hibernate.INTEGER)
.addScalar("idSituacaoEsgoto", Hibernate.INTEGER)
.setInteger("idRota",idRota)
.list();
//alterada por Vivianne Sousa,30/10/2009
//query feita por Fatiam Sampaio e Francisco
// String hql = " select nmr"
// + " from gcom.cobranca.NegativadorMovimentoReg nmr"
// + " left join fetch nmr.cobrancaDebitoSituacao as cds "
// + " left join fetch nmr.quadra as quad "
// + " left join fetch quad.rota as rot "
// + " left join fetch rot.cobrancaGrupo as cobGrup "
// + " left join fetch nmr.localidade as l "
// + " left join fetch l.gerenciaRegional as gr "
// + " left join fetch l.unidadeNegocio as un "
// + " left join fetch l.localidade as lelo "
// + " left join fetch quad.setorComercial as sc "
// + " left join fetch nmr.imovelPerfil as ip "
// + " left join fetch nmr.categoria as c "
// + " left join fetch nmr.cliente as clie "
// + " left join fetch clie.clienteTipo as ct "
// + " left join fetch ct.esferaPoder as ep "
// + " left join fetch nmr.negativadorMovimento as nm "
// + " left join fetch nm.negativacaoComando as nc "
// + " left join fetch nm.negativador as n "
//// + " left join fetch nmr.parcelamento as parc "
// + " where "
// + " nm.codigoMovimento = 1 "
// + " and nmr.imovel is not null "
// + " and nmr.indicadorAceito = 1 "
// + " and rot.id = " + idRota
// + " order by nm.id,nmr.id ";
//
// retorno = (List) session.createQuery(hql).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;
}
/**
*
* Apaga todos os ResumoNegativacao
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* Fluxo principal Item 2.0
*
* @author Thiago Toscano
* @date 07/01/2008
*/
public void apagarResumoNegativacao()
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
try {
String hql = " delete "
+ " from gcom.cobranca.ResumoNegativacao"
+ " ";
session.createQuery(hql).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);
}
}
/**
*
* Apaga todos os ResumoNegativacao
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* Fluxo principal Item 2.0
*
* @author Yara Taciane
* @date 28/07/2008
*/
public void apagarResumoNegativacao(Integer numeroPenultimaExecResumoNegat)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
try {
String hql = " delete "
+ " from gcom.cobranca.ResumoNegativacao"
+ " where numeroExecucaoResumoNegativacao = " + numeroPenultimaExecResumoNegat;
session.createQuery(hql).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);
}
}
/**
*
* Consulta os itens do registro do NegativadorMovimentoReg passado
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0001] Processar Itens da Negativa��o
*
* @author Thiago Toscano
* @date 07/01/2008
*/
public List consultarNegativadorMovimentoRegItem(Integer codigoNegativadorMovimentoReg)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String sql = " SELECT ni.nmri_id as id, " +
"ni.cdst_id as idDebitoSituacao, " +
"ni.cdst_idaposexclusao as idDebitoSituacaoAposExclusao, " +
"ni.nmri_icsitdefinitiva as icSituacaoDefinitiva, " +
"ni.nmri_vldebito as valorDebito, " +
"ni.cnta_id as idConta, " +
"cg.cntg_ichistorico as icContaHistorico, " +
"ni.gpag_id as idGuiaPagamento, " +
"gpg.gpge_ichistorico as icGuiaPagamentoHistorico, " +
"ni.nmri_dtsituacaodebito as dataSituacaoDebito, " +
"ni.nmri_dtsitdebaposexclusao as dataSituacaoDebitoApos, " +
"ni.dotp_id as idDocumentoTipo " +
"FROM cobranca.negatd_mov_reg_item ni " +
"left outer join faturamento.conta_geral cg on cg.cnta_id = ni.cnta_id " +
"left outer join faturamento.guia_pagamento_geral gpg on gpg.gpag_id = ni.gpag_id " +
"where ni.nmrg_id = " + codigoNegativadorMovimentoReg;
retorno = (List) session.createSQLQuery(sql)
.addScalar("id", Hibernate.INTEGER)
.addScalar("idDebitoSituacao", Hibernate.INTEGER)
.addScalar("idDebitoSituacaoAposExclusao", Hibernate.INTEGER)
.addScalar("icSituacaoDefinitiva", Hibernate.SHORT)
.addScalar("valorDebito", Hibernate.BIG_DECIMAL)
.addScalar("idConta", Hibernate.INTEGER)
.addScalar("icContaHistorico", Hibernate.SHORT)
.addScalar("idGuiaPagamento", Hibernate.INTEGER)
.addScalar("icGuiaPagamentoHistorico", Hibernate.SHORT)
.addScalar("dataSituacaoDebito", Hibernate.DATE)
.addScalar("dataSituacaoDebitoApos", Hibernate.DATE)
.addScalar("idDocumentoTipo", Hibernate.INTEGER)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Consulta a NegativacaoComando de um negativadormovimento
*
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0005] Determinar Negativa��o do Imovel
*
* @author Thiago Toscano
* @date 07/01/2008
*/
public NegativacaoImoveis consultarNegativacaoImoveisDoNegativadorMovimento(Integer codigoNegativadorMovimento,Integer idImovel)
throws ErroRepositorioException {
NegativacaoImoveis retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select ni "
+ " from gcom.cobranca.NegativacaoImoveis ni "
+ " where ni.negativacaoComando.id in "
+ " ( select nm.negativacaoComando.id "
+ " from gcom.cobranca.NegativadorMovimento nm "
+ " where nm.id = " + codigoNegativadorMovimento + " )"
+ " and ni.imovel.id = " + idImovel;
List l = session.createQuery(hql).list();
if (l != null && !l.isEmpty()) {
retorno = (NegativacaoImoveis)l.iterator().next();
}
} 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 uma contahistorico a partir de uma contageral
*
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Situa��o do D�bito do Item da Negativa��o
* Item 1.1.2.1
*
* @author Thiago Toscano
* @date 09/01/2008
*
* @param codigoConta
* @return
*/
public Conta consultaConta(Integer codigoConta) throws ErroRepositorioException {
Conta c = new Conta();
Object[] retorno = null;
Session session = HibernateUtil.getSession();
try {
String sql = " select cnta.dcst_idatual as debitoCreditoSituacaoAtual,"//0
+ " cnta.cnta_amreferenciaconta as referencia ," //1
+ " cnta.imov_id as idImovel, " //2
+ " cnta.cnta_dtcancelamento as dataCancelamento, "//3
+ " cnta.cnta_id as idConta , "//4
+ " cnta.cnta_tmultimaalteracao as ultimaAlteracao, "//5
+ " cnta.cnta_vlagua as valorAgua, "//6
+ " cnta.cnta_vlesgoto as valorEsgoto, "//7
+ " cnta.cnta_vldebitos as valorDebitos, "//8
+ " cnta.cnta_vlcreditos as valorCreditos, "//9
+ " cnta.cnta_vlimpostos as valorImpostos "//10
+ " from faturamento.conta cnta "
+ " where cnta.cnta_id = "+ codigoConta;
retorno = (Object[])session.createSQLQuery(sql)
.addScalar("debitoCreditoSituacaoAtual" , Hibernate.INTEGER)
.addScalar("referencia" , Hibernate.INTEGER)
.addScalar("idImovel" , Hibernate.INTEGER)
.addScalar("dataCancelamento" , Hibernate.DATE)
.addScalar("idConta" , Hibernate.INTEGER)
.addScalar("ultimaAlteracao" , Hibernate.DATE)
.addScalar("valorAgua", Hibernate.BIG_DECIMAL)
.addScalar("valorEsgoto", Hibernate.BIG_DECIMAL)
.addScalar("valorDebitos", Hibernate.BIG_DECIMAL)
.addScalar("valorCreditos", Hibernate.BIG_DECIMAL)
.addScalar("valorImpostos", Hibernate.BIG_DECIMAL)
.setMaxResults(1).uniqueResult();
DebitoCreditoSituacao dcst = new DebitoCreditoSituacao();
dcst.setId((Integer)retorno[0]);
Imovel imovel= new Imovel();
imovel.setId((Integer)retorno[2]);
c.setReferencia((Integer)retorno[1]);
c.setDebitoCreditoSituacaoAtual(dcst);
c.setImovel(imovel);
if(retorno[3] != null){
c.setDataCancelamento((Date)retorno[3]);
}
c.setId((Integer)retorno[4]);
if(retorno[5] != null){
c.setUltimaAlteracao((Date)retorno[5]);
}
// System.out.println("UltimaAlteracao = " + (Date)retorno[5]);
c.setValorAgua((BigDecimal)retorno[6]);
c.setValorEsgoto((BigDecimal)retorno[7]);
c.setDebitos((BigDecimal)retorno[8]);
c.setValorCreditos((BigDecimal)retorno[9]);
if(retorno[10]!= null ){
c.setValorImposto((BigDecimal)retorno[10]);
}
} 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 c;
}
/**
* Consultar uma contahistorico a partir de uma contageral
*
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Situa��o do D�bito do Item da Negativa��o
* Item 1.1.2.1
*
* @author Thiago Toscano
* @date 09/01/2008
*
* @param codigoConta
* @return
*/
public ContaHistorico consultaContaHistorico(Integer codigoConta) throws ErroRepositorioException {
ContaHistorico ch = new ContaHistorico();
Object[] retorno = null;
Session session = HibernateUtil.getSession();
try {
String sql = " select cnhi.dcst_idatual debitoCreditoSituacaoAtual,"//0
+ " cnhi.cnhi_amreferenciaconta as referencia ,"//1
+ " cnhi.imov_id as idImovel , "//2
+ " cnhi.cnhi_dtcancelamento as dataCancelamento ,"//3
+ " cnhi.cnta_id as idConta ,"//4
+ " cnhi.cnhi_tmultimaalteracao as ultimaAlteracao "//5
+ " ,cnhi.cnhi_vlagua as valorAgua, "//6
+ " cnhi.cnhi_vlesgoto as valorEsgoto, "//7
+ " cnhi.cnhi_vldebitos as valorDebitos, "//8
+ " cnhi.cnhi_vlcreditos as valorCreditos, "//9
+ " cnhi.cnhi_vlimpostos as valorImpostos "//10
+ " from faturamento.conta_historico cnhi "
+ " where cnhi.cnta_id = "+ codigoConta;
retorno = (Object[])session.createSQLQuery(sql)
.addScalar("debitoCreditoSituacaoAtual" , Hibernate.INTEGER)
.addScalar("referencia" , Hibernate.INTEGER)
.addScalar("idImovel" , Hibernate.INTEGER)
.addScalar("dataCancelamento" , Hibernate.DATE)
.addScalar("idConta" , Hibernate.INTEGER)
.addScalar("ultimaAlteracao" , Hibernate.DATE)
.addScalar("valorAgua", Hibernate.BIG_DECIMAL)
.addScalar("valorEsgoto", Hibernate.BIG_DECIMAL)
.addScalar("valorDebitos", Hibernate.BIG_DECIMAL)
.addScalar("valorCreditos", Hibernate.BIG_DECIMAL)
.addScalar("valorImpostos", Hibernate.BIG_DECIMAL)
.setMaxResults(1).uniqueResult();
// if (retorno == null){
// System.out.println(" ### Proc135.Rep3785 retorno is null : " + codigoConta);
// } else {
// System.out.println(" ### Proc135.Rep3787 retorno[0] : " + retorno[0]);
// }
DebitoCreditoSituacao dcst = new DebitoCreditoSituacao();
dcst.setId((Integer)retorno[0]);
Imovel imovel= new Imovel();
imovel.setId((Integer)retorno[2]);
ch.setAnoMesReferenciaConta((Integer)retorno[1]);
ch.setDebitoCreditoSituacaoAtual(dcst);
ch.setImovel(imovel);
if (retorno[3] != null){
ch.setDataCancelamento((Date)retorno[3]);
}
ch.setId((Integer)retorno[4]);
if (retorno[5] != null){
ch.setUltimaAlteracao((Date)retorno[5]);
}
ch.setValorAgua((BigDecimal)retorno[6]);
ch.setValorEsgoto((BigDecimal)retorno[7]);
ch.setValorDebitos((BigDecimal)retorno[8]);
ch.setValorCreditos((BigDecimal)retorno[9]);
if(retorno[10]!= null ){
ch.setValorImposto((BigDecimal)retorno[10]);
}
} 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 ch;
}
/**
* Consulta uma conta historico caso a conta mais atual esteja no historico
*
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Situa��o do D�bito do Item da Negativa��o
* Item 1.1.2.2.3
*
* @author Thiago Toscano
* @date 09/01/2008
*
* @param codigoConta
* @return
*/
public ContaHistorico consultaContaHistoricoMaisAtual(Integer codigoImovel, int anoMesReferenciaConta) throws ErroRepositorioException {
ContaHistorico ch = new ContaHistorico();
Object[] retorno = null;
Session session = HibernateUtil.getSession();
try {
String sql = " select cnhi.dcst_idatual as debitoCreditoSituacaoAtual,"//0
+ " cnhi.cnhi_dtcancelamento as dataCancelamento ,"//1
+ " cnhi.imov_id as idImovel ,"//2
+ " cnhi.cnta_id as idConta ,"//3
+ " cnhi.cnhi_tmultimaalteracao as ultimaAlteracao, "//4
+ " cnhi.cnhi_vlagua as valorAgua, "//5
+ " cnhi.cnhi_vlesgoto as valorEsgoto, "//6
+ " cnhi.cnhi_vldebitos as valorDebitos, "//7
+ " cnhi.cnhi_vlcreditos as valorCreditos, "//8
+ " cnhi.cnhi_vlimpostos as valorImpostos "//9
+ " from faturamento.conta_historico cnhi "
+ " where cnhi.cnhi_amreferenciaconta = " + anoMesReferenciaConta
+ " and cnhi.dcst_idatual <> 4"
+ " and cnhi.imov_id = "+ codigoImovel ;
retorno = (Object[])session.createSQLQuery(sql)
.addScalar("debitoCreditoSituacaoAtual" , Hibernate.INTEGER)
.addScalar("dataCancelamento" , Hibernate.DATE)
.addScalar("idImovel" , Hibernate.INTEGER)
.addScalar("idConta" , Hibernate.INTEGER)
.addScalar("ultimaAlteracao" , Hibernate.DATE)
.addScalar("valorAgua", Hibernate.BIG_DECIMAL)
.addScalar("valorEsgoto", Hibernate.BIG_DECIMAL)
.addScalar("valorDebitos", Hibernate.BIG_DECIMAL)
.addScalar("valorCreditos", Hibernate.BIG_DECIMAL)
.addScalar("valorImpostos", Hibernate.BIG_DECIMAL)
.setMaxResults(1).uniqueResult();
if(retorno != null){
DebitoCreditoSituacao dcst = new DebitoCreditoSituacao();
dcst.setId((Integer)retorno[0]);
if (retorno[1] != null){
ch.setDataCancelamento((Date)retorno[1]);
}
Imovel imovel= new Imovel();
imovel.setId((Integer)retorno[2]);
if (retorno[4] != null){
ch.setUltimaAlteracao((Date)retorno[4]);
}
ch.setId((Integer)retorno[3]);
ch.setDebitoCreditoSituacaoAtual(dcst);
ch.setImovel(imovel);
ch.setAnoMesReferenciaConta(anoMesReferenciaConta);
ch.setValorAgua((BigDecimal)retorno[5]);
ch.setValorEsgoto((BigDecimal)retorno[6]);
ch.setValorDebitos((BigDecimal)retorno[7]);
ch.setValorCreditos((BigDecimal)retorno[8]);
if(retorno[9]!= null ){
ch.setValorImposto((BigDecimal)retorno[9]);
}
}
} 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 ch;
}
/**
* Consulta uma conta caso a conta mais atual ainda n�o esteja no historico
*
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Situa��o do D�bito do Item da Negativa��o
* Item 1.1.2.2.3
*
* @author Thiago Toscano
* @date 09/01/2008
*
* @param codigoConta
* @return
*/
public Conta consultaContaMaisAtual(Integer codigoImovel, int anoMesReferenciaConta) throws ErroRepositorioException {
Conta c = null;
Object[] retorno = null;
Session session = HibernateUtil.getSession();
try {
String sql = " select cnta.cnta_id as idConta ,"
+ " cnta.dcst_idatual as idDebitoCreditoSituacaoAtual,"
+ " cnta.cnta_dtcancelamento as dataCancelamento ,"
+ " cnta.cnta_tmultimaalteracao as ultimaAlteracao, "
+ " cnta.cnta_vlagua as valorAgua, "
+ " cnta.cnta_vlesgoto as valorEsgoto, "
+ " cnta.cnta_vldebitos as valorDebitos, "
+ " cnta.cnta_vlcreditos as valorCreditos, "
+ " cnta.cnta_vlimpostos as valorImpostos "
+ " from faturamento.conta cnta "
+ " where cnta.cnta_amreferenciaconta = "+ anoMesReferenciaConta
+ " and cnta.dcst_idatual <> 4 "
+ " and cnta.imov_id = " + codigoImovel;
retorno = (Object[])session.createSQLQuery(sql)
.addScalar("idConta" , Hibernate.INTEGER)
.addScalar("idDebitoCreditoSituacaoAtual" , Hibernate.INTEGER)
.addScalar("dataCancelamento" , Hibernate.DATE)
.addScalar("ultimaAlteracao" , Hibernate.DATE)
.addScalar("valorAgua", Hibernate.BIG_DECIMAL)
.addScalar("valorEsgoto", Hibernate.BIG_DECIMAL)
.addScalar("valorDebitos", Hibernate.BIG_DECIMAL)
.addScalar("valorCreditos", Hibernate.BIG_DECIMAL)
.addScalar("valorImpostos", Hibernate.BIG_DECIMAL)
.setMaxResults(1).uniqueResult();
if(retorno != null){
c = new Conta();
DebitoCreditoSituacao dcst = new DebitoCreditoSituacao();
dcst.setId((Integer)retorno[1]);
c.setId((Integer)retorno[0]);
c.setDebitoCreditoSituacaoAtual(dcst);
if(retorno[2]!= null){
c.setDataCancelamento((Date)retorno[2]);
}
if(retorno[3] != null){
c.setUltimaAlteracao((Date)retorno[3]);
}
c.setReferencia(anoMesReferenciaConta);
c.setValorAgua((BigDecimal)retorno[4]);
c.setValorEsgoto((BigDecimal)retorno[5]);
c.setDebitos((BigDecimal)retorno[6]);
c.setValorCreditos((BigDecimal)retorno[7]);
if(retorno[8]!= null ){
c.setValorImposto((BigDecimal)retorno[8]);
}
}
} 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 c;
}
/**
* Consultar uma contahistorico a partir de uma contageral
*
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Situa��o do D�bito do Item da Negativa��o
* Item 1.1.2.1
*
* @author Thiago Toscano
* @date 09/01/2008
*
* @param codigoConta
* @return
*/
public GuiaPagamento consultaGuiaPagamento(Integer codigoGuiaPagamento) throws ErroRepositorioException {
GuiaPagamento gp = new GuiaPagamento();
Object[] retorno = null;
Session session = HibernateUtil.getSession();
try {
String sql = " select gpag.dcst_idatual as debitoCreditoSituacaoAtual,"
+ " gpag.gpag_tmultimaalteracao as ultimaAlteracao "
+ " from faturamento.guia_pagamento gpag "
+ " where gpag.gpag_id = "+ codigoGuiaPagamento;
retorno = (Object[])session.createSQLQuery(sql)
.addScalar("debitoCreditoSituacaoAtual" , Hibernate.INTEGER)
.addScalar("ultimaAlteracao" , Hibernate.DATE)
.setMaxResults(1).uniqueResult();
DebitoCreditoSituacao dcst = new DebitoCreditoSituacao();
dcst.setId((Integer)retorno[0]);
gp.setDebitoCreditoSituacaoAtual(dcst);
gp.setUltimaAlteracao((Date)retorno[1]);
} 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 gp;
}
/**
* Consultar uma contahistorico a partir de uma contageral
*
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Situa��o do D�bito do Item da Negativa��o
* Item 1.1.2.1
*
* @author Thiago Toscano
* @date 09/01/2008
*
* @param codigoConta
* @return
*/
public GuiaPagamentoHistorico consultaGuiaPagamentoHistorico(Integer codigoGuiaPagamento) throws ErroRepositorioException {
GuiaPagamentoHistorico gph = new GuiaPagamentoHistorico();
Object[] retorno = null;
Session session = HibernateUtil.getSession();
try {
String sql = " select gphi.dcst_idatual as debitoCreditoSituacaoAtual,"
+ " gphi.gphi_tmultimaalteracao as ultimaAlteracao, "
+ " gphi.imov_id as idImovel, "
+ " gphi.clie_id as idCliente, "
+ " gphi.gphi_amreferenciacontabil as anoMesReferencia "
+ " from faturamento.guia_pagamento_historico gphi "
+ " where gphi.gpag_id = "+ codigoGuiaPagamento;
retorno = (Object[])session.createSQLQuery(sql)
.addScalar("debitoCreditoSituacaoAtual" , Hibernate.INTEGER)
.addScalar("ultimaAlteracao" , Hibernate.DATE)
.addScalar("idImovel" , Hibernate.INTEGER)
.addScalar("idCliente" , Hibernate.INTEGER)
.addScalar("anoMesReferencia" , Hibernate.INTEGER)
.setMaxResults(1).uniqueResult();
//debitoCreditoSituacaoAtual
DebitoCreditoSituacao dcst = new DebitoCreditoSituacao();
dcst.setId((Integer)retorno[0]);
gph.setDebitoCreditoSituacaoByDcstIdatual(dcst);
//ultimaAlteracao
gph.setUltimaAlteracao((Date)retorno[1]);
//im�vel
if((Integer)retorno[2] != null){
Imovel imovel = new Imovel();
imovel.setId((Integer)retorno[2]);
gph.setImovel(imovel);
}
//cliente
if((Integer)retorno[3] != null){
Cliente cliente = new Cliente();
cliente.setId((Integer)retorno[3]);
gph.setCliente(cliente);
}
//anoMesReferencia
gph.setAnoMesReferenciaContabil((Integer)retorno[4]);
} 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 gph;
}
/**
*
* M�todo que atualiza o imovel cobranca situacao tipo
* [UC0688] Gerar Resumo Diario da Negativacao
* [SB0005] Determinar Negativa��o do Imovle
* Item 2.1.4
*
* @author Thiago Toscano
* @date 08/01/2008
*
* @param codigoImovel
* @param codigoCobrancaSituacao
*/
public List consultarImovelCobrancaSituacao(Integer codigoImovel, Integer codigoCobrancaSituacao) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select ics.id "
+ " from gcom.cadastro.imovel.ImovelCobrancaSituacao ics"
+ " where ics.imovel.id = " + codigoImovel
// + " and ics.dataRetiradaCobranca is null "
+ " and ics.cobrancaSituacao.id = " + codigoCobrancaSituacao
+ " ";
retorno = (List) session.createQuery(hql).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;
}
/**
* M�todo que consulta os pagamentos passando o codigo da conta ou do guia de pagamento
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Situa��o do D�bito do Item da Negativa��o
* Item 4.1.1 ou Item 4.2.1
*
* @author Thiago Toscano
* @date 10/01/2008
*
* @param codigoConta
* @param codigoGuiaPagamento
* @return
*/
public Collection consultarPagamentoDoItem(Integer codigoConta, Integer codigoGuiaPagamento ) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String sql = " select pgmt.pgmt_id as idPagamento,"
+ " pgmt.pgmt_dtpagamento as dataPagamento, "
+ " pgmt.pgmt_vlpagamento as valorPagamento "
+ " from arrecadacao.pagamento pgmt "
+ " where ";
if(codigoConta != null){
sql = sql + "pgmt.cnta_id = "+codigoConta;
}else if(codigoGuiaPagamento != null){
sql = sql + "pgmt.gpag_id = "+codigoGuiaPagamento;
}
sql = sql + " and pgmt.pgst_idatual = :pagClassificado " ;
Collection coll =(Collection) session.createSQLQuery(sql)
.addScalar("idPagamento" , Hibernate.INTEGER)
.addScalar("dataPagamento" , Hibernate.DATE)
.addScalar("valorPagamento", Hibernate.BIG_DECIMAL)
.setInteger("pagClassificado",PagamentoSituacao.PAGAMENTO_CLASSIFICADO)
.list();
if (coll != null) {
Iterator it = coll.iterator();
while(it.hasNext()) {
Object[] obj = (Object[]) it.next();
Pagamento p = new Pagamento();
p.setId((Integer)obj[0]);
p.setDataPagamento((Date)obj[1]);
p.setValorPagamento((BigDecimal)obj[2]);
retorno.add(p);
}
}
} 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;
}
// /**
// * M�todo que consulta os pagamentos historcio passando o codigo da conta historico ou do guia de pagamento
// * [UC0688] Gerar Resumo Di�rio da Negativa��o
// * [SB0002] Determinar Situa��o do D�bito do Item da Negativa��o
// * Item 4.1.2 ou Item 4.2.2
// *
// * @author Thiago Toscano
// * @date 10/01/2008
// *
// * @param codigoContaHistorico
// * @param codigoGuiaPagamento
// * @return
// */
// public Collection consultarPagamentoHistorcioDoItem(Integer codigoContaHistorico, Integer codigoGuiaPagamento ) throws ErroRepositorioException {
// List retorno = new ArrayList();
// Session session = HibernateUtil.getSession();
//
// try {
// String sql = " select pghi.pghi_id as idPagamento,"
// + " pghi.pghi_dtpagamento as dataPagamento "
// + " from arrecadacao.pagamento_historico pghi "
// + " where ";
// if(codigoContaHistorico != null){
// sql = sql + "pghi.cnta_id = "+codigoContaHistorico;
// }else if(codigoGuiaPagamento != null){
// sql = sql + "pghi.gpag_id = "+codigoGuiaPagamento;
// }
//
// Collection coll =(Collection) session.createSQLQuery(sql)
// .addScalar("idPagamento" , Hibernate.INTEGER)
// .addScalar("dataPagamento" , Hibernate.DATE).list();
//
// if (coll != null) {
// Iterator it = coll.iterator();
// while(it.hasNext()) {
// Object[] obj = (Object[]) it.next();
//
// Pagamento p = new Pagamento();
// p.setId((Integer)obj[0]);
// p.setDataPagamento((Date)obj[1]);
//
// retorno.add(p);
//
// }
// }
//
// } 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;
// }
/**
* M�todo que consulta os pagamentos historcio passando o codigo da conta historico ou do guia de pagamento
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Situa��o do D�bito do Item da Negativa��o
* Item 4.1.2 ou Item 4.2.2
*
* @author Thiago Toscano
* @date 10/01/2008
*
* @param codigoContaHistorico
* @param codigoGuiaPagamento
* @return
*/
public Collection consultarPagamentoHistorcioDoItem(ContaHistorico ch, GuiaPagamentoHistorico gph) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String sql = " select pghi.pghi_id as idPagamento,"
+ " pghi.pghi_dtpagamento as dataPagamento, "
+ " pghi.pghi_vlpagamento as valorPagamento "
+ " from arrecadacao.pagamento_historico pghi "
+ " where ";
if(ch != null){
if(ch.getImovel()!= null){
sql = sql + "pghi.imov_id = "+ch.getImovel().getId() + " and ";
}
sql = sql + " pghi.pghi_amreferenciapagamento ="+ ch.getAnoMesReferenciaConta() + " and ";
sql = sql + " pghi.dotp_id ="+ DocumentoTipo.CONTA + " and ";
sql = sql + " pghi.pgst_idatual ="+ PagamentoSituacao.PAGAMENTO_CLASSIFICADO;
}else if(gph != null){
if(gph.getImovel()!= null){
sql = sql + "pghi.imov_id = "+gph.getImovel().getId() + " and ";
}
if(gph.getCliente()!= null){
sql = sql + "pghi.clie_id = "+gph.getCliente().getId() + " and ";
}
sql = sql + " pghi.pghi_amreferenciapagamento ="+ gph.getAnoMesReferenciaContabil() + " and ";
sql = sql + " pghi.dotp_id ="+ DocumentoTipo.GUIA_PAGAMENTO + " and ";
sql = sql + " pghi.pgst_idatual ="+ PagamentoSituacao.PAGAMENTO_CLASSIFICADO;
}
Collection coll =(Collection) session.createSQLQuery(sql)
.addScalar("idPagamento" , Hibernate.INTEGER)
.addScalar("dataPagamento" , Hibernate.DATE)
.addScalar("valorPagamento", Hibernate.BIG_DECIMAL).list();
if (coll != null) {
Iterator it = coll.iterator();
while(it.hasNext()) {
Object[] obj = (Object[]) it.next();
Pagamento p = new Pagamento();
p.setId((Integer)obj[0]);
p.setDataPagamento((Date)obj[1]);
p.setValorPagamento((BigDecimal)obj[2]);
retorno.add(p);
}
}
} 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;
}
/**
* M�todo usado para consulta de comandos de negativa��o por tipo de comando
* (nesse caso crit�rio)usado no caso de uso [UC0691]
*
* @author Thiago Vieira
* @date 16/01/2008
*
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarComandoNegativacaoTipoCriterio(
ComandoNegativacaoTipoCriterioHelper comandoNegativacaoTipoCriterioHelper) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = "select ncri from " +
"gcom.cobranca.NegativacaoCriterio ncri " +
"left join fetch ncri.negativacaoComando ncom " +
"left join fetch ncri.cliente clie " +
"left join fetch ncri.clienteRelacaoTipo crtp " +
"left join fetch ncom.negativador nega " +
"left join fetch ncom.usuario usua " +
"where 1 = 1 ";
String filtro = "";
if (comandoNegativacaoTipoCriterioHelper.getIdNegativador() != null && comandoNegativacaoTipoCriterioHelper.getIdNegativador() > 0){
filtro = filtro + "and nega.id = " + comandoNegativacaoTipoCriterioHelper.getIdNegativador();
}
if (comandoNegativacaoTipoCriterioHelper.getTitulo() != null && !comandoNegativacaoTipoCriterioHelper.getTitulo().equals("")) {
if(comandoNegativacaoTipoCriterioHelper.getTipoPesquisaTitulo().equals(ConstantesSistema.TIPO_PESQUISA_INICIAL)){
hql = hql + " and upper(ncri.descricaoTitulo) like '"
+ comandoNegativacaoTipoCriterioHelper.getTitulo().toUpperCase() + "%'";
}else{
hql = hql + " and upper(ncri.descricaoTitulo) like '%"
+ comandoNegativacaoTipoCriterioHelper.getTitulo().toUpperCase() + "%'";
}
}
if (comandoNegativacaoTipoCriterioHelper.getComandoSimulado() != 0 && comandoNegativacaoTipoCriterioHelper.getComandoSimulado() != ConstantesSistema.TODOS){
filtro = filtro + " and ncom.indicadorSimulacao = " + comandoNegativacaoTipoCriterioHelper.getComandoSimulado();
}
if (comandoNegativacaoTipoCriterioHelper.getCodigoCliente() != null && comandoNegativacaoTipoCriterioHelper.getCodigoCliente() > 0){
filtro = filtro + " and clie.id = " + comandoNegativacaoTipoCriterioHelper.getCodigoCliente();
}
if (comandoNegativacaoTipoCriterioHelper.getIdTipoRelacao() != null && comandoNegativacaoTipoCriterioHelper.getIdTipoRelacao() > 0){
filtro = filtro + " and crtp.id = "+ comandoNegativacaoTipoCriterioHelper.getIdTipoRelacao();
}
if (comandoNegativacaoTipoCriterioHelper.getIdGrupoCobranca() != null && comandoNegativacaoTipoCriterioHelper.getIdGrupoCobranca() > 0){
filtro = filtro + " and ncri.id in (select nccg.comp_id.negativacaoCriterio.id from gcom.cobranca.NegativCritCobrGrupo nccg where nccg.comp_id.cobrancaGrupo.id = " + comandoNegativacaoTipoCriterioHelper.getIdGrupoCobranca() + ")";
}
if (comandoNegativacaoTipoCriterioHelper.getIdGerenciaRegional() != null && comandoNegativacaoTipoCriterioHelper.getIdGerenciaRegional() > 0){
filtro = filtro + " and ncri.id in (select ncgr.comp_id.negativacaoCriterio.id from gcom.cobranca.NegativCritGerReg ncgr where ncgr.comp_id.gerenciaRegional.id = " + comandoNegativacaoTipoCriterioHelper.getIdGerenciaRegional() + ")";
}
if (comandoNegativacaoTipoCriterioHelper.getIdUnidadeNegocio() != null && comandoNegativacaoTipoCriterioHelper.getIdUnidadeNegocio() > 0){
filtro = filtro + " and ncri.id in (select ncun.comp_id.negativacaoCriterio.id from gcom.cobranca.NegativCritUndNeg ncun where ncun.comp_id.unidadeNegocio.id = " + comandoNegativacaoTipoCriterioHelper.getIdUnidadeNegocio() + ")";
}
if (comandoNegativacaoTipoCriterioHelper.getIdEloPolo() != null && comandoNegativacaoTipoCriterioHelper.getIdEloPolo() > 0){
filtro = filtro + " and ncri.id in (select ncel.comp_id.negativacaoCriterio.id from gcom.cobranca.NegativCritElo ncel where ncel.comp_id.localidade.id = " + comandoNegativacaoTipoCriterioHelper.getIdEloPolo() + ")";
}
if (comandoNegativacaoTipoCriterioHelper.getCodigoLocalidadeInicial() != null && comandoNegativacaoTipoCriterioHelper.getCodigoLocalidadeInicial() > 0){
filtro = filtro + " and ncri.localidadeInicial = " + comandoNegativacaoTipoCriterioHelper.getCodigoLocalidadeInicial();
filtro = filtro + " and ncri.localidadeFinal = " + comandoNegativacaoTipoCriterioHelper.getCodigoLocalidadeFinal();
}
if (comandoNegativacaoTipoCriterioHelper.getCodigoSetorComercialInicial() != null && comandoNegativacaoTipoCriterioHelper.getCodigoSetorComercialInicial() > 0){
filtro = filtro + " and ncri.codigoSetorComercialInicial = " + comandoNegativacaoTipoCriterioHelper.getCodigoSetorComercialInicial();
filtro = filtro + " and ncri.codigoSetorComercialFinal = " + comandoNegativacaoTipoCriterioHelper.getCodigoSetorComercialFinal();
}
if (comandoNegativacaoTipoCriterioHelper.getGeracaoComandoDataInicial() != null && !comandoNegativacaoTipoCriterioHelper.getGeracaoComandoDataInicial().equals("")){
String geracaoComandoDataInicialString = Util.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper.getGeracaoComandoDataInicial());
String geracaoComandoDataFinalString = Util.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper.getGeracaoComandoDataFinal());
if (geracaoComandoDataInicialString != null && !geracaoComandoDataInicialString.equals("")
&& geracaoComandoDataInicialString.trim().length() == 8) {
geracaoComandoDataInicialString = geracaoComandoDataInicialString.substring(0, 4) + "-" +
geracaoComandoDataInicialString.substring(4, 6) + "-" + geracaoComandoDataInicialString.substring(6, 8);
}
if (geracaoComandoDataFinalString != null && !geracaoComandoDataFinalString.equals("")
&& geracaoComandoDataFinalString.trim().length() == 8) {
geracaoComandoDataFinalString = geracaoComandoDataFinalString.substring(0, 4) + "-" +
geracaoComandoDataFinalString.substring(4, 6) + "-" + geracaoComandoDataFinalString.substring(6, 8);
}
if (geracaoComandoDataInicialString != null && !geracaoComandoDataInicialString.equals("") &&
geracaoComandoDataFinalString != null && !geracaoComandoDataFinalString.equals("")){
filtro = filtro + " and ncom.dataHoraComando >= to_date('" + geracaoComandoDataInicialString + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
filtro = filtro + " and ncom.dataHoraComando <= to_date('" + geracaoComandoDataFinalString + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
}
}
if (comandoNegativacaoTipoCriterioHelper.getSituacaoComando().toString().equals(ConstantesSistema.COMANDO_SIMULADO_SIM)){
if (comandoNegativacaoTipoCriterioHelper.getExecucaoComandoDataInicial() != null && !comandoNegativacaoTipoCriterioHelper.getExecucaoComandoDataInicial().equals("")){
String execucaoComandoDataInicialString = Util.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper.getExecucaoComandoDataInicial());
String execucaoComandoDataFinalString = Util.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper.getExecucaoComandoDataFinal());
if (execucaoComandoDataInicialString != null && !execucaoComandoDataInicialString.equals("")
&& execucaoComandoDataInicialString.trim().length() == 8) {
execucaoComandoDataInicialString = execucaoComandoDataInicialString.substring(0, 4) + "-" +
execucaoComandoDataInicialString.substring(4, 6) + "-" + execucaoComandoDataInicialString.substring(6, 8);
}
if (execucaoComandoDataFinalString != null && !execucaoComandoDataFinalString.equals("")
&& execucaoComandoDataFinalString.trim().length() == 8) {
execucaoComandoDataFinalString = execucaoComandoDataFinalString.substring(0, 4) + "-" +
execucaoComandoDataFinalString.substring(4, 6) + "-" + execucaoComandoDataFinalString.substring(6, 8);
}
if (execucaoComandoDataInicialString != null && !execucaoComandoDataInicialString.equals("") &&
execucaoComandoDataFinalString != null && !execucaoComandoDataFinalString.equals("")){
filtro = filtro + " and ncom.dataHoraRealizacao >= to_date('" + execucaoComandoDataInicialString + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
filtro = filtro + " and ncom.dataHoraRealizacao <= to_date('" + execucaoComandoDataFinalString + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
}
}
} else if (comandoNegativacaoTipoCriterioHelper.getSituacaoComando().toString().equals(ConstantesSistema.COMANDO_SIMULADO_NAO)) {
filtro = filtro + " and ncom.dataHoraRealizacao is null ";
}
if (comandoNegativacaoTipoCriterioHelper.getReferenciaDebitoDataInicial() != null && comandoNegativacaoTipoCriterioHelper.getReferenciaDebitoDataInicial() > 0){
filtro = filtro + " and ncri.anoMesReferenciaContaInicial >= " + comandoNegativacaoTipoCriterioHelper.getReferenciaDebitoDataInicial();
filtro = filtro + " and ncri.anoMesReferenciaContaFinal <= " + comandoNegativacaoTipoCriterioHelper.getReferenciaDebitoDataFinal();
}
if (comandoNegativacaoTipoCriterioHelper.getVencimentoDebitoDataInicial() != null && !comandoNegativacaoTipoCriterioHelper.getVencimentoDebitoDataInicial().equals("")){
String vencimentoDebitoDataInicialString = Util.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper.getVencimentoDebitoDataInicial());
String vencimentoDebitoDataFinalString = Util.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper.getVencimentoDebitoDataFinal());
if (vencimentoDebitoDataInicialString != null && !vencimentoDebitoDataInicialString.equals("")
&& vencimentoDebitoDataInicialString.trim().length() == 8) {
vencimentoDebitoDataInicialString = vencimentoDebitoDataInicialString.substring(0, 4) + "-" +
vencimentoDebitoDataInicialString.substring(4, 6) + "-" + vencimentoDebitoDataInicialString.substring(6, 8);
}
if (vencimentoDebitoDataFinalString != null && !vencimentoDebitoDataFinalString.equals("")
&& vencimentoDebitoDataFinalString.trim().length() == 8) {
vencimentoDebitoDataFinalString = vencimentoDebitoDataFinalString.substring(0, 4) + "-" +
vencimentoDebitoDataFinalString.substring(4, 6) + "-" + vencimentoDebitoDataFinalString.substring(6, 8);
}
if (vencimentoDebitoDataInicialString != null && !vencimentoDebitoDataInicialString.equals("") &&
vencimentoDebitoDataFinalString != null && !vencimentoDebitoDataFinalString.equals("")){
filtro = filtro + " and ncri.dataVencimentoDebitoInicial >= to_date('" + vencimentoDebitoDataInicialString + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
filtro = filtro + " and ncri.dataVencimentoDebitoFinal <= to_date('" + vencimentoDebitoDataFinalString + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
}
}
if (comandoNegativacaoTipoCriterioHelper.getValorDebitoInicial() != null){
filtro = filtro + " and ncri.valorMinimoDebito >= " + comandoNegativacaoTipoCriterioHelper.getValorDebitoInicial();
filtro = filtro + " and ncri.valorMaximoDebito <= " + comandoNegativacaoTipoCriterioHelper.getValorDebitoFinal();
}
if (comandoNegativacaoTipoCriterioHelper.getNumeroContasInicial() > 0){
filtro = filtro + "ncri.quantidadeMinimaContas >= " + comandoNegativacaoTipoCriterioHelper.getNumeroContasInicial() + " and ";
filtro = filtro + "ncri.quantidadeMaximaContas <= " + comandoNegativacaoTipoCriterioHelper.getNumeroContasFinal() + " and ";
}
if (comandoNegativacaoTipoCriterioHelper.getCartaParcelamentoAtraso() == ConstantesSistema.SIM){
filtro = filtro + "ncri.indicadorNegativacaoRecebimentoCartaParcelamento = " + ConstantesSistema.SIM + " and ";
}
//RM4097 - adicionado por Vivianne Sousa - 19/01/2011 - analista:Ana Cristina
if(comandoNegativacaoTipoCriterioHelper.getIndicadorContaNomeCliente() != null){
if(comandoNegativacaoTipoCriterioHelper.getIndicadorContaNomeCliente().equals(ConstantesSistema.SIM)){
filtro = filtro + "and ncom.indicadorContaNomeCliente = " + ConstantesSistema.SIM ;
}else if(comandoNegativacaoTipoCriterioHelper.getIndicadorContaNomeCliente().equals(ConstantesSistema.NAO)){
filtro = filtro + "and ncom.indicadorContaNomeCliente = " + ConstantesSistema.NAO ;
}
}
retorno = (List) session.createQuery(hql + filtro).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;
}
/**
* M�todo usado para consulta de comandos de negativa��o por tipo de comando
* (nesse caso matr�cula)usado no caso de uso [UC0691]
*
* @author Thiago Vieira
* @date 16/01/2008
*
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarComandoNegativacaoTipoMatricula(
ComandoNegativacaoHelper comandoNegativacaoHelper) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select ncom from "
+ "gcom.cobranca.NegativacaoComando ncom "
+ " inner join fetch ncom.negativador n "
+ " inner join fetch ncom.usuario u "
+ " inner join fetch ncom.negativador.cliente c ";
String filtro = "where ncom.indicadorComandoCriterio = 2 and ";
if (comandoNegativacaoHelper.getIdNegativador() != null && comandoNegativacaoHelper.getIdNegativador() > 0) {
filtro = filtro + " n.id = " + comandoNegativacaoHelper.getIdNegativador() + " and ";
}
if (comandoNegativacaoHelper.getIdentificacaoCI() != null && !comandoNegativacaoHelper.getIdentificacaoCI().equals("")) {
if(comandoNegativacaoHelper.getTipoPesquisaIdentificacaoCI().equals(ConstantesSistema.TIPO_PESQUISA_INICIAL)){
filtro = filtro + "upper(ncom.descricaoComunicacaoInterna) like '"
+ comandoNegativacaoHelper.getIdentificacaoCI().toUpperCase() + "%' and ";
}else{
filtro = filtro + "upper(ncom.descricaoComunicacaoInterna) like '%"
+ comandoNegativacaoHelper.getIdentificacaoCI().toUpperCase() + "%' and ";
}
}
if (comandoNegativacaoHelper.getIdUsuarioResponsavel() != null && comandoNegativacaoHelper.getIdUsuarioResponsavel() > 0) {
filtro = filtro + "u.id = " + comandoNegativacaoHelper.getIdUsuarioResponsavel();
}
if (!filtro.equals("where ")){
hql = hql + filtro;
}
if (hql.substring(hql.length() - 5, hql.length()).equals(" and ")){
hql = Util.removerUltimosCaracteres(hql, 4);
}
retorno = (List) session.createQuery(hql).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;
}
/**
* M�todo usado para consulta de comandos de negativa��o por tipo de comando
* (nesse caso matr�cula)usado no caso de uso [UC0691]
*
* @author Thiago Vieira
* @date 16/01/2008
*
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarComandoNegativacaoTipoMatricula(
ComandoNegativacaoHelper comandoNegativacaoHelper, Integer numeroPagina) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select ncom from "
+ "gcom.cobranca.NegativacaoComando ncom "
+ " inner join fetch ncom.negativador n "
+ " inner join fetch ncom.usuario u "
+ " inner join fetch ncom.negativador.cliente c ";
String filtro = "where ncom.indicadorComandoCriterio = 2 and ";
if (comandoNegativacaoHelper.getIdNegativador() != null && comandoNegativacaoHelper.getIdNegativador() > 0) {
filtro = filtro + "n.id = " + comandoNegativacaoHelper.getIdNegativador() + " and ";
}
if (comandoNegativacaoHelper.getIdentificacaoCI() != null && !comandoNegativacaoHelper.getIdentificacaoCI().equals("")) {
if(comandoNegativacaoHelper.getTipoPesquisaIdentificacaoCI().equals(ConstantesSistema.TIPO_PESQUISA_INICIAL)){
filtro = filtro + "upper(ncom.descricaoComunicacaoInterna) like '"
+ comandoNegativacaoHelper.getIdentificacaoCI().toUpperCase() + "%' and ";
}else{
filtro = filtro + "upper(ncom.descricaoComunicacaoInterna) like '%"
+ comandoNegativacaoHelper.getIdentificacaoCI().toUpperCase() + "%' and ";
}
}
if (comandoNegativacaoHelper.getIdUsuarioResponsavel() != null && comandoNegativacaoHelper.getIdUsuarioResponsavel() > 0) {
filtro = filtro + "u.id = " + comandoNegativacaoHelper.getIdUsuarioResponsavel();
}
if (!filtro.equals("where ")){
hql = hql + filtro;
}
if (hql.substring(hql.length() - 5, hql.length()).equals(" and ")){
hql = Util.removerUltimosCaracteres(hql, 4);
}
// retorno = (List) session.createQuery(hql).list();
retorno = (List) session.createQuery(hql).setFirstResult(10 * numeroPagina).setMaxResults(10).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;
}
/**
* M�todo usado para consulta de comandos de negativa��o por tipo de comando
* (nesse caso crit�rio)usado no caso de uso [UC0691]
*
* @author Thiago Vieira
* @date 16/01/2008
*
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarComandoNegativacaoTipoCriterio(
ComandoNegativacaoTipoCriterioHelper comandoNegativacaoTipoCriterioHelper,
Integer numeroPagina) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = "select ncri from "
+ "gcom.cobranca.NegativacaoCriterio ncri "
+ "left join fetch ncri.negativacaoComando ncom "
+ "left join fetch ncri.cliente clie "
+ "left join fetch ncri.clienteRelacaoTipo crtp "
+ "left join fetch ncom.negativador nega "
+ "left join fetch ncom.usuario usua " + "where 1 = 1 ";
String filtro = "";
if (comandoNegativacaoTipoCriterioHelper.getIdNegativador() != null
&& comandoNegativacaoTipoCriterioHelper.getIdNegativador() > 0) {
filtro = filtro
+ "and nega.id = "
+ comandoNegativacaoTipoCriterioHelper
.getIdNegativador();
}
if (comandoNegativacaoTipoCriterioHelper.getTitulo() != null
&& !comandoNegativacaoTipoCriterioHelper.getTitulo()
.equals("")) {
if (comandoNegativacaoTipoCriterioHelper
.getTipoPesquisaTitulo().equals(
ConstantesSistema.TIPO_PESQUISA_INICIAL)) {
hql = hql
+ " and upper(ncri.descricaoTitulo) like '"
+ comandoNegativacaoTipoCriterioHelper.getTitulo()
.toUpperCase() + "%'";
} else {
hql = hql
+ " and upper(ncri.descricaoTitulo) like '%"
+ comandoNegativacaoTipoCriterioHelper.getTitulo()
.toUpperCase() + "%'";
}
}
if (comandoNegativacaoTipoCriterioHelper.getComandoSimulado() != 0
&& comandoNegativacaoTipoCriterioHelper
.getComandoSimulado() != ConstantesSistema.TODOS) {
filtro = filtro
+ " and ncom.indicadorSimulacao = "
+ comandoNegativacaoTipoCriterioHelper
.getComandoSimulado();
}
if (comandoNegativacaoTipoCriterioHelper.getCodigoCliente() != null
&& comandoNegativacaoTipoCriterioHelper.getCodigoCliente() > 0) {
filtro = filtro
+ " and clie.id = "
+ comandoNegativacaoTipoCriterioHelper
.getCodigoCliente();
}
if (comandoNegativacaoTipoCriterioHelper.getIdTipoRelacao() != null
&& comandoNegativacaoTipoCriterioHelper.getIdTipoRelacao() > 0) {
filtro = filtro
+ " and crtp.id = "
+ comandoNegativacaoTipoCriterioHelper
.getIdTipoRelacao();
}
if (comandoNegativacaoTipoCriterioHelper.getIdGrupoCobranca() != null
&& comandoNegativacaoTipoCriterioHelper
.getIdGrupoCobranca() > 0) {
filtro = filtro
+ " and ncri.id in (select nccg.comp_id.negativacaoCriterio.id from gcom.cobranca.NegativCritCobrGrupo nccg where nccg.comp_id.cobrancaGrupo.id = "
+ comandoNegativacaoTipoCriterioHelper
.getIdGrupoCobranca() + ")";
}
if (comandoNegativacaoTipoCriterioHelper.getIdGerenciaRegional() != null
&& comandoNegativacaoTipoCriterioHelper
.getIdGerenciaRegional() > 0) {
filtro = filtro
+ " and ncri.id in (select ncgr.comp_id.negativacaoCriterio.id from gcom.cobranca.NegativCritGerReg ncgr where ncgr.comp_id.gerenciaRegional.id = "
+ comandoNegativacaoTipoCriterioHelper
.getIdGerenciaRegional() + ")";
}
if (comandoNegativacaoTipoCriterioHelper.getIdUnidadeNegocio() != null
&& comandoNegativacaoTipoCriterioHelper
.getIdUnidadeNegocio() > 0) {
filtro = filtro
+ " and ncri.id in (select ncun.comp_id.negativacaoCriterio.id from gcom.cobranca.NegativCritUndNeg ncun where ncun.comp_id.unidadeNegocio.id = "
+ comandoNegativacaoTipoCriterioHelper
.getIdUnidadeNegocio() + ")";
}
if (comandoNegativacaoTipoCriterioHelper.getIdEloPolo() != null
&& comandoNegativacaoTipoCriterioHelper.getIdEloPolo() > 0) {
filtro = filtro
+ " and ncri.id in (select ncel.comp_id.negativacaoCriterio.id from gcom.cobranca.NegativCritElo ncel where ncel.comp_id.localidade.id = "
+ comandoNegativacaoTipoCriterioHelper.getIdEloPolo()
+ ")";
}
if (comandoNegativacaoTipoCriterioHelper
.getCodigoLocalidadeInicial() != null
&& comandoNegativacaoTipoCriterioHelper
.getCodigoLocalidadeInicial() > 0) {
filtro = filtro
+ " and ncri.localidadeInicial = "
+ comandoNegativacaoTipoCriterioHelper
.getCodigoLocalidadeInicial();
filtro = filtro
+ " and ncri.localidadeFinal = "
+ comandoNegativacaoTipoCriterioHelper
.getCodigoLocalidadeFinal();
}
if (comandoNegativacaoTipoCriterioHelper
.getCodigoSetorComercialInicial() != null
&& comandoNegativacaoTipoCriterioHelper
.getCodigoSetorComercialInicial() > 0) {
filtro = filtro
+ " and ncri.codigoSetorComercialInicial = "
+ comandoNegativacaoTipoCriterioHelper
.getCodigoSetorComercialInicial();
filtro = filtro
+ " and ncri.codigoSetorComercialFinal = "
+ comandoNegativacaoTipoCriterioHelper
.getCodigoSetorComercialFinal();
}
if (comandoNegativacaoTipoCriterioHelper
.getGeracaoComandoDataInicial() != null
&& !comandoNegativacaoTipoCriterioHelper
.getGeracaoComandoDataInicial().equals("")) {
String geracaoComandoDataInicialString = Util
.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper
.getGeracaoComandoDataInicial());
String geracaoComandoDataFinalString = Util
.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper
.getGeracaoComandoDataFinal());
if (geracaoComandoDataInicialString != null
&& !geracaoComandoDataInicialString.equals("")
&& geracaoComandoDataInicialString.trim().length() == 8) {
geracaoComandoDataInicialString = geracaoComandoDataInicialString
.substring(0, 4)
+ "-"
+ geracaoComandoDataInicialString.substring(4, 6)
+ "-"
+ geracaoComandoDataInicialString.substring(6, 8);
}
if (geracaoComandoDataFinalString != null
&& !geracaoComandoDataFinalString.equals("")
&& geracaoComandoDataFinalString.trim().length() == 8) {
geracaoComandoDataFinalString = geracaoComandoDataFinalString
.substring(0, 4)
+ "-"
+ geracaoComandoDataFinalString.substring(4, 6)
+ "-"
+ geracaoComandoDataFinalString.substring(6, 8);
}
if (geracaoComandoDataInicialString != null
&& !geracaoComandoDataInicialString.equals("")
&& geracaoComandoDataFinalString != null
&& !geracaoComandoDataFinalString.equals("")) {
filtro = filtro + " and ncom.dataHoraComando >= '"
+ geracaoComandoDataInicialString + " 00:00:00'";
filtro = filtro + " and ncom.dataHoraComando <= '"
+ geracaoComandoDataFinalString + " 23:59:59'";
}
}
if (comandoNegativacaoTipoCriterioHelper.getSituacaoComando()
.toString().equals(ConstantesSistema.COMANDO_SIMULADO_SIM)) {
if (comandoNegativacaoTipoCriterioHelper
.getExecucaoComandoDataInicial() != null
&& !comandoNegativacaoTipoCriterioHelper
.getExecucaoComandoDataInicial().equals("")) {
String execucaoComandoDataInicialString = Util
.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper
.getExecucaoComandoDataInicial());
String execucaoComandoDataFinalString = Util
.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper
.getExecucaoComandoDataFinal());
if (execucaoComandoDataInicialString != null
&& !execucaoComandoDataInicialString.equals("")
&& execucaoComandoDataInicialString.trim().length() == 8) {
execucaoComandoDataInicialString = execucaoComandoDataInicialString
.substring(0, 4)
+ "-"
+ execucaoComandoDataInicialString.substring(4,
6)
+ "-"
+ execucaoComandoDataInicialString.substring(6,
8);
}
if (execucaoComandoDataFinalString != null
&& !execucaoComandoDataFinalString.equals("")
&& execucaoComandoDataFinalString.trim().length() == 8) {
execucaoComandoDataFinalString = execucaoComandoDataFinalString
.substring(0, 4)
+ "-"
+ execucaoComandoDataFinalString
.substring(4, 6)
+ "-"
+ execucaoComandoDataFinalString
.substring(6, 8);
}
if (execucaoComandoDataInicialString != null
&& !execucaoComandoDataInicialString.equals("")
&& execucaoComandoDataFinalString != null
&& !execucaoComandoDataFinalString.equals("")) {
filtro = filtro + " and ncom.dataHoraRealizacao >= '"
+ execucaoComandoDataInicialString + " 00:00:00'";
filtro = filtro + " and ncom.dataHoraRealizacao <= '"
+ execucaoComandoDataFinalString + " 23:59:59'";
}
}
} else if (comandoNegativacaoTipoCriterioHelper
.getSituacaoComando().toString().equals(
ConstantesSistema.COMANDO_SIMULADO_NAO)) {
filtro = filtro + " and ncom.dataHoraRealizacao is null ";
}
if (comandoNegativacaoTipoCriterioHelper
.getReferenciaDebitoDataInicial() != null
&& comandoNegativacaoTipoCriterioHelper
.getReferenciaDebitoDataInicial() > 0) {
filtro = filtro
+ " and ncri.anoMesReferenciaContaInicial >= "
+ comandoNegativacaoTipoCriterioHelper
.getReferenciaDebitoDataInicial();
filtro = filtro
+ " and ncri.anoMesReferenciaContaFinal <= "
+ comandoNegativacaoTipoCriterioHelper
.getReferenciaDebitoDataFinal();
}
if (comandoNegativacaoTipoCriterioHelper
.getVencimentoDebitoDataInicial() != null
&& !comandoNegativacaoTipoCriterioHelper
.getVencimentoDebitoDataInicial().equals("")) {
String vencimentoDebitoDataInicialString = Util
.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper
.getVencimentoDebitoDataInicial());
String vencimentoDebitoDataFinalString = Util
.recuperaDataInvertida(comandoNegativacaoTipoCriterioHelper
.getVencimentoDebitoDataFinal());
if (vencimentoDebitoDataInicialString != null
&& !vencimentoDebitoDataInicialString.equals("")
&& vencimentoDebitoDataInicialString.trim().length() == 8) {
vencimentoDebitoDataInicialString = vencimentoDebitoDataInicialString
.substring(0, 4)
+ "-"
+ vencimentoDebitoDataInicialString.substring(4, 6)
+ "-"
+ vencimentoDebitoDataInicialString.substring(6, 8);
}
if (vencimentoDebitoDataFinalString != null
&& !vencimentoDebitoDataFinalString.equals("")
&& vencimentoDebitoDataFinalString.trim().length() == 8) {
vencimentoDebitoDataFinalString = vencimentoDebitoDataFinalString
.substring(0, 4)
+ "-"
+ vencimentoDebitoDataFinalString.substring(4, 6)
+ "-"
+ vencimentoDebitoDataFinalString.substring(6, 8);
}
if (vencimentoDebitoDataInicialString != null
&& !vencimentoDebitoDataInicialString.equals("")
&& vencimentoDebitoDataFinalString != null
&& !vencimentoDebitoDataFinalString.equals("")) {
filtro = filtro
+ " and ncri.dataVencimentoDebitoInicial >= '"
+ vencimentoDebitoDataInicialString + "'";
filtro = filtro
+ " and ncri.dataVencimentoDebitoFinal <= '"
+ vencimentoDebitoDataFinalString + " 23:59:59'";
}
}
if (comandoNegativacaoTipoCriterioHelper.getValorDebitoInicial() != null) {
filtro = filtro
+ " and ncri.valorMinimoDebito >= "
+ comandoNegativacaoTipoCriterioHelper
.getValorDebitoInicial();
filtro = filtro
+ " and ncri.valorMaximoDebito <= "
+ comandoNegativacaoTipoCriterioHelper
.getValorDebitoFinal();
}
if (comandoNegativacaoTipoCriterioHelper.getNumeroContasInicial() > 0) {
filtro = filtro
+ "ncri.quantidadeMinimaContas >= "
+ comandoNegativacaoTipoCriterioHelper
.getNumeroContasInicial() + " and ";
filtro = filtro
+ "ncri.quantidadeMaximaContas <= "
+ comandoNegativacaoTipoCriterioHelper
.getNumeroContasFinal() + " and ";
}
if (comandoNegativacaoTipoCriterioHelper
.getCartaParcelamentoAtraso() == ConstantesSistema.SIM) {
filtro = filtro
+ "ncri.indicadorNegativacaoRecebimentoCartaParcelamento = "
+ ConstantesSistema.SIM + " and ";
}
retorno = (List) session.createQuery(hql + filtro).setFirstResult(
10 * numeroPagina).setMaxResults(10).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;
}
/**
* M�todo usado para consulta de comandos de negativa��o por tipo de comando
* (nesse caso matr�cula)usado no caso de uso [UC0691] (sem pagina��o)
*
* @author Yara Taciane ,Vivianne Sousa
* @date 21/01/2008,14/12/2010
*
* @return Collection
* @throws ErroRepositorioException
*/
public Integer pesquisarNegativadorMovimentoCount(
NegativadorMovimentoHelper negativadorMovimentoHelper) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql2 = "select count(distinct(ngmv.ngmv_id)) as qtde "
+ " from cobranca.negativador_movimento ngmv "
+ " inner join cobranca.negativador negt on ngmv.negt_id = negt.negt_id "
+ " inner join cadastro.cliente clie on negt.clie_id = clie.clie_id "
+ " inner join cobranca.negatd_movimento_reg nmrg on ngmv.ngmv_id = nmrg.ngmv_id ";
if ((negativadorMovimentoHelper.getIdLocalidadePolo() != null && negativadorMovimentoHelper.getIdLocalidadePolo() > 0)
||(negativadorMovimentoHelper.getIdLocalidade() != null && negativadorMovimentoHelper.getIdLocalidade() > 0)
||(negativadorMovimentoHelper.getColecaoUnidadeNegocio() != null && !negativadorMovimentoHelper.getColecaoUnidadeNegocio().isEmpty())
||(negativadorMovimentoHelper.getColecaoGerenciaRegional() != null && !negativadorMovimentoHelper.getColecaoGerenciaRegional().isEmpty())) {
hql2 = hql2 + " inner join cadastro.imovel imov on nmrg.imov_id = imov.imov_id "
+ " inner join cadastro.localidade loca on imov.loca_id = loca.loca_id ";
}
String restricao = " where ";
if( negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.ACEITO){
restricao = restricao + " nmrg.nmrg_icaceito = " + ConstantesSistema.ACEITO ;
if(negativadorMovimentoHelper.getIdImovel()!= null){
restricao = restricao + " and nmrg.imov_id = " + negativadorMovimentoHelper.getIdImovel();
}
}else if(negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.NAO_ACEITO){
restricao = restricao + " nmrg.nmrg_icaceito = " + ConstantesSistema.NAO_ACEITO ;
if( negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.CORRIGIDO){
restricao = restricao + " and nmrg.nmrg_iccorrecao = " + ConstantesSistema.CORRIGIDO;
}else if(negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.NAO_CORRIGIDO){
restricao = restricao + " and nmrg.nmrg_iccorrecao = " + ConstantesSistema.NAO_CORRIGIDO;
}
if(negativadorMovimentoHelper.getIdImovel()!= null){
restricao = restricao + " and nmrg.imov_id = " + negativadorMovimentoHelper.getIdImovel();
}
}else{
if(negativadorMovimentoHelper.getIdImovel()!= null){
restricao = restricao + " nmrg.imov_id =" + negativadorMovimentoHelper.getIdImovel();
}else{
restricao = restricao + "1=1";
}
}
if (negativadorMovimentoHelper.getIdNegativador() != null && negativadorMovimentoHelper.getIdNegativador() > 0) {
restricao = restricao + " and negt.negt_id = " + negativadorMovimentoHelper.getIdNegativador();
}
if (negativadorMovimentoHelper.getCodigoMovimento() != -1) {
restricao = restricao + " and ngmv.ngmv_cdmovimento = " + negativadorMovimentoHelper.getCodigoMovimento();
}
if (negativadorMovimentoHelper.getNumeroSequencialArquivo() != null && !"".equals(negativadorMovimentoHelper.getNumeroSequencialArquivo())) {
restricao = restricao + " and ngmv.ngmv_nnnsaenvio = " + negativadorMovimentoHelper.getNumeroSequencialArquivo();
}
if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
(negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between :dataInicial and :dataFinal ";
}
if (negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.COM_RETORNO) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoretorno is not null " ;
}else if(negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.SEM_RETORNO){
restricao = restricao + " and ngmv.ngmv_dtprocessamentoretorno is null " ;
}
if (negativadorMovimentoHelper.getIdLocalidadePolo() != null && negativadorMovimentoHelper.getIdLocalidadePolo() > 0) {
restricao = restricao + " and loca.loca_cdelo = " + negativadorMovimentoHelper.getIdLocalidadePolo();
}
if (negativadorMovimentoHelper.getIdLocalidade() != null && negativadorMovimentoHelper.getIdLocalidade() > 0) {
restricao = restricao + " and loca.loca_id = " + negativadorMovimentoHelper.getIdLocalidade();
}
if (negativadorMovimentoHelper.getColecaoGerenciaRegional() != null && !negativadorMovimentoHelper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoGerenciaRegional().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional obj = (GerenciaRegional) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and loca.greg_id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
restricao = restricao + gerenciaRegional.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (negativadorMovimentoHelper.getColecaoUnidadeNegocio() != null && !negativadorMovimentoHelper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and loca.uneg_id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
restricao = restricao + unidadeNegocio.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (negativadorMovimentoHelper.getIndicadorRegistro() != ConstantesSistema.ACEITO &&
negativadorMovimentoHelper.getColecaoMotivoRejeicao() != null &&
!negativadorMovimentoHelper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
hql2 = hql2 + " inner join cobranca.negatd_mov_reg_ret_mot nmrr on nmrg.nmrg_id = nmrr.nmrg_id ";
Iterator iterator = negativadorMovimentoHelper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrr.nrmt_id in ( ";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + " ) ";
// restricao = restricao + " and nmrr.nrmt_id = ( select nmrr2.nrmt_id "
// + " from cobranca.negatd_mov_reg_ret_mot nmrr2 "
// + " where nmrr2.nrmt_id in ( ";
// while (iterator.hasNext()) {
// negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
// restricao = restricao + negativadorRetornoMotivo.getId() + ",";
// }
// restricao = Util.removerUltimosCaracteres(restricao, 1);
// restricao = restricao + " ) "
// + " and nmrr2.nmrg_id = (select max(nmrg_id) "
// + " from cobranca.negatd_movimento_reg nmrg2"
// + " inner join cobranca.negativador_movimento ngmv2 on nmrg2.ngmv_id = ngmv2.ngmv_id"
// + " where nmrg2.nmrg_icaceito = " + ConstantesSistema.NAO_ACEITO
// + " and ngmv2.negt_id = " + negativadorMovimentoHelper.getIdNegativador()
// + " and nmrg2.imov_id = imov.imov_id))";
}
}
// String restricao1 = "";
//
// if( negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.ACEITO){
// restricao1 = restricao1 + " ngmv.id in ( select nmrg.negativadorMovimento.id from gcom.cobranca.NegativadorMovimentoReg nmrg where nmrg.indicadorAceito = " + ConstantesSistema.ACEITO ;
// if(negativadorMovimentoHelper.getIdImovel()!= null){
// restricao1 = restricao1 + " and nmrg.imovel.id = " + negativadorMovimentoHelper.getIdImovel() + " )";
// }else{
// restricao1 = restricao1 + " )";
// }
// }else if(negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.NAO_ACEITO){
// restricao1 = restricao1 + " ngmv.id in ( select nmrg.negativadorMovimento.id from gcom.cobranca.NegativadorMovimentoReg nmrg where nmrg.indicadorAceito = " + ConstantesSistema.NAO_ACEITO ;
// if( negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.CORRIGIDO){
// restricao1 = restricao1 + " and nmrg.indicadorCorrecao = " + ConstantesSistema.CORRIGIDO;
// }else if(negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.NAO_CORRIGIDO){
// restricao1 = restricao1 + " and nmrg.indicadorCorrecao = " + ConstantesSistema.NAO_CORRIGIDO;
// }
// if(negativadorMovimentoHelper.getIdImovel()!= null){
// restricao1 = restricao1 + " and nmrg.imovel.id = " + negativadorMovimentoHelper.getIdImovel() + " )";
// }else{
// restricao1 = restricao1 + " )";
// }
// }else{
//
// if(negativadorMovimentoHelper.getIdImovel()!= null){
// restricao1 = restricao1 + " ngmv.id in ( select nmrg.negativadorMovimento.id from gcom.cobranca.NegativadorMovimentoReg nmrg where nmrg.imovel.id =" + negativadorMovimentoHelper.getIdImovel() + " )";
//
// }else{
// restricao1 = restricao1 + "1=1";
// }
// }
//
// String hql2 = "select ngmv "
// + " from gcom.cobranca.NegativadorMovimento ngmv "
// + " inner join fetch ngmv.negativador negt "
// + " inner join fetch negt.cliente clie "
// + " where " + restricao1 ;
//
// String restricao = "";
// if (negativadorMovimentoHelper.getIdNegativador() != null && negativadorMovimentoHelper.getIdNegativador() > 0) {
// restricao = restricao + " and ngmv.negativador.id = " + negativadorMovimentoHelper.getIdNegativador();
// }
// if (negativadorMovimentoHelper.getCodigoMovimento() != -1) {
// restricao = restricao + " and ngmv.codigoMovimento = " + negativadorMovimentoHelper.getCodigoMovimento();
// }
//
// if (negativadorMovimentoHelper.getNumeroSequencialArquivo() != null && !"".equals(negativadorMovimentoHelper.getNumeroSequencialArquivo())) {
// restricao = restricao + " and ngmv.numeroSequencialEnvio = " + negativadorMovimentoHelper.getNumeroSequencialArquivo();
// }
//
// if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
// (negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
// restricao = restricao + " and ngmv.dataProcessamentoEnvio between :dataInicial and :dataFinal ";
// }
//
//
// if (negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.COM_RETORNO) {
// restricao = restricao + " and ngmv.dataProcessamentoRetorno is not null " ;
// }else if(negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.SEM_RETORNO){
// restricao = restricao + " and ngmv.dataProcessamentoRetorno is null" ;
// }
//
hql2 = hql2 + restricao;
Query query = null;
if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
(negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
query = session.createSQLQuery(hql2)
.addScalar("qtde" , Hibernate.INTEGER)
.setDate("dataInicial",Util.converteStringParaDateHora(negativadorMovimentoHelper.getDataProcessamentoInicial()+" 00:00:00"))
.setDate("dataFinal",Util.converteStringParaDateHora(negativadorMovimentoHelper.getDataProcessamentoFinal()+" 23:59:59"));
}else{
query = session.createSQLQuery(hql2)
.addScalar("qtde" , Hibernate.INTEGER);
}
retorno = (Integer) query.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;
}
/**
*
* Conta os registro do NegativadorMovimento aceitos.
* [UC0681] Consultar Movimentos dos Negativadores.
*
* @author Yara Taciane
* @date 22/01/2008
*/
public Integer verificarTotalRegistrosAceitos(Integer idNegativadorMovimento)
throws ErroRepositorioException {
Integer retorno;
Session session = HibernateUtil.getSession();
try {
String hql = " select count(*) "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " where nmrg.indicadorAceito=1"
+ " and nmrg.negativadorMovimento.id = :idNegativadorMovimento";
retorno = (Integer) session.createQuery(hql)
.setInteger("idNegativadorMovimento", idNegativadorMovimento)
.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;
}
/**
*
* Apresenta todos os registros do NegativadorMovimento aceitos.
* [UC0681] Consultar Movimentos dos Negativadores.
*
* @author Yara Taciane
* @date 22/01/2008
*/
public Collection pesquisarNegativadorMovimentoRegistroAceito(NegativadorMovimentoHelper negativadorMovimentoHelper)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Collection retorno = new ArrayList();
try {
String hql = " select nmrg "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " inner join fetch nmrg.negativadorRegistroTipo nrtp "
+ " inner join fetch nmrg.negativadorMovimento ngmv "
+ " where nmrg.negativadorMovimento.id = " + negativadorMovimentoHelper.getIdNegativadorMovimento();
String restricao = "";
if(negativadorMovimentoHelper.getIdImovel() != null){
if(negativadorMovimentoHelper.getIdNegativador().equals(Negativador.NEGATIVADOR_SPC)){
Integer numeroRegistro = this.pesquisarNumeroRegistro(negativadorMovimentoHelper.getIdNegativadorMovimento(),negativadorMovimentoHelper.getIdImovel());
if(numeroRegistro != null){
Integer numeroRegistroAnterior = numeroRegistro - 1 ;
restricao = restricao + " and nmrg.numeroRegistro in (" + numeroRegistro + "," + numeroRegistroAnterior + " )" ;
}
}else{
restricao = restricao + " and nmrg.imovel.id = " + negativadorMovimentoHelper.getIdImovel();
}
}
if (negativadorMovimentoHelper.getCodigoMovimento() != -1) {
restricao = restricao + " and ngmv.codigoMovimento = " + negativadorMovimentoHelper.getCodigoMovimento();
}
if (negativadorMovimentoHelper.getNumeroSequencialArquivo() != null && !"".equals(negativadorMovimentoHelper.getNumeroSequencialArquivo())) {
restricao = restricao + " and ngmv.numeroSequencialEnvio = " + negativadorMovimentoHelper.getNumeroSequencialArquivo();
}
if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
(negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
restricao = restricao + " and ngmv.dataProcessamentoEnvio between :dataInicial and :dataFinal ";
}
if (negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.COM_RETORNO) {
restricao = restricao + " and ngmv.dataProcessamentoRetorno is not null " ;
}else if(negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.SEM_RETORNO){
restricao = restricao + " and ngmv.dataProcessamentoRetorno is null" ;
}
if( negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.ACEITO){
restricao = restricao + " and nmrg.indicadorAceito = " + ConstantesSistema.ACEITO ;
}else if(negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.NAO_ACEITO){
restricao = restricao + " and nmrg.indicadorAceito = " + ConstantesSistema.NAO_ACEITO ;
if( negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.CORRIGIDO){
restricao = restricao + " and nmrg.indicadorCorrecao = " + ConstantesSistema.CORRIGIDO ;
}else if(negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.NAO_CORRIGIDO){
restricao = restricao + " and nmrg.indicadorCorrecao = " + ConstantesSistema.NAO_CORRIGIDO;
}else{
restricao = restricao + " and 1=1 ";
}
}
if (negativadorMovimentoHelper.getIdLocalidadePolo() != null && negativadorMovimentoHelper.getIdLocalidadePolo() > 0) {
restricao = restricao + " and nmrg.imovel.localidade.localidade.id = " + negativadorMovimentoHelper.getIdLocalidadePolo();
}
if (negativadorMovimentoHelper.getIdLocalidade() != null && negativadorMovimentoHelper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.imovel.localidade.id = " + negativadorMovimentoHelper.getIdLocalidade();
}
if (negativadorMovimentoHelper.getColecaoGerenciaRegional() != null && !negativadorMovimentoHelper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoGerenciaRegional().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional obj = (GerenciaRegional) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and nmrg.imovel.localidade.gerenciaRegional.id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
restricao = restricao + gerenciaRegional.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (negativadorMovimentoHelper.getColecaoUnidadeNegocio() != null && !negativadorMovimentoHelper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and nmrg.imovel.localidade.unidadeNegocio.id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
restricao = restricao + unidadeNegocio.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (negativadorMovimentoHelper.getIndicadorRegistro() != ConstantesSistema.ACEITO &&
negativadorMovimentoHelper.getColecaoMotivoRejeicao() != null &&
!negativadorMovimentoHelper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrg.id in "
+ " (select distinct(nmrr.negativadorMovimentoReg.id) "
+ " from gcom.cobranca.NegativadorMovimentoRegRetMot nmrr "
+ " inner join nmrr.negativadorMovimentoReg nmrg "
+ " where nmrr.negativadorRetornoMotivo.id in ( ";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + " )) ";
}
}
Query query = null;
if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
(negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
query = session.createQuery(hql + restricao)
.setDate("dataInicial",Util.converteStringParaDateHora(negativadorMovimentoHelper.getDataProcessamentoInicial()+" 00:00:00"))
.setDate("dataFinal",Util.converteStringParaDateHora(negativadorMovimentoHelper.getDataProcessamentoFinal()+" 23:59:59"));
}else{
query = session.createQuery(hql + restricao);
}
retorno = (List) query.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 NegativacaoImoveis consultarNegativacaoImoveisDoNegativadorMovimento(Integer codigoNegativadorMovimento) throws ErroRepositorioException {
return null;
}
/**
* [UC0651] Manter Comando de Nagativa��o Crit�rio
*
* @author Ana Maria
* @date 21/01/2008
*
* @param idComandoNegativacao
* @return Integer
* @throws ErroRepositorioException
*/
public NegativacaoCriterio pesquisarNegativacaoCriterio(Integer idComandoNegativacao)
throws ErroRepositorioException {
NegativacaoCriterio retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select ngct"
+ " from NegativacaoCriterio ngct"
+ " where ngct.negativacaoComando.id = :idComandoNegativacao";
retorno = (NegativacaoCriterio) session.createQuery(consulta)
.setInteger("idComandoNegativacao",idComandoNegativacao)
.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;
}
/**
* [UC0651] Manter Comando de Nagativa��o Crit�rio
*
* Remove Titularidades do CPF/CNPJ da Negativa��o, Subcategorias, Perfis de im�vel,
* Tipos de cliente, Grupos de Cobran�a, Ger�ncias Regionais, Unidades Neg�cio,
* Elos P�lo do crit�rio
*
* @author Ana Maria
* @date 21/01/2008
*
* @param idNegativacaoCriterio
* @return Integer
* @throws ErroRepositorioException
*/
public void removerParametrosCriterio(Integer idNegativacaoCriterio)
throws ErroRepositorioException{
String remocao = null;
Session session = HibernateUtil.getSession();
try {
// Remove Titularidades do CPF/CNPJ da Negativa��o
remocao = "delete NegativacaoCriterioCpfTipo "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
// Remove situa��o da liga��o de �gua
remocao = "delete NegativacaoCriterioLigacaoAgua "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
// Remove situa��o da liga��o de esgoto
remocao = "delete NegativacaoCriterioLigacaoEsgoto "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
// Remove Subcategorias
remocao = "delete NegativacaoCriterioSubcategoria "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
// Remove Perfis de im�vel
remocao = "delete NegativacaoCriterioImovelPerfil "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
// Remove Tipos de cliente
remocao = "delete NegativacaoCriterioClienteTipo "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
// Remove Grupos de Cobran�a
remocao = "delete NegativCritCobrGrupo "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
// Remove Ger�ncias Regionais
remocao = "delete NegativCritGerReg "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
// Remove Unidades Neg�cio
remocao = "delete NegativCritUndNeg "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
// Remove Elos P�lo
remocao = "delete NegativCritElo "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
//Remove NegativCritNegRetMot
remocao = "delete NegativCritNegRetMot "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
//Remove NegativacaoCriterioSituacaoCobranca
remocao = "delete NegativacaoCriterioSituacaoCobranca "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).executeUpdate();
//Remove NegativacaoCriterioSituacaoEspecialCobranc
remocao = "delete NegativacaoCriterioSituacaoEspecialCobranca "
+ "where ngct_id =:idNegativacaoCriterio";
session.createQuery(remocao).setInteger(
"idNegativacaoCriterio", idNegativacaoCriterio).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);
}
}
/**
* [UC0651] Manter Comando de Nagativa��o Crit�rio
*
* Remove Negativa��o Comando
*
* @author Ana Maria
* @date 22/01/2008
*
* @param idNegativacaoCriterio
* @return Integer
* @throws ErroRepositorioException
*/
public void removerNegativacaoComando(Integer idNegativacaoComando)
throws ErroRepositorioException{
String remocao = null;
Session session = HibernateUtil.getSession();
try {
//Remove NegativadorResultadoSimulacao
remocao = "delete NegativadorResultadoSimulacao "
+ "where ngcm_id = :idNegativacaoComando";
session.createQuery(remocao).setInteger(
"idNegativacaoComando", idNegativacaoComando).executeUpdate();
remocao = "delete NegativacaoComando "
+ "where ngcm_id =:idNegativacaoComando";
session.createQuery(remocao).setInteger(
"idNegativacaoComando", idNegativacaoComando).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);
}
}
/**
* [UC0652] Atualizar Comando Negativa��o
* //[FS0012]- Verificar exist�ncia de comando para os mesmos par�metros
*
* @author Ana Maria
* @date 24/01/2008
*
* @param InserirComandoNegativacaoPorCriterioHelper
* @return Integer
* @throws ErroRepositorioException
*/
public String verificarExistenciaComandoMesmoParametroAtualizacao(InserirComandoNegativacaoPorCriterioHelper helper)
throws ErroRepositorioException {
String retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select negt.cliente.nome"
+ " from NegativacaoComando ngcm"
+ " inner join ngcm.negativador negt"
+ " where ngcm.id <> :idNegativadoComando"
+ " and negt.id = :idNegativador"
+ " and ngcm.indicadorComandoCriterio = :icComandoCriterio"
+ " and ngcm.indicadorSimulacao = :icSimulacao"
+ " and ngcm.dataPrevista = :dataPrevista"
+ " and ngcm.dataHoraRealizacao is null";
retorno = (String) session.createQuery(consulta)
.setInteger("idNegativadoComando", helper.getNegativacaoComando().getId())
.setInteger("idNegativador", helper.getNegativacaoComando().getNegativador().getId())
.setShort("icComandoCriterio", helper.getNegativacaoComando().getIndicadorComandoCriterio())
.setShort("icSimulacao", helper.getNegativacaoComando().getIndicadorSimulacao())
.setDate("dataPrevista", helper.getNegativacaoComando().getDataPrevista())
.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;
}
/**
* M�todo usado para consulta de movimento do negativador
* usado no caso de uso [UC0682] (com pagina��o)
*
* @author Yara Taciane
* @date 21/01/2008
*
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarNegativadorMovimento(
NegativadorMovimentoHelper negativadorMovimentoHelper, Integer numeroPagina) throws ErroRepositorioException {
List retorno = new ArrayList();
Collection colecaoNegativadorMovimento = null;
Session session = HibernateUtil.getSession();
try {
String hql2 = "select distinct(ngmv.ngmv_id) as idMovimento, "
+ " clie.clie_nmcliente as nomeCliente, "
+ " ngmv.ngmv_cdmovimento as codigoMovimento, "
+ " ngmv.ngmv_nnnsaenvio as seqEnvio, "
+ " ngmv.ngmv_dtprocessamentoenvio as dtEnvio, "
+ " ngmv.ngmv_nnregistrosenvio as numRegEnvio, "
+ " ngmv.ngmv_vltotalenvio as valorTotalEnvio "
+ " from cobranca.negativador_movimento ngmv "
+ " inner join cobranca.negativador negt on ngmv.negt_id = negt.negt_id "
+ " inner join cadastro.cliente clie on negt.clie_id = clie.clie_id "
+ " inner join cobranca.negatd_movimento_reg nmrg on ngmv.ngmv_id = nmrg.ngmv_id ";
if ((negativadorMovimentoHelper.getIdLocalidadePolo() != null && negativadorMovimentoHelper.getIdLocalidadePolo() > 0)
||(negativadorMovimentoHelper.getIdLocalidade() != null && negativadorMovimentoHelper.getIdLocalidade() > 0)
||(negativadorMovimentoHelper.getColecaoUnidadeNegocio() != null && !negativadorMovimentoHelper.getColecaoUnidadeNegocio().isEmpty())
||(negativadorMovimentoHelper.getColecaoGerenciaRegional() != null && !negativadorMovimentoHelper.getColecaoGerenciaRegional().isEmpty())) {
hql2 = hql2 + " inner join cadastro.imovel imov on nmrg.imov_id = imov.imov_id "
+ " inner join cadastro.localidade loca on imov.loca_id = loca.loca_id ";
}
String restricao = " where ";
if( negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.ACEITO){
restricao = restricao + " nmrg.nmrg_icaceito = " + ConstantesSistema.ACEITO ;
if(negativadorMovimentoHelper.getIdImovel()!= null){
restricao = restricao + " and nmrg.imov_id = " + negativadorMovimentoHelper.getIdImovel();
}
}else if(negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.NAO_ACEITO){
restricao = restricao + " nmrg.nmrg_icaceito = " + ConstantesSistema.NAO_ACEITO ;
if( negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.CORRIGIDO){
restricao = restricao + " and nmrg.nmrg_iccorrecao = " + ConstantesSistema.CORRIGIDO;
}else if(negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.NAO_CORRIGIDO){
restricao = restricao + " and nmrg.nmrg_iccorrecao = " + ConstantesSistema.NAO_CORRIGIDO;
}
if(negativadorMovimentoHelper.getIdImovel()!= null){
restricao = restricao + " and nmrg.imov_id = " + negativadorMovimentoHelper.getIdImovel();
}
}else{
if(negativadorMovimentoHelper.getIdImovel()!= null){
restricao = restricao + " nmrg.imov_id =" + negativadorMovimentoHelper.getIdImovel();
}else{
restricao = restricao + "1=1";
}
}
if (negativadorMovimentoHelper.getIdNegativador() != null && negativadorMovimentoHelper.getIdNegativador() > 0) {
restricao = restricao + " and negt.negt_id = " + negativadorMovimentoHelper.getIdNegativador();
}
if (negativadorMovimentoHelper.getCodigoMovimento() != -1) {
restricao = restricao + " and ngmv.ngmv_cdmovimento = " + negativadorMovimentoHelper.getCodigoMovimento();
}
if (negativadorMovimentoHelper.getNumeroSequencialArquivo() != null && !"".equals(negativadorMovimentoHelper.getNumeroSequencialArquivo())) {
restricao = restricao + " and ngmv.ngmv_nnnsaenvio = " + negativadorMovimentoHelper.getNumeroSequencialArquivo();
}
if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
(negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between :dataInicial and :dataFinal ";
}
if (negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.COM_RETORNO) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoretorno is not null " ;
}else if(negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.SEM_RETORNO){
restricao = restricao + " and ngmv.ngmv_dtprocessamentoretorno is null " ;
}
if (negativadorMovimentoHelper.getIdLocalidadePolo() != null && negativadorMovimentoHelper.getIdLocalidadePolo() > 0) {
restricao = restricao + " and loca.loca_cdelo = " + negativadorMovimentoHelper.getIdLocalidadePolo();
}
if (negativadorMovimentoHelper.getIdLocalidade() != null && negativadorMovimentoHelper.getIdLocalidade() > 0) {
restricao = restricao + " and loca.loca_id = " + negativadorMovimentoHelper.getIdLocalidade();
}
if (negativadorMovimentoHelper.getColecaoGerenciaRegional() != null && !negativadorMovimentoHelper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoGerenciaRegional().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional obj = (GerenciaRegional) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and loca.greg_id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
restricao = restricao + gerenciaRegional.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (negativadorMovimentoHelper.getColecaoUnidadeNegocio() != null && !negativadorMovimentoHelper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and loca.uneg_id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
restricao = restricao + unidadeNegocio.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (negativadorMovimentoHelper.getIndicadorRegistro() != ConstantesSistema.ACEITO &&
negativadorMovimentoHelper.getColecaoMotivoRejeicao() != null &&
!negativadorMovimentoHelper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
hql2 = hql2 + " inner join cobranca.negatd_mov_reg_ret_mot nmrr on nmrg.nmrg_id = nmrr.nmrg_id ";
Iterator iterator = negativadorMovimentoHelper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrr.nrmt_id in ( ";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + " ) ";
// restricao = restricao + " and nmrr.nrmt_id = ( select nmrr2.nrmt_id "
// + " from cobranca.negatd_mov_reg_ret_mot nmrr2 "
// + " where nmrr2.nrmt_id in ( ";
// while (iterator.hasNext()) {
// negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
// restricao = restricao + negativadorRetornoMotivo.getId() + ",";
// }
// restricao = Util.removerUltimosCaracteres(restricao, 1);
// restricao = restricao + " ) "
// + " and nmrr2.nmrg_id = (select max(nmrg_id) "
// + " from cobranca.negatd_movimento_reg nmrg2"
// + " inner join cobranca.negativador_movimento ngmv2 on nmrg2.ngmv_id = ngmv2.ngmv_id"
// + " where nmrg2.nmrg_icaceito = " + ConstantesSistema.NAO_ACEITO
// + " and ngmv2.negt_id = " + negativadorMovimentoHelper.getIdNegativador()
// + " and nmrg2.imov_id = imov.imov_id))";
}
}
// String restricao1 = "";
//
// if( negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.ACEITO){
// restricao1 = restricao1 + " ngmv.id in ( select nmrg.negativadorMovimento.id from gcom.cobranca.NegativadorMovimentoReg nmrg where nmrg.indicadorAceito = " + ConstantesSistema.ACEITO ;
// if(negativadorMovimentoHelper.getIdImovel()!= null){
// restricao1 = restricao1 + " and nmrg.imovel.id = " + negativadorMovimentoHelper.getIdImovel() + " )";
// }else{
// restricao1 = restricao1 + " )";
// }
// }else if(negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.NAO_ACEITO){
// restricao1 = restricao1 + " ngmv.id in ( select nmrg.negativadorMovimento.id from gcom.cobranca.NegativadorMovimentoReg nmrg where nmrg.indicadorAceito = " + ConstantesSistema.NAO_ACEITO ;
// if( negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.CORRIGIDO){
// restricao1 = restricao1 + " and nmrg.indicadorCorrecao = " + ConstantesSistema.CORRIGIDO;
// }else if(negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.NAO_CORRIGIDO){
// restricao1 = restricao1 + " and nmrg.indicadorCorrecao = " + ConstantesSistema.NAO_CORRIGIDO;
// }
// if(negativadorMovimentoHelper.getIdImovel()!= null){
// restricao1 = restricao1 + " and nmrg.imovel.id = " + negativadorMovimentoHelper.getIdImovel() + " )";
// }else{
// restricao1 = restricao1 + " )";
// }
// }else{
//
// if(negativadorMovimentoHelper.getIdImovel()!= null){
// restricao1 = restricao1 + " ngmv.id in ( select nmrg.negativadorMovimento.id from gcom.cobranca.NegativadorMovimentoReg nmrg where nmrg.imovel.id =" + negativadorMovimentoHelper.getIdImovel() + " )";
//
// }else{
// restricao1 = restricao1 + "1=1";
// }
// }
//
//
// String hql2 = "select ngmv "
// + " from gcom.cobranca.NegativadorMovimento ngmv "
// + " inner join fetch ngmv.negativador negt "
// + " inner join fetch negt.cliente as clie "
// + " where " + restricao1 ;
//
//
// String restricao = "";
// if (negativadorMovimentoHelper.getIdNegativador() != null && negativadorMovimentoHelper.getIdNegativador() > 0) {
// restricao = restricao + " and ngmv.negativador.id = " + negativadorMovimentoHelper.getIdNegativador();
// }
// if (negativadorMovimentoHelper.getCodigoMovimento() != -1) {
// restricao = restricao + " and ngmv.codigoMovimento = " + negativadorMovimentoHelper.getCodigoMovimento();
// }
//
// if (negativadorMovimentoHelper.getNumeroSequencialArquivo() != null && !"".equals(negativadorMovimentoHelper.getNumeroSequencialArquivo())) {
// restricao = restricao + " and ngmv.numeroSequencialEnvio = " + negativadorMovimentoHelper.getNumeroSequencialArquivo();
// }
//
// if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
// (negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
// restricao = restricao + " and ngmv.dataProcessamentoEnvio between :dataInicial and :dataFinal ";
// }
//
//
// if (negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.COM_RETORNO) {
// restricao = restricao + " and ngmv.dataProcessamentoRetorno is not null " ;
// }else if(negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.SEM_RETORNO){
// restricao = restricao + " and ngmv.dataProcessamentoRetorno is null" ;
// }
hql2 = hql2 + restricao;
Query query = null;
if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
(negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
query = session.createSQLQuery(hql2)
.addScalar("idMovimento" , Hibernate.INTEGER)
.addScalar("nomeCliente" , Hibernate.STRING)
.addScalar("codigoMovimento" , Hibernate.SHORT)
.addScalar("seqEnvio" , Hibernate.INTEGER)
.addScalar("dtEnvio" , Hibernate.DATE)
.addScalar("numRegEnvio" , Hibernate.INTEGER)
.addScalar("valorTotalEnvio" , Hibernate.BIG_DECIMAL)
.setDate("dataInicial",Util.converteStringParaDateHora(negativadorMovimentoHelper.getDataProcessamentoInicial()+" 00:00:00"))
.setDate("dataFinal",Util.converteStringParaDateHora(negativadorMovimentoHelper.getDataProcessamentoFinal()+" 23:59:59"));
}else{
query = session.createSQLQuery(hql2)
.addScalar("idMovimento" , Hibernate.INTEGER)
.addScalar("nomeCliente" , Hibernate.STRING)
.addScalar("codigoMovimento" , Hibernate.SHORT)
.addScalar("seqEnvio" , Hibernate.INTEGER)
.addScalar("dtEnvio" , Hibernate.DATE)
.addScalar("numRegEnvio" , Hibernate.INTEGER)
.addScalar("valorTotalEnvio" , Hibernate.BIG_DECIMAL);
}
retorno = (List) query.setFirstResult(10 * numeroPagina).setMaxResults(10).list();
if(retorno != null && !retorno.isEmpty()){
colecaoNegativadorMovimento = new ArrayList();
NegativadorMovimento negativadorMovimento = null;
Cliente cliente = null;
Negativador negativador = null;
Iterator iter = retorno.iterator();
while (iter.hasNext()) {
Object[] dadosMovimento = (Object[])iter.next();
negativadorMovimento = new NegativadorMovimento();
negativadorMovimento.setId((Integer)dadosMovimento[0]);
if(dadosMovimento[1] != null){
cliente = new Cliente();
cliente.setNome((String)dadosMovimento[1]);
negativador = new Negativador();
negativador.setCliente(cliente);
negativadorMovimento.setNegativador(negativador);
}
negativadorMovimento.setCodigoMovimento((Short)dadosMovimento[2]);
if(dadosMovimento[3] != null){
negativadorMovimento.setNumeroSequencialEnvio((Integer)dadosMovimento[3]);
}
negativadorMovimento.setDataEnvio((Date)dadosMovimento[4]);
if(dadosMovimento[5] != null){
negativadorMovimento.setNumeroRegistrosEnvio((Integer)dadosMovimento[5]);
}
if(dadosMovimento[6] != null){
negativadorMovimento.setValorTotalEnvio((BigDecimal)dadosMovimento[6]);
}
colecaoNegativadorMovimento.add(negativadorMovimento);
}
}
} 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 colecaoNegativadorMovimento;
}
/**
*
* Apresenta todos os registros do NegativadorMovimento aceitos.
* [UC0681] Consultar Movimentos dos Negativadores.
*
* @author Yara Taciane
* @date 22/01/2008
*/
public Collection pesquisarNegativadorMovimentoRegistroAceito(NegativadorMovimentoHelper negativadorMovimentoHelper, Integer numeroPagina)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Collection retorno = new ArrayList();
try {
String hql = " select nmrg "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " inner join fetch nmrg.negativadorRegistroTipo as nrtp "
+ " inner join fetch nmrg.negativadorMovimento as ngmv "
+ " where nmrg.negativadorMovimento.id = " + negativadorMovimentoHelper.getIdNegativadorMovimento();
String restricao = "";
if(negativadorMovimentoHelper.getIdImovel() != null){
if(negativadorMovimentoHelper.getIdNegativador().equals(Negativador.NEGATIVADOR_SPC)){
Integer numeroRegistro = this.pesquisarNumeroRegistro(negativadorMovimentoHelper.getIdNegativadorMovimento(),negativadorMovimentoHelper.getIdImovel());
if(numeroRegistro != null){
Integer numeroRegistroAnterior = numeroRegistro - 1 ;
restricao = restricao + " and nmrg.numeroRegistro in (" + numeroRegistro + "," + numeroRegistroAnterior + " )" ;
}
}else{
restricao = restricao + " and nmrg.imovel.id = " + negativadorMovimentoHelper.getIdImovel();
}
}
if (negativadorMovimentoHelper.getCodigoMovimento() != -1) {
restricao = restricao + " and ngmv.codigoMovimento = " + negativadorMovimentoHelper.getCodigoMovimento();
}
if (negativadorMovimentoHelper.getNumeroSequencialArquivo() != null && !"".equals(negativadorMovimentoHelper.getNumeroSequencialArquivo())) {
restricao = restricao + " and ngmv.numeroSequencialEnvio = " + negativadorMovimentoHelper.getNumeroSequencialArquivo();
}
if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
(negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
restricao = restricao + " and ngmv.dataProcessamentoEnvio between :dataInicial and :dataFinal ";
}
if (negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.COM_RETORNO) {
restricao = restricao + " and ngmv.dataProcessamentoRetorno is not null " ;
}else if(negativadorMovimentoHelper.getIndicadorMovimento() == ConstantesSistema.SEM_RETORNO){
restricao = restricao + " and ngmv.dataProcessamentoRetorno is null" ;
}
if( negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.ACEITO){
restricao = restricao + " and nmrg.indicadorAceito = " + ConstantesSistema.ACEITO ;
}else if(negativadorMovimentoHelper.getIndicadorRegistro() == ConstantesSistema.NAO_ACEITO){
restricao = restricao + " and nmrg.indicadorAceito = " + ConstantesSistema.NAO_ACEITO ;
if( negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.CORRIGIDO){
restricao = restricao + " and nmrg.indicadorCorrecao = " + ConstantesSistema.CORRIGIDO ;
}else if(negativadorMovimentoHelper.getIndicadorCorrigido() == ConstantesSistema.NAO_CORRIGIDO){
restricao = restricao + " and nmrg.indicadorCorrecao = " + ConstantesSistema.NAO_CORRIGIDO;
}else{
restricao = restricao + " and 1=1 ";
}
}
// ---------------------------------------------------------------------23/05/2008 altera��o da consulta
// String hql = " select nmrg "
// + " from gcom.cobranca.NegativadorMovimentoReg nmrg "
// + " inner join fetch nmrg.negativadorRegistroTipo as nrtp "
// + " inner join fetch nmrg.negativadorMovimento as ngmv "
// + " where nmrg.negativadorMovimento.id = " + idNegativadorMovimento
// + " and nmrg.ultimaAlteracao > 2008-01-01 "
// + " order by nmrg.numeroRegistro";
//---------------------------------------------------------------------------------------------------------
if (negativadorMovimentoHelper.getIdLocalidadePolo() != null && negativadorMovimentoHelper.getIdLocalidadePolo() > 0) {
restricao = restricao + " and nmrg.imovel.localidade.localidade.id = " + negativadorMovimentoHelper.getIdLocalidadePolo();
}
if (negativadorMovimentoHelper.getIdLocalidade() != null && negativadorMovimentoHelper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.imovel.localidade.id = " + negativadorMovimentoHelper.getIdLocalidade();
}
if (negativadorMovimentoHelper.getColecaoGerenciaRegional() != null && !negativadorMovimentoHelper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoGerenciaRegional().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional obj = (GerenciaRegional) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and nmrg.imovel.localidade.gerenciaRegional.id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
restricao = restricao + gerenciaRegional.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (negativadorMovimentoHelper.getColecaoUnidadeNegocio() != null && !negativadorMovimentoHelper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and nmrg.imovel.localidade.unidadeNegocio.id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
restricao = restricao + unidadeNegocio.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (negativadorMovimentoHelper.getIndicadorRegistro() != ConstantesSistema.ACEITO &&
negativadorMovimentoHelper.getColecaoMotivoRejeicao() != null &&
!negativadorMovimentoHelper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(negativadorMovimentoHelper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = negativadorMovimentoHelper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = negativadorMovimentoHelper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrg.id in "
+ " (select distinct(nmrr.negativadorMovimentoReg.id) "
+ " from gcom.cobranca.NegativadorMovimentoRegRetMot nmrr "
+ " inner join nmrr.negativadorMovimentoReg nmrg "
+ " where nmrr.negativadorRetornoMotivo.id in ( ";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + " )) ";
}
}
Query query = null;
if ((negativadorMovimentoHelper.getDataProcessamentoInicial() != null && !negativadorMovimentoHelper.getDataProcessamentoInicial().equals("")) &&
(negativadorMovimentoHelper.getDataProcessamentoFinal() != null && !negativadorMovimentoHelper.getDataProcessamentoFinal().equals(""))){
query = session.createQuery(hql + restricao)
.setDate("dataInicial",Util.converteStringParaDateHora(negativadorMovimentoHelper.getDataProcessamentoInicial()+" 00:00:00"))
.setDate("dataFinal",Util.converteStringParaDateHora(negativadorMovimentoHelper.getDataProcessamentoFinal()+" 23:59:59"));
}else{
query = session.createQuery(hql + restricao);
}
// retorno = (List) query.list();
retorno = (List) query.setFirstResult(10 * numeroPagina).setMaxResults(10).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 o dados do Negativador
*
* @author Marcio Roberto
* @date 13/02/2008
*
* @param
*
* @return
* @throws ErroRepositorioException
*/
public List getDadosNegativadorCriterio(int idCommandoNegativacao)
throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " neg "
+ " from gcom.cobranca.Negativador neg, "
+ " gcom.cobranca.NegativacaoComando as negCom "
+ " where "
+ " neg.id = negCom.negativador.id "
+ " and negCom.id = :idCommandoNegativacao ";
retorno = session.createQuery(hql).setInteger("idCommandoNegativacao", idCommandoNegativacao).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosNegativadorCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* M�todo consutla um negativacaoComando
* [UC0671] Gerar Movimento de Inclusao de Negativacao
* [Fluixo princiapal] 4.0
*
* @author Thiago Toscano
* @date 21/02/2008
*
* @param idNegativacaoComando
* @param datahora
* @param quantidade
* @param valorTotalDebito
* @throws ErroRepositorioException
*/
public NegativacaoComando consultarNegativacaoComando(Integer idNegativacaoComando) throws ErroRepositorioException {
NegativacaoComando resposta = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nc"
+ " from gcom.cobranca.NegativacaoComando nc"
+ " inner join fetch nc.negativacaoCriterios as negativacaoCriterios"
+ " left join fetch negativacaoCriterios.cliente as clie"
+ " left join fetch negativacaoCriterios.clienteRelacaoTipo as clienteRelacaoTipo"
+ " inner join fetch nc.negativador as n"
+ " inner join fetch n.cliente as c"
+ " left join fetch negativacaoCriterios.localidadeInicial locInic"
+ " left join fetch negativacaoCriterios.localidadeFinal locFinal"
+ " where nc.id = :idNegativacaoComando ";
List list = session.createQuery(hql).setInteger("idNegativacaoComando",idNegativacaoComando).list();
if (list != null && !list.isEmpty()) {
resposta = (NegativacaoComando) list.iterator().next();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosContratoNegativador");
} finally {
HibernateUtil.closeSession(session);
}
return resposta;
}
/**
* M�todo consutla um negativacaoComando
* [UC0671] Gerar Movimento de Inclusao de Negativacao
* [SB003] Gear moviemnto de inclusao de negativacao para os imoveis do clietne
* item 1.0
*
* @author Thiago Toscano
* @date 21/02/2008
*
* @throws ErroRepositorioException
*/
public List consultarImoveisCliente(NegativacaoCriterio nCriterio, Integer idRota)
throws ErroRepositorioException {
List resposta = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select i.id "
+ " from gcom.cadastro.imovel.Imovel i "
+ " inner join i.clienteImoveis as ci "
+ " inner join ci.cliente as cliente "
+ " inner join i.quadra q "
+ " inner join q.rota r "
+ " where cliente.id = :idCliente "
+ " and i.indicadorExclusao = " + ConstantesSistema.NAO;
if(nCriterio.getQuantidadeMaximaInclusoes() == null || nCriterio.getQuantidadeMaximaInclusoes().equals("")){
hql = hql + " and r.id = " +idRota;
}
if (nCriterio.getClienteRelacaoTipo() != null && nCriterio.getClienteRelacaoTipo().getId() != null) {
hql = hql + " and ci.clienteRelacaoTipo.id = " + nCriterio.getClienteRelacaoTipo().getId();
}
resposta = session.createQuery(hql)
.setInteger("idCliente",nCriterio.getCliente().getId())
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate consultarImoveisCliente");
} finally {
HibernateUtil.closeSession(session);
}
return resposta;
}
/**
* Seleciona o dados do Negativador
*
* @author Marcio Roberto
* @date 13/02/2008
*
* @param
*
* @return
* @throws ErroRepositorioException
*/
public List getDadosContratoNegativadorCriterio(int idCommandoNegativacao)
throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " negCon "
+ " from gcom.cobranca.NegativadorContrato negCon, "
+ " gcom.cobranca.Negativador as neg, "
+ " gcom.cobranca.NegativacaoComando as negCom "
+ " where negCon.negativador.id = neg.id "
+ " and neg.id = negCom.negativador.id "
+ " and negCom.id = :idCommandoNegativacao "
+ " and (negCon.dataContratoEncerramento = null or negCon.dataContratoEncerramento > " + Util.obterSQLDataAtual() + " ) ";
retorno = session.createQuery(hql).setInteger("idCommandoNegativacao", idCommandoNegativacao).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosContratoNegativador");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa a cole��o de clientes do im�vel para negativa��o
* sem o cliente empresa do sistema par�metro
*
* @author Ana Maria
* @date 17/12/2008
* @param idImovel
* @return Collection
* @exception ErroRepositorioException
*
*/
public Collection pesquisarClienteImovelParaNegativacao(Integer idImovel, String cnpjEmpresa)
throws ErroRepositorioException {
Collection colecaoClientes = null;
Session session = HibernateUtil.getSession();
String consulta = null;
Collection clienteImoveis = null;
try {
consulta = "SELECT clienteImovel.id, " // 0
+ "clienteRelacaoTipo.id, " // 1
+ "clienteRelacaoTipo.descricao, " // 2
+ "cliente.id, " // 3
+ "cliente.nome, " // 4
+ "cliente.cnpj, " // 5
+ "cliente.cpf, " //6
+ "unfe.id " //7
+ "from ClienteImovel clienteImovel "
+ "left join clienteImovel.cliente cliente "
+ "left join clienteImovel.clienteRelacaoTipo clienteRelacaoTipo "
+ "left join cliente.unidadeFederacao unfe "
+ "where clienteImovel.imovel.id = :idImovel and clienteImovel.dataFimRelacao is null "
+ "and clienteImovel.imovel.indicadorExclusao = :indicadorExclusao "
+ "and (cliente.cnpj is null or cliente.cnpj <>:cnpjEmpresa)";
// + " and cliente.id not in (14372860, 6548350) ";
colecaoClientes = session.createQuery(consulta).setInteger("idImovel",idImovel.intValue())
.setInteger("indicadorExclusao", 2)
.setString("cnpjEmpresa", cnpjEmpresa)
.list();
if (colecaoClientes != null && !colecaoClientes.isEmpty()) {
clienteImoveis = new ArrayList();
Iterator iteratorColecaoClientes = colecaoClientes.iterator();
while (iteratorColecaoClientes.hasNext()) {
ClienteImovel clienteImovel = new ClienteImovel();
Object[] arrayCliente = (Object[]) iteratorColecaoClientes
.next();
Cliente cliente = new Cliente();
// 0 - id do cliente imovel
if (arrayCliente[0] != null) {
clienteImovel.setId((Integer) arrayCliente[0]);
}
// 1 - id cliente rela��o tipo
// 2 - descricao cliente rela��o tipo
if (arrayCliente[1] != null) {
ClienteRelacaoTipo clienteRelacaoTipo = new ClienteRelacaoTipo();
clienteRelacaoTipo.setId((Integer) arrayCliente[1]);
clienteRelacaoTipo.setDescricao((String) arrayCliente[2]);
clienteImovel.setClienteRelacaoTipo(clienteRelacaoTipo);
}
// 3 - id do cliente
if (arrayCliente[3] != null) {
cliente.setId((Integer) arrayCliente[3]);
}
// 4 - nome do cliente
if (arrayCliente[4] != null) {
cliente.setNome((String) arrayCliente[4]);
}
// 5 - cnpj
if (arrayCliente[5] != null) {
cliente.setCnpj((String) arrayCliente[5]);
}
// 6 - cpf
if (arrayCliente[6] != null) {
cliente.setCpf((String) arrayCliente[6]);
}
// 7 - Unidade Federa��o
if (arrayCliente[7] != null) {
UnidadeFederacao unidadeFederacao = new UnidadeFederacao();
unidadeFederacao.setId((Integer) arrayCliente[7]);
cliente.setUnidadeFederacao(unidadeFederacao);
}
clienteImovel.setCliente(cliente);
clienteImoveis.add(clienteImovel);
}
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return clienteImoveis;
}
/* public List pesquisarClienteImovelparNegativacao(Integer idImovel)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select clim"
+" from ClienteImovel as clim"
+" inner join fetch clim.cliente clie"
+" inner join fetch clim.imovel imov"
+" inner join clim.clienteRelacaoTipo crtp"
+" where clim.dataFimRelacao is null and"
+" clim.imovel.id =:idImovel" ;
retorno = session.createQuery(hql).setInteger("idImovel",idImovel).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}*/
/**
* Obtem dados Imovel
*
*/
public List pesquisarImovel(int idImovel) throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select "
+ " imov "
+ " from gcom.cadastro.imovel.Imovel imov "
+ " inner join fetch imov.imovelPerfil iper "
+ " where imov.id = :idImovel ";
/* + " inner join fetch imov.localidade as loca "
+ " inner join fetch imov.quadra as quand "
+ " inner join fetch quand.setorComercial as stcom "*/
retorno = session.createQuery(hql).setInteger("idImovel", idImovel).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosImoveis");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Pesquisar se a inclus�o do im�vel est� com retorno ou foi aceita.
* [UC0675] Excluir Negativa��o Online.
*
* @author Yara Taciane
* @date 22/01/2008
*/
public Collection pesquisarNegatiacaoParaImovel(Imovel imovel, Negativador negativador)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Collection retorno = new ArrayList();
try {
String hql = " select nmrg "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " where nmrg.imovel.id=" + imovel.getId()
+ " and nmrg.indicadorAceito = 1 "
+ " and nmrg.negativadorMovimento.id in "
+ "(select ngmv.id from gcom.cobranca.NegativadorMovimento ngmv where ngmv.negativador.id = " + negativador.getId()
+ " )";
Query query = session.createQuery(hql);
retorno = (List) query.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;
}
/**
*
*
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Parcelamento por Conta
* Item 1.1.2.2.3
*
* @author Thiago Toscano,Vivianne Sousa
* @date 09/01/2008, 02/04/2009
*
* @param codigoConta
* @return
*/
public Parcelamento consultaParcelamentoConta(Integer idConta, Integer situacaoParcelamento, Date dataEnvioNegativadorMovimento) throws ErroRepositorioException {
Collection retorno = null;
Object[] retornoParcelamento = null;
Session session = HibernateUtil.getSession();
Parcelamento parcelamento = null;
try {
String hql = " select p.parc_tmparcelamento as dataParcelamento," //[0] dataParcelamento
+ " p.parc_vlentrada as valorEntrada, " //[1] valorEntrada
+ " p.parc_vldebitoatualizado as valorDebitoAtualizado, " //[2]
+ " p.parc_vldescontoacrescimos as valorDescontoAcrescimos, " //[3]
+ " p.parc_vldescontoantiguidade as valorDescontoAntiguidade, " //[4]
+ " p.parc_vldescontoinatividade as valorDescontoInatividade, " //[5]
+ " p.parc_vldescontosancao as valorDescontoSancao, " //[6]
+ " p.parc_vldescontotarsoc as valorDescontoTArifaSocial, " //[7]
+ " p.parc_vljurosparcelamento as valorJurosParcelamento, " //[8]
+ " p.parc_nnprestacoes as numeroPrestacoes, " //[9]
+ " p.parc_id as idParcelamento " //[10]
+ " from cobranca.parcelamento p "
+ " where p.pcst_id = :situacaoParcelamento "
+ " and p.parc_id in (select pi.parc_id from cobranca.parcelamento_item pi where pi.cnta_id = " + idConta + " )";
if(situacaoParcelamento.equals(ParcelamentoSituacao.NORMAL)){
hql = hql + " and p.parc_tmparcelamento >= :dataEnvioNegativadorMovimento ";
}else{
hql = hql + " and (p.parc_tmparcelamento >= :dataEnvioNegativadorMovimento or p.parc_tmultimaalteracao >= :dataEnvioNegativadorMovimento) ";
}
hql = hql + " order by p.parc_tmparcelamento ";
retorno = session.createSQLQuery(hql)
.addScalar("dataParcelamento" , Hibernate.DATE)
.addScalar("valorEntrada" , Hibernate.BIG_DECIMAL)
.addScalar("valorDebitoAtualizado" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoAcrescimos" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoAntiguidade" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoInatividade" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoSancao" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoTArifaSocial" , Hibernate.BIG_DECIMAL)
.addScalar("valorJurosParcelamento" , Hibernate.BIG_DECIMAL)
.addScalar("numeroPrestacoes" , Hibernate.SHORT)
.addScalar("idParcelamento" , Hibernate.INTEGER)
.setInteger("situacaoParcelamento" , situacaoParcelamento)
.setTimestamp("dataEnvioNegativadorMovimento", Util.formatarDataInicial(dataEnvioNegativadorMovimento))
.list();
if(situacaoParcelamento.equals(ParcelamentoSituacao.NORMAL) && (retorno == null || retorno.size() == 0) ){
hql = " select p.parc_tmparcelamento dataParcelamento," //[0] dataParcelamento
+ " p.parc_vlentrada valorEntrada, " //[1] valorEntrada
+ " p.parc_vldebitoatualizado as valorDebitoAtualizado, " //[2]
+ " p.parc_vldescontoacrescimos as valorDescontoAcrescimos, " //[3]
+ " p.parc_vldescontoantiguidade as valorDescontoAntiguidade, " //[4]
+ " p.parc_vldescontoinatividade as valorDescontoInatividade, " //[5]
+ " p.parc_vldescontosancao as valorDescontoSancao, " //[6]
+ " p.parc_vldescontotarsoc as valorDescontoTArifaSocial, " //[7]
+ " p.parc_vljurosparcelamento as valorJurosParcelamento, " //[8]
+ " p.parc_nnprestacoes as numeroPrestacoes, " //[9]
+ " p.parc_id as idParcelamento " //[10]
+ " from cobranca.parcelamento p "
+ " where p.pcst_id = :situacaoParcelamento "
+ " and p.parc_id in (select pi.parc_id from cobranca.parcelamento_item pi where pi.cnta_id = " + idConta + " ) "
+ " order by p.parc_tmparcelamento desc ";
retorno = session.createSQLQuery(hql)
.addScalar("dataParcelamento" , Hibernate.DATE)
.addScalar("valorEntrada" , Hibernate.BIG_DECIMAL)
.addScalar("valorDebitoAtualizado" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoAcrescimos" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoAntiguidade" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoInatividade" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoSancao" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoTArifaSocial" , Hibernate.BIG_DECIMAL)
.addScalar("valorJurosParcelamento" , Hibernate.BIG_DECIMAL)
.addScalar("numeroPrestacoes" , Hibernate.SHORT)
.addScalar("idParcelamento" , Hibernate.INTEGER)
.setInteger("situacaoParcelamento" , situacaoParcelamento)
.list();
}
if(retorno != null && retorno.size() > 0){
retornoParcelamento = Util.retonarObjetoDeColecaoArray(retorno);
parcelamento = new Parcelamento();
if(retornoParcelamento[0] != null){
parcelamento.setParcelamento((Date)retornoParcelamento[0]);
}
if(retornoParcelamento[1] != null){
parcelamento.setValorEntrada((BigDecimal)retornoParcelamento[1]);
}
if(retornoParcelamento[2] != null){
parcelamento.setValorDebitoAtualizado((BigDecimal)retornoParcelamento[2]);
}
if(retornoParcelamento[3] != null){
parcelamento.setValorDescontoAcrescimos((BigDecimal)retornoParcelamento[3]);
}
if(retornoParcelamento[4] != null){
parcelamento.setValorDescontoAntiguidade((BigDecimal)retornoParcelamento[4]);
}
if(retornoParcelamento[5] != null){
parcelamento.setValorDescontoInatividade((BigDecimal)retornoParcelamento[5]);
}
if(retornoParcelamento[6] != null){
parcelamento.setValorDescontoSancao((BigDecimal)retornoParcelamento[6]);
}
if(retornoParcelamento[7] != null){
parcelamento.setValorDescontoTarifaSocial((BigDecimal)retornoParcelamento[7]);
}
if(retornoParcelamento[8] != null){
parcelamento.setValorJurosParcelamento((BigDecimal)retornoParcelamento[8]);
}
if(retornoParcelamento[9] != null){
parcelamento.setNumeroPrestacoes((Short)retornoParcelamento[9]);
}
if(retornoParcelamento[10] != null){
parcelamento.setId((Integer)retornoParcelamento[10]);
}
}
} 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 parcelamento;
}
/**
*
*
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* [SB0002] Determinar Parcelamento por Conta
* Item 1.1.2.2.3
*
* @author Thiago Toscano,Vivianne Sousa
* @date 09/01/2008, 02/04/2009
*
* @param codigoConta
* @return
*/
public Parcelamento consultaParcelamentoGuiaPagamento(Integer idGuiaPagamento) throws ErroRepositorioException {
Object[] retornoParcelamento = null;
Session session = HibernateUtil.getSession();
Parcelamento parcelamento = null;
try {
String hql = " select p.parc_tmparcelamento as dataParcelamento," //[0] dataParcelamento
+ " p.parc_vlentrada as valorEntrada, " //[1] valorEntrada
+ " p.parc_vldebitoatualizado as valorDebitoAtualizado, " //[2]
+ " p.parc_vldescontoacrescimos as valorDescontoAcrescimos, " //[3]
+ " p.parc_vldescontoantiguidade as valorDescontoAntiguidade, " //[4]
+ " p.parc_vldescontoinatividade as valorDescontoInatividade, " //[5]
+ " p.parc_vldescontosancao as valorDescontoSancao, " //[6]
+ " p.parc_vldescontotarsoc as valorDescontoTArifaSocial, " //[7]
+ " p.parc_vljurosparcelamento as valorJurosParcelamento, " //[8]
+ " p.parc_nnprestacoes as numeroPrestacoes, " //[9]
+ " p.parc_id as idParcelamento " //[10]
+ " from cobranca.parcelamento p "
+ " where p.pcst_id = 1 "
+ " and p.parc_id in (select pi.parc_id from cobranca.parcelamento_item pi where pi.gpag_id = " + idGuiaPagamento
+ " )";
retornoParcelamento = (Object[])session.createSQLQuery(hql)
.addScalar("dataParcelamento" , Hibernate.DATE)
.addScalar("valorEntrada" , Hibernate.BIG_DECIMAL)
.addScalar("valorDebitoAtualizado" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoAcrescimos" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoAntiguidade" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoInatividade" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoSancao" , Hibernate.BIG_DECIMAL)
.addScalar("valorDescontoTArifaSocial" , Hibernate.BIG_DECIMAL)
.addScalar("valorJurosParcelamento" , Hibernate.BIG_DECIMAL)
.addScalar("numeroPrestacoes" , Hibernate.SHORT)
.addScalar("idParcelamento" , Hibernate.INTEGER)
.setMaxResults(1).uniqueResult();
if(retornoParcelamento != null){
parcelamento = new Parcelamento();
if(retornoParcelamento[0] != null){
parcelamento.setParcelamento((Date)retornoParcelamento[0]);
}
if(retornoParcelamento[1] != null){
parcelamento.setValorEntrada((BigDecimal)retornoParcelamento[1]);
}
if(retornoParcelamento[2] != null){
parcelamento.setValorDebitoAtualizado((BigDecimal)retornoParcelamento[2]);
}
if(retornoParcelamento[3] != null){
parcelamento.setValorDescontoAcrescimos((BigDecimal)retornoParcelamento[3]);
}
if(retornoParcelamento[4] != null){
parcelamento.setValorDescontoAntiguidade((BigDecimal)retornoParcelamento[4]);
}
if(retornoParcelamento[5] != null){
parcelamento.setValorDescontoInatividade((BigDecimal)retornoParcelamento[5]);
}
if(retornoParcelamento[6] != null){
parcelamento.setValorDescontoSancao((BigDecimal)retornoParcelamento[6]);
}
if(retornoParcelamento[7] != null){
parcelamento.setValorDescontoTarifaSocial((BigDecimal)retornoParcelamento[7]);
}
if(retornoParcelamento[8] != null){
parcelamento.setValorJurosParcelamento((BigDecimal)retornoParcelamento[8]);
}
if(retornoParcelamento[9] != null){
parcelamento.setNumeroPrestacoes((Short)retornoParcelamento[9]);
}
if(retornoParcelamento[10] != null){
parcelamento.setId((Integer)retornoParcelamento[10]);
}
}
} 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 parcelamento;
}
/**
*
* Retorna a maior Negativador Moviemnto registro Item com maior data
* [UC0688] Gerar Resumo Di�rio da Negativa��o.
*
* @author Yara Taciane
* @date 22/01/2008
*/
public Date getMaiorDataNegativadorMovimentoRegItem(CobrancaDebitoSituacao cobrancaDebitoSituacao, NegativadorMovimentoReg negativadorMovimentoReg)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Date retorno = null;
try {
String hql = " select max(nmri.dataSituacaoDebito) "
+ " from gcom.cobranca.NegativadorMovimentoRegItem nmri "
+ " where nmri.negativadorMovimentoReg.id=" + negativadorMovimentoReg.getId()
+ " and nmri.cobrancaDebitoSituacao.id ="+ cobrancaDebitoSituacao.getId()
+ " ";
retorno = (Date) session.createQuery(hql).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;
}
/**
*
* Conta a quantidade de Clientes Negativados
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Yara Taciane
* @date 17/03/2008
*/
public Integer pesquisarRelatorioAcompanhamentoClientesNegativadorCount(DadosConsultaNegativacaoHelper helper)
throws ErroRepositorioException {
Integer retorno;
Session session = HibernateUtil.getSession();
String restricao = "";
try {
String hql = " select count(*) "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " where 1=1 " ;
restricao = restricao + " and nmrg.imovel.id is not null and nmrg.negativadorMovimento.codigoMovimento = 1 " ;
//********************************************************
// RM3755
// Autor: Ivan Sergio
// Data: 12/01/2011
//********************************************************
//if (helper.getIdNegativador() != null && helper.getIdNegativador() > 0) {
// restricao = restricao + " and nmrg.negativadorMovimento.negativador.id = " + helper.getIdNegativador();
//}
if (helper.getColecaoNegativador() != null && !helper.getColecaoNegativador().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoNegativador().size() == 1){
Iterator it = helper.getColecaoNegativador().iterator();
while(it.hasNext()){
Negativador obj = (Negativador) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoNegativador().iterator();
Negativador negativador = null;
restricao = restricao + " and nmrg.negativadorMovimento.negativador.id in (";
while (iterator.hasNext()) {
negativador = (Negativador) iterator.next();
restricao = restricao + negativador.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
if (helper.getPeriodoEnvioNegativacaoInicio() != null && helper.getPeriodoEnvioNegativacaoFim() != null) {
restricao = restricao + " and nmrg.negativadorMovimento.dataProcessamentoEnvio between ' " + helper.getPeriodoEnvioNegativacaoInicio() + " ' and ' " + helper.getPeriodoEnvioNegativacaoFim() + " ' ";
}
if (helper.getIdNegativacaoComando() != null && helper.getIdNegativacaoComando() > 0) {
restricao = restricao + " and nmrg.negativadorMovimento.negativacaoComando.id = " + helper.getIdNegativacaoComando();
}
if (helper.getIdQuadra() != null && helper.getIdQuadra() > 0) {
restricao = restricao + " and nmrg.quadra.id = " + helper.getIdQuadra();
}
if (helper.getColecaoCobrancaGrupo() != null && !helper.getColecaoCobrancaGrupo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCobrancaGrupo().size() == 1){
Iterator it = helper.getColecaoCobrancaGrupo().iterator();
while(it.hasNext()){
CobrancaGrupo obj = (CobrancaGrupo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCobrancaGrupo().iterator();
CobrancaGrupo cobrancaGrupo = null;
restricao = restricao + " and nmrg.quadra.rota.cobrancaGrupo.id in (";
while (iterator.hasNext()) {
cobrancaGrupo = (CobrancaGrupo) iterator.next();
restricao = restricao + cobrancaGrupo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoGerenciaRegional().size() == 1){
Iterator it = helper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional obj = (GerenciaRegional) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and nmrg.localidade.gerenciaRegional.id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
restricao = restricao + gerenciaRegional.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = helper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and nmrg.localidade.unidadeNegocio.id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
restricao = restricao + unidadeNegocio.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoImovelPerfil() != null && !helper.getColecaoImovelPerfil().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoImovelPerfil().size() == 1){
Iterator it = helper.getColecaoImovelPerfil().iterator();
while(it.hasNext()){
ImovelPerfil obj = (ImovelPerfil) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoImovelPerfil().iterator();
ImovelPerfil imovelPerfil = null;
restricao = restricao + " and nmrg.imovelPerfil.id in (";
while (iterator.hasNext()) {
imovelPerfil = (ImovelPerfil) iterator.next();
restricao = restricao + imovelPerfil.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIdEloPolo() != null && helper.getIdEloPolo()>0){
restricao = restricao + " and nmrg.localidade.localidade = " + helper.getIdEloPolo();
}
if (helper.getIdLocalidade() != null && helper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.localidade.id = " + helper.getIdLocalidade();
}
if(helper.getIdSetorComercial() != null && helper.getIdSetorComercial()>0){
restricao = restricao + " and nmrg.codigoSetorComercial = " + helper.getIdSetorComercial();
}
if (helper.getColecaoCategoria() != null && !helper.getColecaoCategoria().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCategoria().size() == 1){
Iterator it = helper.getColecaoCategoria().iterator();
while(it.hasNext()){
Categoria obj = (Categoria) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCategoria().iterator();
Categoria Categoria = null;
restricao = restricao + " and nmrg.categoria.id in (";
while (iterator.hasNext()) {
Categoria = (Categoria) iterator.next();
restricao = restricao + Categoria.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoClienteTipo().size() == 1){
Iterator it = helper.getColecaoClienteTipo().iterator();
while(it.hasNext()){
ClienteTipo obj = (ClienteTipo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoClienteTipo().iterator();
ClienteTipo clienteTipo = null;
restricao = restricao + " and nmrg.cliente.clienteTipo.id in (";
while (iterator.hasNext()) {
clienteTipo = (ClienteTipo) iterator.next();
restricao = restricao + clienteTipo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoEsferaPoder().size() == 1){
Iterator it = helper.getColecaoEsferaPoder().iterator();
while(it.hasNext()){
EsferaPoder obj = (EsferaPoder) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoEsferaPoder().iterator();
EsferaPoder esferaPoder = null;
restricao = restricao + "and nmrg.cliente.clienteTipo.esferaPoder.id in (";
while (iterator.hasNext()) {
esferaPoder = (EsferaPoder) iterator.next();
restricao = restricao + esferaPoder.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
// RM3755
// Autor: Ivan Sergio
// Data: 12/01/2011
//********************************************************
if (helper.getColecaoLigacaoAguaSituacao() != null && !helper.getColecaoLigacaoAguaSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoAguaSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoAguaSituacao().iterator();
while(it.hasNext()){
LigacaoAguaSituacao obj = (LigacaoAguaSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoAguaSituacao().iterator();
LigacaoAguaSituacao ligacaoAguaSituacao = null;
restricao = restricao + "and nmrg.ligacaoAguaSituacao.id in (";
while (iterator.hasNext()) {
ligacaoAguaSituacao = (LigacaoAguaSituacao) iterator.next();
restricao = restricao + ligacaoAguaSituacao.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoEsgotoSituacao() != null && !helper.getColecaoLigacaoEsgotoSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoEsgotoSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoEsgotoSituacao().iterator();
while(it.hasNext()){
LigacaoEsgotoSituacao obj = (LigacaoEsgotoSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoEsgotoSituacao().iterator();
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
restricao = restricao + "and nmrg.ligacaoEsgotoSituacao.id in (";
while (iterator.hasNext()) {
ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) iterator.next();
restricao = restricao + ligacaoEsgotoSituacao.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
if (helper.getColecaoMotivoRejeicao() != null && !helper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = helper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
hql = " select count(*) "
+ " from gcom.cobranca.NegativadorMovimentoRegRetMot nmrr "
+ " inner join nmrr.negativadorMovimentoReg nmrg "
+ " where 1=1 " ;
Iterator iterator = helper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrr.negativadorRetornoMotivo.id in (";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIndicadorApenasNegativacoesRejeitadas() != null &&
helper.getIndicadorApenasNegativacoesRejeitadas().equals(ConstantesSistema.SIM)){
restricao = restricao + " and nmrg.indicadorAceito = " + ConstantesSistema.NAO_ACEITO;
}
retorno = (Integer) session.createQuery(hql + restricao).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;
}
/**
*
* Conta a quantidade de Clientes Negativados
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Yara Taciane,Vivianne Sousa
* @date 17/03/2008,26/08/2009
*/
public Collection pesquisarRelatorioAcompanhamentoClientesNegativador(DadosConsultaNegativacaoHelper helper)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
List retorno = null;
Collection colecaoHelper = new ArrayList();
try {
String sql = " select "
+ " nmrg.nmrg_id as idNegativadorMovReg, "//0
+ " nmrg.nmrg_icaceito as indicadorAceito, "//1
+ " nmrg.nmrg_nncpf as cpf, "//2
+ " nmrg.nmrg_nncnpj as cnpj, "//3
+ " nmrg.nmrg_vldebito as valorDebitoReg, "//4
+ " clieNmrg.clie_nmcliente as nomeClienteReg, "//5
+ " loca.loca_id as idLocalidade, "//6
+ " loca.loca_nmlocalidade as nomeLocalidade, "//7
+ " ngmv.ngmv_id as idNegativadorMov, "//8
+ " ngmv.ngmv_dtprocessamentoenvio as dataProcEnvio, "//9
+ " negt.negt_id as idNegativador, "//10
+ " clie.clie_nmcliente as nomeClienteNegativador, "//11
+ " ngim.ngim_icexcluido as indicadorExcluido, "//12
+ " nmrg.cbst_id as cobrancaSituacaoReg, "//13
+ " cbst.cbst_dscobrancasituacao as descCobrancaSituacaoReg, "//14
+ " nmrg.imov_id as idImovel, "//15
+ " nmrg.last_id as idLigacaoAguaSituacao, " //16
+ " nmrg.lest_id as idLigacaoEsgotoSituacao, " //17
+ " greg.greg_id as idGerenciaRegional, "//18
+ " greg.greg_nmregional as nomeGerenciaRegional, "//19
+ " uneg.uneg_id as idUnidadeNegocio, "//20
+ " uneg.uneg_nmunidadenegocio as nomeUnidadeNegocio, "//21
+ " clie.clie_id as idClienteNegativador "//22
+ " from cobranca.negatd_movimento_reg nmrg "
+ " inner join cobranca.negativador_movimento ngmv on nmrg.ngmv_id=ngmv.ngmv_id "
+ " inner join cobranca.negativacao_comando ngcm on ngmv.ngcm_id=ngcm.ngcm_id "
+ " inner join cobranca.negativacao_imoveis ngim on ngmv.ngcm_id=ngim.ngcm_id and nmrg.imov_id=ngim.imov_id "
+ " inner join cobranca.negativador negt on ngmv.negt_id=negt.negt_id "
+ " inner join cadastro.cliente clie on negt.clie_id=clie.clie_id "
+ " inner join cadastro.quadra qdra on nmrg.qdra_id=qdra.qdra_id "
+ " inner join micromedicao.rota rota on qdra.rota_id=rota.rota_id "
+ " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id "
+ " inner join cadastro.gerencia_regional greg on loca.greg_id = greg.greg_id "
+ " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id "
+ " inner join cadastro.cliente clieNmrg on nmrg.clie_id=clieNmrg.clie_id "
+ " left join cobranca.cobranca_situacao cbst on nmrg.cbst_id=cbst.cbst_id ";
String restricao = " where nmrg.imov_id is not null and ngmv.ngmv_cdmovimento=1 ";
//********************************************************
// RM3755
// Autor: Ivan Sergio
// Data: 12/01/2011
//********************************************************
//if (helper.getIdNegativador() != null && helper.getIdNegativador() > 0) {
// restricao = restricao + " and negt.negt_id = " + helper.getIdNegativador();
//}
if (helper.getColecaoNegativador() != null && !helper.getColecaoNegativador().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoNegativador().size() == 1){
Iterator it = helper.getColecaoNegativador().iterator();
while(it.hasNext()){
Negativador obj = (Negativador) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoNegativador().iterator();
Negativador negativador = null;
restricao = restricao + " and negt.negt_id in (";
while (iterator.hasNext()) {
negativador = (Negativador) iterator.next();
restricao = restricao + negativador.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
if (helper.getPeriodoEnvioNegativacaoInicio() != null && helper.getPeriodoEnvioNegativacaoFim() != null) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between ' " + helper.getPeriodoEnvioNegativacaoInicio() + " ' and ' " + helper.getPeriodoEnvioNegativacaoFim() + " ' ";
}
if (helper.getIdNegativacaoComando() != null && helper.getIdNegativacaoComando() > 0) {
restricao = restricao + " and ngcm.ngcm_id = " + helper.getIdNegativacaoComando();
}
if (helper.getIdQuadra() != null && helper.getIdQuadra() > 0) {
restricao = restricao + " and nmrg.qdra_id = " + helper.getIdQuadra();
}
if (helper.getColecaoCobrancaGrupo() != null && !helper.getColecaoCobrancaGrupo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCobrancaGrupo().size() == 1){
Iterator it = helper.getColecaoCobrancaGrupo().iterator();
while(it.hasNext()){
CobrancaGrupo obj = (CobrancaGrupo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCobrancaGrupo().iterator();
CobrancaGrupo cobrancaGrupo = null;
restricao = restricao + " and rota.cbgr_id in (";
while (iterator.hasNext()) {
cobrancaGrupo = (CobrancaGrupo) iterator.next();
restricao = restricao + cobrancaGrupo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoGerenciaRegional().size() == 1){
Iterator it = helper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional gerReg = (GerenciaRegional) it.next();
if(gerReg != null && gerReg.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and loca.greg_id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
restricao = restricao + gerenciaRegional.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = helper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and loca.uneg_id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
restricao = restricao + unidadeNegocio.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoImovelPerfil() != null && !helper.getColecaoImovelPerfil().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoImovelPerfil().size() == 1){
Iterator it = helper.getColecaoImovelPerfil().iterator();
while(it.hasNext()){
ImovelPerfil obj = (ImovelPerfil) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoImovelPerfil().iterator();
ImovelPerfil imovelPerfil = null;
restricao = restricao + " and nmrg.iper_id in (";
while (iterator.hasNext()) {
imovelPerfil = (ImovelPerfil) iterator.next();
restricao = restricao + imovelPerfil.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIdEloPolo() != null && helper.getIdEloPolo()>0){
restricao = restricao + " and loca.loca_cdelo = " + helper.getIdEloPolo();
}
if (helper.getIdLocalidade() != null && helper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.loca_id = " + helper.getIdLocalidade();
}
if(helper.getIdSetorComercial() != null && helper.getIdSetorComercial()>0){
restricao = restricao + " and nmrg.nmrg_cdsetorcomercial = " + helper.getIdSetorComercial();
}
if (helper.getColecaoCategoria() != null && !helper.getColecaoCategoria().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCategoria().size() == 1){
Iterator it = helper.getColecaoCategoria().iterator();
while(it.hasNext()){
Categoria obj = (Categoria) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCategoria().iterator();
Categoria categoria = null;
restricao = restricao + " and nmrg.catg_id in (";
while (iterator.hasNext()) {
categoria = (Categoria) iterator.next();
restricao = restricao + categoria.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoClienteTipo().size() == 1){
Iterator it = helper.getColecaoClienteTipo().iterator();
while(it.hasNext()){
ClienteTipo obj = (ClienteTipo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoClienteTipo().iterator();
ClienteTipo clienteTipo = null;
restricao = restricao + " and clieNmrg.cltp_id in (";
while (iterator.hasNext()) {
clienteTipo = (ClienteTipo) iterator.next();
restricao = restricao + clienteTipo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoEsferaPoder().size() == 1){
Iterator it = helper.getColecaoEsferaPoder().iterator();
while(it.hasNext()){
EsferaPoder obj = (EsferaPoder) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoEsferaPoder().iterator();
EsferaPoder esferaPoder = null;
sql = sql + " inner join cadastro.cliente_tipo cltp on clieNmrg.cltp_id=cltp.cltp_id ";
restricao = restricao + " and cltp.epod_id in (";
while (iterator.hasNext()) {
esferaPoder = (EsferaPoder) iterator.next();
restricao = restricao + esferaPoder.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
// RM3755
// Autor: Ivan Sergio
// Data: 12/01/2011
//********************************************************
if (helper.getColecaoLigacaoAguaSituacao() != null && !helper.getColecaoLigacaoAguaSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoAguaSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoAguaSituacao().iterator();
while(it.hasNext()){
LigacaoAguaSituacao obj = (LigacaoAguaSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoAguaSituacao().iterator();
LigacaoAguaSituacao ligacaoAguaSituacao = null;
restricao = restricao + "and nmrg.last_id in (";
while (iterator.hasNext()) {
ligacaoAguaSituacao = (LigacaoAguaSituacao) iterator.next();
restricao = restricao + ligacaoAguaSituacao.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoEsgotoSituacao() != null && !helper.getColecaoLigacaoEsgotoSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoEsgotoSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoEsgotoSituacao().iterator();
while(it.hasNext()){
LigacaoEsgotoSituacao obj = (LigacaoEsgotoSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoEsgotoSituacao().iterator();
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
restricao = restricao + "and nmrg.lest_id in (";
while (iterator.hasNext()) {
ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) iterator.next();
restricao = restricao + ligacaoEsgotoSituacao.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
if (helper.getColecaoMotivoRejeicao() != null && !helper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = helper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
sql = sql + " inner join cobranca.negatd_mov_reg_ret_mot nmrr "
+ " on nmrg.nmrg_id = nmrr.nmrg_id ";
Iterator iterator = helper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrr.nrmt_id in (";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIndicadorApenasNegativacoesRejeitadas() != null &&
helper.getIndicadorApenasNegativacoesRejeitadas().equals(ConstantesSistema.SIM)){
restricao = restricao + " and nmrg.nmrg_icaceito = " + ConstantesSistema.NAO_ACEITO;
}
restricao = restricao + " order by nmrg.nmrg_icaceito,ngim.ngim_icexcluido,nmrg.cbst_id,ngmv.ngmv_dtprocessamentoenvio,greg.greg_id,uneg.uneg_id,loca.loca_id";
sql = sql + restricao;
retorno = (List) session.createSQLQuery(sql)
.addScalar("idNegativadorMovReg" , Hibernate.INTEGER)
.addScalar("indicadorAceito" , Hibernate.SHORT)
.addScalar("cpf" , Hibernate.STRING)
.addScalar("cnpj" , Hibernate.STRING)
.addScalar("valorDebitoReg" , Hibernate.BIG_DECIMAL)
.addScalar("nomeClienteReg" , Hibernate.STRING)
.addScalar("idLocalidade" , Hibernate.INTEGER)
.addScalar("nomeLocalidade" , Hibernate.STRING)
.addScalar("idNegativadorMov" , Hibernate.INTEGER)
.addScalar("dataProcEnvio" , Hibernate.DATE)
.addScalar("idNegativador" , Hibernate.INTEGER)
.addScalar("nomeClienteNegativador" , Hibernate.STRING)
.addScalar("indicadorExcluido" , Hibernate.SHORT)
.addScalar("cobrancaSituacaoReg" , Hibernate.INTEGER)
.addScalar("descCobrancaSituacaoReg" , Hibernate.STRING)
.addScalar("idImovel" , Hibernate.INTEGER)
.addScalar("idLigacaoAguaSituacao" , Hibernate.INTEGER)
.addScalar("idLigacaoEsgotoSituacao" , Hibernate.INTEGER)
.addScalar("idGerenciaRegional" , Hibernate.INTEGER)
.addScalar("nomeGerenciaRegional" , Hibernate.STRING)
.addScalar("idUnidadeNegocio" , Hibernate.INTEGER)
.addScalar("nomeUnidadeNegocio" , Hibernate.STRING)
.addScalar("idClienteNegativador" , Hibernate.INTEGER)
.list();
if(retorno != null){
colecaoHelper = new ArrayList();
Iterator iter = retorno.iterator();
NegativadorMovimentoReg nmrg = null;
Cliente clienteNmrg = null;
Localidade loca = null;
GerenciaRegional greg = null;
UnidadeNegocio uneg = null;
NegativadorMovimento ngmv = null;
Negativador negt = null;
Cliente clienteNegt = null;
Short indicadorExcluidoNgim = null;
CobrancaSituacao cobrancaSituacao = null;
Imovel imov = null;
RelatorioAcompanhamentoClientesNegativadosHelper helperRetorno = null;
LigacaoAguaSituacao ligacaoAguaSituacao = null;
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
while (iter.hasNext()) {
Object[] objeto = (Object[]) iter.next();
nmrg = new NegativadorMovimentoReg();
nmrg.setId((Integer)objeto[0]);
if(objeto[1] != null){
nmrg.setIndicadorAceito((Short)objeto[1]);
}
if(objeto[2] != null){
nmrg.setNumeroCpf((String)objeto[2]);
}
if(objeto[3] != null){
nmrg.setNumeroCnpj((String)objeto[3]);
}
if(objeto[4] != null){
nmrg.setValorDebito((BigDecimal)objeto[4]);
}
if(objeto[5] != null){
clienteNmrg = new Cliente();
clienteNmrg.setNome((String)objeto[5]);
if(objeto[22] != null){
clienteNmrg.setId((Integer)objeto[22]);
}
nmrg.setCliente(clienteNmrg);
}
if(objeto[6] != null){
loca = new Localidade();
loca.setId((Integer)objeto[6]);
if(objeto[7] != null){
loca.setDescricao((String)objeto[7]);
}
//********************************************************
// RM4036
// Autor: Ivan Sergio
// Data: 03/02/2011
//********************************************************
if(objeto[18] != null){
greg = new GerenciaRegional();
greg.setId((Integer) objeto[18]);
if(objeto[19] != null){
greg.setNome((String) objeto[19]);
}
}
if(objeto[20] != null){
uneg = new UnidadeNegocio();
uneg.setId((Integer) objeto[20]);
if(objeto[21] != null){
uneg.setNome((String) objeto[21]);
}
}
//********************************************************
loca.setGerenciaRegional(greg);
loca.setUnidadeNegocio(uneg);
nmrg.setLocalidade(loca);
}
if(objeto[8] != null){
ngmv = new NegativadorMovimento();
ngmv.setId((Integer)objeto[8]);
if(objeto[9] != null){
ngmv.setDataProcessamentoEnvio((Date)objeto[9]);
}
nmrg.setNegativadorMovimento(ngmv);
}
if(objeto[10] != null){
negt = new Negativador();
negt.setId((Integer)objeto[10]);
if(objeto[11] != null){
clienteNegt = new Cliente();
clienteNegt.setNome((String)objeto[11]);
negt.setCliente(clienteNegt);
}
}
if(objeto[12] != null){
indicadorExcluidoNgim = (Short)objeto[12];
}
if(objeto[13] != null){
cobrancaSituacao = new CobrancaSituacao();
cobrancaSituacao.setId((Integer)objeto[13]);
if(objeto[14] != null){
cobrancaSituacao.setDescricao((String)objeto[14]);
}
nmrg.setCobrancaSituacao(cobrancaSituacao);
}
if(objeto[15] != null){
imov = new Imovel();
imov.setId((Integer)objeto[15]);
nmrg.setImovel(imov);
}
//********************************************************
// RM3755
// Autor: Ivan Sergio
// Data: 12/01/2011
//********************************************************
if (objeto[16] != null) {
ligacaoAguaSituacao = new LigacaoAguaSituacao();
ligacaoAguaSituacao.setId((Integer) objeto[16]);
nmrg.setLigacaoAguaSituacao(ligacaoAguaSituacao);
}
if (objeto[17] != null) {
ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
ligacaoEsgotoSituacao.setId((Integer) objeto[17]);
nmrg.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
}
//********************************************************
helperRetorno = new RelatorioAcompanhamentoClientesNegativadosHelper(
indicadorExcluidoNgim,nmrg);
colecaoHelper.add(helperRetorno);
}
}
} 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 colecaoHelper;
}
/**
*
* Retorna o somat�rio do VALOR PARCELADO - ENTRADAdo D�bito do NegativadoMovimentoReg pela CobrancaDebitoSituacao
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Yara Taciane
* @date 17/03/2008
*/
public BigDecimal pesquisarSomatorioValorDebito(NegativadorMovimentoReg negativadorMovimentoReg, CobrancaDebitoSituacao cobrancaDebitoSituacao) throws ErroRepositorioException {
Integer retorno1 = null;
BigDecimal retorno = null;
String consulta_2 = null;
Session session = HibernateUtil.getSession();
try {
String consulta_1 = " select nmrg.codigoExclusaoTipo "
+ " from gcom.cobranca.NegativadorMovimentoReg as nmrg "
+ " where nmrg.id = " + negativadorMovimentoReg.getId()
+ "";
retorno1 = (Integer) session.createQuery(consulta_1).uniqueResult();
// Se null n�o est� exclu�da
if(retorno1 == null){
consulta_2 = " select sum(nmri.valorDebito) "
+ " from gcom.cobranca.NegativadorMovimentoRegItem nmri "
+ " where nmri.negativadorMovimentoReg.id = " + negativadorMovimentoReg.getId()
+ " and nmri.cobrancaDebitoSituacao.id = " + cobrancaDebitoSituacao.getId()
+ "";
}else{
// Se null est� exclu�da
consulta_2 = " select sum(nmri.valorDebito) "
+ " from gcom.cobranca.NegativadorMovimentoRegItem as nmri "
+ " where nmri.negativadorMovimentoReg.id = " + negativadorMovimentoReg.getId()
+ " and nmri.cobrancaDebitoSituacaoAposExclusao.id = " + cobrancaDebitoSituacao.getId()
+ "";
}
retorno = (BigDecimal) session.createQuery(consulta_2).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;
}
// /**
// *
// * Retorna o somat�rio do valor do D�bito do NegativadoMovimentoReg pela CobrancaDebitoSituacao
// * [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
// * @author Yara Taciane
// * @date 17/03/2008
// */
// public BigDecimal pesquisarSomatorioValorDebito(NegativadorMovimentoReg negativadorMovimentoReg, CobrancaDebitoSituacao cobrancaDebitoSituacao) throws ErroRepositorioException {
//
// BigDecimal retorno = null;
// Session session = HibernateUtil.getSession();
//
// try {
//
// String hql = " select sum(nmri.valorDebito) "
// + " from gcom.cobranca.NegativadorMovimentoRegItem as nmri "
// + " where nmri.negativadorMovimentoReg.id = " + negativadorMovimentoReg.getId()
// + " and nmri.cobrancaDebitoSituacao.id = " + cobrancaDebitoSituacao.getId()
// + "";
//
//
// retorno = (BigDecimal) session.createQuery(hql).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;
// }
/**
*
* Retorna o ImovelCobrancaSituacao pelo imovel do NegativadorMovimentoReg
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Yara Taciane
* @date 17/03/2008
*/
public ImovelCobrancaSituacao getImovelCobrancaSituacao(Imovel imovel) throws ErroRepositorioException {
ImovelCobrancaSituacao retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select ics"
+ " from gcom.cadastro.imovel.ImovelCobrancaSituacao ics"
+ " inner join fetch ics.imovel as imov "
+ " inner join fetch ics.cobrancaSituacao as cbst "
+ " where ics.imovel.id = " + imovel.getId()
+ " ";
retorno = (ImovelCobrancaSituacao) session.createQuery(hql).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;
}
/**
*
* Conta a quantidade de Clientes Negativados
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Yara Taciane
* @date 17/03/2008
*/
public Integer pesquisarRelatorioNegativacoesExcluidasCount(DadosConsultaNegativacaoHelper helper)
throws ErroRepositorioException {
Integer retorno;
Session session = HibernateUtil.getSession();
String restricao = "";
try {
String hql = " select count(*) "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " where nmrg.codigoExclusaoTipo is not null "
+ " and nmrg.imovel.id is not null " ;
//********************************************************
// RM3755
// Autor: Ivan Sergio
// Data: 12/01/2011
//********************************************************
//if (helper.getIdNegativador() != null && helper.getIdNegativador() > 0) {
// restricao = restricao + " and nmrg.negativadorMovimento.negativador.id = " + helper.getIdNegativador();
//}
if (helper.getColecaoNegativador() != null && !helper.getColecaoNegativador().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoNegativador().size() == 1){
Iterator it = helper.getColecaoNegativador().iterator();
while(it.hasNext()){
Negativador obj = (Negativador) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoNegativador().iterator();
Negativador negativador = null;
restricao = restricao + " and nmrg.negativadorMovimento.negativador.id in (";
while (iterator.hasNext()) {
negativador = (Negativador) iterator.next();
restricao = restricao + negativador.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
if (helper.getPeriodoEnvioNegativacaoInicio() != null && helper.getPeriodoEnvioNegativacaoFim() != null) {
restricao = restricao + " and nmrg.negativadorMovimento.dataProcessamentoEnvio between ' " + helper.getPeriodoEnvioNegativacaoInicio() + " ' and ' " + helper.getPeriodoEnvioNegativacaoFim() + " ' ";
}
if (helper.getPeriodoExclusaoNegativacaoInicio() != null && helper.getPeriodoExclusaoNegativacaoFim() != null) {
restricao = restricao + " and nmrg.negativadorMovimento.negativacaoComando.id in "
+ "(select negativacaoComando.id from gcom.cobranca.NegativacaoImoveis"
+ " where dataExclusao between ' " + helper.getPeriodoExclusaoNegativacaoInicio() + " ' and ' " + helper.getPeriodoExclusaoNegativacaoFim() + " ') ";
}
if (helper.getIdNegativadorExclusaoMotivo() != null && helper.getIdNegativadorExclusaoMotivo() > 0) {
restricao = restricao + " and nmrg.negativadorExclusaoMotivo.id = " + helper.getIdNegativadorExclusaoMotivo();
}
if (helper.getIdNegativacaoComando() != null && helper.getIdNegativacaoComando() > 0) {
restricao = restricao + " and nmrg.negativadorMovimento.negativacaoComando.id = " + helper.getIdNegativacaoComando();
}
if (helper.getIdQuadra() != null && helper.getIdQuadra() > 0) {
restricao = restricao + " and nmrg.quadra.id = " + helper.getIdQuadra();
}
if (helper.getColecaoCobrancaGrupo() != null && !helper.getColecaoCobrancaGrupo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCobrancaGrupo().size() == 1){
Iterator it = helper.getColecaoCobrancaGrupo().iterator();
while(it.hasNext()){
CobrancaGrupo obj = (CobrancaGrupo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCobrancaGrupo().iterator();
CobrancaGrupo cobrancaGrupo = null;
restricao = restricao + " and nmrg.quadra.rota.cobrancaGrupo.id in (";
while (iterator.hasNext()) {
cobrancaGrupo = (CobrancaGrupo) iterator.next();
restricao = restricao + cobrancaGrupo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoGerenciaRegional().size() == 1){
Iterator it = helper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional obj = (GerenciaRegional) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and nmrg.localidade.gerenciaRegional.id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
restricao = restricao + gerenciaRegional.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = helper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and nmrg.localidade.unidadeNegocio.id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
restricao = restricao + unidadeNegocio.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIdEloPolo() != null && helper.getIdEloPolo()>0){
restricao = restricao + " and nmrg.localidade.localidade = " + helper.getIdEloPolo();
}
if (helper.getIdLocalidade() != null && helper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.localidade.id = " + helper.getIdLocalidade();
}
if(helper.getIdSetorComercial() != null && helper.getIdSetorComercial()>0){
restricao = restricao + " and nmrg.codigoSetorComercial = " + helper.getIdSetorComercial();
}
if (helper.getColecaoCategoria() != null && !helper.getColecaoCategoria().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCategoria().size() == 1){
Iterator it = helper.getColecaoCategoria().iterator();
while(it.hasNext()){
Categoria obj = (Categoria) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCategoria().iterator();
Categoria Categoria = null;
restricao = restricao + " and nmrg.categoria.id in (";
while (iterator.hasNext()) {
Categoria = (Categoria) iterator.next();
restricao = restricao + Categoria.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoClienteTipo().size() == 1){
Iterator it = helper.getColecaoClienteTipo().iterator();
while(it.hasNext()){
ClienteTipo obj = (ClienteTipo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoClienteTipo().iterator();
ClienteTipo clienteTipo = null;
restricao = restricao + " and nmrg.cliente.clienteTipo.id in (";
while (iterator.hasNext()) {
clienteTipo = (ClienteTipo) iterator.next();
restricao = restricao + clienteTipo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoEsferaPoder().size() == 1){
Iterator it = helper.getColecaoEsferaPoder().iterator();
while(it.hasNext()){
EsferaPoder obj = (EsferaPoder) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoEsferaPoder().iterator();
EsferaPoder esferaPoder = null;
restricao = restricao + "and nmrg.cliente.clienteTipo.esferaPoder.id in (";
while (iterator.hasNext()) {
esferaPoder = (EsferaPoder) iterator.next();
restricao = restricao + esferaPoder.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
// RM3755
// Autor: Ivan Sergio
// Data: 12/01/2011
//********************************************************
if (helper.getColecaoLigacaoAguaSituacao() != null && !helper.getColecaoLigacaoAguaSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoAguaSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoAguaSituacao().iterator();
while(it.hasNext()){
LigacaoAguaSituacao obj = (LigacaoAguaSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoAguaSituacao().iterator();
LigacaoAguaSituacao ligacaoAguaSituacao = null;
restricao = restricao + "and nmrg.ligacaoAguaSituacao.id in (";
while (iterator.hasNext()) {
ligacaoAguaSituacao = (LigacaoAguaSituacao) iterator.next();
restricao = restricao + ligacaoAguaSituacao.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoEsgotoSituacao() != null && !helper.getColecaoLigacaoEsgotoSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoEsgotoSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoEsgotoSituacao().iterator();
while(it.hasNext()){
LigacaoEsgotoSituacao obj = (LigacaoEsgotoSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoEsgotoSituacao().iterator();
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
restricao = restricao + "and nmrg.ligacaoEsgotoSituacao.id in (";
while (iterator.hasNext()) {
ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) iterator.next();
restricao = restricao + ligacaoEsgotoSituacao.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
retorno = (Integer) session.createQuery(hql + restricao).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;
}
/**
*
* Conta a quantidade de Clientes Negativados
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Yara Taciane
* @date 17/03/2008
*/
public Collection pesquisarRelatorioNegativacoesExcluidas(DadosConsultaNegativacaoHelper helper)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Collection retorno = new ArrayList();
String restricao = "";
try {
String hql = " select nmrg "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " left join fetch nmrg.negativadorMovimento as ngmv "
+ " left join fetch nmrg.negativadorExclusaoMotivo as nemt "
+ " left join fetch ngmv.negativacaoComando as ngcm "
+ " left join fetch ngmv.negativador as negt "
+ " left join fetch negt.cliente as clie "
+ " left join fetch nmrg.quadra as quad "
+ " left join fetch quad.rota as rota "
+ " left join fetch rota.cobrancaGrupo as cbgr "
+ " left join fetch nmrg.localidade as loca "
+ " left join fetch loca.gerenciaRegional as greg "
+ " left join fetch loca.unidadeNegocio as uneg "
+ " left join fetch loca.localidade as lelo "
+ " left join fetch quad.setorComercial as setc "
+ " left join fetch nmrg.imovelPerfil as ip "
+ " left join fetch nmrg.categoria as catg "
+ " left join fetch nmrg.cliente as clie "
+ " left join fetch clie.clienteTipo as cltp "
+ " left join fetch cltp.esferaPoder as epod "
+ " left join fetch nmrg.cobrancaDebitoSituacao as cbds "
+ " left join fetch nmrg.imovel as imov "
+ " where nmrg.codigoExclusaoTipo is not null "
+ " and nmrg.imovel.id is not null " ;
//********************************************************
// RM3755
// Autor: Ivan Sergio
// Data: 12/01/2011
//********************************************************
//if (helper.getIdNegativador() != null && helper.getIdNegativador() > 0) {
// restricao = restricao + " and ngmv.negativador.id = " + helper.getIdNegativador();
//}
if (helper.getColecaoNegativador() != null && !helper.getColecaoNegativador().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoNegativador().size() == 1){
Iterator it = helper.getColecaoNegativador().iterator();
while(it.hasNext()){
Negativador obj = (Negativador) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoNegativador().iterator();
Negativador negativador = null;
restricao = restricao + " and ngmv.negativador.id in (";
while (iterator.hasNext()) {
negativador = (Negativador) iterator.next();
restricao = restricao + negativador.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
if (helper.getPeriodoEnvioNegativacaoInicio() != null && helper.getPeriodoEnvioNegativacaoFim() != null) {
restricao = restricao + " and nmrg.negativadorMovimento.dataProcessamentoEnvio between ' " + helper.getPeriodoEnvioNegativacaoInicio() + " ' and ' " + helper.getPeriodoEnvioNegativacaoFim() + " ' ";
}
if (helper.getPeriodoExclusaoNegativacaoInicio() != null && helper.getPeriodoExclusaoNegativacaoFim() != null) {
restricao = restricao + " and ngcm.id in "
+ "(select negativacaoComando.id from gcom.cobranca.NegativacaoImoveis"
+ " where dataExclusao between ' " + helper.getPeriodoExclusaoNegativacaoInicio() + " ' and ' " + helper.getPeriodoExclusaoNegativacaoFim() + " ') ";
}
if (helper.getIdNegativadorExclusaoMotivo() != null && helper.getIdNegativadorExclusaoMotivo() > 0) {
restricao = restricao + " and nmrg.negativadorExclusaoMotivo.id = " + helper.getIdNegativadorExclusaoMotivo();
}
if (helper.getIdNegativacaoComando() != null && helper.getIdNegativacaoComando() > 0) {
restricao = restricao + " and ngmv.negativacaoComando.id = " + helper.getIdNegativacaoComando();
}
if (helper.getIdQuadra() != null && helper.getIdQuadra() > 0) {
restricao = restricao + " and nmrg.quadra.id = " + helper.getIdQuadra();
}
if (helper.getColecaoCobrancaGrupo() != null && !helper.getColecaoCobrancaGrupo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCobrancaGrupo().size() == 1){
Iterator it = helper.getColecaoCobrancaGrupo().iterator();
while(it.hasNext()){
CobrancaGrupo obj = (CobrancaGrupo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCobrancaGrupo().iterator();
CobrancaGrupo cobrancaGrupo = null;
restricao = restricao + " and nmrg.quadra.rota.cobrancaGrupo.id in (";
while (iterator.hasNext()) {
cobrancaGrupo = (CobrancaGrupo) iterator.next();
restricao = restricao + cobrancaGrupo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoGerenciaRegional().size() == 1){
Iterator it = helper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional gerReg = (GerenciaRegional) it.next();
if(gerReg != null && gerReg.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and loca.gerenciaRegional.id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
restricao = restricao + gerenciaRegional.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = helper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and loca.unidadeNegocio.id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
restricao = restricao + unidadeNegocio.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIdEloPolo() != null && helper.getIdEloPolo()>0){
restricao = restricao + " and loca.localidade = " + helper.getIdEloPolo();
}
if (helper.getIdLocalidade() != null && helper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.localidade.id = " + helper.getIdLocalidade();
}
if(helper.getIdSetorComercial() != null && helper.getIdSetorComercial()>0){
restricao = restricao + " and nmrg.codigoSetorComercial = " + helper.getIdSetorComercial();
}
if (helper.getColecaoCategoria() != null && !helper.getColecaoCategoria().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCategoria().size() == 1){
Iterator it = helper.getColecaoCategoria().iterator();
while(it.hasNext()){
Categoria obj = (Categoria) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCategoria().iterator();
Categoria categoria = null;
restricao = restricao + " and nmrg.categoria.id in (";
while (iterator.hasNext()) {
categoria = (Categoria) iterator.next();
restricao = restricao + categoria.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoClienteTipo().size() == 1){
Iterator it = helper.getColecaoClienteTipo().iterator();
while(it.hasNext()){
ClienteTipo obj = (ClienteTipo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoClienteTipo().iterator();
ClienteTipo clienteTipo = null;
restricao = restricao + " and clie.clienteTipo.id in (";
while (iterator.hasNext()) {
clienteTipo = (ClienteTipo) iterator.next();
restricao = restricao + clienteTipo.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoEsferaPoder().size() == 1){
Iterator it = helper.getColecaoEsferaPoder().iterator();
while(it.hasNext()){
EsferaPoder obj = (EsferaPoder) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoEsferaPoder().iterator();
EsferaPoder esferaPoder = null;
restricao = restricao + " and cltp.esferaPoder.id in (";
while (iterator.hasNext()) {
esferaPoder = (EsferaPoder) iterator.next();
restricao = restricao + esferaPoder.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
// RM3755
// Autor: Ivan Sergio
// Data: 12/01/2011
//********************************************************
if (helper.getColecaoLigacaoAguaSituacao() != null && !helper.getColecaoLigacaoAguaSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoAguaSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoAguaSituacao().iterator();
while(it.hasNext()){
LigacaoAguaSituacao obj = (LigacaoAguaSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoAguaSituacao().iterator();
LigacaoAguaSituacao ligacaoAguaSituacao = null;
restricao = restricao + "and nmrg.ligacaoAguaSituacao.id in (";
while (iterator.hasNext()) {
ligacaoAguaSituacao = (LigacaoAguaSituacao) iterator.next();
restricao = restricao + ligacaoAguaSituacao.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoEsgotoSituacao() != null && !helper.getColecaoLigacaoEsgotoSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoEsgotoSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoEsgotoSituacao().iterator();
while(it.hasNext()){
LigacaoEsgotoSituacao obj = (LigacaoEsgotoSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoEsgotoSituacao().iterator();
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
restricao = restricao + "and nmrg.ligacaoEsgotoSituacao.id in (";
while (iterator.hasNext()) {
ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) iterator.next();
restricao = restricao + ligacaoEsgotoSituacao.getId() + ",";
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
restricao = restricao + " order by ngmv.dataProcessamentoEnvio,nmrg.localidade.id ";
Query query = session.createQuery(hql + restricao);
retorno = (List) query.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;
}
/**
*
* Retorna o ImovelCobrancaSituacao pelo imovel do NegativadorMovimentoReg
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Yara Taciane
* @date 17/03/2008
*/
public NegativadorMovimentoReg getNegativadorMovimentoReg(NegativadorMovimento negativadorMovimento,Integer numeroRegistro) throws ErroRepositorioException {
NegativadorMovimentoReg retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nmrg"
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " left join fetch nmrg.negativadorMovimento ngmv "
+ " left join fetch ngmv.negativacaoComando ngcm "
+ " left join fetch nmrg.imovel as imov "
+ " where nmrg.negativadorMovimento.id = " + negativadorMovimento.getId()
+ " and nmrg.numeroRegistro = " + numeroRegistro
+ " ";
retorno = (NegativadorMovimentoReg) session.createQuery(hql).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;
}
/**
*
* Retorna o ImovelCobrancaSituacao pelo imovel do NegativadorMovimentoReg
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Yara Taciane
* @date 17/03/2008
*/
public ImovelCobrancaSituacao getImovelCobrancaSituacao(Imovel imovel,
CobrancaSituacao cobrancaSituacao, Integer idCliente) throws ErroRepositorioException {
ImovelCobrancaSituacao retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select ics"
+ " from gcom.cadastro.imovel.ImovelCobrancaSituacao ics"
+ " inner join fetch ics.imovel as imov "
+ " inner join fetch ics.cobrancaSituacao as cbst "
+ " where ics.imovel.id = " + imovel.getId()
+ " and ics.dataRetiradaCobranca is null "
+ " and ics.cobrancaSituacao.id = " + cobrancaSituacao.getId()
+ " and ics.cliente.id = :idCliente";
retorno = (ImovelCobrancaSituacao) session.createQuery(hql).setInteger("idCliente", idCliente).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Retorna o ImovelCobrancaSituacao pelo imovel do NegativadorMovimentoReg
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Yara Taciane
* @date 17/03/2008
*/
public NegativadorMovimento getNegativadorMovimento(Negativador negativador,Integer numeroRegistrosEnvio) throws ErroRepositorioException {
NegativadorMovimento retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select ngmv"
+ " from gcom.cobranca.NegativadorMovimento ngmv "
+ " left join fetch ngmv.negativador negt "
+ " where ngmv.negativador.id = " + negativador.getId()
+ " and ngmv.numeroSequencialEnvio = " + numeroRegistrosEnvio
+ " ";
retorno = (NegativadorMovimento) session.createQuery(hql).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;
}
/**
*
* Retorna o ImovelCobrancaSituacao pelo imovel do NegativadorMovimentoReg
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
*/
public Collection consultarImovelCobrancaSituacaoPorNegativador(Imovel imovel,
Integer idNegativador, Integer idCliente) throws ErroRepositorioException {
Collection retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String restricao = "";
String consulta = " select ics"
+ " from gcom.cadastro.imovel.ImovelCobrancaSituacao ics"
+ " inner join fetch ics.imovel as imov "
+ " inner join fetch ics.cobrancaSituacao as cbst "
+ " where ics.imovel.id = :idImovel "
+ " and ics.dataRetiradaCobranca is null "
+ " and ics.cliente.id = :idCliente ";
if (idNegativador.equals(Negativador.NEGATIVADOR_SPC)) {
restricao += " and ics.cobrancaSituacao.id in ("
+ CobrancaSituacao.NEGATIVADO_AUTOMATICAMENTE_NO_SPC
+ "," + CobrancaSituacao.CARTA_ENVIADA_AO_SPC
+ "," + CobrancaSituacao.EM_ANALISE_PARA_NEGATIVACAO_SPC
+ ") ";
} else if (idNegativador.equals(Negativador.NEGATIVADOR_SERASA)) {
restricao += " and ics.cobrancaSituacao.id in ("
+ CobrancaSituacao.NEGATIVADO_AUTOMATICAMENTE_NA_SERASA
+ "," + CobrancaSituacao.CARTA_ENVIADA_A_SERASA
+ "," + CobrancaSituacao.EM_ANALISE_PARA_NEGATIVACAO_SERASA
+ ") ";
}
consulta += restricao;
retorno = (List) session.createQuery(consulta)
.setInteger("idImovel", imovel.getId())
.setInteger("idCliente", idCliente).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Retorna o ImovelCobrancaSituacao pelo imovel do NegativadorMovimentoReg
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
*/
public Collection pesquisarImovelCobrancaSituacao(Imovel imovel,CobrancaSituacao cobrancaSituacao) throws ErroRepositorioException {
Collection retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select ics"
+ " from gcom.cadastro.imovel.ImovelCobrancaSituacao ics"
+ " inner join fetch ics.imovel as imov "
+ " inner join fetch ics.cobrancaSituacao as cbst "
+ " where ics.imovel.id = " + imovel.getId()
+ " and ics.dataRetiradaCobranca is null "
+ " and ics.cobrancaSituacao.id = " + cobrancaSituacao.getId();
Query query = session.createQuery(hql);
retorno = (List) query.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Pesquisar se a negativa��o do im�vel .
* [UC0675] Excluir Negativa��o Online.
*/
public Collection pesquisarImovelNegativado(Imovel imovel,Negativador negativador)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Collection retorno = new ArrayList();
try {
String hql = " select ngim "
+ " from gcom.cobranca.NegativacaoImoveis ngim "
+ " where ngim.imovel.id=" + imovel.getId()
+ " and ngim.indicadorExcluido = 2 "
+ " and ngim.negativacaoComando.id in "
+ "(select ngcm.id from gcom.cobranca.NegativacaoComando ngcm where ngcm.negativador.id = " + negativador.getId()
+ " )";
Query query = session.createQuery(hql);
retorno = (List) query.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Retorna o NegativadorMovimentoReg
* [UC0673] Excluir Negativa��o Online
*/
public NegativadorMovimentoReg pesquisarNegativadorMovimentoRegInclusao(Imovel imovel,Negativador negativador) throws ErroRepositorioException {
NegativadorMovimentoReg retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nmrg"
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " left join fetch nmrg.cobrancaDebitoSituacao cdst "
+ " left join fetch nmrg.negativadorMovimento as ngmv "
+ " left join fetch ngmv.negativador neg "
+ " left join fetch neg.cliente c "
+ " left join fetch nmrg.imovel as imov "
+ " where nmrg.imovel.id = " + imovel.getId()
+ " and nmrg.codigoExclusaoTipo is null"
+ " and ngmv.negativador.id= " + negativador.getId()
+ " and ngmv.codigoMovimento=1 "
+ " and nmrg.indicadorAceito=1 "
+ " ";
retorno = (NegativadorMovimentoReg) session.createQuery(hql).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Object[] pesquisarDadosImovelParaNegativacao(Integer idImovel)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Object[] retorno = null;
try {
String sql = " select imov.cbst_id as idCobracaSituacao,"
+ " imov.iper_id as idImovelPerfil,"
+ " imov.last_id as idLigacaoAgua,"
+ " imov.lest_id as idLigacaoEsgoto"
+ " from cadastro.imovel imov "
+ " where imov.imov_id = "+ idImovel;
retorno = (Object[])session.createSQLQuery(sql).addScalar("idCobracaSituacao", Hibernate.INTEGER)
.addScalar("idImovelPerfil", Hibernate.INTEGER)
.addScalar("idLigacaoAgua", Hibernate.INTEGER)
.addScalar("idLigacaoEsgoto", Hibernate.INTEGER)
.setMaxResults(1).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Retorna o ResumoNegativacao
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*/
public ResumoNegativacao pesquisarResumoNegativacao(ResumoNegativacaoHelper resumoNegativacaoHelper) throws ErroRepositorioException {
ResumoNegativacao retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select rneg"
+ " from gcom.cobranca.ResumoNegativacao rneg "
+ " where rneg.negativador.id = " + resumoNegativacaoHelper.getNegativador().getId()
+ " and rneg.negativacaoComando.id = " + resumoNegativacaoHelper.getNegativacaoComando().getId()
+ " and rneg.dataProcessamentoEnvio= '" + resumoNegativacaoHelper.getDataProcessamentoEnvio()+ " '"
+ " and rneg.indicadorNegativacaoConfirmada= " + resumoNegativacaoHelper.getIndicadorNegativacaoConfirmada()
+ " and rneg.cobrancaDebitoSituacao.id = " + resumoNegativacaoHelper.getCobrancaDebitoSituacao().getId()
+ " and rneg.localidadeElo.id = " + resumoNegativacaoHelper.getLocalidadeElo().getId()
+ " and rneg.cobrancaGrupo.id = " + resumoNegativacaoHelper.getCobrancaGrupo().getId()
+ " and rneg.gerenciaRegional.id = " + resumoNegativacaoHelper.getGerenciaRegional().getId()
+ " and rneg.unidadeNegocio.id = " + resumoNegativacaoHelper.getUnidadeNegocio().getId()
+ " and rneg.localidade.id = " + resumoNegativacaoHelper.getLocalidade().getId()
+ " and rneg.setorComercial.id = " + resumoNegativacaoHelper.getSetorComercial().getId()
+ " and rneg.quadra.id = " + resumoNegativacaoHelper.getQuadra().getId()
+ " and rneg.codigoSetorcomercial = " + resumoNegativacaoHelper.getCodigoSetorcomercial()
+ " and rneg.numeroQuadra = " + resumoNegativacaoHelper.getNumeroQuadra()
+ " and rneg.imovelPerfil.id = " + resumoNegativacaoHelper.getImovelPerfil().getId()
+ " and rneg.categoria.id = " + resumoNegativacaoHelper.getCategoria().getId()
+ " and rneg.clienteTipo.id = " + resumoNegativacaoHelper.getClienteTipo().getId()
+ " and rneg.esferaPoder.id = " + resumoNegativacaoHelper.getEsferaPoder().getId()
+ " and rneg.numeroExecucaoResumoNegativacao = " + resumoNegativacaoHelper.getNumeroExecucaoResumoNegativacao()
+ " ";
retorno = (ResumoNegativacao) session.createQuery(hql).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* UC0671 - Gerar Movimento de Inclus�o de Negativa��o]
* SB0004 - Gerar Movimento de Inclus�o de Negativa��o para os Im�veis
* @author Anderson Italo
* @date 19/03/2010
*/
public List pesquisarParametroNegativacaoCriterio(Integer idNegativacaoCriterio)
throws ErroRepositorioException {
List retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select nccg.cbgr_id as idNegCriCobGrp, " //0
+ " ncgr.greg_id as idNegCriGere, " //1
+ " ncun.uneg_id as idNegCriUneg, " //2
+ " ncep.loca_id as idNegCriElo, " //3
+ " ngct.loca_idinicial as idNegCriLocInic," //4
+ " ngct.loca_idfinal as idNegCriLocFinal" //5
+ " from cobranca.negativacao_criterio ngct "
+ " left join cobranca.negativ_crit_cobr_grupo nccg on (nccg.ngct_id = ngct.ngct_id ) "
+ " left join cobranca.negativ_crit_ger_reg ncgr on (ncgr.ngct_id = ngct.ngct_id) "
+ " left join cobranca.negativ_crit_und_neg ncun on (ncun.ngct_id = ngct.ngct_id) "
+ " left join cobranca.negativ_crit_elo ncep on (ncep.ngct_id = ngct.ngct_id) "
+ " where ngct.ngct_id = :id ";
retorno = (List)session.createSQLQuery(consulta)
.addScalar("idNegCriCobGrp" , Hibernate.INTEGER)
.addScalar("idNegCriGere" , Hibernate.INTEGER)
.addScalar("idNegCriUneg" , Hibernate.INTEGER)
.addScalar("idNegCriElo" , Hibernate.INTEGER)
.addScalar("idNegCriLocInic" , Hibernate.INTEGER)
.addScalar("idNegCriLocFinal" , Hibernate.INTEGER)
.setInteger("id",new Integer(idNegativacaoCriterio).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;
}
public List pesquisarImoveisParaNegativacao(Integer idRota, Integer idComando)throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
String sql = null;
try {
sql = " select distinct imov_id as idImovel from ("
+ " select imov.imov_id, c.cnta_id as idDocumento,"
+ " (coalesce(c.cnta_vlagua, 0) + coalesce(c.cnta_vlesgoto, 0) + coalesce(c.cnta_vldebitos, 0) - coalesce(c.cnta_vlcreditos, 0) - coalesce(c.cnta_vlimpostos, 0)) as vlDocumento,"
+ " sum(coalesce(pagto.pgmt_vlpagamento,0)) "
+ " from cadastro.imovel imov "
+ " inner join cadastro.quadra qdra on imov.qdra_id = qdra.qdra_id "
+ " inner join cobranca.negativacao_criterio ngct on ngct.ngcm_id = " + idComando
+ " inner join faturamento.conta c on c.imov_id = imov.imov_id and c.cnta_amreferenciaconta between ngct.ngct_amreferenciacontainicial and ngct.ngct_amreferenciacontafinal and c.cnta_dtvencimentoconta between ngct.ngct_dtvencimentodebitoinicial and ngct.ngct_dtvencimentodebitofinal "
+ " left join arrecadacao.pagamento pagto on pagto.cnta_id = c.cnta_id "
+ " left join cobranca.negatd_result_simulacao ngsm on ngsm.ngcm_id = " + idComando
+" and ngsm.imov_id = imov.imov_id "
+ " where imov.iper_id <> 4 "
+ " and imov.imov_icexclusao = 2 "
+ " and qdra.rota_id = " + idRota
+ " and ngsm.ngsm_id is null "
+ " group by imov.imov_id, c.cnta_id, (coalesce(c.cnta_vlagua, 0) + coalesce(c.cnta_vlesgoto, 0) + coalesce(c.cnta_vldebitos, 0) - coalesce(c.cnta_vlcreditos, 0) - coalesce(c.cnta_vlimpostos, 0)) having sum(coalesce(pagto.pgmt_vlpagamento,0)) < (coalesce(c.cnta_vlagua, 0) + coalesce(c.cnta_vlesgoto, 0) + coalesce(c.cnta_vldebitos, 0) - coalesce(c.cnta_vlcreditos, 0) - coalesce(c.cnta_vlimpostos, 0)) "
+ " union "
+ " select imov.imov_id, guiaPagto.gpag_id as idDocumento, coalesce(guiaPagto.gpag_vldebito, 0) as vlDocumento, sum(coalesce(pagto.pgmt_vlpagamento,0)) "
+ " from cadastro.imovel imov "
+ " inner join cadastro.quadra qdra on imov.qdra_id = qdra.qdra_id "
+ " inner join cobranca.negativacao_criterio ngct on ngct.ngcm_id = " + idComando
+ " inner join faturamento.guia_pagamento guiaPagto on guiaPagto.imov_id = imov.imov_id and guiaPagto.dcst_idatual = 0 and guiaPagto.gpag_dtvencimento between ngct.ngct_dtvencimentodebitoinicial and ngct.ngct_dtvencimentodebitofinal "
+ " left join arrecadacao.pagamento pagto on pagto.gpag_id = guiaPagto.gpag_id "
+ " left join cobranca.negatd_result_simulacao ngsm on ngsm.ngcm_id = " + idComando
+ "and ngsm.imov_id = imov.imov_id "
+ " where imov.iper_id <> 4 "
+ " and imov.imov_icexclusao = 2 "
+ " and qdra.rota_id = " + idRota
+ " and ngsm.ngsm_id is null "
+ " group by imov.imov_id, guiaPagto.gpag_id, coalesce(guiaPagto.gpag_vldebito, 0) "
+ " ) a ";
retorno = (List) session.createSQLQuery(sql).addScalar("idImovel" , Hibernate.INTEGER).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* UC0671 - Gerar movimento de inclus�o da negativa��o
*
* Pesquisar rotas por grupo de cobran�a para um crit�rio de negativa��o
*
* @author Francisco do Nascimento
* @date 14/01/2009
*
* @param nCriterio
* @return
* @throws ErroRepositorioException
*/
public List pesquisarRotasPorCobrancaGrupoParaNegativacao(NegativacaoCriterio nCriterio)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
String sql = null;
try{
sql = " select distinct rota.rota_id as idRota from cadastro.quadra qdra "
+ " inner join micromedicao.rota rota on(qdra.rota_id = rota.rota_id)"
+ " where qdra.qdpf_id <> 2 and rota.cbgr_id in (select nccg.cbgr_id "
+ " from cobranca.negativacao_criterio ngct "
+ " inner join cobranca.negativ_crit_cobr_grupo nccg on(ngct.ngct_id = nccg.ngct_id) "
+ " where ngct.ngct_id = " + nCriterio.getId() +" ) ";
retorno = (List) session.createSQLQuery(sql)
.addScalar("idRota" , Hibernate.INTEGER).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* UC0671 - Gerar movimento de inclus�o da negativa��o
*
* Pesquisar rotas por gerencia regional para um crit�rio de negativa��o
*
* @author Francisco do Nascimento
* @date 14/01/2009
*
* @param nCriterio
* @return
* @throws ErroRepositorioException
*/
public List pesquisarRotasPorGerenciaRegionalParaNegativacao(NegativacaoCriterio nCriterio)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
String sql = null;
try{
sql = " select distinct rota.rota_id as idRota from "
+ " cadastro.quadra qdra "
+ " inner join micromedicao.rota rota on(qdra.rota_id = rota.rota_id)"
+ " inner join cadastro.setor_comercial stcm on(rota.stcm_id = stcm.stcm_id)"
+ " inner join cadastro.localidade loc on(loc.loca_id = stcm.loca_id) "
+ " where qdra.qdpf_id <> 2 and "
+ " loc.greg_id in (select ncgr.greg_id"
+ " from cobranca.negativacao_criterio ngct "
+ " inner join cobranca.negativ_crit_ger_reg ncgr on(ngct.ngct_id = ncgr.ngct_id)"
+ " where ngct.ngct_id = " + nCriterio.getId() +" ) ";
retorno = (List) session.createSQLQuery(sql)
.addScalar("idRota" , Hibernate.INTEGER).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* UC0671 - Gerar movimento de inclus�o da negativa��o
*
* Pesquisar rotas por unidade de neg�cio para um crit�rio de negativa��o
*
* @author Francisco do Nascimento
* @date 14/01/2009
*
* @param nCriterio
* @return
* @throws ErroRepositorioException
*/
public List pesquisarRotasPorUnidadeNegocioParaNegativacao(NegativacaoCriterio nCriterio)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
String sql = null;
try{
sql = " select distinct rota.rota_id as idRota from "
+ " cadastro.quadra qdra "
+ " inner join micromedicao.rota rota on(qdra.rota_id = rota.rota_id)"
+ " inner join cadastro.setor_comercial stcm on(rota.stcm_id = stcm.stcm_id)"
+ " inner join cadastro.localidade loca on(stcm.loca_id = loca.loca_id)"
+ " where qdra.qdpf_id <> 2 and "
+ " loca.uneg_id in (select ncun.uneg_id"
+ " from cobranca.negativacao_criterio as ngct "
+ " inner join cobranca.negativ_crit_und_neg as ncun on(ngct.ngct_id = ncun.ngct_id)"
+ " where ngct.ngct_id = " + nCriterio.getId() +" ) ";
retorno = (List) session.createSQLQuery(sql)
.addScalar("idRota" , Hibernate.INTEGER).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* UC0671 - Gerar movimento de inclus�o da negativa��o
*
* Pesquisar rotas por localidade para um crit�rio de negativa��o
*
* @author Francisco do Nascimento
* @date 14/01/2009
*
* @param nCriterio
* @return
* @throws ErroRepositorioException
*/
public List pesquisarRotasPorLocalidadeParaNegativacao(NegativacaoCriterio nCriterio)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
String sql = null;
try{
sql = " select distinct rota.rota_id as idRota from "
+ " cadastro.quadra qdra "
+ " inner join micromedicao.rota rota on(qdra.rota_id = rota.rota_id)"
+ " inner join cadastro.setor_comercial stcm on(rota.stcm_id = stcm.stcm_id)"
+ " where qdra.qdpf_id <> 2 and "
+ " stcm.loca_id in (select ncel.loca_id"
+ " from cobranca.negativacao_criterio ngct "
+ " inner join cobranca.negativ_crit_elo ncel on(ngct.ngct_id = ncel.ngct_id)"
+ " where ngct.ngct_id = " + nCriterio.getId() +" ) ";
retorno = (List) session.createSQLQuery(sql)
.addScalar("idRota" , Hibernate.INTEGER).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* UC0671 - Gerar movimento de inclus�o da negativa��o
*
* Pesquisar rotas por localidade inicial e final para um crit�rio de negativa��o
*
* @author Francisco do Nascimento
* @date 14/01/2009
*
* @param nCriterio
* @return
* @throws ErroRepositorioException
*/
public List pesquisarRotasPorLocalidadesParaNegativacao(NegativacaoCriterio nCriterio)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
String sql = null;
try{
sql = " select distinct rota.rota_id as idRota from "
+ " cadastro.quadra qdra "
+ " inner join micromedicao.rota rota on(qdra.rota_id = rota.rota_id)"
+ " inner join cadastro.setor_comercial stcm on(rota.stcm_id = stcm.stcm_id)"
+ " where qdra.qdpf_id <> 2 and "
+ " stcm.loca_id between "+nCriterio.getLocalidadeInicial().getId()
+" and " +nCriterio.getLocalidadeFinal().getId();
if(nCriterio.getCodigoSetorComercialInicial() != null &&
nCriterio.getCodigoSetorComercialFinal() != null){
sql = sql + " and stcm.stcm_cdsetorcomercial between "
+ nCriterio.getCodigoSetorComercialInicial()+""
+ " and "+nCriterio.getCodigoSetorComercialFinal();
}
retorno = (List) session.createSQLQuery(sql)
.addScalar("idRota" , Hibernate.INTEGER).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* UC0671 - Gerar movimento de inclus�o da negativa��o
*
* Pesquisar imoveis do comando de simulacao por rota
*
* @author Unknown, Francisco do Nascimento
* @date Unknown, 23/01/2009
*
* @param nComando Comando de negativacao
* @param idRota Identificador da rota
*
* @return Colecao de matriculas de imoveis
*
* @throws ErroRepositorioException
*/
public List consultarImoveisNegativacaoSimulada(NegativacaoComando nComando, Integer idRota)
throws ErroRepositorioException {
List resposta = new ArrayList();
Session session = HibernateUtil.getSession();
String sql = null;
try {
sql = " select ngsm.imov_id as idImovel "
+ " from cobranca.negatd_result_simulacao ngsm "
+ " inner join cadastro.imovel imov on (ngsm.imov_id = imov.imov_id) "
+ " inner join cadastro.quadra quad on (imov.qdra_id = quad.qdra_id) "
+ " where ngsm.ngcm_id = " + nComando.getComandoSimulacao().getId()
+ " and quad.rota_id = " + idRota
+ " and imov.imov_icexclusao = " + ConstantesSistema.NAO
+ " order by ngsm.imov_id ";
resposta = (List)session.createSQLQuery(sql)
.addScalar("idImovel" , Hibernate.INTEGER).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate consultarImoveisCliente");
} finally {
HibernateUtil.closeSession(session);
}
return resposta;
}
public List pesquisarImoveisOutrasCondicoes(Integer idNegativacaoCriterio,Integer numeroIndice,
Integer quantidadeRegistros)throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
String sql = null;
try {
//1
sql = " select i.imov_id as idImovel "
+" from cadastro.imovel i "
+" inner join cadastro.quadra q on(i.qdra_id = q.qdra_id)"
//+" inner join cadastro.localidade loca on(i.loca_id = loca.loca_id)"
+" where i.last_id = 4 and i.iper_id <> 4 and q.qdpf_id <> 2";// and i.loca_id = 347 and loca.greg_id = 16
retorno = (List) session.createSQLQuery(sql)
.addScalar("idImovel" , Hibernate.INTEGER).setMaxResults(quantidadeRegistros)
.setFirstResult(numeroIndice).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public NegativadorMovimentoReg pesquisarRegistroTipoConsumidor(Integer numeroRegistro, Integer idNegMovimento)
throws ErroRepositorioException {
NegativadorMovimentoReg retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nmrg"
+ " from NegativadorMovimentoReg nmrg"
+ " where nmrg.numeroRegistro = :numeroRegistro"
+ " and nmrg.negativadorMovimento.id = :idNegMovimento";
retorno = (NegativadorMovimentoReg)session.createQuery(hql).
setInteger("numeroRegistro", numeroRegistro).
setInteger("idNegMovimento", idNegMovimento).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosContratoNegativador");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public NegativadorExclusaoMotivo pesquisarCodigoMotivoExclusao(Integer idCobrancaDebitoSituacao, Integer idNegativador, String descricaoExclusaoMotivo)
throws ErroRepositorioException {
NegativadorExclusaoMotivo retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nemt"
+ " from NegativadorExclusaoMotivo nemt"
+ " where nemt.cobrancaDebitoSituacao.id = :idCobrancaDebitoSituacao"
+ " and nemt.negativador.id = :idNegativador"
+ " and nemt.descricaoExclusaoMotivo = :descricaoExclusaoMotivo";
retorno = (NegativadorExclusaoMotivo)session.createQuery(hql).
setInteger("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao).
setInteger("idNegativador", idNegativador).
setString("descricaoExclusaoMotivo", descricaoExclusaoMotivo).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosContratoNegativador");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public NegativadorExclusaoMotivo pesquisarCodigoMotivoExclusaoSERASA(Integer idCobrancaDebitoSituacao,
Integer idNegativador, Short codigoExclusaoMotivo) throws ErroRepositorioException {
NegativadorExclusaoMotivo retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nemt"
+ " from NegativadorExclusaoMotivo nemt"
+ " where nemt.cobrancaDebitoSituacao.id = :idCobrancaDebitoSituacao"
+ " and nemt.negativador.id = :idNegativador"
+ " and nemt.codigoExclusaoMotivo = :codigoExclusaoMotivo";
retorno = (NegativadorExclusaoMotivo)session.createQuery(hql)
.setInteger("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao)
.setInteger("idNegativador", idNegativador)
.setShort("codigoExclusaoMotivo", codigoExclusaoMotivo)
.uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosContratoNegativador");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0651] Inserir Comando Negativa��o
* [FS0026] Verificar exist�ncia de comando para o negativador na data
*
* @author Ana Maria
* @date 07/05/2008
*
* @param idNegativador
* @param Data
* @return boolean
*/
public boolean verificarExistenciaComandoNegativador(String idNegativador, Date dataPrevista)
throws ErroRepositorioException {
boolean retorno = false;
Integer pesquisar = null;
Session session = HibernateUtil.getSession();
String data = Util.recuperaDataInvertida(dataPrevista);
try {
String hql = " select nc.id"
+ " from gcom.cobranca.NegativacaoComando nc"
+ " inner join nc.negativador negativador "
+ " where nc.dataPrevista = '" + data + "'"
+ " and nc.dataHoraRealizacao is null "
+ " and negativador.id ="+idNegativador;
pesquisar = (Integer) session.createQuery(hql).uniqueResult();
if(pesquisar != null && !pesquisar.equals("")){
retorno = true;
}
} 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 Data da Exclus�o da Negativa��o
*
* @author Yara Taciane
* @date 9/05/2008
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Date pesquisarDataExclusaoNegativacao(int idImovel,int idNegativacaoComando)
throws ErroRepositorioException {
Date retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select "
+ " negImovel.dataExclusao"
+ " from gcom.cobranca.NegativacaoImoveis negImovel "
+ " inner join negImovel.imovel as imov "
+ " inner join negImovel.negativacaoComando as negCom "
+ " inner join negCom.negativador as neg "
+ " where "
+ " imov.id = :idImovel "
+ " and negCom.id = :idNegativacaoComando "
+ " and negImovel.dataExclusao is not null ";
retorno = (Date) session.createQuery(hql).setInteger("idImovel",
idImovel).setInteger("idNegativacaoComando",
idNegativacaoComando).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaExistenciaNegativacao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Object[] pesquisarComandoNegativacaoSimulado(Integer idComandoNegativacao)
throws ErroRepositorioException {
Object[] retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select negCri.ngct_dstitulo as descricaoTitulo, "//0
+ " negCom.ngcm_icsimulacao as indicadorSimulacao, "//1
+ " negCom.ngcm_tmrealizacao as dataHoraRealizacao "//2
+ " from cobranca.negativacao_comando negCom"
+ " inner join cobranca.negativacao_criterio negCri on negCom.ngcm_id = negCri.ngcm_id"
+ " where negCom.ngcm_id = :id";
retorno = (Object[]) session.createSQLQuery(consulta)
.addScalar("descricaoTitulo" , Hibernate.STRING)
.addScalar("indicadorSimulacao" , Hibernate.SHORT)
.addScalar("dataHoraRealizacao", Hibernate.DATE)
.setInteger("id", new Integer(idComandoNegativacao))
.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;
}
/**
* Pesquisa a Data da Exclus�o da Negativa��o
*
* @author Yara Taciane
* @date 9/05/2008
*
* @param
* @return
* @throws ErroRepositorioException
*/
public Collection pesquisarNegativadorResultadoSimulacao(Integer idNegativacaoComando)
throws ErroRepositorioException {
Collection retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select ngsm "
+ " from gcom.cobranca.NegativadorResultadoSimulacao as ngsm "
+ " left join fetch ngsm.negativacaoComando as ngcm "
+ " where "
+ " ngsm.negativacaoComando.id = :idNegativacaoComando "
+ " order by ngsm.valorDebito desc ";
Query query = session.createQuery(hql).setInteger("idNegativacaoComando",
idNegativacaoComando);
retorno = (List) query.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaExistenciaNegativacao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica se a situa��o da liga��o de �gua do imovel corresponde
* as situa��o da liga��o de �gua do criterio da negativacao.
*
* @author Ana Maria
* @date 12/06/2008
*
* @param int
* @param int
* @return Integer
* @throws ErroRepositorioException
*/
public Integer verificaLigacaoAguaImovelNegativacaoCriterio(int idCriterio, int idLigacaoAguaSituacao)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select count(negCriLigAgua.comp_id.ligacaoAguaSituacao) "
+ " from gcom.cobranca.NegativacaoCriterioLigacaoAgua negCriLigAgua "
+ " where negCriLigAgua.comp_id.negativacaoCriterio.id = :idCriterio "
+ " and negCriLigAgua.comp_id.ligacaoAguaSituacao = :idLigacaoAguaSituacao ";
retorno = (Integer) session.createQuery(hql).setInteger("idCriterio",idCriterio)
.setInteger("idLigacaoAguaSituacao",idLigacaoAguaSituacao)
.uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaPerfilImovelNegativacaoCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Verifica se a situa��o da liga��o de esgoto do imovel corresponde
* as situa��o da liga��o de esgoto do criterio da negativacao.
*
* @author Ana Maria
* @date 12/06/2008
*
* @param int
* @param int
* @return Integer
* @throws ErroRepositorioException
*/
public Integer verificaLigacaoEsgotoImovelNegativacaoCriterio(int idCriterio, int idLigacaoEsgotoSituacao)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select count(negCriLigEsgoto.comp_id.ligacaoEsgotoSituacao) "
+ " from gcom.cobranca.NegativacaoCriterioLigacaoEsgoto negCriLigEsgoto "
+ " where negCriLigEsgoto.comp_id.negativacaoCriterio.id = :idCriterio "
+ " and negCriLigEsgoto.comp_id.ligacaoEsgotoSituacao = :idLigacaoEsgotoSituacao ";
retorno = (Integer) session.createQuery(hql).setInteger("idCriterio",idCriterio)
.setInteger("idLigacaoEsgotoSituacao",idLigacaoEsgotoSituacao)
.uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate verificaPerfilImovelNegativacaoCriterio");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 26/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarSituacaoLigacaoAguaComando(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "last.last_dsligacaoaguasituacao as dsligacaoaguasituacao, "
+ "last.last_id as idSitLigacaoAgua "
+ "from cobranca.negativacao_comando ngcm "
+ "inner join cobranca.negativacao_criterio ngct on ngcm.ngcm_id = ngct.ngcm_id "
+ "inner join cobranca.negatv_crit_lig_agua ncla on ncla.ngct_id = ngct.ngct_id "
+ "inner join atendimentopublico.ligacao_agua_situacao last on last.last_id = ncla.last_id "
+ "where ngcm.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("dsligacaoaguasituacao" , Hibernate.STRING)
.addScalar("idSitLigacaoAgua", Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* [UC0653] Pesquisar Comando Negativa��o
*
* @author K�ssia Albuquerque
* @date 26/11/2007
*
* @param idComandoNegativacao
* @return Collection
* @throws ErroRepositorioException
*/
public Collection pesquisarSituacaoLigacaoEsgotoComando(Integer idComandoNegativacao)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select "
+ "lest.lest_dsligacaoesgotosituacao as dsligacaoesgotosituacao, "
+ "lest.lest_id as idSitLigacaoEsgoto "
+ "from cobranca.negativacao_comando ngcm "
+ "inner join cobranca.negativacao_criterio ngct on ngcm.ngcm_id = ngct.ngcm_id "
+ "inner join cobranca.negatv_crit_lig_esgoto ncla on ncla.ngct_id = ngct.ngct_id "
+ "inner join atendimentopublico.ligacao_esgoto_situacao lest on lest.lest_id = ncla.lest_id "
+ "where ngcm.ngcm_id = :id";
retorno = session.createSQLQuery(consulta)
.addScalar("dsligacaoesgotosituacao" , Hibernate.STRING)
.addScalar("idSitLigacaoEsgoto", Hibernate.INTEGER)
.setInteger("id",new Integer(idComandoNegativacao).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;
}
/**
* Verificar exist�ncia crit�rios do comando
*
* @author Ana Maria
* @date 09/06/2008
*
* @param Integer
* @return Object[]
* @throws ErroRepositorioException
*/
public Object[] verificarExistenciaCriterio(Integer idCriterio)
throws ErroRepositorioException {
Integer pesquisarSubcategoriaCriterio = null;
Integer pesquisarPerfilImovelCriterio = null;
Integer pesquisarClienteTipo = null;
Integer pesquisarLigacaoAguaSit = null;
Integer pesquisarLigacaoEsgotoSit = null;
Integer pesquisarSituacaoCobranca = null;
Integer pesquisarSituacaoEspecialCobranca = null;
Object[] object = new Object[7];
Session session = HibernateUtil.getSession();
try {
String hql = " select count(last_id) as qtdLigacaoAguaSituacao"
+ " from cobranca.negatv_crit_lig_agua ncla"
+ " where ncla.ngct_id ="+idCriterio;
pesquisarLigacaoAguaSit = (Integer)session.createSQLQuery(hql)
.addScalar("qtdLigacaoAguaSituacao" , Hibernate.INTEGER)
.uniqueResult();
String hql1 = " select count(lest_id) as qtdLigacaoEsgotoSituacao"
+ " from cobranca.negatv_crit_lig_esgoto ncle"
+ " where ncle.ngct_id ="+idCriterio;
pesquisarLigacaoEsgotoSit = (Integer)session.createSQLQuery(hql1)
.addScalar("qtdLigacaoEsgotoSituacao" , Hibernate.INTEGER)
.uniqueResult();
String hql2 = " select count(scat_id) as qtdSubCrit"
+ " from cobranca.negatv_crit_subcategoria ncst"
+ " where ncst.ngct_id ="+idCriterio;
pesquisarSubcategoriaCriterio = (Integer)session.createSQLQuery(hql2)
.addScalar("qtdSubCrit" , Hibernate.INTEGER)
.uniqueResult();
String hql3 = " select count(iper_id) as qtdPerfilImovCrit"
+ " from cobranca.negatv_crit_imv_perfil ncip"
+ " where ncip.ngct_id ="+idCriterio;
pesquisarPerfilImovelCriterio = (Integer)session.createSQLQuery(hql3)
.addScalar("qtdPerfilImovCrit" , Hibernate.INTEGER)
.uniqueResult();
String hql4 = " select count(cltp_id) as qtdClienteTipoCrit"
+ " from cobranca.negatv_crit_cliente_tipo nccl"
+ " where nccl.ngct_id ="+idCriterio;
pesquisarClienteTipo = (Integer)session.createSQLQuery(hql4)
.addScalar("qtdClienteTipoCrit" , Hibernate.INTEGER)
.uniqueResult();
String hql5 = " select count(cbst_id) as qtdCobrancaSituacao"
+ " from cobranca.negativ_crit_sit_cob ncsc"
+ " where ncsc.ngct_id ="+idCriterio;
pesquisarSituacaoCobranca = (Integer)session.createSQLQuery(hql5)
.addScalar("qtdCobrancaSituacao" , Hibernate.INTEGER)
.uniqueResult();
String hql6 = " select count(cbsp_id) as qtdCobrancaSituacaoTipo"
+ " from cobranca.negativ_crit_sit_esp_cob ncec"
+ " where ncec.ngct_id ="+idCriterio;
pesquisarSituacaoEspecialCobranca = (Integer)session.createSQLQuery(hql6)
.addScalar("qtdCobrancaSituacaoTipo" , Hibernate.INTEGER)
.uniqueResult();
object[0] = pesquisarLigacaoAguaSit;
object[1] = pesquisarLigacaoEsgotoSit;
object[2] = pesquisarSubcategoriaCriterio;
object[3] = pesquisarPerfilImovelCriterio;
object[4] = pesquisarClienteTipo;
object[5] = pesquisarSituacaoEspecialCobranca;
object[6] = pesquisarSituacaoCobranca;
} 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 object;
}
/* *//**
* Verificar exist�ncia de perfil do im�vel para o crit�rio
*
* @author Ana Maria
* @date 09/06/2008
*
* @param Integer
* @return boolean
* @throws ErroRepositorioException
*//*
public boolean verificarExistenciaPerfilImovCriterio(Integer idCriterio)
throws ErroRepositorioException {
boolean retorno = false;
Integer pesquisar = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select count(iper_id) as qtdPerfilImovCrit"
+ " from cobranca.negatv_crit_imv_perfil ncip"
+ " where ncip.ngct_id ="+idCriterio;
pesquisar = (Integer)session.createSQLQuery(hql)
.addScalar("qtdPerfilImovCrit" , Hibernate.INTEGER)
.uniqueResult();
if(pesquisar != null && pesquisar > 0){
retorno = true;
}
} 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;
}
*//**
* Verificar exist�ncia de cliente tipo para o crit�rio
*
* @author Ana Maria
* @date 09/06/2008
*
* @param Integer
* @return boolean
* @throws ErroRepositorioException
*//*
public boolean verificarExistenciaClienteTipoCriterio(Integer idCriterio)
throws ErroRepositorioException {
boolean retorno = false;
Integer pesquisar = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select count(cltp_id) as qtdClienteTipoCrit"
+ " from cobranca.negatv_crit_cliente_tipo nccl"
+ " where nccl.ngct_id ="+idCriterio;
pesquisar = (Integer)session.createSQLQuery(hql)
.addScalar("qtdClienteTipoCrit" , Hibernate.INTEGER)
.uniqueResult();
if(pesquisar != null && pesquisar > 0){
retorno = true;
}
} 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 o Motivo da Exclusao do Negativador
*
* @author Yara Taciane
* @date 22/07/2008
*
* @param Integer
* @return Object[]
* @throws ErroRepositorioException
*/
public NegativadorExclusaoMotivo pesquisarMotivoExclusao(Integer idMotivoExclusao)
throws ErroRepositorioException {
NegativadorExclusaoMotivo retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nemt"
+ " from NegativadorExclusaoMotivo nemt"
+ " left join fetch nemt.cobrancaDebitoSituacao as cds "
+ " where nemt.id = :idMotivoExclusao";
retorno = (NegativadorExclusaoMotivo)session.createQuery(hql).
setInteger("idMotivoExclusao", idMotivoExclusao).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getDadosContratoNegativador");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Informa��es Atualizadas em (maior data e hora da �ltima execu��o
* @author Yara Taciane
* @date 28/07/2008
*/
public Date getDataUltimaAtualizacaoResumoNegativacao(Integer numeroExecucaoResumoNegativacao) throws ErroRepositorioException {
Date retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = "select max(ultimaAlteracao) " +
" from gcom.cobranca.ResumoNegativacao " +
" where numeroExecucaoResumoNegativacao= :numeroExecucaoResumoNegativacao " ;
retorno = (Date)session.createQuery(hql).setInteger("numeroExecucaoResumoNegativacao", numeroExecucaoResumoNegativacao).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate getNextNegativadorComando ");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Apresenta todos os registros do NegativadorMovimento aceitos.
* [UC0681] Consultar Movimentos dos Negativadores.
*
* @author Yara Taciane
* @date 22/01/2008
*/
private Integer pesquisarNumeroRegistro(Integer idNegativadorMovimento, Integer idImovel)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Integer retorno = null;
try {
String consulta = " select nmrg.nmrg_nnregistro as numeroRegistro " +
" from cobranca.negatd_movimento_reg nmrg" +
" inner join cobranca.negativador_movimento ngmv on nmrg.ngmv_id = ngmv.ngmv_id " +
" inner join cobranca.negativador negt on ngmv.negt_id = negt.negt_id " +
" inner join cadastro.cliente clie on negt.clie_id = clie.clie_id " +
" where nmrg.ngmv_id = :idNegativadorMovimento" +
" and nmrg.nmrg_nnregistro in " +
"(select nmrg.nmrg_nnregistro as registroAnterior " +
" from cobranca.negatd_movimento_reg nmrg " +
" where nmrg.imov_id =:idImovel and nmrg.ngmv_id = :idNegativadorMovimento ) " ;
retorno = (Integer) session.createSQLQuery(consulta)
.addScalar("numeroRegistro" , Hibernate.INTEGER)
.setInteger("idNegativadorMovimento",idNegativadorMovimento)
.setInteger("idImovel",idImovel)
.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;
}
/**
*
* Pesquisar as rotas dos Im�veis
*
* @author Ana Maria, Francisco do Nascimento
* @date 05/06/2008, 14/01/09
*
*/
public Collection pesquisarRotasImoveis() throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = " select distinct quadra.rota.id "
+ " from Imovel im "
+ " inner join im.quadra quadra "
+ " inner join im.localidade loc";
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;
}
/**
*
* Pesquisar as rotas dos Im�veis que est�o no resultado da simula��o
*
* @author Ana Maria, Francisco do Nascimento
* @date 05/06/2008, 14/01/09
*
*/
public Collection pesquisarRotasImoveisComandoSimulacao(Integer idNegativacaoComando)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = " select distinct quadra.rota.id"
+ " from NegativadorResultadoSimulacao ngsm"
+ " inner join ngsm.imovel imov"
+ " inner join imov.quadra quadra "
+ " where ngsm.negativacaoComando.id ="+idNegativacaoComando;
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 Integer pesquisarQuantidadeInclusaoItemNegativacao(Integer idNegComando)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Integer retorno = null;
try {
String sql = " select count(nmri.nmri_id) as quantidadeItensIncluidos"
+ " from cobranca.negativador_movimento ngmv"
+ " inner join cobranca.negatd_movimento_reg nmrg on(nmrg.ngmv_id = ngmv.ngmv_id)"
+ " inner join cobranca.negatd_mov_reg_item nmri on(nmri.nmrg_id= nmrg.nmrg_id)"
+ " where ngmv.ngcm_id = "+ idNegComando;
retorno = (Integer)session.createSQLQuery(sql).addScalar("quantidadeItensIncluidos", Hibernate.INTEGER)
.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;
}
/**
*
* Informa��es Atualizadas em (maior data e hora da �ltima execu��o
* @author Yara Taciane
* @date 28/07/2008
*/
/**
*
* Apresenta todos os registros do NegativadorMovimento aceitos.
* [UC0681] Consultar Movimentos dos Negativadores.
*
* @author Yara Taciane
* @date 22/01/2008
*/
public Integer pesquisarNegativadorMovimentoRegRetMot(Integer idNegativadorMovimentoReg, Integer idNegativadorRetornoMotivo)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Integer retorno = null;
try {
String consulta = " select nmrr.nmrr_id as id " +
" from cobranca.negatd_mov_reg_ret_mot nmrr" +
" inner join cobranca.negatd_movimento_reg nmrg on nmrg.nmrg_id = nmrr.nmrg_id " +
" inner join cobranca.negatd_retorno_motivo nrmt on nrmt.nrmt_id = nmrr.nrmt_id " +
" where nmrr.nmrg_id = " + idNegativadorMovimentoReg
+ " and nmrr.nrmt_id = " + idNegativadorRetornoMotivo ;
retorno = (Integer) session.createSQLQuery(consulta)
.addScalar("id" , Hibernate.INTEGER)
// .setInteger("idNegativadorMovimentoReg",idNegativadorMovimentoReg)
// .setInteger("idNegativadorRetornoMotivo",idNegativadorRetornoMotivo)
.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;
}
/**
* [UC0014] - ManterImovel
*
* Verificar exist�ncia de negativa��o para o cliente-im�vel
*
* @author Victor Cisneiros
* @date 12/01/2009
*/
public boolean verificarNegativacaoDoClienteImovel(
Integer idCliente, Integer idImovel) throws ErroRepositorioException {
boolean retorno = false;
Session session = HibernateUtil.getSession();
try {
String consulta =
"SELECT nmrg_id FROM cobranca.negatd_movimento_reg " +
"WHERE rownum <= 1 and " +
"clie_id = :idCliente " +
"AND imov_id = :idImovel " +
"AND (nmrg_icaceito = 1 OR nmrg_icaceito IS null) " +
"AND nmrg_cdexclusaotipo IS null " +
"";
SQLQuery q = session.createSQLQuery(consulta);
q.addScalar("nmrg_id", Hibernate.INTEGER);
q.setInteger("idCliente", idCliente);
q.setInteger("idImovel", idImovel);
Integer resultado = (Integer) q.uniqueResult();
if (resultado != null) retorno = true;
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Collection consultarNegativadorMovimentoRegistroParaGerarArquivoInclusao
(Integer codigoNegativadorMovimento, String tipoRegistro) throws ErroRepositorioException{
Collection retorno = null;
Session session = HibernateUtil.getSession();
String hql = null;
try {
hql = " select nmr "
+" from gcom.cobranca.NegativadorMovimentoReg as nmr "
+" inner join nmr.negativadorRegistroTipo as nrt "
+" inner join nmr.negativadorMovimento as nm "
+" inner join nm.negativador as n "
+" where nm.id = " + codigoNegativadorMovimento + " and "
+" nrt.codigoRegistro = '" + tipoRegistro + "'"
+" order by nmr.numeroRegistro, nmr.negativadorRegistroTipo.id";
//+" order by nmr.imovel.id, nmr.negativadorRegistroTipo.id";
retorno = session.createQuery(hql).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e,
"Erro no Hibernate getImovelCindicao");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0694] - Gerar Relat�rio de Negativa��es Exclu�das
* @author Yara T. Souza
* @date 16/01/2009
*/
public List pesquisarNegativadorMovimentoRegItens(Integer idNegativadorMovimentoReg)
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select nmri"
+ " from gcom.cobranca.NegativadorMovimentoRegItem nmri"
+ " where "
+ " nmri.negativadorMovimentoReg.id = " + idNegativadorMovimentoReg;
retorno = (List) session.createQuery(hql).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 Object[] pesquisarQuantidadeInclusaoNegativacao(Integer idNegComando)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Object[] retorno = null;
try {
String sql = " select count(nmrg.imov_id) as quantidadeInclusao,"
+ " sum(nmrg.nmrg_vldebito) as valorTotalDebitos,"
+ " count(nmrg.nmrg_id) as quantidadeRegistros,"
+ " ngmv.ngmv_id as negMovimento"
+ " from cobranca.negativador_movimento ngmv"
+ " inner join cobranca.negatd_movimento_reg nmrg on(nmrg.ngmv_id = ngmv.ngmv_id)"
+ " where ngmv.ngcm_id = "+ idNegComando
+ " group by ngmv.ngmv_id";
retorno = (Object[])session.createSQLQuery(sql).addScalar("quantidadeInclusao", Hibernate.INTEGER)
.addScalar("valorTotalDebitos", Hibernate.BIG_DECIMAL)
.addScalar("quantidadeRegistros", Hibernate.INTEGER)
.addScalar("negMovimento", Hibernate.INTEGER)
.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;
}
/**
* Verifica a quantidade de im�veis que j� foram incluidos para
* o comando da negativa��o
*
* @author Ana Maria
* @date 25/06/2008
*
* @param Integer
* @return Integer
* @throws ErroRepositorioException
*/
public Integer pesquisarQtdImovelNegativacaoComando(Integer idComandoNegativacao)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select count(distinct(imov_id)) as total"
+ " from cobranca.negatd_movimento_reg"
+ " where ngmv_id in (select ngmv_id "
+ " from cobranca.negativador_movimento"
+ " where ngcm_id = "+idComandoNegativacao+")"
+ " and imov_id is not null";
retorno =(Integer) session.createSQLQuery(consulta)
.addScalar("total" , Hibernate.INTEGER)
.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;
}
public Object[] pesquisarQuantidadeInclusaoNegativacaoSimulacao(Integer idNegComando)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Object[] retorno = null;
try {
String sql = " select count(ngsm.imov_id) as quantidadeInclusao,"
+ " sum(ngsm.ngsm_vldebito) as valorTotalDebitos,"
+ " sum(ngsm_qtitensincluidos) as qtTotalItensIncluidos"
+ " from cobranca.negatd_result_simulacao ngsm"
+ " where ngsm.ngcm_id = "+idNegComando;
retorno = (Object[])session.createSQLQuery(sql).addScalar("quantidadeInclusao", Hibernate.INTEGER)
.addScalar("valorTotalDebitos", Hibernate.BIG_DECIMAL)
.addScalar("qtTotalItensIncluidos", Hibernate.INTEGER)
.setMaxResults(1).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0694] - Gerar Relat�rio de Negativa��es Exclu�das
* @author Yara T. Souza
* @date 16/01/2009
*/
public BigDecimal pesquisarSomatorioNegativadorMovimentoRegItens(Integer idNegativadorMovimentoReg, Integer idCobrancaDebitoSituacao)
throws ErroRepositorioException {
BigDecimal retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql1 = "";
String hql2 = "";
if(idCobrancaDebitoSituacao.equals(CobrancaDebitoSituacao.PARCELADO)){
hql1 = " select sum(nmri.valorDebito) " ;
}else if(idCobrancaDebitoSituacao.equals(CobrancaDebitoSituacao.PAGO)){
hql1 = " select sum(nmri.valorPago) " ;
}
hql2 = " from gcom.cobranca.NegativadorMovimentoRegItem nmri"
+ " where "
+ " nmri.negativadorMovimentoReg.id = " + idNegativadorMovimentoReg;
retorno = (BigDecimal) session.createQuery(hql1 + hql2).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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* @author Vivianne Sousa
* @date 02/04/2009
*/
public Integer consultaDebitoACobrarParcelamento(Integer idParcelamento)
throws ErroRepositorioException {
Collection debitos = null;
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String consulta = " select dbac_id as idDebitoACobrar " +
" from faturamento.debito_a_cobrar " +
" where parc_id = :idParcelamento and dbtp_id not in (:jurosMora, :atualizacaoMonetaria, :multaImpontualidade) " ;
//long t1 = System.currentTimeMillis();
debitos = session.createSQLQuery(consulta)
.addScalar("idDebitoACobrar" , Hibernate.INTEGER)
.setInteger("idParcelamento", idParcelamento)
.setInteger("jurosMora", DebitoTipo.JUROS_MORA)
.setInteger("atualizacaoMonetaria", DebitoTipo.ATUALIZACAO_MONETARIA)
.setInteger("multaImpontualidade", DebitoTipo.MULTA_IMPONTUALIDADE)
.list();
//long t2 = System.currentTimeMillis();
// System.out.println("[UC0688]consultaDebitoACobrarParcelamento " + ( t2 - t1));
if(debitos != null && !debitos.isEmpty()){
retorno = (Integer)Util.retonarObjetoDeColecao(debitos);
}
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* @author Vivianne Sousa
* @date 02/04/2009
*/
public Integer consultaDebitoACobrarHistoricoParcelamento(Integer idParcelamento)
throws ErroRepositorioException {
Collection debitos = null;
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String consulta = " select dbac_id as idDebitoACobrar " +
" from faturamento.deb_a_cobrar_hist " +
" where parc_id = :idParcelamento and dbtp_id not in (:jurosMora, :atualizacaoMonetaria, :multaImpontualidade) " ;
//long t1 = System.currentTimeMillis();
debitos = session.createSQLQuery(consulta)
.addScalar("idDebitoACobrar" , Hibernate.INTEGER)
.setInteger("idParcelamento", idParcelamento)
.setInteger("jurosMora", DebitoTipo.JUROS_MORA)
.setInteger("atualizacaoMonetaria", DebitoTipo.ATUALIZACAO_MONETARIA)
.setInteger("multaImpontualidade", DebitoTipo.MULTA_IMPONTUALIDADE)
.list();
//long t2 = System.currentTimeMillis();
// System.out.println("[UC0688]consultaDebitoACobrarHistoricoParcelamento " + ( t2 - t1));
if(debitos != null && !debitos.isEmpty()){
retorno = (Integer)Util.retonarObjetoDeColecao(debitos);
}
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @date 03/04/2009
*
* @param idDebitoACobrar
*/
public DebitoACobrar obterDebitoACobrar(Integer idDebitoACobrar) throws ErroRepositorioException {
DebitoACobrar retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select dac "
+ "from DebitoACobrar dac "
+ "where dac.id = :idDebitoACobrar ";
//long t1 = System.currentTimeMillis();
retorno = (DebitoACobrar)session.createQuery(consulta)
.setInteger("idDebitoACobrar", idDebitoACobrar).setMaxResults(1).uniqueResult();
//long t2 = System.currentTimeMillis();
// System.out.println("[UC0688]obterDebitoACobrar " + ( t2 - t1));
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @date 03/04/2009
*
* @param idDebitoACobrarHistorico
*/
public DebitoACobrarHistorico obterDebitoACobrarHistorico(Integer idDebitoACobrarHistorico) throws ErroRepositorioException {
DebitoACobrarHistorico retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select dac "
+ "from DebitoACobrarHistorico dac "
+ "where dac.id = :idDebitoACobrar ";
//long t1 = System.currentTimeMillis();
retorno = (DebitoACobrarHistorico)session.createQuery(consulta)
.setInteger("idDebitoACobrar", idDebitoACobrarHistorico).setMaxResults(1).uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]obterDebitoACobrarHistorico " + ( t2 - t1));
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @date 03/04/2009
*
* @param idDebitoACobrar
*/
public Integer obterIDParcelamentoAtual(Integer idDebitoACobrar) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select parc.parc_id as idParcelamento " +
" from cobranca.parcelamento parc " +
" inner join cobranca.parcelamento_item parci " +
" on parc.parc_id = parci.parc_id " +
" where " +
" parci.dbac_id = :idDebitoACobrar " +
" and parc.pcst_id = :parcelamentoSituacao ";
//long t1 = System.currentTimeMillis();
retorno =(Integer) session.createSQLQuery(consulta)
.addScalar("idParcelamento" , Hibernate.INTEGER)
.setInteger("idDebitoACobrar", idDebitoACobrar)
.setInteger("parcelamentoSituacao" ,ParcelamentoSituacao.NORMAL)
.setMaxResults(1).uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]obterIDParcelamentoAtual " + ( t2 - t1));
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 06/04/2009
*
* @param idParcelamento
* @return colecaoIdContas
*/
public Collection pesquisarIdsContaEntradaParcelamento(Integer idParcelamento)
throws ErroRepositorioException {
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 cnta.id "
+ "from Conta cnta "
+ "where cnta.parcelamento.id = :idParcelamento ";
//long t1 = System.currentTimeMillis();
// executa o hql
retorno = session.createQuery(consulta).setInteger("idParcelamento", idParcelamento).list();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarIdsContaEntradaParcelamento " + ( t2 - t1));
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 06/04/2009
*
* @param idParcelamento
* @return colecaoIdContas
*/
public Collection pesquisarIdsContaHistoricoEntradaParcelamento(Integer idParcelamento)
throws ErroRepositorioException {
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 cnta.id "
+ "from ContaHistorico cnta "
+ "where cnta.parcelamento.id = :idParcelamento ";
//long t1 = System.currentTimeMillis();
// executa o hql
retorno = session.createQuery(consulta).setInteger("idParcelamento", idParcelamento).list();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarIdsContaHistoricoEntradaParcelamento " + ( t2 - t1));
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 06/04/2009
*
* @param idConta
* @return valorPagamentoContas
*/
public BigDecimal pesquisarValorPagamentoDeContas(Collection idsColecaoConta)
throws ErroRepositorioException {
BigDecimal retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT SUM(pgmt.valorPagamento) "
+ "FROM Pagamento as pgmt "
+ "INNER JOIN pgmt.contaGeral cntaGeral "
+ "INNER JOIN cntaGeral.conta cnta "
+ "WHERE cnta.id in (:colecaoIdsContas) ";
//long t1 = System.currentTimeMillis();
retorno = (BigDecimal)session.createQuery(consulta)
.setParameterList("colecaoIdsContas", idsColecaoConta)
.setMaxResults(1).uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarValorPagamentoDeContas " + ( t2 - t1));
if (retorno == null){
retorno = BigDecimal.ZERO;
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @date 06/04/2009
*
* @param idDebitoACobrar
*/
public BigDecimal pesquisarValorPagamentoDeContasHistorico(Collection idsColecaoConta) throws ErroRepositorioException {
BigDecimal retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select sum(pghi_vlpagamento) as somatorio "
+ " from faturamento.conta_historico cnta "
+ " left join arrecadacao.pagamento_historico pgmt "
+ " on (pgmt.imov_id = cnta.imov_id and pgmt.pghi_amreferenciapagamento = cnta.cnhi_amreferenciaconta) "
+ " where "
+ " pgmt.dotp_id = :conta "
+ " and pgmt.pgst_idatual = :pagamentoClassificado "
+ " and cnta.cnta_id in (:colecaoIdsContas) ";
//long t1 = System.currentTimeMillis();
retorno =(BigDecimal) session.createSQLQuery(consulta)
.addScalar("somatorio" , Hibernate.BIG_DECIMAL)
.setInteger("conta", DocumentoTipo.CONTA)
.setInteger("pagamentoClassificado", PagamentoSituacao.PAGAMENTO_CLASSIFICADO)
.setParameterList("colecaoIdsContas", idsColecaoConta)
.uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarValorPagamentoDeContasHistorico " + ( t2 - t1));
if (retorno == null){
retorno = BigDecimal.ZERO;
}
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 06/04/2009
*
* @param idParcelamento
* @return colecaoIdGuias
*/
public Integer pesquisarIdGuiaEntradaParcelamento(Integer idParcelamento)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select guia.gpag_id as idGuia "
+ " from faturamento.guia_pagamento guia "
+ " where guia.parc_id = :idParcelamento "
+ " and guia.dbtp_id = :entradaParcelamento ";
//long t1 = System.currentTimeMillis();
retorno = (Integer)session.createSQLQuery(consulta)
.addScalar("idGuia" , Hibernate.INTEGER)
.setInteger("idParcelamento", idParcelamento)
.setInteger("entradaParcelamento", DebitoTipo.ENTRADA_PARCELAMENTO)
.uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarIdGuiaEntradaParcelamento " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 06/04/2009
*
* @param idParcelamento
* @return colecaoIdGuiasHistorico
*/
public GuiaPagamentoHistorico pesquisarGuiaHistoricoEntradaParcelamento(Integer idParcelamento)
throws ErroRepositorioException {
Object[] retorno = null;
GuiaPagamentoHistorico guia = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select guia.gpag_id as idGuia, guia.gphi_amreferenciacontabil as referenciaContabil "
+ " from faturamento.guia_pagamento_historico guia "
+ " where guia.parc_id = :idParcelamento "
+ " and guia.dbtp_id = :entradaParcelamento ";
//long t1 = System.currentTimeMillis();
retorno = (Object[])session.createSQLQuery(consulta)
.addScalar("idGuia" , Hibernate.INTEGER)
.addScalar("referenciaContabil", Hibernate.INTEGER)
.setInteger("idParcelamento", idParcelamento)
.setInteger("entradaParcelamento", DebitoTipo.ENTRADA_PARCELAMENTO)
.uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarGuiaHistoricoEntradaParcelamento " + ( t2 - t1));
if(retorno != null){
guia = new GuiaPagamentoHistorico();
guia.setId((Integer)retorno[0]);
guia.setAnoMesReferenciaContabil((Integer)retorno[1]);
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return guia;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 06/04/2009
*
* @param idConta
* @return valorPagamentoContas
*/
public BigDecimal pesquisarValorPagamentoDeGuia(Integer idGuia)
throws ErroRepositorioException {
BigDecimal retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT pgmt.valorPagamento "
+ "FROM Pagamento as pgmt "
+ "INNER JOIN pgmt.guiaPagamento guia "
+ "WHERE guia.id = :idGuia ";
//long t1 = System.currentTimeMillis();
retorno = (BigDecimal)session.createQuery(consulta)
.setInteger("idGuia", idGuia)
.setMaxResults(1).uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarValorPagamentoDeGuia " + ( t2 - t1));
if (retorno == null){
retorno = BigDecimal.ZERO;
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @date 06/04/2009
*
* @param idDebitoACobrar
*/
public BigDecimal pesquisarValorPagamentoDeGuiaHistorico(Integer idGuia) throws ErroRepositorioException {
BigDecimal retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select pghi_vlpagamento as valor "
+ " from faturamento.guia_pagamento_historico guia "
+ " left join arrecadacao.pagamento_historico pgmt "
+ " on (pgmt.imov_id = guia.imov_id and to_char(pgmt.pghi_dtpagamento,'yyyymm') = guia.gphi_amreferenciacontabil)"
+ " where "
+ " pgmt.dotp_id in ( :guia , :entradaParcelamento ) "
+ " and pgmt.pgst_idatual = :pagamentoClassificado "
+ " and guia.gpag_id = :idGuia "
+ " and pgmt.dbtp_id = :entradaParc ";
//long t1 = System.currentTimeMillis();
retorno =(BigDecimal) session.createSQLQuery(consulta)
.addScalar("valor" , Hibernate.BIG_DECIMAL)
.setInteger("guia", DocumentoTipo.GUIA_PAGAMENTO)
.setInteger("entradaParcelamento", DocumentoTipo.ENTRADA_DE_PARCELAMENTO)
.setInteger("pagamentoClassificado", PagamentoSituacao.PAGAMENTO_CLASSIFICADO)
.setInteger("idGuia", idGuia)
.setInteger("entradaParc", DebitoTipo.ENTRADA_PARCELAMENTO)
.uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarValorPagamentoDeGuiaHistorico " + ( t2 - t1));
if (retorno == null){
retorno = BigDecimal.ZERO;
}
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 06/04/2009
*
* @param idParcelamento
* @return colecaoIdGuias
*/
public Collection pesquisarIdsContasCobrancaParcelamento(Integer idImovelParcelamento, Integer referenciaParcelamento)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select cnta.cnta_id as id "
+ " from faturamento.conta cnta "
+ " inner join faturamento.debito_cobrado dbcb on dbcb.cnta_id = cnta.cnta_id "
+ " where "
+ " cnta.imov_id = :idImovelParcelamento "
+ " and cnta_amreferenciaconta > :referenciaParcelamento "
+ " and dbcb.dbtp_id = :debitoTipo ";
//long t1 = System.currentTimeMillis();
retorno = session.createSQLQuery(consulta)
.addScalar("id" , Hibernate.INTEGER)
.setInteger("idImovelParcelamento", idImovelParcelamento)
.setInteger("referenciaParcelamento", referenciaParcelamento)
.setInteger("debitoTipo", DebitoTipo.PARCELAMENTO_CONTAS)
.list();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarIdsContasCobrancaParcelamento " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 06/04/2009
*
* @param idParcelamento
* @return colecaoIdGuias
*/
public Collection pesquisarIdsContasHistoricoCobrancaParcelamento(Integer idImovelParcelamento, Integer referenciaParcelamento)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select cnta.cnta_id as id "
+ " from faturamento.conta_historico cnta "
+ " inner join faturamento.debito_cobrado_historico dbcb on dbcb.cnta_id = cnta.cnta_id "
+ " where "
+ " cnta.imov_id = :idImovelParcelamento "
+ " and cnhi_amreferenciaconta > :referenciaParcelamento "
+ " and dbcb.dbtp_id = :debitoTipo ";
//long t1 = System.currentTimeMillis();
retorno = session.createSQLQuery(consulta)
.addScalar("id" , Hibernate.INTEGER)
.setInteger("idImovelParcelamento", idImovelParcelamento)
.setInteger("referenciaParcelamento", referenciaParcelamento)
.setInteger("debitoTipo", DebitoTipo.PARCELAMENTO_CONTAS)
.list();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarIdsContasHistoricoCobrancaParcelamento " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 07/04/2009
*
* @param idConta
* @return valorPagamentoContas
*/
public Integer pesquisarQtdeContasPagas(Collection idsColecaoConta)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT COUNT(pgmt.valorPagamento) "
+ "FROM Pagamento as pgmt "
+ "INNER JOIN pgmt.contaGeral cntaGeral "
+ "INNER JOIN cntaGeral.conta cnta "
+ "WHERE cnta.id in (:colecaoIdsContas) ";
//long t1 = System.currentTimeMillis();
retorno = (Integer)session.createQuery(consulta)
.setParameterList("colecaoIdsContas", idsColecaoConta)
.setMaxResults(1).uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarQtdeContasPagas " + ( t2 - t1));
if (retorno == null){
retorno = 0;
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @date 07/04/2009
*
* @param idDebitoACobrar
*/
public Integer pesquisarQtdeContasHistoricoPagas(Collection idsColecaoConta) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select count(pghi_vlpagamento) as qtde "
+ " from faturamento.conta_historico cnta "
+ " inner join arrecadacao.pagamento_historico pgmt "
+ " on (pgmt.imov_id = cnta.imov_id and pgmt.pghi_amreferenciapagamento = cnta.cnhi_amreferenciaconta) "
+ " where "
+ " cnta.cnta_id in (:colecaoIdsContas) ";
//long t1 = System.currentTimeMillis();
retorno =(Integer) session.createSQLQuery(consulta)
.addScalar("qtde" , Hibernate.INTEGER)
.setParameterList("colecaoIdsContas", idsColecaoConta)
.uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarQtdeContasHistoricoPagas " + ( t2 - t1));
if (retorno == null){
retorno = 0;
}
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
*
* @author Vivianne Sousa
* @data 07/04/2009
*
* @param idParcelamento
* @return parcelamento
*/
public Parcelamento pesquisarDadosParcelamento(Integer idParcelamento)throws ErroRepositorioException {
Object[] retorno = null;
Parcelamento parcelamento = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select parc, imov.id, parcSituacao.id "
+ "from Parcelamento parc "
+ "inner join parc.imovel imov "
+ "inner join parc.parcelamentoSituacao parcSituacao "
+ "where parc.id = :idParcelamento ";
//long t1 = System.currentTimeMillis();
retorno = (Object[])session.createQuery(consulta).setInteger("idParcelamento", idParcelamento).setMaxResults(1).uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarDadosParcelamento " + ( t2 - t1));
if(retorno != null){
parcelamento = ((Parcelamento)retorno [0]);
if(retorno [1] != null){
Imovel imovel = new Imovel();
imovel.setId((Integer)retorno [1]);
parcelamento.setImovel(imovel);
}
if(retorno [2] != null){
ParcelamentoSituacao parcelamentoSituacao = new ParcelamentoSituacao();
parcelamentoSituacao.setId((Integer)retorno [2]);
parcelamento.setParcelamentoSituacao(parcelamentoSituacao);
}
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return parcelamento;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [SB0006] Acompanhar Pagamento do Parcelamento
* [FS0005] - Verificar exist�ncia de pagamento da guia
*
* @author Vivianne Sousa
* @data 15/04/2009
*
* @param idParcelamento
* @return parcelamento
*/
public BigDecimal pesquisarValorPagamentoDeGuiaHistorico(Integer idGuia, Integer anoMesReferencia) throws ErroRepositorioException {
BigDecimal retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select pghi_vlpagamento as valor "
+ " from faturamento.guia_pagamento_historico guia "
+ " left join arrecadacao.pagamento_historico pgmt "
+ " on (pgmt.imov_id = guia.imov_id and to_char(pgmt.pghi_dtpagamento,'yyyymm') = :anoMesReferencia and pgmt.pghi_vlpagamento = guia.gphi_vldebito)"
+ " where "
+ " pgmt.dotp_id in ( :guia , :entradaParcelamento ) "
+ " and pgmt.pgst_idatual = :pagamentoClassificado "
+ " and guia.gpag_id = :idGuia "
+ " and pgmt.dbtp_id = :entradaParc ";
//long t1 = System.currentTimeMillis();
retorno =(BigDecimal) session.createSQLQuery(consulta)
.addScalar("valor" , Hibernate.BIG_DECIMAL)
.setInteger("guia", DocumentoTipo.GUIA_PAGAMENTO)
.setInteger("entradaParcelamento", DocumentoTipo.ENTRADA_DE_PARCELAMENTO)
.setInteger("pagamentoClassificado", PagamentoSituacao.PAGAMENTO_CLASSIFICADO)
.setInteger("idGuia", idGuia)
.setInteger("anoMesReferencia",anoMesReferencia)
.setInteger("entradaParc", DebitoTipo.ENTRADA_PARCELAMENTO)
.uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarValorPagamentoDeGuiaHistorico " + ( t2 - t1));
if (retorno == null){
retorno = BigDecimal.ZERO;
}
} 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;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* pesquisa ocorr�ncia na tabela NEGATIVADOR_MOVIMENTO_REG_PARCELAMENTO para NMRG_ID=NMRG_ID
* da tabela NEGATIVADOR_MOVIMENTO_REG e PARC_ID=Identificador do Parcelamento)
*
* @author Vivianne Sousa
* @data 22/04/2009
*
* @param idNegativadorMovimentoReg
* @param idParcelamento
* @return NegativadorMovimentoRegParcelamento
*/
public NegativadorMovimentoRegParcelamento pesquisarNegativadorMovimentoRegParcelamento(
Integer idNegativadorMovimentoReg,Integer idParcelamento)
throws ErroRepositorioException {
NegativadorMovimentoRegParcelamento retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT nmrp "
+ "FROM NegativadorMovimentoRegParcelamento as nmrp "
+ "INNER JOIN nmrp.parcelamento as parc "
+ "INNER JOIN nmrp.negativadorMovimentoReg as nmr "
+ "WHERE parc.id = :idParcelamento and nmr.id = :idNegativadorMovimentoReg ";
//long t1 = System.currentTimeMillis();
retorno = (NegativadorMovimentoRegParcelamento)session.createQuery(consulta)
.setInteger("idParcelamento", idParcelamento)
.setInteger("idNegativadorMovimentoReg", idNegativadorMovimentoReg)
.setMaxResults(1).uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarNegativadorMovimentoRegParcelamento " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* retorna o id da tabela NEGATIVADOR_MOVIMENTO_REG_PARCELAMENTO
* com NMRP_ICPARCELAMENTOATIVO=1 e NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG
*
* @author Vivianne Sousa
* @data 22/04/2009
*
* @param idNegativadorMovimentoReg
* @return nmrp_id
*/
public Collection pesquisarNegativadorMovimentoRegParcelamentoComParcelamentoAtivo(
Integer idNegativadorMovimentoReg)throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmrp_id as id "
+ " from cobranca.negatd_mov_reg_parcel "
+ " where nmrg_id = :idNegativadorMovimentoReg and nmrp_icparcelamentoativo= :indicadorParcAtivo ";
//long t1 = System.currentTimeMillis();
retorno =(Collection) session.createSQLQuery(consulta)
.addScalar("id" , Hibernate.INTEGER)
.setInteger("idNegativadorMovimentoReg", idNegativadorMovimentoReg)
.setInteger("indicadorParcAtivo", ConstantesSistema.SIM)
.list();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarNegativadorMovimentoRegParcelamentoComParcelamentoAtivo " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* menor PARC_ID da tabela NEGATIVADOR_MOVIMENTO_REG_PARCELAMENTO
* com NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG.
*
* @author Vivianne Sousa
* @data 23/04/2009
*/
public Integer pesquisarMenorParcelamentoNegativadorMovimentoRegParcelamento(
Integer idNegativadorMovimentoReg)throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select min(parc_id) as idParc "
+ " from cobranca.negatd_mov_reg_parcel "
+ " where nmrg_id = :idNegativadorMovimentoReg ";
//long t1 = System.currentTimeMillis();
retorno =(Integer) session.createSQLQuery(consulta)
.addScalar("idParc" , Hibernate.INTEGER)
.setInteger("idNegativadorMovimentoReg", idNegativadorMovimentoReg)
.uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarMenorParcelamentoNegativadorMovimentoRegParcelamento " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* pesquisa ocorr�ncia na tabela NEGATIVADOR_MOVIMENTO_REG_PARCELAMENTO para NMRG_ID=NMRG_ID
* da tabela NEGATIVADOR_MOVIMENTO_REG e PARC_ID=Identificador do Parcelamento)
*
* @author Vivianne Sousa
* @data 22/04/2009
*
* @param idNegativadorMovimentoReg
* @param idParcelamento
* @return NegativadorMovimentoRegParcelamento
*/
public Integer pesquisarIdNegativadorMovimentoRegParcelamento(
Integer idNegativadorMovimentoReg,Integer idParcelamento)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmrp_id as id "
+ " from cobranca.negatd_mov_reg_parcel "
+ " where nmrg_id = :idNegativadorMovimentoReg and parc_id= :idParcelamento ";
//long t1 = System.currentTimeMillis();
retorno =(Integer) session.createSQLQuery(consulta)
.addScalar("id" , Hibernate.INTEGER)
.setInteger("idParcelamento", idParcelamento)
.setInteger("idNegativadorMovimentoReg", idNegativadorMovimentoReg)
.uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarIdNegativadorMovimentoRegParcelamento " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* retorna o id da tabela NEGATIVADOR_MOVIMENTO_REG_PARCELAMENTO
* para NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG e
* PARC_ID=Identificador do Parcelamento e NMRP_ICPARCELAMENTOATIVO=2
*
* @author Vivianne Sousa
* @data 23/04/2009
*
* @param idNegativadorMovimentoReg
* @return nmrp_id
*/
public Integer pesquisarNegativadorMovimentoRegParcelamentoComParcelamentoInativo(
Integer idNegativadorMovimentoReg, Integer idParcelamento)throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmrp_id as id "
+ " from cobranca.negatd_mov_reg_parcel "
+ " where nmrg_id = :idNegativadorMovimentoReg "
+ " and nmrp_icparcelamentoativo= :indicadorParcAtivo and parc_id= :idParcelamento ";
//long t1 = System.currentTimeMillis();
retorno =(Integer) session.createSQLQuery(consulta)
.addScalar("id" , Hibernate.INTEGER)
.setInteger("idNegativadorMovimentoReg", idNegativadorMovimentoReg)
.setInteger("indicadorParcAtivo", ConstantesSistema.NAO)
.setInteger("idParcelamento", idParcelamento)
.uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarNegativadorMovimentoRegParcelamentoComParcelamentoInativo " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* [UC0694] - Gerar Relat�rio Negativa��es Exclu�das
*
* pesquisa ocorr�ncia na tabela NEGATIVADOR_MOVIMENTO_REG_PARCELAMENTO para NMRG_ID=NMRG_ID
* da tabela NEGATIVADOR_MOVIMENTO_REG)
*
* @author Vivianne Sousa
* @data 22/04/2009
*
* @param idNegativadorMovimentoReg
* @return NegativadorMovimentoRegParcelamento
*/
public Collection pesquisarNegativadorMovimentoRegParcelamento(
Integer idNegativadorMovimentoReg) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT nmrp "
+ "FROM NegativadorMovimentoRegParcelamento as nmrp "
+ "INNER JOIN nmrp.negativadorMovimentoReg as nmr "
+ "WHERE nmr.id = :idNegativadorMovimentoReg ";
//long t1 = System.currentTimeMillis();
retorno = (Collection)session.createQuery(consulta)
.setInteger("idNegativadorMovimentoReg", idNegativadorMovimentoReg)
.list();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarNegativadorMovimentoRegParcelamento " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* Retorna o somat�rio do VALOR PAGO e do VALOR CANCELADO
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Vivianne Sousa
* @date 29/04/2009
*/
public Object[] pesquisarSomatorioValorPagoEValorCancelado(Integer idNegativadorMovimentoReg) throws ErroRepositorioException {
Object[] retorno = null;
Session session = HibernateUtil.getSession();
try {
String consulta = " select sum(nmri.valorPago), sum(nmri.valorCancelado) "
+ " from gcom.cobranca.NegativadorMovimentoRegItem nmri "
+ " where nmri.negativadorMovimentoReg.id = :idNegativadorMovimentoReg ";
//long t1 = System.currentTimeMillis();
retorno = (Object[]) session.createQuery(consulta).setInteger("idNegativadorMovimentoReg",idNegativadorMovimentoReg).uniqueResult();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0688]pesquisarSomatorioValorPagoEValorCancelado " + ( t2 - t1));
} 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;
}
/**
* [UC0937] Obter Itens de Negativa��o Associados � Conta
*
* pesquisa a partir da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
* com NMRI_ICSITDEFINITIVA=2 E CNTA_ID com o valor diferente de nulo
* E ( (CNTA_ID=CNTA_ID da tabela CONTA com IMOV_ID=Id do Im�vel recebido
* e CNTA_AMREFERENCIACONTA=Refer�ncia recebida)
* E NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG com IMOV_ID=Id do Im�vel recebido
*
* @author Vivianne Sousa
* @data 10/09/2009
*
* @param idImovel
* @param referencia
* @return id do NegativadorMovimentoRegItem
*/
public Collection obterNegativadorMovimentoRegItemAssociadosAConta(
Integer idImovel, Integer referencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmri.nmri_id as idNmri "
+ " from cobranca.negatd_mov_reg_item nmri "
+ " inner join cobranca.negatd_movimento_reg nmrg on nmrg.nmrg_id = nmri.nmrg_id "
+ " inner join faturamento.conta_geral cntaGeral on cntaGeral.cnta_id = nmri.cnta_id "
+ " inner join faturamento.conta cnta on cntaGeral.cnta_id = cnta.cnta_id "
+ " where nmri_icsitdefinitiva = :indicadorSituacaoDefinitiva "
+ " and cnta.imov_id = :idImovel "
+ " and cnta.cnta_amreferenciaconta = :referencia "
+ " and nmrg.imov_id = :idImovel "
//alterado por Vivianne Sousa - 27/10/2009 - analista:Fatima Sampaio
+ " and (nmrg_icaceito = :indicadorAceito or nmrg_icaceito is null)";
//long t1 = System.currentTimeMillis();
retorno = (Collection)session.createSQLQuery(consulta)
.addScalar("idNmri",Hibernate.INTEGER)
.setShort("indicadorSituacaoDefinitiva",ConstantesSistema.NAO)
.setInteger("idImovel", idImovel)
.setInteger("referencia", referencia)
.setShort("indicadorAceito",ConstantesSistema.SIM)
.list();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0937]obterNegativadorMovimentoRegItemAssociadosAConta " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0937] Obter Itens de Negativa��o Associados � Conta
*
* pesquisa a partir da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
* com NMRI_ICSITDEFINITIVA=2 E CNTA_ID com o valor diferente de nulo
* E ((CNTA_ID=CNTA_ID da tabela CONTA_HISTORICO com IMOV_ID=Id do Im�vel recebido
* e CNHI_AMREFERENCIACONTA=Refer�ncia recebida) )
* E NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG com IMOV_ID=Id do Im�vel recebido
*
* @author Vivianne Sousa
* @data 10/09/2009
*
* @param idImovel
* @param referencia
* @return id do NegativadorMovimentoRegItem
*/
public Collection obterNegativadorMovimentoRegItemAssociadosAContaHistorico(
Integer idImovel, Integer referencia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmri.nmri_id as idNmri "
+ " from cobranca.negatd_mov_reg_item nmri "
+ " inner join cobranca.negatd_movimento_reg nmrg on nmrg.nmrg_id = nmri.nmrg_id "
+ " inner join faturamento.conta_geral cntaGeral on cntaGeral.cnta_id = nmri.cnta_id "
+ " inner join faturamento.conta_historico cntaHist on cntaGeral.cnta_id = cntaHist.cnta_id "
+ " where nmri_icsitdefinitiva = :indicadorSituacaoDefinitiva "
+ " and cntaHist.imov_id = :idImovel "
+ " and cntaHist.cnhi_amreferenciaconta = :referencia "
+ " and nmrg.imov_id = :idImovel "
//alterado por Vivianne Sousa - 27/10/2009 - analista:Fatima Sampaio
+ " and (nmrg_icaceito = :indicadorAceito or nmrg_icaceito is null) ";
//long t1 = System.currentTimeMillis();
retorno = (Collection)session.createSQLQuery(consulta)
.addScalar("idNmri",Hibernate.INTEGER)
.setShort("indicadorSituacaoDefinitiva",ConstantesSistema.NAO)
.setInteger("idImovel", idImovel)
.setInteger("referencia", referencia)
.setShort("indicadorAceito",ConstantesSistema.SIM)
.list();
//long t2 = System.currentTimeMillis();
//System.out.println("[UC0937]obterNegativadorMovimentoRegItemAssociadosAContaHistorico " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0242] Registrar Movimento dos Arrecadadores
* [SB0017] - Atualizar Item da Negativa��o
*
* [UC0265] Inserir Pagamentos
* [SB0006] - Atualizar Item da Negativa��o
*
* [UC0266] Manter Pagamentos
* [SB0009] - Atualizar Item da Negativa��o - Efetuar Pagamento
*
* [UC1214] Informar Acerto Documentos N�o Aceitos
* [SB0005] - Atualizar item da negativa��o
*
* @author Vivianne Sousa
* @date 11/09/2009
*/
public void atualizarNegativadorMovimentoRegItem(
Integer idNegativadorMovimentoRegItem,
BigDecimal valorPago,
Date dataSituacaoDebito,
Integer idCobrancaDebitoSituacao) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta = null;
String update = null;
try {
consulta = "select nmrg.codigoExclusaoTipo "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
Integer codigoExclusaoTipo = (Integer)session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
if(codigoExclusaoTipo == null){
//1. Caso a negativa��o n�o esteja exclu�da
//(NMRG_CDEXCLUSAOTIPO da tabela NEGATIVADR_MOVIMENTO_REG com o valor nulo
//para NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
//com NMRI_ID=Id do item de negativa��o),
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_id = :idCobrancaDebitoSituacao,"
+ " nmri_dtsituacaodebito = :dataSituacaoDebito, "
+ " nmri_vlpago = :valorPago, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
}else{
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_idaposexclusao = :idCobrancaDebitoSituacao,"
+ " nmri_dtsitdebaposexclusao = :dataSituacaoDebito, "
+ " nmri_vlpago = :valorPago, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
}
session.createQuery(update)
.setInteger("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao)
.setDate("dataSituacaoDebito", dataSituacaoDebito)
.setBigDecimal("valorPago", valorPago)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao",new Date())
.executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0242] - Registrar Movimento dos Arrecadadores
* Fluxo Principal 10.1.2.2
*
* pesquisa ocorr�ncia na tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
* com NMRI_ICSITDEFINITIVA=2 e GPAG_ID=GPAG_ID do PAGAMENTO
*
* @author Vivianne Sousa
* @data 11/09/2009
*
* @param idImovel
* @param referencia
* @return id do NegativadorMovimentoRegItem
*/
public Collection obterNegativadorMovimentoRegItemAssociadosAGuiaPagamento(
Integer idGuia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmri.id "
+ "from NegativadorMovimentoRegItem nmri "
+ "where nmri.guiaPagamentoGeral.id = :idGuia and "
+ "nmri.indicadorSituacaoDefinitiva = :indicadorSituacaoDefinitiva ";
retorno = (Collection)session.createQuery(consulta)
.setInteger("idGuia", idGuia)
.setShort("indicadorSituacaoDefinitiva",ConstantesSistema.NAO)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0266] Manter Pagamentos
* [SB0007] - Verifica Associa��o do Pagamento com Itens de Negativa��o
* 1.1. O sistema obt�m dados da conta do pagamento
* (a partir da tabela CONTA com CNTA_ID=CNTA_ID da tabela PAGAMENTO ou
* a partir da tabela CONTA_HISTORICO com CNTA_ID=CNTA_ID da tabela PAGAMENTO).
*
* @author Vivianne Sousa
* @date 14/09/2009
*/
public Object[] pesquisarImovelEReferenciaDaConta(Integer idContaGeral) throws ErroRepositorioException {
Object[] retorno = null;
Session session = HibernateUtil.getSession();
try {
String consulta = " select imov.id ,cnta.referencia "
+ " from gcom.faturamento.conta.Conta cnta "
+ " inner join cnta.imovel imov "
+ " where cnta.id = :idContaGeral ";
retorno = (Object[]) session.createQuery(consulta).setInteger("idContaGeral",idContaGeral).uniqueResult();
if(retorno == null || retorno[0] == null){
consulta = " select imov.id ,cnta.anoMesReferenciaConta "
+ " from gcom.faturamento.conta.ContaHistorico cnta "
+ " inner join cnta.imovel imov "
+ " where cnta.id = :idContaGeral ";
retorno = (Object[]) session.createQuery(consulta).setInteger("idContaGeral",idContaGeral).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;
}
/**
* [UC0266] Manter Pagamentos
* [SB0008] - Atualizar Item da Negativa��o - Desfazer Pagamento
*
* @author Vivianne Sousa
* @date 15/09/2009
*/
public void atualizarNegativadorMovimentoRegItem(
Integer idNegativadorMovimentoRegItem) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta = null;
String update = null;
try {
consulta = "select nmrg.codigoExclusaoTipo "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
Integer codigoExclusaoTipo = (Integer)session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
if(codigoExclusaoTipo == null){
//1. Caso a negativa��o n�o esteja exclu�da
//(NMRG_CDEXCLUSAOTIPO da tabela NEGATIVADR_MOVIMENTO_REG com o valor nulo
//para NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
//com NMRI_ID=Id do item de negativa��o),
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_id = :pendente,"
+ " nmri_dtsituacaodebito = :dataCorrente, "
+ " nmri_vlpago = null , "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
session.createQuery(update)
.setInteger("pendente", CobrancaDebitoSituacao.PENDENTE)
.setDate("dataCorrente", new Date())
// .setBigDecimal("valorPago", ConstantesSistema.VALOR_ZERO)
//teste vivi
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
}else{
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_idaposexclusao = :pendente,"
+ " nmri_dtsitdebaposexclusao = :dataCorrente, "
+ " nmri_vlpago = null , "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
session.createQuery(update)
.setInteger("pendente", CobrancaDebitoSituacao.PENDENTE)
.setDate("dataCorrente", new Date())
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0147] Cancelar Conta
* [SB0001] - Atualizar Item da Negativa��o
* [SB0002] - Atualizar Item Negativa��o - Conta Retificada
*
* @author Vivianne Sousa
* @date 16/09/2009
*/
public void atualizarNegativadorMovimentoRegItem(
Integer idNegativadorMovimentoRegItem,
Integer idConta) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta = null;
String update = null;
try {
consulta = "select nmrg.codigoExclusaoTipo "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
Integer codigoExclusaoTipo = (Integer)session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
if(codigoExclusaoTipo == null){
//1. Caso a negativa��o n�o esteja exclu�da
//(NMRG_CDEXCLUSAOTIPO da tabela NEGATIVADR_MOVIMENTO_REG com o valor nulo
//para NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
//com NMRI_ID=Id do item de negativa��o),
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_id = :pendente,"
+ " nmri_dtsituacaodebito = :dataCorrente, "
+ " nmri_vlpago = :valorPago, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
session.createQuery(update)
.setInteger("pendente", CobrancaDebitoSituacao.CANCELADO)
.setDate("dataCorrente", new Date())
.setBigDecimal("valorPago", ConstantesSistema.VALOR_ZERO)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
}else{
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_idaposexclusao = :pendente,"
+ " nmri_dtsitdebaposexclusao = :dataCorrente, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
session.createQuery(update)
.setInteger("pendente", CobrancaDebitoSituacao.CANCELADO)
.setDate("dataCorrente", new Date())
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0147] Cancelar Conta
* [SB0001] - Atualizar Item da Negativa��o
* [SB0002] - Atualizar Item Negativa��o - Conta Retificada
*
* @author Vivianne Sousa
* @date 16/09/2009
*/
public void atualizarNegativadorMovimentoRegItem(
Integer idNegativadorMovimentoRegItem,
Date dataSituacaoDebito,
Integer idCobrancaDebitoSituacao,
Integer idContaCanceladaPorRetificacao,
Integer idContaRetificadaECancelada) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta = null;
String update = null;
try {
consulta = "select nmrg.codigoExclusaoTipo, nmri.contaGeral.id "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
Object[] dados = (Object[])session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
Integer idContaNmri = null;
if(dados[1] != null){
idContaNmri = (Integer)dados[1];
}
//codigoExclusaoTipo
if(dados[0] == null){
//1. Caso a negativa��o n�o esteja exclu�da
//(NMRG_CDEXCLUSAOTIPO da tabela NEGATIVADR_MOVIMENTO_REG com o valor nulo
//para NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
//com NMRI_ID=Id do item de negativa��o),
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_id = :idCobrancaDebitoSituacao,"
+ " nmri_dtsituacaodebito = :dataSituacaoDebito, "
+ " nmri_vlcancelado = nmri_vldebito, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao ";
}else{
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_idaposexclusao = :idCobrancaDebitoSituacao,"
+ " nmri_dtsitdebaposexclusao = :dataSituacaoDebito, "
+ " nmri_vlcancelado = nmri_vldebito, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao ";
}
//Caso a conta correspondente ao item de negativa��o seja igual � conta cancelada
//(CNTA_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM= Id da Conta Retificada e Cancelada)
if(idContaCanceladaPorRetificacao != null && idContaNmri != null &&
idContaNmri.equals(idContaRetificadaECancelada)){
update = update + ", cnta_id = :idContaCanceladaPorRetificacao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
session.createQuery(update)
.setInteger("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao)
.setDate("dataSituacaoDebito", dataSituacaoDebito)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setInteger("idContaCanceladaPorRetificacao",idContaCanceladaPorRetificacao)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
}else{
update = update + " where nmri_id = :idNegativadorMovimentoRegItem ";
session.createQuery(update)
.setInteger("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao)
.setDate("dataSituacaoDebito", dataSituacaoDebito)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0329] Restabelecer Situa��o Anterior de Conta
* [SB0002] - Atualizar Item da Negativa��o-Desfazer Retifica��o
*
* @author Vivianne Sousa
* @date 21/09/2009
*/
public void atualizarNegativadorMovimentoRegItem(
Integer idNegativadorMovimentoRegItem,
Date dataSituacaoDebito,
Integer idCobrancaDebitoSituacao,
Integer idContaCanceladaPorRetificacao,
Integer idContaRetificadaECancelada,
BigDecimal valorTotalContaRetificada,
BigDecimal valorPago) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta = null;
String update = "";
boolean atualizar = false;
Map parameters = new HashMap();
try {
consulta = "select nmrg.codigoExclusaoTipo, nmri.contaGeral.id "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
Object[] dados = (Object[])session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
Integer idContaNmri = null;
if(dados[1] != null){
idContaNmri = (Integer)dados[1];
}
update = " update gcom.cobranca.NegativadorMovimentoRegItem set "
+ " nmri_tmultimaalteracao = :ultimaAlteracao , ";
String where = " where nmri_id = :idNegativadorMovimentoRegItem ";
parameters.put("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem);
parameters.put("ultimaAlteracao",new Date());
//codigoExclusaoTipo
if(dados[0] == null){
//1. Caso a negativa��o n�o esteja exclu�da
//(NMRG_CDEXCLUSAOTIPO da tabela NEGATIVADR_MOVIMENTO_REG com o valor nulo
//para NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
//com NMRI_ID=Id do item de negativa��o),
if(valorTotalContaRetificada.compareTo(new BigDecimal("0.00")) == 0){
atualizar = true;
update = update + " cdst_id = :idCobrancaDebitoSituacao, "
+ " nmri_dtsituacaodebito = :dataSituacaoDebito, "
+ " nmri_vlpago = " + valorPago + " , " ;
parameters.put("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao);
parameters.put("dataSituacaoDebito", dataSituacaoDebito);
// parameters.put("valorPago", valorPago);
}
}else{
if(valorTotalContaRetificada.compareTo(new BigDecimal("0.00")) == 0){
atualizar = true;
update = update + " cdst_idaposexclusao = :idCobrancaDebitoSituacao,"
+ " nmri_dtsitdebaposexclusao = :dataSituacaoDebito , "
+ " nmri_vlpago = " + valorPago + " , ";
parameters.put("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao);
parameters.put("dataSituacaoDebito", dataSituacaoDebito);
}
}
//Caso a conta correspondente ao item de negativa��o seja igual � conta cancelada
//(CNTA_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM= Id da Conta Retificada e Cancelada)
if(idContaCanceladaPorRetificacao != null && idContaNmri != null &&
idContaNmri.equals(idContaRetificadaECancelada)){
atualizar = true;
update = update + " cnta_id = :idContaCanceladaPorRetificacao , " ;
parameters.put("idContaCanceladaPorRetificacao", idContaCanceladaPorRetificacao);
}
if(atualizar){
update = Util.removerUltimosCaracteres(update, 3);
update = update + where;
Query query = session.createQuery(update);
Set set = parameters.keySet();
Iterator iterMap = set.iterator();
while (iterMap.hasNext()) {
String key = (String) iterMap.next();
if (parameters.get(key) instanceof Set) {
Set setList = (Set) parameters.get(key);
query.setParameterList(key, setList);
} else if (parameters.get(key) instanceof Collection) {
Collection collection = (Collection) parameters.get(key);
query.setParameterList(key, collection);
} else {
query.setParameter(key, parameters.get(key));
}
}
query.executeUpdate();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0329] Restabelecer Situa��o Anterior de Conta
* [SB0001] - Atualizar Item da Negativa��o-Desfazer Cancelamento
*
* @author Vivianne Sousa
* @date 21/09/2009
*/
public void atualizarNegativadorMovimentoRegItem(
Integer idNegativadorMovimentoRegItem,
Date dataSituacaoDebito,
Integer idCobrancaDebitoSituacao,
BigDecimal valorCancelado) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta = null;
String update = null;
try {
consulta = "select nmrg.codigoExclusaoTipo "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
Integer codigoExclusaoTipo = (Integer)session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
if(codigoExclusaoTipo == null){
//1. Caso a negativa��o n�o esteja exclu�da
//(NMRG_CDEXCLUSAOTIPO da tabela NEGATIVADR_MOVIMENTO_REG com o valor nulo
//para NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
//com NMRI_ID=Id do item de negativa��o),
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_id = :idCobrancaDebitoSituacao,"
+ " nmri_dtsituacaodebito = :dataSituacaoDebito, "
+ " nmri_vlcancelado = " + valorCancelado + ", "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
session.createQuery(update)
.setInteger("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao)
.setDate("dataSituacaoDebito", dataSituacaoDebito)
// .setBigDecimal("valorCancelado", valorCancelado)
//teste vivi
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
}else{
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_idaposexclusao = :idCobrancaDebitoSituacao,"
+ " nmri_dtsitdebaposexclusao = :dataSituacaoDebito, "
+ " nmri_vlcancelado = " + valorCancelado + ", "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
session.createQuery(update)
.setInteger("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao)
.setDate("dataSituacaoDebito", dataSituacaoDebito)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0188] Manter Guia de Pagamento
* verifica se existe negativador movimento reg item
* associado a guia de pagamento
*
* @author Vivianne Sousa
* @date 23/09/2009
*/
public Collection pesquisarNegativadorMovimentoRegItemAssociadosAGuiaPagamento(
Integer idGuia) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmri.id "
+ "from NegativadorMovimentoRegItem nmri "
+ "where nmri.guiaPagamentoGeral.id = :idGuia ";
retorno = (Collection)session.createQuery(consulta)
.setInteger("idGuia", idGuia)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Collection pesquisarNegativadorMovimentoRegItemAssociadosAConta(
Integer idConta) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmri.id "
+ "from NegativadorMovimentoRegItem nmri "
+ "where nmri.contaGeral.id = :idConta ";
retorno = (Collection)session.createQuery(consulta)
.setInteger("idConta", idConta)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Collection pesquisarNegativadorMovimentoRegItemAssociadosADebitoACobrar(
Integer idDebitoACobrar) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmri.id "
+ "from NegativadorMovimentoRegItem nmri "
+ "where nmri.debitoACobrarGeral.id = :idDebitoACobrar ";
retorno = (Collection)session.createQuery(consulta)
.setInteger("idDebitoACobrar", idDebitoACobrar)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0188] Manter Guia de Pagamento
* [SB0001] - Atualizar Item da Negativa��o
*
* @author Vivianne Sousa
* @date 23/09/2009
*/
public void atualizarNegativadorMovimentoRegItem(
Integer idNegativadorMovimentoRegItem,
Date dataSituacaoDebito,
Integer idCobrancaDebitoSituacao) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta = null;
String update = null;
try {
consulta = "select nmrg.codigoExclusaoTipo "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
Integer codigoExclusaoTipo = (Integer)session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
if(codigoExclusaoTipo == null){
//1. Caso a negativa��o n�o esteja exclu�da
//(NMRG_CDEXCLUSAOTIPO da tabela NEGATIVADR_MOVIMENTO_REG com o valor nulo
//para NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
//com NMRI_ID=Id do item de negativa��o),
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_id = :idCobrancaDebitoSituacao,"
+ " nmri_dtsituacaodebito = :dataSituacaoDebito, "
+ " nmri_vlcancelado = nmri_vldebito, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
}else{
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_idaposexclusao = :idCobrancaDebitoSituacao,"
+ " nmri_dtsitdebaposexclusao = :dataSituacaoDebito, "
+ " nmri_vlcancelado = nmri_vldebito, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
}
session.createQuery(update)
.setInteger("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao)
.setDate("dataSituacaoDebito", dataSituacaoDebito)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0214] Efetuar Parcelamento de D�bitos
* [SB0013] - Atualizar Item da Negativa��o
*
* [UC0818] Gerar Hist�rico do Encerramento da Arrecada��o
*
* @author Vivianne Sousa
* @date 24/09/2009
*/
public Integer atualizarNegativadorMovimentoRegItem(
Integer idNegativadorMovimentoRegItem,
Integer idCobrancaDebitoSituacao,
Date dataSituacaoDebito,
boolean indicadorVerificaSeParcelado) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta = null;
String update = null;
try {
consulta = "select nmrg.codigoExclusaoTipo, nmri.cobrancaDebitoSituacao.id "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
Object[] dados = (Object[])session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
Integer codigoExclusaoTipo = (Integer)dados[0];
Integer idCdst = null;
if(dados[1] != null){
idCdst = (Integer)dados[1];
}
if(!indicadorVerificaSeParcelado || idCdst.equals(CobrancaDebitoSituacao.PARCELADO) ){
if(codigoExclusaoTipo == null){
//1. Caso a negativa��o n�o esteja exclu�da
//(NMRG_CDEXCLUSAOTIPO da tabela NEGATIVADR_MOVIMENTO_REG com o valor nulo
//para NMRG_ID=NMRG_ID da tabela NEGATIVADOR_MOVIMENTO_REG_ITEM
//com NMRI_ID=Id do item de negativa��o),
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_id = :idCobrancaDebitoSituacao,"
+ " nmri_dtsituacaodebito = :dataSituacaoDebito, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
}else{
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set cdst_idaposexclusao = :idCobrancaDebitoSituacao,"
+ " nmri_dtsitdebaposexclusao = :dataSituacaoDebito, "
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
}
session.createQuery(update)
.setInteger("idCobrancaDebitoSituacao", idCobrancaDebitoSituacao)
.setDate("dataSituacaoDebito", dataSituacaoDebito)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.setTimestamp("ultimaAlteracao", new Date())
.executeUpdate();
}
return codigoExclusaoTipo;
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* @author Vivianne Sousa
* @date 24/09/2009
*/
public Integer pesquisarIdNegativadorMovimentoReg(
Integer idNegativadorMovimentoRegItem)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select nmrg.id "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
retorno = (Integer)session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0818] Gerar Hist�rico do Encerramento da Arrecada��o
*
* @author Vivianne Sousa
* @date 28/09/2009
*/
public Integer pesquisarIdContaNegativadorMovimentoRegItem(
Integer idNegativadorMovimentoRegItem)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select cnta.id "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.contaGeral cnta "
+ "where nmri.id = :idNegativadorMovimentoRegItem ";
retorno = (Integer)session.createQuery(consulta)
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0818] Gerar Hist�rico do Encerramento da Arrecada��o
*
* @author Vivianne Sousa
* @date 28/09/2009
*/
public Integer pesquisarDebitoCreditoSituacaoAtualDaConta(Integer idContaGeral) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String consulta = " select debitoCreditoSituacaoAtual.id "
+ " from gcom.faturamento.conta.Conta cnta "
+ " where cnta.id = :idContaGeral ";
retorno = (Integer) session.createQuery(consulta).setInteger("idContaGeral",idContaGeral).uniqueResult();
if(retorno == null){
consulta = " select debitoCreditoSituacaoAtual.id "
+ " from gcom.faturamento.conta.ContaHistorico cnta "
+ " where cnta.id = :idContaGeral ";
retorno = (Integer) session.createQuery(consulta).setInteger("idContaGeral",idContaGeral).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;
}
/**
* [UC0818] Gerar Hist�rico do Encerramento da Arrecada��o
*
* @author Vivianne Sousa
* @date 28/09/2009
*/
public void atualizarIndicadorSituacaoDefinitivaNmri(
Integer idNegativadorMovimentoRegItem,
Short indicadorSituacaoDefinitiva) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String update = null;
try {
update = " update gcom.cobranca.NegativadorMovimentoRegItem "
+ " set nmri_icsitdefinitiva = :indicadorSituacaoDefinitiva,"
+ " nmri_tmultimaalteracao = :ultimaAlteracao "
+ " where nmri_id = :idNegativadorMovimentoRegItem ";
session.createQuery(update)
.setShort("indicadorSituacaoDefinitiva", indicadorSituacaoDefinitiva)
.setDate("ultimaAlteracao", new Date())
.setInteger("idNegativadorMovimentoRegItem", idNegativadorMovimentoRegItem)
.executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* Fluxo principal Item 2.0
*
* @author Vivianne Sousa
* @date 30/09/2009
*/
public void apagarResumoNegativacao(Integer numeroExecucaoResumoNegativacao, Integer idRota)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
try {
Collection idsQuadra = null;
String hqlQuadra = "select q.id from Quadra q where q.rota.id = :idRota ";
String hql = " delete "
+ " from gcom.cobranca.ResumoNegativacao "
+ " where rneg_nnexecresumonegat = :numeroExecucaoResumoNegativacao "
+ " and qdra_id in (:idsQuadra) ";
long t1 = System.currentTimeMillis();
idsQuadra = session.createQuery(hqlQuadra).setInteger("idRota", idRota.intValue()).list();
if (idsQuadra != null && idsQuadra.size() > 0){
session.createQuery(hql)
.setInteger("numeroExecucaoResumoNegativacao",numeroExecucaoResumoNegativacao)
.setParameterList("idsQuadra", idsQuadra)
.executeUpdate();
}
long t2 = System.currentTimeMillis();
System.out.println("[UC0688]apagarResumoNegativacao " + ( t2 - t1));
} 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);
}
}
/**
*
* Consulta os Negativadores para a geracao do resumo diario da negativacao
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* Fluxo principal Item 1.0
*
* @author Vivianne Sousa
* @date 30/10/2009
*/
public List<NegativadorMovimentoReg> consultarNegativadorMovimentoReg(Integer idRota) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String consulta = "SELECT nmr "
+ " FROM gcom.cobranca.NegativadorMovimentoReg nmr"
+ " LEFT JOIN nmr.quadra quad "
+ " LEFT JOIN nmr.negativadorMovimento as nm "
+ " WHERE nm.codigoMovimento = :codigoMovimento "
+ " and nmr.imovel is not null "
+ " and nmr.indicadorAceito = :indicadorAceito "
+ " and nmr.codigoExclusaoTipo is null "
+ " and nmr.indicadorItemAtualizado = :indicadorItemAtualizado "
+ " and quad.rota.id = :idRota";
retorno = (List) session.createQuery(consulta)
.setShort("codigoMovimento", ConstantesSistema.SIM)
.setShort("indicadorAceito", ConstantesSistema.SIM)
.setShort("indicadorItemAtualizado", ConstantesSistema.SIM)
.setInteger("idRota", idRota)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] - Gerar Resumo Diario da Negativa��o
* retorna o id do negativador movimento reg que a situa��o de d�bito de cobran�a da negativa��o
* corresponda a �Parcelado� (CDST_ID da tabela NEGATIVADOR_MOVIMENTO_REG com o valor correspondente a parcelado)
* e o parcelamento esteja ativo (existe ocorr�ncia na tabela NEGATIVADOR_MOVIMENTO_REG_PARCELAMENTO com NMRP_ICPARCELAMENTOATIVO=1)
*
* @author Vivianne Sousa
* @data 30/10/2009
*/
public Collection pesquisarNegativadorMovimentoRegComParcelamentoAtivo(
Integer idRota)throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = " select "
+ " nmrg.nmrg_id as idNegativadorMovimentoReg "
+ " from cobranca.negatd_mov_reg_parcel nmrp "
+ " inner join cobranca.negatd_movimento_reg nmrg on nmrg.nmrg_id = nmrp.nmrg_id "
+ " inner join cadastro.quadra qdra on nmrg.qdra_id = qdra.qdra_id "
+ " where "
+ " qdra.rota_id = :idRota "
+ " and nmrp_icparcelamentoativo = :indicadorParcAtivo ";
long t1 = System.currentTimeMillis();
retorno =(Collection) session.createSQLQuery(consulta)
.addScalar("idNegativadorMovimentoReg" , Hibernate.INTEGER)
.setInteger("idRota", idRota)
.setInteger("indicadorParcAtivo", ConstantesSistema.SIM)
.list();
long t2 = System.currentTimeMillis();
System.out.println("[UC0688]pesquisarNegativadorMovimentoRegComParcelamentoAtivo " + ( t2 - t1));
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
* Fluxo principal Item 1.0
*
* @author Vivianne Sousa
* @date 09/02/2010
*/
public List consultarSetorParaGerarResumoDiarioNegativacao()
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String sql = " SELECT distinct stcm_id as idSetor "
+ "from cadastro.setor_comercial setor "
+ "where loca_id in " +
" (select distinct nmr.loca_id from cobranca.negatd_movimento_reg nmr " +
" join cobranca.negativador_movimento nm on nmr.ngmv_id = nm.ngmv_id " +
" where nm.ngmv_cdmovimento = " + NegativadorMovimento.CODIGO_MOVIMENTO_INCLUSAO +
" and nmr.imov_id is not null " +
" and nmr.nmrg_icaceito = " + ConstantesSistema.SIM + ")";
retorno = (List) session.createSQLQuery(sql)
.addScalar("idSetor" , Hibernate.INTEGER)
.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;
}
/**
*
* Verificar ocorr�ncia de movimento de exclus�o incompleto
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*
* @author Vivianne Sousa
* @date 10/02/2010
*/
public Integer verificarOcorrenciaMovimentoExclusaoIncompleto()
throws ErroRepositorioException {
Integer retorno;
Session session = HibernateUtil.getSession();
try {
String hql = " select max(nm.id) "
+ " from gcom.cobranca.NegativadorMovimento nm "
+ " where nm.codigoMovimento = 2 "
+ " and nm.numeroRegistrosEnvio is null "
+ " and nm.valorTotalEnvio is null ";
retorno = (Integer) session.createQuery(hql)
.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;
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*
* @author Vivianne Sousa
* @date 10/02/2010
*/
public void atualizarNegativacaoImoveis(Integer idNegativadorMovimento) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
Connection jdbcCon = session.connection();
String update = " update cobranca.negativacao_imoveis ngim "
+ " set ngim_icexcluido = 2, "
+ " ngim_dtexclusao = null "
+ " where ngim.ngim_id in "
+ " ( select ngim.ngim_id "
+ " from cobranca.negatd_movimento_reg nmrg1 "
+ " inner join cobranca.negativador_movimento ngmv on ngmv.ngmv_id=nmrg1.ngmv_id "
+ " inner join cobranca.negativacao_imoveis ngim on ngim.imov_id=nmrg1.imov_id and ngim.ngcm_id=ngmv.ngcm_id "
+ " where "
+ " nmrg1.nmrg_id in "
+ " (select nmrg2.nmrg_idreginclusao "
+ " from cobranca.negatd_movimento_reg nmrg2 "
+ " where "
+ " nmrg2.ngmv_id = ? and nmrg2.nmrg_idreginclusao is not null "
+ " )"
+ " )";
st = jdbcCon.prepareStatement(update);
st.setInt(1, idNegativadorMovimento);
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);
}
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*/
public void atualizarCodigoExclusaoTipoNegativadorMovimentoReg(Integer idNegativadorMovimento) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String update = null;
try {
update = " update gcom.cobranca.NegativadorMovimentoReg nmrg1 "
+ " set codigoExclusaoTipo = null "
+ " where nmrg1.id IN "
+ " ( select nmrg2.negativadorMovimentoRegInclusao "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg2 "
+ " where nmrg2.negativadorMovimento.id = :idNegativadorMovimento )" ;
session.createQuery(update).setInteger("idNegativadorMovimento", idNegativadorMovimento).executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*/
public void apagarNegativadorMovimentoReg(Integer idNegativadorMovimento)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
try {
String sql = " delete "
+ " from gcom.cobranca.NegativadorMovimentoReg "
+ " where ngmv_id = :idNegativadorMovimento " ;
session.createQuery(sql).setInteger("idNegativadorMovimento", idNegativadorMovimento).executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*/
public void apagarNegativadorMovimento(Integer idNegativadorMovimento) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
try {
String sql = " delete "
+ " from gcom.cobranca.NegativadorMovimento "
+ " where id = :idNegativadorMovimento " ;
session.createQuery(sql).setInteger("idNegativadorMovimento", idNegativadorMovimento).executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*
* @author Vivianne Sousa
* @date 04/03/2010
*/
public void atualizarSituacaoCobrancaNegativadorMovimentoReg(Integer idSituacaoCobranca, Integer idNegativadorMovimentoReg)
throws ErroRepositorioException {
String consulta = "";
Session session = HibernateUtil.getSession();
try {
consulta = "update gcom.cobranca.NegativadorMovimentoReg set "
+ "cbst_id = :idSituacaoCobranca, nmrg_tmultimaalteracao = :ultimaAlteracao "
+ "where nmrg_id = :idNegativadorMovimentoReg ";
session.createQuery(consulta).
setInteger("idSituacaoCobranca",idSituacaoCobranca).
setTimestamp("ultimaAlteracao",new Date()).
setInteger("idNegativadorMovimentoReg",idNegativadorMovimentoReg).
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);
}
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*
* @author Vivianne Sousa
* @date 04/03/2010
*/
public Integer pesquisarQuantidadeImovelCobrancaSituacao(Integer idImovel,Integer idSituacaoCobranca) throws ErroRepositorioException {
Integer retorno;
Session session = HibernateUtil.getSession();
try {
String hql = " select count(ics.id) "
+ " from gcom.cadastro.imovel.ImovelCobrancaSituacao ics"
+ " where ics.imovel.id = " + idImovel
+ " and ics.dataRetiradaCobranca is null "
+ " and ics.cobrancaSituacao.id = " + idSituacaoCobranca;
Query query = session.createQuery(hql);
retorno = (Integer) query.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;
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*
* @author Vivianne Sousa
* @date 10/03/2010
*/
public void atualizarNegativadorMovimentoReg(Integer idCobrancaDebitoSituacao,
Date dataSituacaoDebito, Short indicadorSituacaoDefinitiva,
Short indicadorItemAtualizado,Integer idNegativadorMovimentoReg)throws ErroRepositorioException {
String consulta = "";
Session session = HibernateUtil.getSession();
try {
consulta = "update gcom.cobranca.NegativadorMovimentoReg set "
+ "cdst_id = :idCobrancaDebitoSituacao, "
+ "nmrg_dtsituacaodebito = :dataSituacaoDebito, "
+ "nmrg_icsitdefinitiva = :indicadorSituacaoDefinitiva, "
+ "nmrg_icitematualizado = :indicadorItemAtualizado, "
+" nmrg_tmultimaalteracao = :ultimaAlteracao "
+ "where nmrg_id = :idNegativadorMovimentoReg ";
session.createQuery(consulta).
setInteger("idCobrancaDebitoSituacao",idCobrancaDebitoSituacao).
setDate("dataSituacaoDebito", dataSituacaoDebito).
setShort("indicadorSituacaoDefinitiva", indicadorSituacaoDefinitiva).
setShort("indicadorItemAtualizado", indicadorItemAtualizado).
setTimestamp("ultimaAlteracao",new Date()).
setInteger("idNegativadorMovimentoReg",idNegativadorMovimentoReg).
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);
}
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*
* @author Vivianne Sousa
* @date 10/03/2010
*/
public void atualizarNegativadorMovimentoReg(Short indicadorSituacaoDefinitiva,
Short indicadorItemAtualizado,Integer idNegativadorMovimentoReg)throws ErroRepositorioException {
String consulta = "";
Session session = HibernateUtil.getSession();
try {
consulta = "update gcom.cobranca.NegativadorMovimentoReg set "
+ "nmrg_icsitdefinitiva = :indicadorSituacaoDefinitiva, "
+ "nmrg_icitematualizado = :indicadorItemAtualizado, "
+" nmrg_tmultimaalteracao = :ultimaAlteracao "
+ "where nmrg_id = :idNegativadorMovimentoReg ";
session.createQuery(consulta).
setShort("indicadorSituacaoDefinitiva", indicadorSituacaoDefinitiva).
setShort("indicadorItemAtualizado", indicadorItemAtualizado).
setTimestamp("ultimaAlteracao",new Date()).
setInteger("idNegativadorMovimentoReg",idNegativadorMovimentoReg).
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);
}
}
/**
* [UC0688] Gerar Resumo Di�rio da Negativa��o
*
* @author Vivianne Sousa
* @date 10/03/2010
*/
public void atualizarIndicadorItemAtualizadoNegativadorMovimentoReg(Short indicadorItemAtualizado,
Collection idsNegativadorMovimentoRegItem)throws ErroRepositorioException {
String consulta = "";
Session session = HibernateUtil.getSession();
try {
consulta = "select distinct(nmrg.id) "
+ "from NegativadorMovimentoRegItem nmri "
+ "inner join nmri.negativadorMovimentoReg nmrg "
+ "where nmri.id in ( :idsNegativadorMovimentoRegItem )";
Collection idsNegativadorMovimentoReg = session.createQuery(consulta)
.setParameterList("idsNegativadorMovimentoRegItem", idsNegativadorMovimentoRegItem)
.list();
if (idsNegativadorMovimentoReg != null && !idsNegativadorMovimentoReg.isEmpty()){
consulta = "update gcom.cobranca.NegativadorMovimentoReg set "
+ "nmrg_icitematualizado = :indicadorItemAtualizado , "
+" nmrg_tmultimaalteracao = :ultimaAlteracao "
+ "where nmrg_id in (:idsNegativadorMovimentoReg )";
session.createQuery(consulta).
setShort("indicadorItemAtualizado", indicadorItemAtualizado).
setTimestamp("ultimaAlteracao",new Date()).
setParameterList("idsNegativadorMovimentoReg",idsNegativadorMovimentoReg).
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);
}
}
/**
* [UC1005] Determinar Confirma��o da Negativa��o
*
* @author Vivianne Sousa
* @date 11/03/2010
*/
public void atualizarDataConfirmacaoNegativacaoImoveis(
Integer idNegativacaoImoveis, Date dataConfirmacao) throws ErroRepositorioException {
String consulta = "";
Session session = HibernateUtil.getSession();
try {
consulta = "update gcom.cobranca.NegativacaoImoveis set "
+ "ngim_dtconfirmacao = :dataConfirmacao , "
+" ngim_tmultimaalteracao = :ultimaAlteracao "
+ "where ngim_id = :idNegativacaoImoveis ";
session.createQuery(consulta).
setDate("dataConfirmacao", dataConfirmacao).
setTimestamp("ultimaAlteracao",new Date()).
setInteger("idNegativacaoImoveis",idNegativacaoImoveis).
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);
}
}
/**
* [UC1005] Determinar Confirma��o da Negativa��o
*
* @author Vivianne Sousa
* @date 11/03/2010
*/
public Collection pesquisarNegativadorMovimentoReg(Integer idLocalidade) throws ErroRepositorioException {
Collection retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String consulta = " select "
+ " nmrg.nmrg_id as idNegativadorMovimentoReg," //0
+ " nmrg.imov_id as idImovel, " //1
+ " ngim.ngim_id as idNegativacaoImoveis,"//2
+ " ngmv.negt_id as idNegativador," //3
+ " nmrg.clie_id as idclientenegativadormovimentor," //4
+ " ngcn.ngcn_nnprazoinclusao as numeroPrazoInclusao," //5
+ " ngmv.ngmv_dtprocessamentoenvio as dataProcessamentoEnvio," //6
+ " nmrg.nmrg_cdexclusaotipo as codigoExclusaoTipo," //7
+ " ngim.ngim_dtexclusao as dataExclusao" //8
+ " from cobranca.negatd_movimento_reg nmrg"
+ " inner join cobranca.negativador_movimento ngmv on ngmv.ngmv_id=nmrg.ngmv_id and ngmv_cdmovimento=1"
+ " inner join cobranca.negativacao_imoveis ngim on ngim.ngcm_id=ngmv.ngcm_id and ngim.imov_id=nmrg.imov_id and ngim_dtconfirmacao is null"
+ " inner join cobranca.negativador_contrato ngcn on ngcn.negt_id=ngmv.negt_id and (ngcn_dtcontratoencerramento is null or ngcn_dtcontratofim >= to_date(sysdate))"
+ " where nmrg.imov_id is not null"
+ " and nmrg.nmrg_icaceito=1"
+ " and ((nmrg.nmrg_cdexclusaotipo is null and to_date(sysdate) - ngmv.ngmv_dtprocessamentoenvio > ngcn.ngcn_nnprazoinclusao)"
+ " or (nmrg.nmrg_cdexclusaotipo is not null and ngim.ngim_dtexclusao - ngmv.ngmv_dtprocessamentoenvio>ngcn.ngcn_nnprazoinclusao))"
+ " and loca_id = " + idLocalidade;
retorno = (Collection)session.createSQLQuery(consulta)
.addScalar("idNegativadorMovimentoReg", Hibernate.INTEGER)
.addScalar("idImovel", Hibernate.INTEGER)
.addScalar("idNegativacaoImoveis", Hibernate.INTEGER)
.addScalar("idNegativador", Hibernate.INTEGER)
.addScalar("idclientenegativadormovimentor", Hibernate.INTEGER)
.addScalar("numeroPrazoInclusao", Hibernate.SHORT)
.addScalar("dataProcessamentoEnvio", Hibernate.DATE)
.addScalar("codigoExclusaoTipo" , Hibernate.INTEGER)
.addScalar("dataExclusao", Hibernate.DATE)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC1005] Determinar Confirma��o da Negativa��o
*
* @author Vivianne Sousa
* @date 11/03/2010
*/
public List consultarLocalidadeParaDeterminarConfirmacaoDaNegativacao()
throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select distinct(loc.id) "
+ " from gcom.cobranca.NegativadorMovimentoReg nmr"
+ " inner join nmr.localidade as loc "
+ " where "
+ " nmr.imovel is not null "
+ " and nmr.indicadorAceito = 1 ";
retorno = (List) session.createQuery(hql).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;
}
/**
* [UC0473] Consultar Dados Complementares do Im�vel
*
* @author Vivianne Sousa
* @date 04/05/2010
*/
//@Override Metodo sobrescrito na classe RepositorioSpcSerasaPostgresHBM
public Collection consultarDadosNegativadorMovimentoReg(Integer idImovel)
throws ErroRepositorioException {
Collection retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String sql = " select "
+ " clie.clie_nmcliente as nomeCliente, "
+ " case when nmrg.nmrg_cdexclusaotipo is not null "
+ " then case when ngim_dtexclusao - ngmv_dtprocessamentoenvio > ngcn_nnprazoinclusao"
+ " then 1 else 2 end "
+ " else case when to_date(sysdate) - ngmv_dtprocessamentoenvio > ngcn_nnprazoinclusao"
+ " then 1 else 2 end"
+ " end as indicadorNegativacaoConfirmada,"
+ " count(*) as qtdeInclusoes"
+ " from cobranca.negatd_movimento_reg nmrg"
+ " inner join cobranca.negativador_movimento ngmv on ngmv.ngmv_id=nmrg.ngmv_id"
+ " inner join cobranca.negativacao_imoveis ngim on ngim.ngcm_id=ngmv.ngcm_id and ngim.imov_id=nmrg.imov_id"
+ " inner join cobranca.negativador_contrato ngcn on ngcn.negt_id=ngmv.negt_id and (ngcn_dtcontratoencerramento is null or ngcn_dtcontratofim >= to_date(sysdate))"
+ " inner join cobranca.negativador negt on negt.negt_id=ngmv.negt_id"
+ " inner join cadastro.cliente clie on clie.clie_id=negt.clie_id"
+ " where nmrg.imov_id= :idImovel "
+ " and nmrg.nmrg_icaceito= :indicadorAceito "
+ " and nmrg_idreginclusao is null"
+ " group by clie.clie_nmcliente,case when nmrg.nmrg_cdexclusaotipo is not null then case when ngim_dtexclusao - ngmv_dtprocessamentoenvio > ngcn_nnprazoinclusao then 1 else 2 end else case when to_date(sysdate) - ngmv_dtprocessamentoenvio > ngcn_nnprazoinclusao then 1 else 2 end end"
+ " order by 1,2";
retorno = (Collection)session.createSQLQuery(sql)
.addScalar("nomeCliente", Hibernate.STRING)
.addScalar("indicadorNegativacaoConfirmada", Hibernate.INTEGER)
.addScalar("qtdeInclusoes", Hibernate.INTEGER)
.setInteger("idImovel", idImovel)
.setShort("indicadorAceito", ConstantesSistema.SIM).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;
}
/**
* [UC0651] - Inserir Comando de Negativa��o
* [FS0030] - Verificar exist�ncia de inclus�o no negativador para o im�vel
*
* @author Vivianne Sousa
* @data 06/05/2010
*/
public Integer verificarExistenciaDeInclusaoNoNegativadorParaImovel(
Integer idImovel,Integer idNegativador) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nmrg.id "
+ " from gcom.cobranca.NegativadorMovimentoReg as nmrg "
+ " inner join nmrg.imovel as imov "
+ " left join nmrg.negativadorMovimentoRegInclusao as nmrgInclusao "
+ " left join nmrg.negativadorMovimento as ngmv "
+ " left join ngmv.negativador as negt "
+ " where imov.id = :idImovel "
+ " and nmrg.codigoExclusaoTipo is null "
+ " and nmrgInclusao.id is null "
+ " and negt.id = :idNegativador "
+ " and (nmrg.indicadorAceito = :indicadorAceito or nmrg.indicadorAceito is null)" ;
retorno = (Integer) session.createQuery(hql)
.setInteger("idImovel",idImovel)
.setShort("indicadorAceito",ConstantesSistema.SIM)
.setInteger("idNegativador",idNegativador)
.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;
}
/**
* [UC0671] - Gerar Movimento de Inclus�o de Negativa��o
* [SB0006] � Verificar Crit�rio de Negativa��o para o Im�vel
*
* @author Vivianne Sousa
* @data 06/05/2010
*/
public Integer verificarExistenciaDeCobrancaSituacaoTipoParaImovel(
Integer idImovel) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select cbsp.id "
+ " from gcom.cadastro.imovel.Imovel imov "
+ " left join imov.cobrancaSituacaoTipo as cbsp "
+ " where imov.id = :idImovel ";
retorno = (Integer) session.createQuery(hql)
.setInteger("idImovel",idImovel)
.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;
}
/**
* [UC0671] - Gerar Movimento de Inclus�o de Negativa��o
* [SB0006] � Verificar Crit�rio de Negativa��o para o Im�vel
*
* @author Vivianne Sousa
* @data 06/05/2010
*/
public Collection verificarExistenciaDeCobrancaSituacaoHistoricoParaImovel(
Integer idImovel) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select cbsh.id "
+ " from gcom.cobranca.CobrancaSituacaoHistorico cbsh "
+ " inner join cbsh.imovel as imov "
+ " where imov.id = :idImovel "
+ " and cbsh.anoMesCobrancaRetirada is null ";
retorno = (Collection) session.createQuery(hql)
.setInteger("idImovel",idImovel)
.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;
}
/**
* [UC0653] Pesquisar Comando Negativa��o
*
* @author Vivianne Sousa
* @data 08/07/2010
*/
public Collection pesquisarNegativadorRetornoMotivo(
Integer idNegativacaoCriterio) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select ncnr.negativadorRetornoMotivo "
+ " from gcom.cobranca.NegativCritNegRetMot ncnr "
+ " where ncnr.negativacaoCriterio.id = :idNegativacaoCriterio ";
retorno = (Collection) session.createQuery(hql)
.setInteger("idNegativacaoCriterio",idNegativacaoCriterio)
.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;
}
/**
* [UC0671] Gerar Movimento de Inclusao de Negativa��o
* [SB0006] Verificar criterio de negativacao para o imovel
*
* @author Vivianne Sousa
* @data 08/07/2010
*/
public Collection pesquisarNegativadorMovimentoRegPorImovel(
Integer idImovel, Date dataAtualMenosNNDiasRetorno,
Integer idNegativador) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nmrg.id "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " inner join nmrg.negativadorMovimento as ngmv "
+ " where nmrg.imovel.id = :idImovel "
+ " and nmrg.indicadorAceito = :indicadorAceito "
+ " and nmrg.codigoExclusaoTipo is not null"
+ " and ngmv.codigoMovimento = :codigoMovimento "
+ " and ngmv.dataProcessamentoEnvio >= :dataAtualMenosNNDiasRetorno "
+ " and ngmv.negativador.id = :idNegativador ";
retorno = (Collection) session.createQuery(hql)
.setInteger("idImovel",idImovel)
.setInteger("indicadorAceito", ConstantesSistema.SIM)
.setInteger("codigoMovimento" , ConstantesSistema.SIM)
.setDate("dataAtualMenosNNDiasRetorno", dataAtualMenosNNDiasRetorno)
.setInteger("idNegativador",idNegativador)
.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;
}
/**
* [UC0671] Gerar Movimento de Inclusao de Negativa��o
* [SB0006] Verificar criterio de negativacao para o imovel
*
* @author Vivianne Sousa
* @data 12/07/2010
*/
public Integer pesquisarUltimoNegativadorRetornoMotivoDoReg(
Integer idImovel,Integer idNegativador) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select nmrr.negativadorRetornoMotivo.id "
+ " from gcom.cobranca.NegativadorMovimentoRegRetMot nmrr "
+ " inner join nmrr.negativadorMovimentoReg as nmrg "
+ " inner join nmrg.negativadorMovimento as ngmv "
+ " where nmrg.imovel.id = :idImovel "
+ " and nmrg.indicadorAceito = :indicadorAceito "
+ " and ngmv.codigoMovimento = :codigoMovimento "
+ " and ngmv.negativador.id = :idNegativador "
+ " and (nmrg.indicadorCorrecao is null or nmrg.indicadorCorrecao = :indicadorCorrecao) "
+ " order by nmrg.id desc ";
retorno = (Integer) session.createQuery(hql)
.setInteger("idImovel",idImovel)
.setInteger("indicadorAceito", ConstantesSistema.NAO)
.setInteger("codigoMovimento" , ConstantesSistema.SIM)
.setInteger("idNegativador",idNegativador)
.setInteger("indicadorCorrecao",ConstantesSistema.NAO)
.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;
}
/**
* [UC0671] Gerar Movimento de Inclusao de Negativa��o
* [SB0006] Verificar criterio de negativacao para o imovel
*
* @author Vivianne Sousa
* @data 12/07/2010
*/
public Integer pesquisarIdNegativCritNegRetMot(
Integer idNegativadorRetornoMotivo,Integer idNegativacaoCriterio) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
try {
String hql = " select ncnr.id "
+ " from gcom.cobranca.NegativCritNegRetMot ncnr "
+ " where ncnr.negativadorRetornoMotivo.id = :idNegativadorRetornoMotivo "
+ " and ncnr.negativacaoCriterio.id = :idNegativacaoCriterio " ;
retorno = (Integer) session.createQuery(hql)
.setInteger("idNegativadorRetornoMotivo",idNegativadorRetornoMotivo)
.setInteger("idNegativacaoCriterio",idNegativacaoCriterio)
.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;
}
/**
* [UC0472] Consultar Im�vel
*
* @author Vivianne Sousa
* @data 03/12/2010
*/
public Collection pesquisarNegativadorRetornoMotivoDoReg(
Integer idImovel) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
Collection retornoHelper = null;
try {
String hql = " select ngmv.dataRetorno, "
+ " nmrr.negativadorRetornoMotivo.descricaoRetornocodigo,"
+ " nmrg.indicadorCorrecao, "
+ " ngmv.negativador.cliente.nome "
+ " from gcom.cobranca.NegativadorMovimentoRegRetMot nmrr "
+ " inner join nmrr.negativadorMovimentoReg as nmrg "
+ " inner join nmrg.negativadorMovimento as ngmv "
+ " where nmrg.imovel.id = :idImovel "
+ " and nmrg.indicadorAceito = :indicadorAceito "
+ " and ngmv.codigoMovimento = :codigoMovimento "
+ " order by ngmv.dataRetorno desc ";
retorno = (Collection) session.createQuery(hql)
.setInteger("idImovel",idImovel)
.setInteger("indicadorAceito", ConstantesSistema.NAO)
.setInteger("codigoMovimento" , ConstantesSistema.SIM)
.list();
if(retorno != null && !retorno.isEmpty()){
retornoHelper = new ArrayList();
Iterator iterDadosNegativacaoRetorno = retorno.iterator();
while (iterDadosNegativacaoRetorno.hasNext()) {
Object[] dados = (Object[]) iterDadosNegativacaoRetorno.next();
DadosNegativacaoRetornoHelper helper = new DadosNegativacaoRetornoHelper();
if(dados[0] != null){
helper.setDataRetorno((Date)dados[0]);
}
if(dados[1] != null){
helper.setDescricaoRetornocodigo((String)dados[1]);
}
if(dados[2] != null){
helper.setIndicadorCorrecao((Short)dados[2]);
}
if(dados[3] != null){
helper.setNomeCliente((String)dados[3]);
}
retornoHelper.add(helper);
}
}
} 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 retornoHelper;
}
/**
* [UC0681] Consultar Movimentos dos Negativadores
*
* @author Vivianne Sousa
* @date 07/12/2010
*/
public void atualizarIndicadorCorrecaoEUsuarioCorrecao(
Integer usuarioCorrecao, Short indicadorCorrecao,
Collection colecaoIdsNegativadorMovimentoReg) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String update = null;
try {
update = " update gcom.cobranca.NegativadorMovimentoReg "
+ " set usur_idcorrecao = :usuarioCorrecao,"
+ " nmrg_iccorrecao = :indicadorCorrecao "
+ " where nmrg_id in (:idsOrdemServico)" ;
if(colecaoIdsNegativadorMovimentoReg.size()>999){
System.out.println("## TAMANHO TOTAL = " + colecaoIdsNegativadorMovimentoReg.size());
List<List<Integer>> particoes = CollectionUtil.particao((List<Integer>) colecaoIdsNegativadorMovimentoReg, 999);
int qtdQuebras = 999;
int indice = colecaoIdsNegativadorMovimentoReg.size() / qtdQuebras;
if (colecaoIdsNegativadorMovimentoReg.size() % qtdQuebras !=0){
indice ++;
}
System.out.println("## QUANTIDADE PARTI��ES = " + indice);
for (int i = 0; i < indice; i++) {
System.out.println("## TAMANHO PARTI��O DE INDICE " + indice +" = " + particoes.get(i).size());
session.createQuery(update)
.setParameterList("idsOrdemServico", particoes.get(i))
.setInteger("usuarioCorrecao", usuarioCorrecao)
.setShort("indicadorCorrecao",indicadorCorrecao).executeUpdate();
}
}else{
session.createQuery(update)
.setParameterList("idsOrdemServico", colecaoIdsNegativadorMovimentoReg)
.setInteger("usuarioCorrecao", usuarioCorrecao)
.setShort("indicadorCorrecao",indicadorCorrecao).executeUpdate();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
/**
*
* Conta a quantidade de Clientes Negativados para a Unidade, Ger�ncia e Data de Envio
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Mariana Victor
* @date 10/02/2011
*/
public Integer pesquisarRelatorioAcompanhamentoClientesNegativadorCountClientes(DadosConsultaNegativacaoHelper helper,
NegativadorMovimentoReg negativadorMovimentoReg, Integer idGerencia, Integer idUnidade, Short indicadorExcluido)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Integer retorno = null;
try {
String sql = " select count(nmrg.clie_id) AS quantidade "
+ " from cobranca.negatd_movimento_reg nmrg "
+ " inner join cobranca.negativador_movimento ngmv on nmrg.ngmv_id=ngmv.ngmv_id "
+ " inner join cobranca.cobranca_debito_situacao cdst on nmrg.cdst_id=cdst.cdst_id "
+ " left join cobranca.cobranca_situacao cbst on nmrg.cbst_id=cbst.cbst_id ";
if ((helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty())
|| (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty())
|| ((helper.getIdEloPolo() != null && helper.getIdEloPolo()>0))) {
sql = sql + " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id ";
if (idGerencia != null) {
sql = sql + " inner join cadastro.gerencia_regional greg on loca.greg_id = greg.greg_id ";
}
if (idUnidade != null) {
sql = sql + " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id ";
}
} else if (idGerencia != null) {
sql = sql + " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id "
+ " inner join cadastro.gerencia_regional greg on loca.greg_id = greg.greg_id ";
if (idUnidade != null) {
sql = sql + " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id ";
}
} else if (idUnidade != null) {
sql = sql + " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id "
+ " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id ";
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
sql = sql + " inner join cadastro.cliente clieNmrg on nmrg.clie_id=clieNmrg.clie_id ";
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
sql = sql + " inner join cadastro.cliente_tipo cltp on clieNmrg.cltp_id=cltp.cltp_id ";
}
} else if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
sql = sql + " inner join cadastro.cliente clieNmrg on nmrg.clie_id=clieNmrg.clie_id "
+ " inner join cadastro.cliente_tipo cltp on clieNmrg.cltp_id=cltp.cltp_id ";
}
String restricao = " where nmrg.imov_id is not null and ngmv.ngmv_cdmovimento=1 ";
if (helper.getColecaoNegativador() != null && !helper.getColecaoNegativador().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoNegativador().size() == 1){
Iterator it = helper.getColecaoNegativador().iterator();
while(it.hasNext()){
Negativador obj = (Negativador) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoNegativador().iterator();
Negativador negativador = null;
sql = sql + " inner join cobranca.negativador negt on ngmv.negt_id=negt.negt_id ";
restricao = restricao + " and negt.negt_id in (";
while (iterator.hasNext()) {
negativador = (Negativador) iterator.next();
if (negativador.getId() != -1) {
restricao = restricao + negativador.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getPeriodoEnvioNegativacaoInicio() != null && helper.getPeriodoEnvioNegativacaoFim() != null
&& (negativadorMovimentoReg == null || negativadorMovimentoReg.getNegativadorMovimento() == null)) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between ' " + helper.getPeriodoEnvioNegativacaoInicio() + " ' and ' " + helper.getPeriodoEnvioNegativacaoFim() + " ' ";
}
if (helper.getIdNegativacaoComando() != null && helper.getIdNegativacaoComando() > 0) {
sql = sql + " inner join cobranca.negativacao_comando ngcm on ngmv.ngcm_id=ngcm.ngcm_id ";
restricao = restricao + " and ngcm.ngcm_id = " + helper.getIdNegativacaoComando();
}
if (helper.getIdQuadra() != null && helper.getIdQuadra() > 0) {
restricao = restricao + " and nmrg.qdra_id = " + helper.getIdQuadra();
}
if (helper.getColecaoCobrancaGrupo() != null && !helper.getColecaoCobrancaGrupo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCobrancaGrupo().size() == 1){
Iterator it = helper.getColecaoCobrancaGrupo().iterator();
while(it.hasNext()){
CobrancaGrupo obj = (CobrancaGrupo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCobrancaGrupo().iterator();
CobrancaGrupo cobrancaGrupo = null;
sql = sql + " inner join cadastro.quadra qdra on nmrg.qdra_id=qdra.qdra_id "
+ " inner join micromedicao.rota rota on qdra.rota_id=rota.rota_id ";
restricao = restricao + " and rota.cbgr_id in (";
while (iterator.hasNext()) {
cobrancaGrupo = (CobrancaGrupo) iterator.next();
if(cobrancaGrupo.getId() != -1){
restricao = restricao + cobrancaGrupo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoGerenciaRegional().size() == 1){
Iterator it = helper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional gerReg = (GerenciaRegional) it.next();
if(gerReg != null && gerReg.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and loca.greg_id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
if(gerenciaRegional.getId() != -1){
restricao = restricao + gerenciaRegional.getId() + ",";
}
}
restricao = restricao + idGerencia + ",";
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = helper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and loca.uneg_id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
if(unidadeNegocio.getId() != -1){
restricao = restricao + unidadeNegocio.getId() + ",";
}
}
restricao = restricao + idUnidade + ",";
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoImovelPerfil() != null && !helper.getColecaoImovelPerfil().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoImovelPerfil().size() == 1){
Iterator it = helper.getColecaoImovelPerfil().iterator();
while(it.hasNext()){
ImovelPerfil obj = (ImovelPerfil) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoImovelPerfil().iterator();
ImovelPerfil imovelPerfil = null;
restricao = restricao + " and nmrg.iper_id in (";
while (iterator.hasNext()) {
imovelPerfil = (ImovelPerfil) iterator.next();
if(imovelPerfil.getId() != -1){
restricao = restricao + imovelPerfil.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIdEloPolo() != null && helper.getIdEloPolo()>0){
restricao = restricao + " and loca.loca_cdelo = " + helper.getIdEloPolo();
}
if (helper.getIdLocalidade() != null && helper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.loca_id = " + helper.getIdLocalidade();
}
if(helper.getIdSetorComercial() != null && helper.getIdSetorComercial()>0){
restricao = restricao + " and nmrg.nmrg_cdsetorcomercial = " + helper.getIdSetorComercial();
}
if (helper.getColecaoCategoria() != null && !helper.getColecaoCategoria().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCategoria().size() == 1){
Iterator it = helper.getColecaoCategoria().iterator();
while(it.hasNext()){
Categoria obj = (Categoria) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCategoria().iterator();
Categoria categoria = null;
restricao = restricao + " and nmrg.catg_id in (";
while (iterator.hasNext()) {
categoria = (Categoria) iterator.next();
if(categoria.getId() != -1){
restricao = restricao + categoria.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoClienteTipo().size() == 1){
Iterator it = helper.getColecaoClienteTipo().iterator();
while(it.hasNext()){
ClienteTipo obj = (ClienteTipo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoClienteTipo().iterator();
ClienteTipo clienteTipo = null;
restricao = restricao + " and clieNmrg.cltp_id in (";
while (iterator.hasNext()) {
clienteTipo = (ClienteTipo) iterator.next();
if(clienteTipo.getId() != -1){
restricao = restricao + clienteTipo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoEsferaPoder().size() == 1){
Iterator it = helper.getColecaoEsferaPoder().iterator();
while(it.hasNext()){
EsferaPoder obj = (EsferaPoder) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoEsferaPoder().iterator();
EsferaPoder esferaPoder = null;
restricao = restricao + " and cltp.epod_id in (";
while (iterator.hasNext()) {
esferaPoder = (EsferaPoder) iterator.next();
if(esferaPoder.getId() != -1){
restricao = restricao + esferaPoder.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoAguaSituacao() != null && !helper.getColecaoLigacaoAguaSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoAguaSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoAguaSituacao().iterator();
while(it.hasNext()){
LigacaoAguaSituacao obj = (LigacaoAguaSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoAguaSituacao().iterator();
LigacaoAguaSituacao ligacaoAguaSituacao = null;
restricao = restricao + "and nmrg.last_id in (";
while (iterator.hasNext()) {
ligacaoAguaSituacao = (LigacaoAguaSituacao) iterator.next();
if(ligacaoAguaSituacao.getId() != -1){
restricao = restricao + ligacaoAguaSituacao.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoEsgotoSituacao() != null && !helper.getColecaoLigacaoEsgotoSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoEsgotoSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoEsgotoSituacao().iterator();
while(it.hasNext()){
LigacaoEsgotoSituacao obj = (LigacaoEsgotoSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoEsgotoSituacao().iterator();
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
restricao = restricao + "and nmrg.lest_id in (";
while (iterator.hasNext()) {
ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) iterator.next();
if(ligacaoEsgotoSituacao.getId() != -1){
restricao = restricao + ligacaoEsgotoSituacao.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoMotivoRejeicao() != null && !helper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = helper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
sql = sql + " inner join cobranca.negatd_mov_reg_ret_mot nmrr "
+ " on nmrg.nmrg_id = nmrr.nmrg_id ";
Iterator iterator = helper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrr.nrmt_id in (";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
if(negativadorRetornoMotivo.getId() != -1){
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIndicadorApenasNegativacoesRejeitadas() != null &&
helper.getIndicadorApenasNegativacoesRejeitadas().equals(ConstantesSistema.SIM)){
restricao = restricao + " and nmrg.nmrg_icaceito = " + ConstantesSistema.NAO_ACEITO;
}
if (negativadorMovimentoReg != null){
if (negativadorMovimentoReg.getIndicadorAceito() != null) {
restricao = restricao + " and nmrg.nmrg_icaceito = " + negativadorMovimentoReg.getIndicadorAceito();
} else {
restricao = restricao + " and nmrg.nmrg_icaceito is null ";
}
if (negativadorMovimentoReg.getCobrancaSituacao() != null
&& negativadorMovimentoReg.getCobrancaSituacao().getId() != null) {
restricao = restricao + " and nmrg.cbst_id = " + negativadorMovimentoReg.getCobrancaSituacao().getId();
} else {
restricao = restricao + " and nmrg.cbst_id is null ";
}
if (negativadorMovimentoReg.getNegativadorMovimento() != null) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between ' " + negativadorMovimentoReg.getNegativadorMovimento().getDataProcessamentoEnvio() + " ' and ' " + negativadorMovimentoReg.getNegativadorMovimento().getDataProcessamentoEnvio() + " ' ";
}
}
if (idGerencia != null) {
restricao = restricao + " and greg.greg_id = " + idGerencia;
}
if (idUnidade != null) {
restricao = restricao + " and uneg.uneg_id = " + idUnidade;
}
sql = sql + restricao;
retorno = (Integer) session.createSQLQuery(sql)
.addScalar("quantidade" , Hibernate.INTEGER)
.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;
}
/**
*
* Soma os valores de d�bitos dos Clientes Negativados para a Unidade, Ger�ncia e Data de Envio
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Mariana Victor
* @date 11/02/2011
*/
public BigDecimal pesquisarRelatorioAcompanhamentoClientesNegativadorValorDebitosUnidade(DadosConsultaNegativacaoHelper helper,
NegativadorMovimentoReg negativadorMovimentoReg, Integer idGerencia, Integer idUnidade, Short indicadorExcluido)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
BigDecimal retorno = null;
try {
String sql = " select sum(nmrg.nmrg_vldebito) AS valorDebito "
+ " from cobranca.negatd_movimento_reg nmrg "
+ " inner join cobranca.negativador_movimento ngmv on nmrg.ngmv_id=ngmv.ngmv_id "
+ " inner join cobranca.cobranca_debito_situacao cdst on nmrg.cdst_id=cdst.cdst_id "
+ " left join cobranca.cobranca_situacao cbst on nmrg.cbst_id=cbst.cbst_id ";
String restricao = " where nmrg.imov_id is not null and ngmv.ngmv_cdmovimento=1 ";
if ((helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty())
|| (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty())
|| ((helper.getIdEloPolo() != null && helper.getIdEloPolo()>0))) {
sql = sql + " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id ";
if (idGerencia != null) {
sql = sql + " inner join cadastro.gerencia_regional greg on loca.greg_id = greg.greg_id ";
}
if (idUnidade != null) {
sql = sql + " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id ";
}
} else if (idGerencia != null) {
sql = sql + " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id "
+ " inner join cadastro.gerencia_regional greg on loca.greg_id = greg.greg_id ";
if (idUnidade != null) {
sql = sql + " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id ";
}
} else if (idUnidade != null) {
sql = sql + " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id "
+ " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id ";
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
sql = sql + " inner join cadastro.cliente clieNmrg on nmrg.clie_id=clieNmrg.clie_id ";
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
sql = sql + " inner join cadastro.cliente_tipo cltp on clieNmrg.cltp_id=cltp.cltp_id ";
}
} else if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
sql = sql + " inner join cadastro.cliente clieNmrg on nmrg.clie_id=clieNmrg.clie_id "
+ " inner join cadastro.cliente_tipo cltp on clieNmrg.cltp_id=cltp.cltp_id ";
}
if (helper.getColecaoNegativador() != null && !helper.getColecaoNegativador().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoNegativador().size() == 1){
Iterator it = helper.getColecaoNegativador().iterator();
while(it.hasNext()){
Negativador obj = (Negativador) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoNegativador().iterator();
Negativador negativador = null;
sql = sql + " inner join cobranca.negativador negt on ngmv.negt_id=negt.negt_id ";
restricao = restricao + " and negt.negt_id in (";
while (iterator.hasNext()) {
negativador = (Negativador) iterator.next();
if(negativador.getId() != -1){
restricao = restricao + negativador.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getPeriodoEnvioNegativacaoInicio() != null && helper.getPeriodoEnvioNegativacaoFim() != null
&& (negativadorMovimentoReg == null || negativadorMovimentoReg.getNegativadorMovimento() == null)) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between ' " + helper.getPeriodoEnvioNegativacaoInicio() + " ' and ' " + helper.getPeriodoEnvioNegativacaoFim() + " ' ";
}
if (helper.getIdNegativacaoComando() != null && helper.getIdNegativacaoComando() > 0) {
sql = sql + " inner join cobranca.negativacao_comando ngcm on ngmv.ngcm_id=ngcm.ngcm_id ";
restricao = restricao + " and ngcm.ngcm_id = " + helper.getIdNegativacaoComando();
}
if (helper.getIdQuadra() != null && helper.getIdQuadra() > 0) {
restricao = restricao + " and nmrg.qdra_id = " + helper.getIdQuadra();
}
if (helper.getColecaoCobrancaGrupo() != null && !helper.getColecaoCobrancaGrupo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCobrancaGrupo().size() == 1){
Iterator it = helper.getColecaoCobrancaGrupo().iterator();
while(it.hasNext()){
CobrancaGrupo obj = (CobrancaGrupo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCobrancaGrupo().iterator();
CobrancaGrupo cobrancaGrupo = null;
sql = sql + " inner join cadastro.quadra qdra on nmrg.qdra_id=qdra.qdra_id "
+ " inner join micromedicao.rota rota on qdra.rota_id=rota.rota_id ";
restricao = restricao + " and rota.cbgr_id in (";
while (iterator.hasNext()) {
cobrancaGrupo = (CobrancaGrupo) iterator.next();
if(cobrancaGrupo.getId() != -1){
restricao = restricao + cobrancaGrupo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoGerenciaRegional().size() == 1){
Iterator it = helper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional gerReg = (GerenciaRegional) it.next();
if(gerReg != null && gerReg.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and loca.greg_id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
if(gerenciaRegional.getId() != -1){
restricao = restricao + gerenciaRegional.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = helper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and loca.uneg_id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
if(unidadeNegocio.getId() != -1){
restricao = restricao + unidadeNegocio.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoImovelPerfil() != null && !helper.getColecaoImovelPerfil().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoImovelPerfil().size() == 1){
Iterator it = helper.getColecaoImovelPerfil().iterator();
while(it.hasNext()){
ImovelPerfil obj = (ImovelPerfil) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoImovelPerfil().iterator();
ImovelPerfil imovelPerfil = null;
restricao = restricao + " and nmrg.iper_id in (";
while (iterator.hasNext()) {
imovelPerfil = (ImovelPerfil) iterator.next();
if(imovelPerfil.getId() != -1){
restricao = restricao + imovelPerfil.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIdEloPolo() != null && helper.getIdEloPolo()>0){
restricao = restricao + " and loca.loca_cdelo = " + helper.getIdEloPolo();
}
if (helper.getIdLocalidade() != null && helper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.loca_id = " + helper.getIdLocalidade();
}
if(helper.getIdSetorComercial() != null && helper.getIdSetorComercial()>0){
restricao = restricao + " and nmrg.nmrg_cdsetorcomercial = " + helper.getIdSetorComercial();
}
if (helper.getColecaoCategoria() != null && !helper.getColecaoCategoria().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCategoria().size() == 1){
Iterator it = helper.getColecaoCategoria().iterator();
while(it.hasNext()){
Categoria obj = (Categoria) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCategoria().iterator();
Categoria categoria = null;
restricao = restricao + " and nmrg.catg_id in (";
while (iterator.hasNext()) {
categoria = (Categoria) iterator.next();
if(categoria.getId() != -1){
restricao = restricao + categoria.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoClienteTipo().size() == 1){
Iterator it = helper.getColecaoClienteTipo().iterator();
while(it.hasNext()){
ClienteTipo obj = (ClienteTipo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoClienteTipo().iterator();
ClienteTipo clienteTipo = null;
restricao = restricao + " and clieNmrg.cltp_id in (";
while (iterator.hasNext()) {
clienteTipo = (ClienteTipo) iterator.next();
if(clienteTipo.getId() != -1){
restricao = restricao + clienteTipo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoEsferaPoder().size() == 1){
Iterator it = helper.getColecaoEsferaPoder().iterator();
while(it.hasNext()){
EsferaPoder obj = (EsferaPoder) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoEsferaPoder().iterator();
EsferaPoder esferaPoder = null;
restricao = restricao + " and cltp.epod_id in (";
while (iterator.hasNext()) {
esferaPoder = (EsferaPoder) iterator.next();
if(esferaPoder.getId() != -1){
restricao = restricao + esferaPoder.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoAguaSituacao() != null && !helper.getColecaoLigacaoAguaSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoAguaSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoAguaSituacao().iterator();
while(it.hasNext()){
LigacaoAguaSituacao obj = (LigacaoAguaSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoAguaSituacao().iterator();
LigacaoAguaSituacao ligacaoAguaSituacao = null;
restricao = restricao + "and nmrg.last_id in (";
while (iterator.hasNext()) {
ligacaoAguaSituacao = (LigacaoAguaSituacao) iterator.next();
if(ligacaoAguaSituacao.getId() != -1){
restricao = restricao + ligacaoAguaSituacao.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoEsgotoSituacao() != null && !helper.getColecaoLigacaoEsgotoSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoEsgotoSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoEsgotoSituacao().iterator();
while(it.hasNext()){
LigacaoEsgotoSituacao obj = (LigacaoEsgotoSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoEsgotoSituacao().iterator();
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
restricao = restricao + "and nmrg.lest_id in (";
while (iterator.hasNext()) {
ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) iterator.next();
if(ligacaoEsgotoSituacao.getId() != -1){
restricao = restricao + ligacaoEsgotoSituacao.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
//********************************************************
if (helper.getColecaoMotivoRejeicao() != null && !helper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = helper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
sql = sql + " inner join cobranca.negatd_mov_reg_ret_mot nmrr "
+ " on nmrg.nmrg_id = nmrr.nmrg_id ";
Iterator iterator = helper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrr.nrmt_id in (";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
if(negativadorRetornoMotivo.getId() != -1){
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIndicadorApenasNegativacoesRejeitadas() != null &&
helper.getIndicadorApenasNegativacoesRejeitadas().equals(ConstantesSistema.SIM)){
restricao = restricao + " and nmrg.nmrg_icaceito = " + ConstantesSistema.NAO_ACEITO;
}
if (negativadorMovimentoReg != null){
if (negativadorMovimentoReg.getIndicadorAceito() != null) {
restricao = restricao + " and nmrg.nmrg_icaceito = " + negativadorMovimentoReg.getIndicadorAceito();
} else {
restricao = restricao + " and nmrg.nmrg_icaceito is null ";
}
if (negativadorMovimentoReg.getCobrancaSituacao() != null
&& negativadorMovimentoReg.getCobrancaSituacao().getId() != null) {
restricao = restricao + " and nmrg.cbst_id = " + negativadorMovimentoReg.getCobrancaSituacao().getId();
} else {
restricao = restricao + " and nmrg.cbst_id is null ";
}
if (negativadorMovimentoReg.getNegativadorMovimento() != null) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between ' " + negativadorMovimentoReg.getNegativadorMovimento().getDataProcessamentoEnvio() + " ' and ' " + negativadorMovimentoReg.getNegativadorMovimento().getDataProcessamentoEnvio() + " ' ";
}
}
if (idGerencia != null) {
restricao = restricao + " and greg.greg_id = " + idGerencia;
}
if (idUnidade != null) {
restricao = restricao + " and uneg.uneg_id = " + idUnidade;
}
sql = sql + restricao;
retorno = (BigDecimal) session.createSQLQuery(sql)
.addScalar("valorDebito" , Hibernate.BIG_DECIMAL)
.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;
}
/**
*
* Soma os valores Pagos dos Clientes Negativados para a Unidade, Ger�ncia e Data de Envio
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Mariana Victor
* @date 11/02/2011
*/
public BigDecimal pesquisarRelatorioAcompanhamentoClientesNegativadorValorPagoUnidade(DadosConsultaNegativacaoHelper helper,
NegativadorMovimentoReg negativadorMovimentoReg, Integer idGerencia, Integer idUnidade, Short indicadorExcluido)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
BigDecimal retorno = null;
try {
String sql = " select sum(nmri.nmri_vlpago) AS valorPago "//21
+ " from cobranca.negatd_movimento_reg nmrg "
+ " inner join cobranca.negativador_movimento ngmv on nmrg.ngmv_id=ngmv.ngmv_id "
+ " inner join cobranca.negatd_mov_reg_item nmri on nmri.nmrg_id=nmrg.nmrg_id ";
if ((helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty())
|| (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty())
|| ((helper.getIdEloPolo() != null && helper.getIdEloPolo()>0))) {
sql = sql + " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id ";
if (idGerencia != null) {
sql = sql + " inner join cadastro.gerencia_regional greg on loca.greg_id = greg.greg_id ";
}
if (idUnidade != null) {
sql = sql + " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id ";
}
} else if (idGerencia != null) {
sql = sql + " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id "
+ " inner join cadastro.gerencia_regional greg on loca.greg_id = greg.greg_id ";
if (idUnidade != null) {
sql = sql + " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id ";
}
} else if (idUnidade != null) {
sql = sql + " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id "
+ " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id ";
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
sql = sql + " inner join cadastro.cliente clieNmrg on nmrg.clie_id=clieNmrg.clie_id ";
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
sql = sql + " inner join cadastro.cliente_tipo cltp on clieNmrg.cltp_id=cltp.cltp_id ";
}
} else if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
sql = sql + " inner join cadastro.cliente clieNmrg on nmrg.clie_id=clieNmrg.clie_id "
+ " inner join cadastro.cliente_tipo cltp on clieNmrg.cltp_id=cltp.cltp_id ";
}
String restricao = " where nmrg.imov_id is not null and ngmv.ngmv_cdmovimento=1 ";
if (helper.getColecaoNegativador() != null && !helper.getColecaoNegativador().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoNegativador().size() == 1){
Iterator it = helper.getColecaoNegativador().iterator();
while(it.hasNext()){
Negativador obj = (Negativador) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoNegativador().iterator();
Negativador negativador = null;
sql = sql + " inner join cobranca.negativador negt on ngmv.negt_id=negt.negt_id ";
restricao = restricao + " and negt.negt_id in (";
while (iterator.hasNext()) {
negativador = (Negativador) iterator.next();
if(negativador.getId() != -1){
restricao = restricao + negativador.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getPeriodoEnvioNegativacaoInicio() != null && helper.getPeriodoEnvioNegativacaoFim() != null
&& (negativadorMovimentoReg == null || negativadorMovimentoReg.getNegativadorMovimento() == null)) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between ' " + helper.getPeriodoEnvioNegativacaoInicio() + " ' and ' " + helper.getPeriodoEnvioNegativacaoFim() + " ' ";
}
if (helper.getIdNegativacaoComando() != null && helper.getIdNegativacaoComando() > 0) {
sql = sql + " inner join cobranca.negativacao_comando ngcm on ngmv.ngcm_id=ngcm.ngcm_id ";
restricao = restricao + " and ngcm.ngcm_id = " + helper.getIdNegativacaoComando();
}
if (helper.getIdQuadra() != null && helper.getIdQuadra() > 0) {
restricao = restricao + " and nmrg.qdra_id = " + helper.getIdQuadra();
}
if (helper.getColecaoCobrancaGrupo() != null && !helper.getColecaoCobrancaGrupo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCobrancaGrupo().size() == 1){
Iterator it = helper.getColecaoCobrancaGrupo().iterator();
while(it.hasNext()){
CobrancaGrupo obj = (CobrancaGrupo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCobrancaGrupo().iterator();
CobrancaGrupo cobrancaGrupo = null;
sql = sql + " inner join cadastro.quadra qdra on nmrg.qdra_id=qdra.qdra_id "
+ " inner join micromedicao.rota rota on qdra.rota_id=rota.rota_id ";
restricao = restricao + " and rota.cbgr_id in (";
while (iterator.hasNext()) {
cobrancaGrupo = (CobrancaGrupo) iterator.next();
if(cobrancaGrupo.getId() != -1){
restricao = restricao + cobrancaGrupo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoGerenciaRegional().size() == 1){
Iterator it = helper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional gerReg = (GerenciaRegional) it.next();
if(gerReg != null && gerReg.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and loca.greg_id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
if(gerenciaRegional.getId() != -1){
restricao = restricao + gerenciaRegional.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = helper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and loca.uneg_id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
if(unidadeNegocio.getId() != -1){
restricao = restricao + unidadeNegocio.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoImovelPerfil() != null && !helper.getColecaoImovelPerfil().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoImovelPerfil().size() == 1){
Iterator it = helper.getColecaoImovelPerfil().iterator();
while(it.hasNext()){
ImovelPerfil obj = (ImovelPerfil) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoImovelPerfil().iterator();
ImovelPerfil imovelPerfil = null;
restricao = restricao + " and nmrg.iper_id in (";
while (iterator.hasNext()) {
imovelPerfil = (ImovelPerfil) iterator.next();
if(imovelPerfil.getId() != -1){
restricao = restricao + imovelPerfil.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIdEloPolo() != null && helper.getIdEloPolo()>0){
restricao = restricao + " and loca.loca_cdelo = " + helper.getIdEloPolo();
}
if (helper.getIdLocalidade() != null && helper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.loca_id = " + helper.getIdLocalidade();
}
if(helper.getIdSetorComercial() != null && helper.getIdSetorComercial()>0){
restricao = restricao + " and nmrg.nmrg_cdsetorcomercial = " + helper.getIdSetorComercial();
}
if (helper.getColecaoCategoria() != null && !helper.getColecaoCategoria().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCategoria().size() == 1){
Iterator it = helper.getColecaoCategoria().iterator();
while(it.hasNext()){
Categoria obj = (Categoria) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCategoria().iterator();
Categoria categoria = null;
restricao = restricao + " and nmrg.catg_id in (";
while (iterator.hasNext()) {
categoria = (Categoria) iterator.next();
if(categoria.getId() != -1){
restricao = restricao + categoria.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoClienteTipo().size() == 1){
Iterator it = helper.getColecaoClienteTipo().iterator();
while(it.hasNext()){
ClienteTipo obj = (ClienteTipo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoClienteTipo().iterator();
ClienteTipo clienteTipo = null;
restricao = restricao + " and clieNmrg.cltp_id in (";
while (iterator.hasNext()) {
clienteTipo = (ClienteTipo) iterator.next();
if(clienteTipo.getId() != -1){
restricao = restricao + clienteTipo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoEsferaPoder().size() == 1){
Iterator it = helper.getColecaoEsferaPoder().iterator();
while(it.hasNext()){
EsferaPoder obj = (EsferaPoder) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoEsferaPoder().iterator();
EsferaPoder esferaPoder = null;
restricao = restricao + " and cltp.epod_id in (";
while (iterator.hasNext()) {
esferaPoder = (EsferaPoder) iterator.next();
if(esferaPoder.getId() != -1){
restricao = restricao + esferaPoder.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoAguaSituacao() != null && !helper.getColecaoLigacaoAguaSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoAguaSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoAguaSituacao().iterator();
while(it.hasNext()){
LigacaoAguaSituacao obj = (LigacaoAguaSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoAguaSituacao().iterator();
LigacaoAguaSituacao ligacaoAguaSituacao = null;
restricao = restricao + "and nmrg.last_id in (";
while (iterator.hasNext()) {
ligacaoAguaSituacao = (LigacaoAguaSituacao) iterator.next();
if(ligacaoAguaSituacao.getId() != -1){
restricao = restricao + ligacaoAguaSituacao.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoEsgotoSituacao() != null && !helper.getColecaoLigacaoEsgotoSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoEsgotoSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoEsgotoSituacao().iterator();
while(it.hasNext()){
LigacaoEsgotoSituacao obj = (LigacaoEsgotoSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoEsgotoSituacao().iterator();
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
restricao = restricao + "and nmrg.lest_id in (";
while (iterator.hasNext()) {
ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) iterator.next();
if(ligacaoEsgotoSituacao.getId() != -1){
restricao = restricao + ligacaoEsgotoSituacao.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoMotivoRejeicao() != null && !helper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = helper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
sql = sql + " inner join cobranca.negatd_mov_reg_ret_mot nmrr "
+ " on nmrg.nmrg_id = nmrr.nmrg_id ";
Iterator iterator = helper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrr.nrmt_id in (";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
if(negativadorRetornoMotivo.getId() != -1){
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIndicadorApenasNegativacoesRejeitadas() != null &&
helper.getIndicadorApenasNegativacoesRejeitadas().equals(ConstantesSistema.SIM)){
restricao = restricao + " and nmrg.nmrg_icaceito = " + ConstantesSistema.NAO_ACEITO;
}
if (negativadorMovimentoReg != null){
if (negativadorMovimentoReg.getIndicadorAceito() != null) {
restricao = restricao + " and nmrg.nmrg_icaceito = " + negativadorMovimentoReg.getIndicadorAceito();
} else {
restricao = restricao + " and nmrg.nmrg_icaceito is null ";
}
if (negativadorMovimentoReg.getCobrancaSituacao() != null
&& negativadorMovimentoReg.getCobrancaSituacao().getId() != null) {
restricao = restricao + " and nmrg.cbst_id = " + negativadorMovimentoReg.getCobrancaSituacao().getId();
} else {
restricao = restricao + " and nmrg.cbst_id is null ";
}
if (negativadorMovimentoReg.getNegativadorMovimento() != null) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between ' " + negativadorMovimentoReg.getNegativadorMovimento().getDataProcessamentoEnvio() + " ' and ' " + negativadorMovimentoReg.getNegativadorMovimento().getDataProcessamentoEnvio() + " ' ";
}
}
if (idGerencia != null) {
restricao = restricao + " and greg.greg_id = " + idGerencia;
}
if (idUnidade != null) {
restricao = restricao + " and uneg.uneg_id = " + idUnidade;
}
sql = sql + restricao;
retorno = (BigDecimal) session.createSQLQuery(sql)
.addScalar("valorPago" , Hibernate.BIG_DECIMAL)
.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;
}
/**
*
* Conta a quantidade de Clientes Negativados com contas pagas na Unidade, Ger�ncia e Data de Envio
* [UC0693] Gerar Relat�rio Acompanhamaneto de Clientes Negativados
* @author Mariana Victor
* @date 11/02/2011
*/
public Integer pesquisarRelatorioAcompanhamentoClientesNegativadorCountValorPago(DadosConsultaNegativacaoHelper helper,
NegativadorMovimentoReg negativadorMovimentoReg, Integer idGerencia, Integer idUnidade, Short indicadorExcluido)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
Integer retorno = null;
try {
String sql = " select count(DISTINCT nmrg.clie_id) AS quantidade "//21
+ " from cobranca.negatd_movimento_reg nmrg "
+ " inner join cobranca.negativador_movimento ngmv on nmrg.ngmv_id=ngmv.ngmv_id "
+ " inner join cadastro.localidade loca on nmrg.loca_id=loca.loca_id "
+ " inner join cadastro.gerencia_regional greg on loca.greg_id = greg.greg_id "
+ " inner join cadastro.unidade_negocio uneg on loca.uneg_id = uneg.uneg_id "
+ " inner join cobranca.negatd_mov_reg_item nmri on nmri.nmrg_id=nmrg.nmrg_id ";
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
sql = sql + " inner join cadastro.cliente clieNmrg on nmrg.clie_id=clieNmrg.clie_id ";
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
sql = sql + " inner join cadastro.cliente_tipo cltp on clieNmrg.cltp_id=cltp.cltp_id ";
}
} else if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
sql = sql + " inner join cadastro.cliente clieNmrg on nmrg.clie_id=clieNmrg.clie_id "
+ " inner join cadastro.cliente_tipo cltp on clieNmrg.cltp_id=cltp.cltp_id ";
}
String restricao = " where nmrg.imov_id is not null and ngmv.ngmv_cdmovimento=1 ";
if (helper.getColecaoNegativador() != null && !helper.getColecaoNegativador().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoNegativador().size() == 1){
Iterator it = helper.getColecaoNegativador().iterator();
while(it.hasNext()){
Negativador obj = (Negativador) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoNegativador().iterator();
Negativador negativador = null;
sql = sql + " inner join cobranca.negativador negt on ngmv.negt_id=negt.negt_id ";
restricao = restricao + " and negt.negt_id in (";
while (iterator.hasNext()) {
negativador = (Negativador) iterator.next();
if(negativador.getId() != -1){
restricao = restricao + negativador.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getPeriodoEnvioNegativacaoInicio() != null && helper.getPeriodoEnvioNegativacaoFim() != null
&& (negativadorMovimentoReg == null || negativadorMovimentoReg.getNegativadorMovimento() == null)) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between ' " + helper.getPeriodoEnvioNegativacaoInicio() + " ' and ' " + helper.getPeriodoEnvioNegativacaoFim() + " ' ";
}
if (helper.getIdNegativacaoComando() != null && helper.getIdNegativacaoComando() > 0) {
sql = sql + " inner join cobranca.negativacao_comando ngcm on ngmv.ngcm_id=ngcm.ngcm_id ";
restricao = restricao + " and ngcm.ngcm_id = " + helper.getIdNegativacaoComando();
}
if (helper.getIdQuadra() != null && helper.getIdQuadra() > 0) {
restricao = restricao + " and nmrg.qdra_id = " + helper.getIdQuadra();
}
if (helper.getColecaoCobrancaGrupo() != null && !helper.getColecaoCobrancaGrupo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCobrancaGrupo().size() == 1){
Iterator it = helper.getColecaoCobrancaGrupo().iterator();
while(it.hasNext()){
CobrancaGrupo obj = (CobrancaGrupo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCobrancaGrupo().iterator();
CobrancaGrupo cobrancaGrupo = null;
sql = sql + " inner join cadastro.quadra qdra on nmrg.qdra_id=qdra.qdra_id "
+ " inner join micromedicao.rota rota on qdra.rota_id=rota.rota_id ";
restricao = restricao + " and rota.cbgr_id in (";
while (iterator.hasNext()) {
cobrancaGrupo = (CobrancaGrupo) iterator.next();
if(cobrancaGrupo.getId() != -1){
restricao = restricao + cobrancaGrupo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoGerenciaRegional() != null && !helper.getColecaoGerenciaRegional().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoGerenciaRegional().size() == 1){
Iterator it = helper.getColecaoGerenciaRegional().iterator();
while(it.hasNext()){
GerenciaRegional gerReg = (GerenciaRegional) it.next();
if(gerReg != null && gerReg.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoGerenciaRegional().iterator();
GerenciaRegional gerenciaRegional = null;
restricao = restricao + " and loca.greg_id in (";
while (iterator.hasNext()) {
gerenciaRegional = (GerenciaRegional) iterator.next();
if(gerenciaRegional.getId() != -1){
restricao = restricao + gerenciaRegional.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoUnidadeNegocio() != null && !helper.getColecaoUnidadeNegocio().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoUnidadeNegocio().size() == 1){
Iterator it = helper.getColecaoUnidadeNegocio().iterator();
while(it.hasNext()){
UnidadeNegocio obj = (UnidadeNegocio) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoUnidadeNegocio().iterator();
UnidadeNegocio unidadeNegocio = null;
restricao = restricao + " and loca.uneg_id in (";
while (iterator.hasNext()) {
unidadeNegocio = (UnidadeNegocio) iterator.next();
if(unidadeNegocio.getId() != -1){
restricao = restricao + unidadeNegocio.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoImovelPerfil() != null && !helper.getColecaoImovelPerfil().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoImovelPerfil().size() == 1){
Iterator it = helper.getColecaoImovelPerfil().iterator();
while(it.hasNext()){
ImovelPerfil obj = (ImovelPerfil) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoImovelPerfil().iterator();
ImovelPerfil imovelPerfil = null;
restricao = restricao + " and nmrg.iper_id in (";
while (iterator.hasNext()) {
imovelPerfil = (ImovelPerfil) iterator.next();
if(imovelPerfil.getId() != -1){
restricao = restricao + imovelPerfil.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIdEloPolo() != null && helper.getIdEloPolo()>0){
restricao = restricao + " and loca.loca_cdelo = " + helper.getIdEloPolo();
}
if (helper.getIdLocalidade() != null && helper.getIdLocalidade() > 0) {
restricao = restricao + " and nmrg.loca_id = " + helper.getIdLocalidade();
}
if(helper.getIdSetorComercial() != null && helper.getIdSetorComercial()>0){
restricao = restricao + " and nmrg.nmrg_cdsetorcomercial = " + helper.getIdSetorComercial();
}
if (helper.getColecaoCategoria() != null && !helper.getColecaoCategoria().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoCategoria().size() == 1){
Iterator it = helper.getColecaoCategoria().iterator();
while(it.hasNext()){
Categoria obj = (Categoria) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoCategoria().iterator();
Categoria categoria = null;
restricao = restricao + " and nmrg.catg_id in (";
while (iterator.hasNext()) {
categoria = (Categoria) iterator.next();
if(categoria.getId() != -1){
restricao = restricao + categoria.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoClienteTipo() != null && !helper.getColecaoClienteTipo().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoClienteTipo().size() == 1){
Iterator it = helper.getColecaoClienteTipo().iterator();
while(it.hasNext()){
ClienteTipo obj = (ClienteTipo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoClienteTipo().iterator();
ClienteTipo clienteTipo = null;
restricao = restricao + " and clieNmrg.cltp_id in (";
while (iterator.hasNext()) {
clienteTipo = (ClienteTipo) iterator.next();
if(clienteTipo.getId() != -1){
restricao = restricao + clienteTipo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoEsferaPoder() != null && !helper.getColecaoEsferaPoder().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoEsferaPoder().size() == 1){
Iterator it = helper.getColecaoEsferaPoder().iterator();
while(it.hasNext()){
EsferaPoder obj = (EsferaPoder) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoEsferaPoder().iterator();
EsferaPoder esferaPoder = null;
restricao = restricao + " and cltp.epod_id in (";
while (iterator.hasNext()) {
esferaPoder = (EsferaPoder) iterator.next();
if(esferaPoder.getId() != -1){
restricao = restricao + esferaPoder.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoAguaSituacao() != null && !helper.getColecaoLigacaoAguaSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoAguaSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoAguaSituacao().iterator();
while(it.hasNext()){
LigacaoAguaSituacao obj = (LigacaoAguaSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoAguaSituacao().iterator();
LigacaoAguaSituacao ligacaoAguaSituacao = null;
restricao = restricao + "and nmrg.last_id in (";
while (iterator.hasNext()) {
ligacaoAguaSituacao = (LigacaoAguaSituacao) iterator.next();
if(ligacaoAguaSituacao.getId() != -1){
restricao = restricao + ligacaoAguaSituacao.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoLigacaoEsgotoSituacao() != null && !helper.getColecaoLigacaoEsgotoSituacao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoLigacaoEsgotoSituacao().size() == 1){
Iterator it = helper.getColecaoLigacaoEsgotoSituacao().iterator();
while(it.hasNext()){
LigacaoEsgotoSituacao obj = (LigacaoEsgotoSituacao) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
Iterator iterator = helper.getColecaoLigacaoEsgotoSituacao().iterator();
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null;
restricao = restricao + "and nmrg.lest_id in (";
while (iterator.hasNext()) {
ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) iterator.next();
if(ligacaoEsgotoSituacao.getId() != -1){
restricao = restricao + ligacaoEsgotoSituacao.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if (helper.getColecaoMotivoRejeicao() != null && !helper.getColecaoMotivoRejeicao().isEmpty()) {
boolean consulta = true;
if(helper.getColecaoMotivoRejeicao().size() == 1){
Iterator it = helper.getColecaoMotivoRejeicao().iterator();
while(it.hasNext()){
NegativadorRetornoMotivo obj = (NegativadorRetornoMotivo) it.next();
if(obj != null && obj.getId() == -1){
consulta = false;
}
}
}
if(consulta){
sql = sql + " inner join cobranca.negatd_mov_reg_ret_mot nmrr "
+ " on nmrg.nmrg_id = nmrr.nmrg_id ";
Iterator iterator = helper.getColecaoMotivoRejeicao().iterator();
NegativadorRetornoMotivo negativadorRetornoMotivo = null;
restricao = restricao + " and nmrr.nrmt_id in (";
while (iterator.hasNext()) {
negativadorRetornoMotivo = (NegativadorRetornoMotivo) iterator.next();
if(negativadorRetornoMotivo.getId() != -1){
restricao = restricao + negativadorRetornoMotivo.getId() + ",";
}
}
restricao = Util.removerUltimosCaracteres(restricao, 1);
restricao = restricao + ") ";
}
}
if(helper.getIndicadorApenasNegativacoesRejeitadas() != null &&
helper.getIndicadorApenasNegativacoesRejeitadas().equals(ConstantesSistema.SIM)){
restricao = restricao + " and nmrg.nmrg_icaceito = " + ConstantesSistema.NAO_ACEITO;
}
if (negativadorMovimentoReg != null){
if (negativadorMovimentoReg.getIndicadorAceito() != null) {
restricao = restricao + " and nmrg.nmrg_icaceito = " + negativadorMovimentoReg.getIndicadorAceito();
} else {
restricao = restricao + " and nmrg.nmrg_icaceito is null ";
}
if (negativadorMovimentoReg.getCobrancaSituacao() != null
&& negativadorMovimentoReg.getCobrancaSituacao().getId() != null) {
restricao = restricao + " and nmrg.cbst_id = " + negativadorMovimentoReg.getCobrancaSituacao().getId();
} else {
restricao = restricao + " and nmrg.cbst_id is null ";
}
if (negativadorMovimentoReg.getNegativadorMovimento() != null) {
restricao = restricao + " and ngmv.ngmv_dtprocessamentoenvio between ' " + negativadorMovimentoReg.getNegativadorMovimento().getDataProcessamentoEnvio() + " ' and ' " + negativadorMovimentoReg.getNegativadorMovimento().getDataProcessamentoEnvio() + " ' ";
}
}
if (idGerencia != null) {
restricao = restricao + " and greg.greg_id = " + idGerencia;
}
if (idUnidade != null) {
restricao = restricao + " and uneg.uneg_id = " + idUnidade;
}
restricao = restricao + " and nmri.nmri_vlpago is not null "
+ " GROUP BY uneg.uneg_id ";
sql = sql + restricao;
retorno = (Integer) session.createSQLQuery(sql)
.addScalar("quantidade" , Hibernate.INTEGER)
.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;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* Quantidade Total de Itens (quantidade de linhas na tabela cobranca.NEGATD_MOV_REG_ITEM com NMRG_ID=NMRG_ID da tabela
* cobranca.NEGATD_MOVIMENTO_REG com NGMV_ID=NGMV_ID da tabela cobranca.NEGATIVADOR_MOVIMENTO com NGCM_ID=Id do Comando
* de Negativa��o recebido).
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer pesquisarQuantidadeTotalItens(Integer idComando) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select count(*) from NegativadorMovimentoRegItem nmri "
+ "where nmri.negativadorMovimentoReg.id in (select nmrg.id From NegativadorMovimentoReg nmrg "
+ "inner join nmrg.negativadorMovimento ngmv where ngmv.negativacaoComando.id = :idComando)";
retorno = (Integer) session.createQuery(consulta).setInteger(
"idComando", idComando.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;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* Quantidade Total de Regs (quantidade de linhas na tabela cobranca.NEGATD_MOVIMENTO_REG com NGMV_ID=NGMV_ID da tabela
* cobranca.NEGATIVADOR_MOVIMENTO com NGCM_ID=Id do Comando de Negativa��o recebido).
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer pesquisarQuantidadeTotalRegistros(Integer idComando) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select count(*) from NegativadorMovimentoReg nmrg "
+ "inner join nmrg.negativadorMovimento ngmv where ngmv.negativacaoComando.id = :idComando";
retorno = (Integer) session.createQuery(consulta).setInteger(
"idComando", idComando.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;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* Quantidade de Im�veis em Reg (quantidade de linhas na tabela cobranca.NEGATD_MOVIMENTO_REG com NGMV_ID=NGMV_ID da tabela
* cobranca.NEGATIVADOR_MOVIMENTO com NGCM_ID=Id do Comando de Negativa��o recebido).
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer pesquisarQuantidadeImoveisEmRegistro(Integer idComando) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select count(*) from NegativadorMovimentoReg nmrg "
+ "inner join nmrg.negativadorMovimento ngmv where ngmv.negativacaoComando.id = :idComando and nmrg.imovel is not null";
retorno = (Integer) session.createQuery(consulta).setInteger(
"idComando", idComando.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;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* Quantidade de Im�veis em Negativa��o Im�veis (quantidade de linhas na tabela cobranca.NEGATIVAOCAO_IMOVEIS com
* NGCM_ID=Id do Comando de Negativa��o recebido).
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer pesquisarQuantidadeImoveisEmNegativacao(Integer idComando) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select count(*) from NegativacaoImoveis ngim where ngim.negativacaoComando.id = :idComando";
retorno = (Integer) session.createQuery(consulta).setInteger(
"idComando", idComando.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;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* Quantidade de Im�veis em Situ��o de Cobran�a (quantidade de linhas na tabela cadastro.IMOVEL_COBRANCA_SITUACAO com
* ISCB_DTRETIRADACOBRANCA com o valor nulo e CBST_ID=16 ou 17 (�Em An�lise para Negativa��o�) e IMOV_ID=IMOV_ID da
* tabela cobranca.NEGATIVAOCAO_IMOVEIS com NGCM_ID=Id do Comando de Negativa��o recebido).
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer pesquisarQuantidadeImoveisEmCobrancaSituacao(Integer idComando) throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select count(*) from ImovelCobrancaSituacao iscb, NegativacaoImoveis ngim "
+ "where ngim.negativacaoComando.id = :idComando and ngim.imovel.id = iscb.imovel.id "
+ "and iscb.dataRetiradaCobranca is null and iscb.cobrancaSituacao.id in (:negativacaoSPC, :negativacaoSERASA)";
retorno = (Integer) session.createQuery(consulta).setInteger(
"idComando", idComando.intValue()).setInteger("negativacaoSPC", CobrancaSituacao.EM_ANALISE_PARA_NEGATIVACAO_SPC)
.setInteger("negativacaoSERASA", CobrancaSituacao.EM_ANALISE_PARA_NEGATIVACAO_SERASA).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;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer apagarImovelCobrancaSituacao(Integer idComando) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
Integer retorno = null;
try {
Connection jdbcCon = session.connection();
String delete = " delete from cadastro.imovel_cobranca_situacao iscb "
+ "where iscb.iscb_dtretiradacobranca is null "
+ "and iscb.cbst_id in ( ?, ?) and iscb.imov_id in "
+ "(select ngim.imov_id from cobranca.negativacao_imoveis ngim where ngim.ngcm_id = ?)";
st = jdbcCon.prepareStatement(delete);
st.setInt(1, CobrancaSituacao.EM_ANALISE_PARA_NEGATIVACAO_SPC.intValue());
st.setInt(2, CobrancaSituacao.EM_ANALISE_PARA_NEGATIVACAO_SERASA.intValue());
st.setInt(3, idComando.intValue());
retorno = 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);
}
return retorno;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer apagarNegativacaoImoveis(Integer idComando) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
Integer retorno = null;
try {
Connection jdbcCon = session.connection();
String delete = " delete from cobranca.negativacao_imoveis ngim where ngim.ngcm_id = ? ";
st = jdbcCon.prepareStatement(delete);
st.setInt(1, idComando.intValue());
retorno = 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);
}
return retorno;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer apagarNegativacaoMovRegItem(Integer idComando) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
Integer retorno = null;
try {
Connection jdbcCon = session.connection();
String delete = " delete from cobranca.negatd_mov_reg_item nmri "
+ "where nmri.nmrg_id in (select nmrg.nmrg_id from cobranca.negatd_movimento_reg nmrg "
+ "inner join cobranca.negativador_movimento ngmv on ngmv.ngmv_id = nmrg.ngmv_id "
+ "where ngmv.ngcm_id = ?)";
st = jdbcCon.prepareStatement(delete);
st.setInt(1, idComando.intValue());
retorno = 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);
}
return retorno;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer apagarNegativacaoMovReg(Integer idComando) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
Integer retorno = null;
try {
Connection jdbcCon = session.connection();
String delete = " delete from cobranca.negatd_movimento_reg nmrg "
+ "where nmrg.ngmv_id in (select ngmv.ngmv_id from cobranca.negativador_movimento ngmv "
+ "where ngmv.ngcm_id = ?)";
st = jdbcCon.prepareStatement(delete);
st.setInt(1, idComando.intValue());
retorno = 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);
}
return retorno;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* @author Raphael Rossiter
* @date 22/03/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer apagarNegativadorMovimentoPorComando(Integer idComando) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
Integer retorno = null;
try {
Connection jdbcCon = session.connection();
String delete = " delete from cobranca.negativador_movimento ngmv where ngmv.ngcm_id = ?";
st = jdbcCon.prepareStatement(delete);
st.setInt(1, idComando.intValue());
retorno = 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);
}
return retorno;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o
*
* @author Raphael Rossiter
* @date 02/05/2011
*
* @param idComando
* @return Integer
* @throws ErroRepositorioException
*/
public Integer apagarNegativadorMovimentoRegParcelamento(Integer idComando) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
Integer retorno = null;
try {
Connection jdbcCon = session.connection();
String delete = " delete from cobranca.negatd_mov_reg_parcel nmrp "
+ "where nmrp.nmrg_id in (select nmrg.nmrg_id from cobranca.negatd_movimento_reg nmrg "
+ "inner join cobranca.negativador_movimento ngmv on ngmv.ngmv_id = nmrg.ngmv_id "
+ "where ngmv.ngcm_id = ?)";
st = jdbcCon.prepareStatement(delete);
st.setInt(1, idComando.intValue());
retorno = 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);
}
return retorno;
}
/**
* [UC1005] - Determinar Confirma��o da Negativa��o
* [SB0002] � Atualizar Data da Retirada da Situa��o Carta Enviada
*
* @author Arthur Carvalho
* @date 18/05/2011
* @param dataExlusao
* @param idImovel
* @throws ErroRepositorioException
*/
public void atualizarDataRetiradaSituacaoCartaEnviada(Date data, Integer idImovel) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String update = null;
try {
update = " update gcom.cadastro.imovel.ImovelCobrancaSituacao "
+ " set iscb_dtretiradacobranca = :data"
+ " where imov_id = :imovel"
+ " and iscb_dtretiradacobranca is not null "
+ " and cbst_id in (13, 14)";
session.createQuery(update)
.setDate("data", data)
.setInteger("imovel", idImovel)
.executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
public boolean verificarExistenciaNegativacaoImovelECliente(
Integer idImovel,Integer idCliente) throws ErroRepositorioException {
Integer pesquisar = null;
Boolean retorno = false;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select nmrg.id "
+ " from gcom.cobranca.NegativadorMovimentoReg nmrg "
+ " inner join nmrg.imovel imov "
+ " left join nmrg.negativadorMovimentoRegInclusao nmrgInclusao "
+ " where imov.id = :idImovel "
+ " and nmrg.cliente.id = :idCliente"
+ " and nmrg.codigoExclusaoTipo is null "
+ " and nmrgInclusao.id is null "
+ " and (nmrg.indicadorAceito = :indicadorAceito or nmrg.indicadorAceito is null)";
pesquisar = (Integer) session.createQuery(consulta)
.setShort("indicadorAceito", ConstantesSistema.SIM)
.setInteger("idImovel", idImovel)
.setInteger("idCliente", idCliente)
.setMaxResults(1).uniqueResult();
if (pesquisar != null && !pesquisar.equals("")) {
retorno = true;
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public List consultarImovelCobrancaSituacaoAtual(Integer codigoImovel, Integer codigoCobrancaSituacao, Integer idCliente) throws ErroRepositorioException {
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try {
String hql = " select ics.id "
+ " from gcom.cadastro.imovel.ImovelCobrancaSituacao ics"
+ " where ics.imovel.id = " + codigoImovel
+ " and ics.dataRetiradaCobranca is null "
+ " and ics.cobrancaSituacao.id = " + codigoCobrancaSituacao + " ";
if (idCliente != null) {
hql = hql + " and ics.cliente.id = :idCliente ";
retorno = (List) session.createQuery(hql).setInteger("idCliente", idCliente).list();
} else {
retorno = (List) session.createQuery(hql).list();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
}