package gcom.cadastro.cliente;
import gcom.cadastro.geografico.UnidadeFederacao;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelContaEnvio;
import gcom.util.ConstantesSistema;
import gcom.util.ControladorException;
import gcom.util.ErroRepositorioException;
import gcom.util.HibernateUtil;
import gcom.util.filtro.GeradorHQLCondicional;
import java.util.ArrayList;
import java.util.Collection;
import java.util.concurrent.CopyOnWriteArraySet;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Session;
/**
* < <Descri��o da Classe>>
*
* @author Administrador
* @created 22 de Julho de 2005
*/
public class RepositorioClienteImovelHBM implements IRepositorioClienteImovel {
private static IRepositorioClienteImovel instancia;
/**
* Constructor for the RepositorioClienteTipoHBM object
*/
public RepositorioClienteImovelHBM() {
}
/**
* Retorna o valor de instancia
*
* @return O valor de instancia
*/
public static IRepositorioClienteImovel getInstancia() {
if (instancia == null) {
instancia = new RepositorioClienteImovelHBM();
}
return instancia;
}
/**
* < <Descri��o do m�todo>>
*
* @param clienteImovel
* Descri��o do par�metro
* @exception ErroRepositorioException
* Descri��o da exce��o
*/
public void inserirClienteImovel(ClienteImovel clienteImovel)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
try {
session.save(clienteImovel);
session.flush();
} catch (HibernateException e) {
e.printStackTrace();
throw new ErroRepositorioException("Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
// session.close();
}
}
/**
* Pesquisa uma cole��o de cliente imovel com uma query especifica
*
* @param filtroClienteImovel
* parametros para a consulta
* @return Description of the Return Value
* @exception ErroRepositorioException
* Description of the Exception
*/
public Collection pesquisarClienteImovel(
FiltroClienteImovel filtroClienteImovel, Integer numeroPagina)
throws ErroRepositorioException {
// cria a cole��o de retorno
Collection retorno = null;
// obt�m a sess�o
Session session = HibernateUtil.getSession();
try {
// pesquisa a cole��o de atividades e atribui a vari�vel "retorno"
retorno = new ArrayList(new CopyOnWriteArraySet(GeradorHQLCondicional
.gerarCondicionalQuery(
filtroClienteImovel,
"clienteImovel",
"select distinct new gcom.cadastro.cliente.ClienteImovelSimplificado(clienteImovel.imovel.id,clienteImovel.imovel.numeroImovel,clienteImovel.imovel.logradouroCep, clienteImovel.imovel.logradouroBairro,"
+ "clienteImovel.imovel.quadra,clienteImovel.imovel.enderecoReferencia,clienteImovel.imovel.complementoEndereco,clienteImovel.cliente.nome,clienteImovel.cliente.id,clienteImovel.imovel.setorComercial,clienteImovel.imovel.localidade,clienteImovel.dataFimRelacao,clienteImovel.imovel.ultimaAlteracao) "
+ "from gcom.cadastro.cliente.ClienteImovel as clienteImovel "
+ "left join clienteImovel.imovel.logradouroCep "
+ "left join clienteImovel.imovel.logradouroBairro "
+ "left join clienteImovel.cliente "
+ "left join clienteImovel.imovel.setorComercial "
+ "left join clienteImovel.imovel.enderecoReferencia "
+ "left join clienteImovel.imovel.quadra "
+ "left join clienteImovel.imovel.localidade ",
session).setFirstResult(10 * numeroPagina)
.setMaxResults(10).list()));
// Carrega os objetos informados no filtro
/* if (!filtroClienteImovel
.getColecaoCaminhosParaCarregamentoEntidades().isEmpty()) {
PersistenciaUtil.processaObjetosParaCarregamento(
filtroClienteImovel
.getColecaoCaminhosParaCarregamentoEntidades(),
retorno);
}
*/
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna a cole��o de atividades pesquisada(s)
return retorno;
}
/**
* Pesquisa uma a quantidade de cliente imovel com uma query especifica
* [UC0015] Filtrar Imovel
*
* @param filtroClienteImovel
* parametros para a consulta
* @author Rafael Santos
* @since 26/06/2006
*
* @return Description of the Return Value
* @exception ErroRepositorioException
* Description of the Exception
*/
public int pesquisarQuantidadeClienteImovel(
FiltroClienteImovel filtroClienteImovel)
throws ErroRepositorioException {
// cria a cole��o de retorno
Integer quantidade = null;
// obt�m a sess�o
Session session = HibernateUtil.getSession();
filtroClienteImovel.getColecaoCaminhosParaCarregamentoEntidades().clear();
try {
// pesquisa a cole��o de atividades e atribui a vari�vel "retorno"
quantidade = (Integer)GeradorHQLCondicional
.gerarCondicionalQuery(
filtroClienteImovel,
"clienteImovel",
"select count(clienteImovel.imovel.id) "
+ "from gcom.cadastro.cliente.ClienteImovel as clienteImovel ",
session).uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna a cole��o de atividades pesquisada(s)
quantidade.intValue();
return quantidade;
}
/**
* < <Descri��o do m�todo>>
*
* @param imovel
* Descri��o do par�metro
* @param clienteRelacaoTipo
* Descri��o do par�metro
* @return Descri��o do retorno
* @exception ErroRepositorioException
* Descri��o da exce��o
*/
public Collection pesquisarClienteImovelResponsavelEsferaPoder(
Imovel imovel, ClienteRelacaoTipo clienteRelacaoTipo)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select ci.id, c.id, "
+ "c.nome, ci.dataFimRelacao from "
+ "ClienteImovel ci "
+ "inner join ci.cliente c "
+ "inner join c.clienteTipo.esferaPoder ep "
+ "where ci.imovel.id = :imovel ep.id is not null "
+ "and ci.clienteRelacaoTipo.id = :clienteRelacaoTipo and ci.dataFimRelacao is null ";
retorno = session.createQuery(consulta).setInteger("imovel",
imovel.getId().intValue()).setInteger("clienteRelacaoTipo",
clienteRelacaoTipo.getId().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;
}
/**
* Pesquisa o nome do cliente a partir do im�vel Autor: S�vio Luiz Data:
* 21/12/2005
*/
public String pesquisarNomeClientePorImovel(Integer idImovel)
throws ErroRepositorioException {
String retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select clienteImovel.cliente.nome "
+ "from ClienteImovel clienteImovel "
+ "left join clienteImovel.cliente cliente "
+ "left join clienteImovel.imovel imovel "
+ "where clienteImovel.clienteRelacaoTipo.id = :tipoUsuario and "
+ "clienteImovel.dataFimRelacao = null and "
+ "imovel.id = :idImovel";
retorno = (String) session.createQuery(consulta).setInteger(
"idImovel", idImovel).setShort("tipoUsuario",
ClienteRelacaoTipo.USUARIO).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 uma cole��o de cliente imovel com uma query especifica
*
* @param filtroClienteImovel
* parametros para a consulta
* @return Description of the Return Value
* @exception ErroRepositorioException
* Description of the Exception
*/
public Collection pesquisarClienteImovel(
FiltroClienteImovel filtroClienteImovel)
throws ErroRepositorioException {
// cria a cole��o de retorno
Collection retorno = null;
// obt�m a sess�o
Session session = HibernateUtil.getSession();
try {
// pesquisa a cole��o de atividades e atribui a vari�vel "retorno"
retorno = new ArrayList(new CopyOnWriteArraySet(GeradorHQLCondicional
.gerarCondicionalQuery(
filtroClienteImovel,
"clienteImovel",
"select distinct new gcom.cadastro.cliente.ClienteImovelSimplificado(clienteImovel.imovel.id,clienteImovel.imovel.numeroImovel,clienteImovel.imovel.logradouroCep, clienteImovel.imovel.logradouroBairro,"
+ "clienteImovel.imovel.quadra,clienteImovel.imovel.enderecoReferencia,clienteImovel.imovel.complementoEndereco,clienteImovel.cliente.nome,clienteImovel.cliente.id,clienteImovel.imovel.setorComercial,clienteImovel.imovel.localidade,clienteImovel.dataFimRelacao,clienteImovel.imovel.ultimaAlteracao) "
+ "from gcom.cadastro.cliente.ClienteImovel as clienteImovel "
+ "left join clienteImovel.imovel.logradouroCep "
+ "left join clienteImovel.imovel.logradouroBairro "
+ "left join clienteImovel.cliente "
+ "left join clienteImovel.imovel.setorComercial "
+ "left join clienteImovel.imovel.enderecoReferencia "
+ "left join clienteImovel.imovel.quadra "
+ "left join clienteImovel.imovel.localidade ",
session).list()));
// Carrega os objetos informados no filtro
/* if (!filtroClienteImovel
.getColecaoCaminhosParaCarregamentoEntidades().isEmpty()) {
PersistenciaUtil.processaObjetosParaCarregamento(
filtroClienteImovel
.getColecaoCaminhosParaCarregamentoEntidades(),
retorno);
}
*/
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna a cole��o de atividades pesquisada(s)
return retorno;
}
/**
* Pesquisa uma cole��o de cliente imovel com uma query especifica
*
* @param filtroClienteImovel
* parametros para a consulta
* @return Description of the Return Value
* @exception ErroRepositorioException
* Description of the Exception
*/
public Collection pesquisarClienteImovelRelatorio(
FiltroClienteImovel filtroClienteImovel)
throws ErroRepositorioException {
// cria a cole��o de retorno
Collection retorno = null;
// obt�m a sess�o
Session session = HibernateUtil.getSession();
try {
filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroClienteImovel.SETOR_COMERCIAL);
filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroClienteImovel.QUADRA);
filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroClienteImovel.IMOVEL);
filtroClienteImovel.setCampoOrderBy(
FiltroClienteImovel.LOCALIDADE_ID,
FiltroClienteImovel.SETOR_COMERCIAL_CODIGO,
FiltroClienteImovel.QUADRA_NUMERO,
FiltroClienteImovel.LOTE,
FiltroClienteImovel.SUBLOTE
);
// pesquisa a cole��o de atividades e atribui a vari�vel "retorno"
retorno = new ArrayList(new CopyOnWriteArraySet(GeradorHQLCondicional
.gerarCondicionalQuery(
filtroClienteImovel,
"clienteImovel",
"select imovel "
+ "from gcom.cadastro.cliente.ClienteImovel as clienteImovel "
+ "inner join clienteImovel.imovel as imovel "
+ "inner join fetch imovel.imovelPerfil "
+ "inner join fetch imovel.ligacaoAguaSituacao "
+ "inner join fetch imovel.ligacaoEsgotoSituacao "
+ "inner join fetch imovel.setorComercial setor "
+ "left join fetch imovel.enderecoReferencia "
+ "inner join fetch imovel.quadra quad "
+ "inner join fetch imovel.quadra.rota "
+ "inner join fetch imovel.localidade loca "
+ "inner join fetch loca.gerenciaRegional "
+ "inner join fetch loca.unidadeNegocio "
+ "left join fetch imovel.hidrometroInstalacaoHistorico.hidrometroProtecao "
+ "left join fetch imovel.hidrometroInstalacaoHistorico.hidrometroLocalInstalacao "
+ "left join fetch imovel.imovelPrincipal "
+ "left join fetch imovel.pavimentoCalcada "
+ "left join fetch imovel.pavimentoRua "
+ "left join fetch imovel.despejo "
+ "left join fetch imovel.pocoTipo "
+ "left join fetch imovel.ligacaoEsgoto.ligacaoEsgotoDiametro "
+ "left join fetch imovel.ligacaoEsgoto.ligacaoEsgotoMaterial "
+ "left join fetch imovel.hidrometroInstalacaoHistorico "
+ "left join fetch imovel.hidrometroInstalacaoHistorico.hidrometro "
+ "left join fetch imovel.hidrometroInstalacaoHistorico.hidrometro.hidrometroCapacidade "
+ "left join fetch imovel.hidrometroInstalacaoHistorico.hidrometro.hidrometroMarca "
+ "left join fetch imovel.hidrometroInstalacaoHistorico.hidrometro.hidrometroDiametro "
+ "left join fetch imovel.hidrometroInstalacaoHistorico.hidrometro.hidrometroTipo "
+ "left join fetch imovel.reservatorioVolumeFaixaSuperior "
+ "left join fetch imovel.reservatorioVolumeFaixaInferior "
+ "left join fetch imovel.piscinaVolumeFaixa "
+ "left join fetch imovel.areaConstruidaFaixa "
+ "left join fetch imovel.ligacaoAgua lagu "
+ "left join fetch lagu.ligacaoAguaDiametro "
+ "left join fetch lagu.ligacaoAguaMaterial "
+ "left join fetch lagu.hidrometroInstalacaoHistorico "
+ "left join fetch lagu.hidrometroInstalacaoHistorico.hidrometro "
+ "left join fetch lagu.hidrometroInstalacaoHistorico.hidrometro.hidrometroCapacidade "
+ "left join fetch lagu.hidrometroInstalacaoHistorico.hidrometro.hidrometroMarca "
+ "left join fetch lagu.hidrometroInstalacaoHistorico.hidrometro.hidrometroDiametro "
+ "left join fetch lagu.hidrometroInstalacaoHistorico.hidrometro.hidrometroTipo "
+ "left join fetch lagu.hidrometroInstalacaoHistorico.hidrometroLocalInstalacao "
+ "left join fetch lagu.hidrometroInstalacaoHistorico.hidrometroProtecao "
+ "left join fetch imovel.logradouroCep as lgcp "
+ "left join fetch lgcp.logradouro as lgrd "
+ "left join fetch lgrd.logradouroTipo "
+ "left join fetch lgrd.logradouroTitulo "
+ "left join fetch lgcp.cep "
+ "left join fetch imovel.logradouroBairro lgbr "
+ "left join fetch lgbr.logradouro "
+ "left join fetch lgbr.bairro bair "
+ "left join fetch bair.municipio munc "
+ "left join fetch munc.unidadeFederacao "
+ "left join fetch clienteImovel.cliente ",
session).list()));
// Carrega os objetos informados no filtro
/* if (!filtroClienteImovel
.getColecaoCaminhosParaCarregamentoEntidades().isEmpty()) {
PersistenciaUtil.processaObjetosParaCarregamento(
filtroClienteImovel
.getColecaoCaminhosParaCarregamentoEntidades(),
retorno);
}
*/
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna a cole��o de atividades pesquisada(s)
return retorno;
}
/**
* [UC0544] Gerar Arwuivo Texto do Faturamento
*
* Pesquisar ClienteImovel
*
* @author Fl�vio Cordeiro
* @date 4/04/2006
*
*
* @return Colletion
* @throws ErroRepositorioException
*/
public Collection pesquisarClienteImovelGerarArquivoFaturamento()
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = "";
try {
consulta = " select distinct(clim.cliente.id), clim.cliente.nome"
+ " from ClienteImovel clim"
+ " left join clim.cliente clie"
+ " left join clim.imovel imov"
+ " where clim.cliente.indicadorGeraArquivoTexto =:indicadorGera "
+ " and clim.dataFimRelacao IS NULL "
+ " and clim.clienteRelacaoTipo.id =:idRelacao";
retorno = (Collection) session.createQuery(consulta)
.setInteger("indicadorGera", Cliente.GERA_ARQUIVO_TEXTO_SIM)
.setInteger("idRelacao", ClienteRelacaoTipo.RESPONSAVEL).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* [UC0366] Inserir Registro de Atendimento
*
* Pesquisar ClienteImovel
*
* @author Raphael Rossiter
* @date 21/08/2006
*
*
* @param idCliente, idImovel
* @return Colletion
* @throws ErroRepositorioException
*/
public Collection<ClienteImovel> pesquisarClienteImovel(Integer idCliente, Integer idImovel)
throws ErroRepositorioException {
Collection<ClienteImovel> retorno = null;
Session session = HibernateUtil.getSession();
String consulta = "";
try {
consulta = " select clim.cliente.id, clim.cliente.nome"
+ " from ClienteImovel clim"
+ " left join clim.cliente clie"
+ " left join clim.imovel imov"
+ " where clie.id = :idCliente AND imov.id = :idImovel AND clim.dataFimRelacao IS NULL ";
retorno = (Collection) session.createQuery(consulta)
.setInteger("idCliente", idCliente)
.setInteger("idImovel", idImovel).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa o nome, cnpj e id do cliente a partir do im�vel Autor: Rafael Corr�a Data:
* 25/09/2006
*/
public Object[] pesquisarDadosClienteRelatorioParcelamentoPorImovel(Integer idImovel)
throws ErroRepositorioException {
Object[] retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select cliente.id, cliente.nome, "
+ "cliente.cpf, cliente.cnpj, orgaoExpedidorRg.descricao, unidadeFederacao.sigla, cliente.rg "
+ "from ClienteImovel clienteImovel "
+ "left join clienteImovel.cliente cliente "
+ "left join clienteImovel.imovel imovel "
+ "left join cliente.orgaoExpedidorRg orgaoExpedidorRg "
+ "left join cliente.unidadeFederacao unidadeFederacao "
+ "where clienteImovel.clienteRelacaoTipo.id = :tipoUsuario and "
+ "clienteImovel.dataFimRelacao = null and "
+ "imovel.id = :idImovel";
retorno = (Object[]) session.createQuery(consulta).setInteger(
"idImovel", idImovel).setShort("tipoUsuario",
ClienteRelacaoTipo.USUARIO).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;
}
/**
* Autor: S�vio Luiz Data:
* 27/11/2006
*/
public Collection pesquisarParmsClienteImovel(Integer idImovel)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select cliente.id, "
+ "clienteImovel.clienteRelacaoTipo.id "
+ "from ClienteImovel clienteImovel "
+ "left join clienteImovel.cliente cliente "
+ "left join clienteImovel.imovel imovel "
+ "where imovel.id = :idImovel and clienteImovel.dataFimRelacao = null ";
retorno = session.createQuery(consulta).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;
}
/**
* [UC0054] - Inserir Dados Tarifa Social
*
* Pesquisa os Clientes Im�veis pelo id do Cliente, indicador de uso, motivo
* do fim da rela��o, pelo perfil do im�vel e pelo tipo da rela��o do cliente carregando o im�vel
*
* Autor: Rafael Corr�a
*
* Data: 27/12/2006
*/
public Collection pesquisarClienteImovelPeloClienteTarifaSocial(Integer idCliente)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT clienteImovel "
+ " FROM ClienteImovel clienteImovel "
+ " INNER JOIN FETCH clienteImovel.cliente cliente "
+ " INNER JOIN FETCH clienteImovel.imovel imov "
+ " INNER JOIN FETCH imov.setorComercial sc "
+ " INNER JOIN FETCH sc.municipio muni "
+ " INNER JOIN imov.imovelPerfil imovPerfil "
+ " LEFT JOIN clienteImovel.clienteRelacaoTipo crtp "
+ " LEFT JOIN clienteImovel.clienteImovelFimRelacaoMotivo cliImovFimRelMotivo "
+ " WHERE cliente.id = :idCliente "
// + " AND imovPerfil.id = " + ImovelPerfil.TARIFA_SOCIAL.toString()
+ " AND cliente.indicadorUso = " + ConstantesSistema.INDICADOR_USO_ATIVO.toString()
+ " AND crtp.id = " + ClienteRelacaoTipo.USUARIO.toString()
+ " AND cliImovFimRelMotivo.id is null "
+ " AND imov.quantidadeEconomias = 1 ";
retorno = session.createQuery(consulta).setInteger("idCliente",
idCliente).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;
}
/**
* [UC0054] - Inserir Dados Tarifa Social
*
* Pesquisa os Clientes Im�veis pelo id do Im�vel carregando o im�vel, o cliente, o perfil do im�vel,
* o org�o expedidor do RG e a unidade da federa��o
*
* Autor: Rafael Corr�a
*
* Data: 27/12/2006
*/
public Collection pesquisarClienteImovelPeloImovelTarifaSocial(
Integer idImovel) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT clienteImovel "
+ " FROM ClienteImovel clienteImovel "
+ " INNER JOIN FETCH clienteImovel.imovel imov "
+ " INNER JOIN FETCH imov.setorComercial sc "
+ " INNER JOIN FETCH sc.municipio muni "
+ " INNER JOIN FETCH clienteImovel.cliente cliente "
+ " INNER JOIN FETCH imov.imovelPerfil imovPerfil "
+ " LEFT JOIN FETCH cliente.orgaoExpedidorRg orgaoRg "
+ " LEFT JOIN FETCH cliente.unidadeFederacao unidFed "
+ " WHERE imov.id = :idImovel "
+ " AND clienteImovel.dataFimRelacao is null ";
retorno = session.createQuery(consulta).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;
}
/**
* [UC0054] - Inserir Dados Tarifa Social
*
* Pesquisa os Clientes Im�veis pelo id do Im�vel carregando os dados necess�rios para retornar o seu endere�o
*
* Autor: Rafael Corr�a
*
* Data: 27/12/2006
*/
public Collection pesquisarClienteImovelPeloImovelParaEndereco(
Integer idImovel) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT clienteImovel "
+ " FROM ClienteImovel clienteImovel "
+ " INNER JOIN FETCH clienteImovel.cliente cliente "
+ " INNER JOIN FETCH clienteImovel.imovel imov "
+ " INNER JOIN FETCH imov.localidade loc "
+ " INNER JOIN FETCH imov.setorComercial sc "
+ " INNER JOIN FETCH sc.municipio muniSc "
+ " INNER JOIN FETCH muniSc.unidadeFederacao ufSc "
+ " INNER JOIN FETCH imov.imovelPerfil imovPerfil "
+ " INNER JOIN FETCH imov.quadra quadra "
+ " LEFT JOIN FETCH imov.enderecoReferencia endRef "
+ " LEFT JOIN FETCH imov.logradouroBairro logrBairro "
+ " LEFT JOIN FETCH logrBairro.bairro bairro "
+ " LEFT JOIN FETCH bairro.municipio muniBairro "
+ " LEFT JOIN FETCH muniBairro.unidadeFederacao ufBairro "
+ " LEFT JOIN FETCH imov.logradouroCep logrCep "
+ " LEFT JOIN FETCH logrCep.cep cep "
+ " LEFT JOIN FETCH logrCep.logradouro logr "
+ " LEFT JOIN FETCH logr.logradouroTipo logrTp "
+ " LEFT JOIN FETCH logr.logradouroTitulo logrTitulo "
+ " LEFT JOIN FETCH imov.perimetroInicial perimetroInicial "
+ " LEFT JOIN FETCH perimetroInicial.logradouroTipo perimetroInicialLogrTipo "
+ " LEFT JOIN FETCH perimetroInicial.logradouroTitulo perimetroInicialLogrTitulo "
+ " LEFT JOIN FETCH imov.perimetroFinal perimetroFinal "
+ " LEFT JOIN FETCH perimetroFinal.logradouroTipo perimetroFinalLogrTipo "
+ " LEFT JOIN FETCH perimetroFinal.logradouroTitulo perimetroFinalLogrTitulo "
+ " WHERE imov.id = :idImovel ";
retorno = session.createQuery(consulta).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;
}
/**
*
*Retorna o cliente usuario apartir do id do imovel
*
* @author Fl�vio Cordeiro
* @date 08/01/2007
*
* @param idImovel
* @return
* @throws ErroRepositorioException
*/
public Cliente retornaClienteUsuario(Integer idImovel) throws ErroRepositorioException{
Cliente cliente = new Cliente();
Session session = HibernateUtil.getSession();
String consulta = null;
Object[] objetoCliente = null;
Collection colecaoCliente = null;
try {
consulta = "select cliente.clie_id as idCliente,"
+ " cliente.clie_nmcliente as nomeCliente"
+ " from cadastro.cliente_imovel clienteImovel"
+ " inner join cadastro.cliente cliente on cliente.clie_id = clienteImovel.clie_id"
+ " where clienteImovel.imov_id ="
+ idImovel
+ " and clienteImovel.crtp_id = "
+ ClienteRelacaoTipo.USUARIO
+ " and clienteImovel.clim_dtrelacaofim is null";
colecaoCliente = session.createSQLQuery(consulta)
.addScalar("idCliente", Hibernate.INTEGER)
.addScalar("nomeCliente", Hibernate.STRING)
.list();
objetoCliente = (Object[])colecaoCliente.iterator().next();
if(objetoCliente[0] != null){
cliente.setId((Integer)objetoCliente[0]);
}
if(objetoCliente[1] != null){
cliente.setNome((String)objetoCliente[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 cliente;
}
/**
*
* Retorna os clientes e suas rela��es tipos a partir do id do imovel
*
* @author S�vio Luiz
* @date 22/01/2007
*
* @param idImovel
* @return
* @throws ErroRepositorioException
*/
public Collection retornaClientesRelacao(Integer idImovel) throws ErroRepositorioException{
Session session = HibernateUtil.getSession();
String consulta = null;
Collection colecao = null;
try {
consulta = "select cliente.clie_id as idCliente "
+ " from cadastro.cliente_imovel clienteImovel"
+ " inner join cadastro.cliente cliente on cliente.clie_id = clienteImovel.clie_id"
+ " where clienteImovel.imov_id ="
+ idImovel
+ " and clienteImovel.crtp_id = "
+ ClienteRelacaoTipo.PROPRIETARIO
+ " and clienteImovel.clim_dtrelacaofim is null";
colecao = session.createSQLQuery(consulta)
.addScalar("idCliente", 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 colecao;
}
/**
*
* Retorna o cliente usu�rio
*
* @author S�vio Luiz
* @date 22/01/2007
*
* @param idImovel
* @return
* @throws ErroRepositorioException
*/
public Integer retornaIdClienteUsuario(Integer idImovel) throws ErroRepositorioException{
Session session = HibernateUtil.getSession();
String consulta = null;
Integer id = null;
try {
consulta = "select cliente.clie_id as idCliente "
+ " from cadastro.cliente_imovel clienteImovel"
+ " inner join cadastro.cliente cliente on cliente.clie_id = clienteImovel.clie_id"
+ " where clienteImovel.imov_id ="
+ idImovel
+ " and clienteImovel.crtp_id = "
+ ClienteRelacaoTipo.USUARIO
+ " and clienteImovel.clim_dtrelacaofim is null";
id = (Integer)session.createSQLQuery(consulta)
.addScalar("idCliente", 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 id;
}
/**
*
* Retorna o cliente usu�rio
*
* @author S�vio Luiz
* @date 04/04/2007
*
* @param idImovel
* @return
* @throws ErroRepositorioException
*/
public Integer retornaIdClienteResponsavel(Integer idImovel) throws ErroRepositorioException{
Session session = HibernateUtil.getSession();
String consulta = null;
Integer id = null;
try {
consulta = "select cliente.clie_id as idCliente "
+ " from cadastro.cliente_imovel clienteImovel"
+ " inner join cadastro.cliente cliente on cliente.clie_id = clienteImovel.clie_id"
+ " where clienteImovel.imov_id ="
+ idImovel
+ " and clienteImovel.crtp_id = "
+ ClienteRelacaoTipo.RESPONSAVEL
+ " and clienteImovel.clim_dtrelacaofim is null";
id = (Integer)session.createSQLQuery(consulta)
.addScalar("idCliente", 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 id;
}
/**
*
* Retorna o tipo da rela��o do cliente com indicador nome conta
*
* @author Rafael Corr�a
* @date 17/05/2007
*
* @param idImovel
* @return
* @throws ErroRepositorioException
*/
public Integer retornaTipoRelacaoClienteImovelNomeConta(Integer idImovel) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta = null;
Integer idRelacaoTipo = null;
try {
consulta = "select crtp.id "
+ " from ClienteImovel clienteImovel"
+ " inner join clienteImovel.clienteRelacaoTipo crtp "
+ " where clienteImovel.imovel.id = :idImovel"
+ " and clienteImovel.indicadorNomeConta = 1 "
+ " and clienteImovel.dataFimRelacao is null";
idRelacaoTipo = (Integer) session.createQuery(consulta).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 idRelacaoTipo;
}
/**
* Pesquisa o rg do cliente do parcelamento a partir do idParcelamento
* Autor: Vivianne Sousa
* Data: 20/06/2007
*/
public Object[] pesquisarDadosClienteDoParcelamentoRelatorioParcelamento(Integer idParcelamento)
throws ErroRepositorioException {
Object[] retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "select orgaoExpedidorRg.descricao, unidadeFederacao.sigla, cliente.rg "
+ "from Parcelamento parcelamento "
+ "left join parcelamento.cliente cliente "
+ "left join cliente.orgaoExpedidorRg orgaoExpedidorRg "
+ "left join cliente.unidadeFederacao unidadeFederacao "
+ "where parcelamento.id = :idParcelamento";
retorno = (Object[]) session.createQuery(consulta).setInteger(
"idParcelamento", idParcelamento).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 cliente usu�rio
*
* @author S�vio Luiz
* @date 04/04/2007
*
* @param idImovel
* @return
* @throws ErroRepositorioException
*/
public Integer retornaIdClienteResponsavelIndicadorEnvioConta(Integer idImovel) throws ErroRepositorioException{
Session session = HibernateUtil.getSession();
String consulta = null;
Integer id = null;
try {
consulta = "select cliente.clie_id as idCliente "
+ " from cadastro.cliente_imovel clienteImovel"
+ " inner join cadastro.cliente cliente on cliente.clie_id = clienteImovel.clie_id"
+ " inner join cadastro.imovel imovel on imovel.imov_id = clienteImovel.imov_id"
+ " where imovel.imov_id ="
+ idImovel
+ " and (imovel.icte_id = :indicadorEnvioResponsavel or imovel.icte_id = :indicadorEnvioResponsavelNaoPagavel) "
+ "and clienteImovel.crtp_id = "
+ ClienteRelacaoTipo.RESPONSAVEL
+ " and clienteImovel.clim_dtrelacaofim is null";
id = (Integer)session.createSQLQuery(consulta)
.addScalar("idCliente", Hibernate.INTEGER)
.setInteger("indicadorEnvioResponsavel",ImovelContaEnvio.ENVIAR_CLIENTE_RESPONSAVEL)
.setInteger("indicadorEnvioResponsavelNaoPagavel",ImovelContaEnvio.NAO_PAGAVEL_IMOVEL_PAGAVEL_RESPONSAVEL)
.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 id;
}
/**
* Pesquisa o codigo da rota e o sequencia da rota
* apartir do codigo do cliente
*
* @author Rafael Pinto
* @date 19/09/2007
*
* @throws ErroRepositorioException
* @return Object[3] onde :
*
* Object[0]=id localidade
* Object[1]=codigo do setor
* Object[2]=codigo da rota
* Object[2]=sequencial
*/
public Object[] pesquisarCodigoSequencialRotaPorUsuario(Integer idCliente)
throws ErroRepositorioException {
Object[] retorno = null;
String consulta = "";
// obt�m a sess�o
Session session = HibernateUtil.getSession();
try {
consulta = "SELECT local.id,"
+ "setor.codigo,"
+ "rota.codigo,"
+ "imov.numeroSequencialRota "
+ "FROM ClienteImovel clienteImovel "
+ "LEFT JOIN FETCH clienteImovel.cliente cliente "
+ "LEFT JOIN FETCH clienteImovel.clienteRelacaoTipo clienteRelacao "
+ "LEFT JOIN FETCH clienteImovel.imovel imov "
+ "LEFT JOIN FETCH imov.quadra qu "
+ "LEFT JOIN FETCH imov.setorComercial setor "
+ "LEFT JOIN FETCH imov.localidade local "
+ "LEFT JOIN FETCH qu.rota rota "
+ "WHERE cliente.id = :idCliente "
+ "AND clienteRelacao.id = :relacao "
+ "AND clienteImovel.dataFimRelacao is null";
retorno = (Object[]) session.createQuery(consulta).
setInteger("idCliente", idCliente).
setInteger("relacao", ClienteRelacaoTipo.USUARIO).
setMaxResults(1).
uniqueResult();
// erro no hibernate
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
// retorna
return retorno;
}
/**
*
*Retorna o cliente proprietario a partir do id do imovel
*
* @author Vinicius Medeiros
* @date 29/08/2008
*
* @param idImovel
* @return
* @throws ErroRepositorioException
*/
public Cliente retornaClienteProprietario(Integer idImovel) throws ErroRepositorioException{
Cliente cliente = new Cliente();
Session session = HibernateUtil.getSession();
String consulta = null;
Object[] objetoCliente = null;
Collection colecaoCliente = null;
try {
consulta = "select cliente.clie_id as idCliente,"
+ " cliente.clie_nmcliente as nomeCliente"
+ " from cadastro.cliente_imovel clienteImovel"
+ " inner join cadastro.cliente cliente on cliente.clie_id = clienteImovel.clie_id"
+ " where clienteImovel.imov_id ="
+ idImovel
+ " and clienteImovel.crtp_id = "
+ ClienteRelacaoTipo.PROPRIETARIO
+ " and clienteImovel.clim_dtrelacaofim is null";
colecaoCliente = session.createSQLQuery(consulta)
.addScalar("idCliente", Hibernate.INTEGER)
.addScalar("nomeCliente", Hibernate.STRING)
.list();
objetoCliente = (Object[])colecaoCliente.iterator().next();
if(objetoCliente[0] != null){
cliente.setId((Integer)objetoCliente[0]);
}
if(objetoCliente[1] != null){
cliente.setNome((String)objetoCliente[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 cliente;
}
/**
* [UC0014] Manter Im�vel
* [FS0017] Registra Fim de Rela��o do(s) Cliente(s) com Im�vel
*
* @author Ana Maria
* @date 13/10/2008
*
* @return Collection
* @throws ControladorException
*/
public Collection<ClienteImovel> pesquisarClienteImovel(Integer idImovel) throws ErroRepositorioException {
Collection<ClienteImovel> retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT clienteImovel "
+ "from ClienteImovel clienteImovel "
+ " left join fetch clienteImovel.clienteRelacaoTipo relacao "
+ " inner join fetch clienteImovel.cliente cliente "
+ " inner join fetch cliente.clienteTipo tipo "
+ "where clienteImovel.imovel.id = :idImovel "
+ "and clienteImovel.dataFimRelacao is null ";
retorno = session.createQuery(consulta)
.setInteger("idImovel", idImovel.intValue())
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* EMITIR CONTAS CAEMA
*
* Pesquisa os Clientes Im�veis pelo id do Im�vel cujo cliente seja o responsavel pela conta
*
* Autor: Tiago Moreno
*
* Data: 29/10/2008
*/
/**
* autor: Adriana Muniz
* Data: 24/05/2011
* Adi��o da condi��o que limita o retorno apenas de cliente que ainda tenham vinculo com o im�vel.*/
public Collection pesquisarClienteImovelResponsavelConta(
Integer idImovel) throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT clienteImovel "
+ " FROM ClienteImovel clienteImovel "
+ " INNER JOIN FETCH clienteImovel.cliente cliente "
+ " INNER JOIN FETCH clienteImovel.imovel imov "
+ " WHERE imov.id = :idImovel AND clienteImovel.indicadorNomeConta = 1"
+ " AND clienteImovel.dataFimRelacao is null ";
retorno = session.createQuery(consulta).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;
}
/**
*
* Pesquisar Cliente Imovel Atualiza��o Cadastral
*
* @author Ana Maria
* @date 24/10/2008
*
* @param idCliente
* @throws ErroRepositorioException
*/
public Collection pesquisarClienteImovelAtualizacaoCadastral(Integer idImovel)
throws ErroRepositorioException{
Collection colecaoClienteImovel = new ArrayList();
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = " SELECT cliente"
+ " FROM ClienteAtualizacaoCadastral cliente"
+ " WHERE cliente.idImovel = :idImovel";
colecaoClienteImovel = session.createQuery(consulta).setInteger("idImovel",
idImovel.intValue()).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return colecaoClienteImovel;
}
/**
* < <Descri��o do m�todo>>
*
* @param imovel
* Descri��o do par�metro
*
* @return Descri��o do retorno
* @exception ErroRepositorioException
* Descri��o da exce��o
*/
public Integer pesquisarEsferaPoderClienteImovelResponsavel(Integer imovel)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select ep.id "
+ "from "
+ "ClienteImovel ci "
+ "inner join ci.cliente c "
+ "inner join c.clienteTipo.esferaPoder ep "
+ "where ci.imovel.id = :imovel "
+ "and ci.clienteRelacaoTipo.id = 3 and ci.dataFimRelacao is null ";
retorno = (Integer) session.createQuery(consulta).setInteger("imovel",
imovel.intValue()).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;
}
/**
* @author Daniel Alves
* @date 02/09/2010
* @param idClienteImovel
* @throws ErroRepositorioException
*/
public void atualizarIndicadorNomeContaClienteImovel(int idClienteImovel) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
try {
String
consulta = "UPDATE gcom.cadastro.cliente.ClienteImovel " +
"SET indicadorNomeConta = 1 " +
"WHERE id = " + idClienteImovel ;
session.createQuery(consulta).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);
}
}
/**
*
* Retorna o cliente usuario apartir do id do imovel
*
* @author Mariana Victor
* @date 17/01/2011
*
* @param idImovel
* @return
* @throws ErroRepositorioException
*/
public Cliente retornaDadosClienteUsuario(Integer idImovel) throws ErroRepositorioException {
Cliente cliente = new Cliente();
Session session = HibernateUtil.getSession();
String consulta = null;
Object[] objetoCliente = null;
Collection colecaoCliente = null;
try {
consulta = "select cliente.clie_id as idCliente,"
+ " cliente.clie_nmcliente as nomeCliente,"
+ " cliente.clie_nncpf as cpfCliente, "
+ " cliente.clie_nncnpj as cnpjCliente, "
+ " cliente.clie_icusonomefantasiaconta as indicadorNMFantasiaConta, "
+ " cliente.clie_nmabreviado as nomeAbreviado, "
+ " cliente.clie_nnrg as numRG,"
+ " orrg.oerg_dsabreviado as orgaoExp, "
+ " unfe.unfe_dsufsigla as unidadeFed "
+ " from cadastro.cliente_imovel clienteImovel"
+ " inner join cadastro.cliente cliente on cliente.clie_id = clienteImovel.clie_id"
+ " left join cadastro.orgao_expedidor_rg orrg on orrg.oerg_id = cliente.oerg_id "
+ " left join cadastro.unidade_federacao unfe on unfe.unfe_id = cliente.unfe_id "
+ " where clienteImovel.imov_id ="
+ idImovel
+ " and clienteImovel.crtp_id = "
+ ClienteRelacaoTipo.USUARIO
+ " and clienteImovel.clim_dtrelacaofim is null";
colecaoCliente = session.createSQLQuery(consulta)
.addScalar("idCliente", Hibernate.INTEGER)
.addScalar("nomeCliente", Hibernate.STRING)
.addScalar("cpfCliente", Hibernate.STRING)
.addScalar("cnpjCliente", Hibernate.STRING)
.addScalar("indicadorNMFantasiaConta", Hibernate.SHORT)
.addScalar("nomeAbreviado", Hibernate.STRING)
.addScalar("numRG", Hibernate.STRING)
.addScalar("orgaoExp", Hibernate.STRING)
.addScalar("unidadeFed", Hibernate.STRING)
.list();
objetoCliente = (Object[])colecaoCliente.iterator().next();
if(objetoCliente[0] != null){
cliente.setId((Integer)objetoCliente[0]);
}
if(objetoCliente[1] != null){
cliente.setNome((String)objetoCliente[1]);
}
if(objetoCliente[2] != null){
cliente.setCpf((String)objetoCliente[2]);
}
if(objetoCliente[3] != null){
cliente.setCnpj((String)objetoCliente[3]);
}
if(objetoCliente[4] != null){
cliente.setIndicadorUsoNomeFantasiaConta((Short)objetoCliente[4]);
}
if(objetoCliente[5] != null){
cliente.setNomeAbreviado((String)objetoCliente[5]);
}
if(objetoCliente[6] != null){
cliente.setRg((String)objetoCliente[6]);
}
if(objetoCliente[7] != null){
OrgaoExpedidorRg orgaoExpedidorRg = new OrgaoExpedidorRg();
orgaoExpedidorRg.setDescricaoAbreviada((String)objetoCliente[7]);
cliente.setOrgaoExpedidorRg(orgaoExpedidorRg);
}
if(objetoCliente[8] != null){
UnidadeFederacao unidadeFederacao = new UnidadeFederacao();
unidadeFederacao.setSigla((String)objetoCliente[8]);
cliente.setUnidadeFederacao(unidadeFederacao);
}
} 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 cliente;
}
/**
* [UC1213] Emitir Relatorio de Ordem de Servico de Fiscalizacao
*
*
* @author Paulo Diniz
* @date 06/08/2011
*
* @throws ErroRepositorioException
*/
public ClienteImovel pesquisarClienteImovelOSFiscalizada(
Integer idImovel) throws ErroRepositorioException {
ClienteImovel retorno = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
consulta = "SELECT clienteImovel "
+ " FROM ClienteImovel clienteImovel "
+ " INNER JOIN FETCH clienteImovel.cliente cliente "
+ " INNER JOIN FETCH clienteImovel.imovel imov "
+ " WHERE imov.id = :idImovel AND clienteImovel.clienteRelacaoTipo.id = 3 AND clienteImovel.dataFimRelacao is null ";
Collection collRetorno = session.createQuery(consulta).setInteger("idImovel",
idImovel).list();
if(collRetorno != null && !collRetorno.isEmpty()){
retorno = (ClienteImovel) collRetorno.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;
}
@SuppressWarnings("rawtypes")
public Cliente pesquisarClienteImovelTipo(Integer idCliente, Integer idImovel, Integer idTipo) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
try {
StringBuilder sql = new StringBuilder();
sql.append(" select clie")
.append(" from Cliente clie")
.append(" left join clie.clienteImoveis clim")
.append(" left join clim.imovel imov")
.append(" inner join clim.clienteRelacaoTipo tipo ")
.append(" where clie.id = :idCliente")
.append(" AND imov.id = :idImovel ")
.append(" AND clim.dataFimRelacao IS NULL ")
.append(" AND tipo.id = :idTipo");
Collection retorno = (Collection) session.createQuery(sql.toString())
.setInteger("idCliente", idCliente)
.setInteger("idImovel", idImovel)
.setInteger("idTipo", idTipo)
.list();
if (retorno.size() > 0){
return (Cliente) retorno.iterator().next();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return null;
}
/**
* [UC0671] Gerar Movimento de Inclus�o de Negativa��o [SB0005] - Gerar
* Negativa��o para o Im�vel
*/
public Short pesquisarIndicadorNegativacaoPeriodoClienteResponsavel(
Integer idImovel, Integer idClienteRelacaoTipo) throws ErroRepositorioException {
Short retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select clie.indicadorNegativacaoPeriodo "
+ "from ClienteImovel clim "
+ "inner join clim.cliente clie "
+ "where clim.imovel.id = :idImovel "
+ "and clim.clienteRelacaoTipo.id = :idClienteRelacaoTipo "
+ "and clim.dataFimRelacao is null ";
retorno = (Short) session.createQuery(consulta)
.setInteger("idImovel", idImovel)
.setInteger("idClienteRelacaoTipo", idClienteRelacaoTipo)
.setMaxResults(1).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
}