package gcom.cadastro.cliente; import gcom.cadastro.imovel.ImovelEconomia; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.tarifasocial.TarifaSocialDadoEconomia; import gcom.cadastro.tarifasocial.TarifaSocialRevisaoMotivo; import gcom.micromedicao.consumo.LigacaoTipo; import gcom.micromedicao.medicao.MedicaoTipo; import gcom.util.ErroRepositorioException; import gcom.util.HibernateUtil; import gcom.util.filtro.GeradorHQLCondicional; import gcom.util.filtro.ParametroSimples; 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 RepositorioImovelTarifaSocialHBM implements IRepositorioImovelTarifaSocial { private static IRepositorioImovelTarifaSocial instancia; /** * Constructor for the RepositorioClienteTipoHBM object */ public RepositorioImovelTarifaSocialHBM() { } /** * Retorna o valor de instancia * * @return O valor de instancia */ public static IRepositorioImovelTarifaSocial getInstancia() { if (instancia == null) { instancia = new RepositorioImovelTarifaSocialHBM(); } return instancia; } /** * 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 pesquisarImovelTarfiaSocial( FiltroClienteImovel filtroClienteImovel, Integer numeroPagina) throws ErroRepositorioException { // cria a cole��o de retorno Collection retorno = null; // obt�m a sess�o Session session = HibernateUtil.getSession(); filtroClienteImovel.adicionarParametro(new ParametroSimples("imovel.imovelPerfil",ImovelPerfil.TARIFA_SOCIAL)); filtroClienteImovel.adicionarParametro(new ParametroSimples("clienteRelacaoTipo.id",ClienteRelacaoTipo.USUARIO)); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.setorComercial"); 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.imovel.ultimaAlteracao) " + " from gcom.cadastro.cliente.ClienteImovel as clienteImovel " + " left join clienteImovel.imovel.tarifaSocialDado " + " left join clienteImovel.imovel.logradouroCep.cep " + " left join clienteImovel.imovel.quadra " + " left join clienteImovel.imovel.enderecoReferencia " + " left join clienteImovel.cliente " + " left join clienteImovel.imovel.setorComercial ", 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 a quantidade de tarifa social * @author Rafael Santos * @since 05/09/2006 * @param filtroClienteImovel * parametros para a consulta * @return Description of the Return Value * @exception ErroRepositorioException * Description of the Exception */ public int pesquisarQuantidadeImovelTarfiaSocial( FiltroClienteImovel filtroClienteImovel) throws ErroRepositorioException { // obt�m a sess�o Session session = HibernateUtil.getSession(); filtroClienteImovel.adicionarParametro(new ParametroSimples("imovel.imovelPerfil",ImovelPerfil.TARIFA_SOCIAL)); filtroClienteImovel.adicionarParametro(new ParametroSimples("clienteRelacaoTipo.id",ClienteRelacaoTipo.USUARIO)); //filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.setorComercial"); filtroClienteImovel.getColecaoCaminhosParaCarregamentoEntidades().clear(); // cria a cole��o de retorno Integer quantidade = null; try { // pesquisa a cole��o de atividades e atribui a vari�vel "retorno" quantidade = (Integer)GeradorHQLCondicional .gerarCondicionalQuery( filtroClienteImovel, "clienteImovel", "select count(distinct 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; } /** * [UC0054] - Inserir Dados Tarifa Social * * Pesquisa as Tarifas Sociais Dado Economia pelo id do Im�vel carregando a Tarifa Social Revisao Motivo * * Autor: Rafael Corr�a * * Data: 27/12/2006 */ public Collection pesquisarTarifaSocialDadoEconomia(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT tarSocDadoEconomia " + " FROM TarifaSocialDadoEconomia tarSocDadoEconomia " + " INNER JOIN FETCH tarSocDadoEconomia.imovel imov " + " LEFT JOIN FETCH tarSocDadoEconomia.tarifaSocialRevisaoMotivo tarSocRevMot " + " LEFT JOIN FETCH tarSocDadoEconomia.tarifaSocialExclusaoMotivo tarSocExcMot " + " LEFT JOIN FETCH tarSocDadoEconomia.tarifaSocialCartaoTipo tarSocCartaoTp " + " LEFT JOIN FETCH tarSocDadoEconomia.rendaTipo rendaTp " + " 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; } /** * [UC0054] - Inserir Dados Tarifa Social * * Pesquisa as Tarifas Sociais Dado Economia pelo id da Economia do Im�vel carregando a Tarifa Social Revisao Motivo * * Autor: Rafael Corr�a * * Data: 27/12/2006 */ public Collection pesquisarTarifaSocialDadoEconomiaImovelEconomia(Integer idImovelEconomia) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT tarSocDadoEconomia " + " FROM TarifaSocialDadoEconomia tarSocDadoEconomia " + " INNER JOIN FETCH tarSocDadoEconomia.imovel imov " + " LEFT JOIN FETCH tarSocDadoEconomia.imovelEconomia imovEcon " + " LEFT JOIN FETCH tarSocDadoEconomia.tarifaSocialRevisaoMotivo tarSocRevMot " + " LEFT JOIN FETCH tarSocDadoEconomia.tarifaSocialExclusaoMotivo tarSocExcMot " + " LEFT JOIN FETCH tarSocDadoEconomia.tarifaSocialCartaoTipo tarSocCartaoTp " + " LEFT JOIN FETCH tarSocDadoEconomia.rendaTipo rendaTp " + " WHERE imovEcon.id = :idImovelEconomia "; retorno = session.createQuery(consulta).setInteger("idImovelEconomia", idImovelEconomia).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 * * Verifica se o cliente usu�rio do im�vel j� est� relacionado em outro im�vel na tarifa social * * Autor: Rafael Corr�a * * Data: 02/01/2007 */ public Collection verificarClienteCadastradoTarifaSocial(Integer idCliente) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT ci.imov_id as idImovel " + " FROM cadastro.cliente_imovel ci " + " INNER JOIN " + " cadastro.imovel imov " + " on ci.imov_id = imov.imov_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imov_id = imov.imov_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMotivo " + " on tarSocDadoEcon.rtsm_id = tarSocRevMotivo.rtsm_id " + " WHERE imov.iper_id = " + ImovelPerfil.TARIFA_SOCIAL.toString() + " AND ci.clie_id = :idCliente " + " AND ci.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND ci.cifr_id is null " + " AND tarSocDadoEcon.etsm_id is null " + " AND imov.imov_qteconomia = 1 " + " AND (tarSocRevMotivo.rtsm_id is null " + " OR tarSocRevMotivo.rtsm_icpermiterecadastramento = " + TarifaSocialRevisaoMotivo.INDICADOR_PERMITE_RECADASTRAMENTO_NAO.toString() + ")" + " UNION " + " SELECT imovEcon.imov_id as idImovel " + " FROM cadastro.cliente_imovel_economia cie " + " INNER JOIN " + " cadastro.imovel_economia imovEcon " + " on cie.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.imovel imov " + " on tarSocDadoEcon.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMotivo " + " on tarSocDadoEcon.rtsm_id = tarSocRevMotivo.rtsm_id " + " WHERE imov.iper_id = " + ImovelPerfil.TARIFA_SOCIAL.toString() + " AND cie.clie_id = :idCliente " + " AND cie.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND cie.cifr_id is null " + " AND tarSocDadoEcon.etsm_id is null " + " AND (tarSocRevMotivo.rtsm_id is null " + " OR tarSocRevMotivo.rtsm_icpermiterecadastramento = " + TarifaSocialRevisaoMotivo.INDICADOR_PERMITE_RECADASTRAMENTO_NAO.toString() + ")" ; retorno = session.createSQLQuery(consulta).addScalar("idImovel", Hibernate.INTEGER).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; } /** * [UC0009] - Manter Cliente * * Verifica se o cliente usu�rio est� na tarifa social * * Autor: Rafael Corr�a * * Data: 16/02/2007 */ public Collection verificarClienteUsuarioCadastradoTarifaSocial(Integer idCliente) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT ci.imov_id as idImovel " + " FROM cadastro.cliente_imovel ci " + " INNER JOIN " + " cadastro.imovel imov " + " on ci.imov_id = imov.imov_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imov_id = imov.imov_id " + " WHERE imov.iper_id = " + ImovelPerfil.TARIFA_SOCIAL.toString() + " AND ci.clie_id = :idCliente " + " AND ci.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND ci.cifr_id is null " + " AND tarSocDadoEcon.etsm_id is null " + " AND imov.imov_qteconomia = 1 " + " UNION " + " SELECT imovEcon.imov_id as idImovel " + " FROM cadastro.cliente_imovel_economia cie " + " INNER JOIN " + " cadastro.imovel_economia imovEcon " + " on cie.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.imovel imov " + " on tarSocDadoEcon.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMotivo " + " on tarSocDadoEcon.rtsm_id = tarSocRevMotivo.rtsm_id " + " WHERE imov.iper_id = " + ImovelPerfil.TARIFA_SOCIAL.toString() + " AND cie.clie_id = :idCliente " + " AND cie.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND cie.cifr_id is null " + " AND tarSocDadoEcon.etsm_id is null "; retorno = session.createSQLQuery(consulta).addScalar("idImovel", Hibernate.INTEGER).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; } /** * [UC0069] - Manter Dados Tarifa Social * * Verifica se o cliente usu�rio do im�vel j� est� relacionado em outro im�vel na tarifa social * * Autor: Rafael Corr�a * * Data: 30/01/2007 */ public Collection verificarClienteCadastradoManterTarifaSocialUmaEconomia(Integer idCliente, Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT ci.imov_id as idImovel " + " FROM cadastro.cliente_imovel ci " + " INNER JOIN " + " cadastro.imovel imov " + " on ci.imov_id = imov.imov_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imov_id = imov.imov_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMotivo " + " on tarSocDadoEcon.rtsm_id = tarSocRevMotivo.rtsm_id " + " WHERE imov.iper_id = " + ImovelPerfil.TARIFA_SOCIAL.toString() + " AND ci.clie_id = :idCliente " + " AND ci.imov_id <> :idImovel " + " AND ci.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND ci.cifr_id is null " + " AND tarSocDadoEcon.etsm_id is null " + " AND (tarSocRevMotivo.rtsm_id is null " + " OR tarSocRevMotivo.rtsm_icpermiterecadastramento = " + TarifaSocialRevisaoMotivo.INDICADOR_PERMITE_RECADASTRAMENTO_NAO.toString() + ")" + " UNION " + " SELECT imovEcon.imov_id as idImovel " + " FROM cadastro.cliente_imovel_economia cie " + " INNER JOIN " + " cadastro.imovel_economia imovEcon " + " on cie.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.imovel imov " + " on tarSocDadoEcon.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMotivo " + " on tarSocDadoEcon.rtsm_id = tarSocRevMotivo.rtsm_id " + " WHERE imov.iper_id = " + ImovelPerfil.TARIFA_SOCIAL.toString() + " AND cie.clie_id = :idCliente " + " AND cie.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND cie.cifr_id is null " + " AND tarSocDadoEcon.etsm_id is null " + " AND (tarSocRevMotivo.rtsm_id is null " + " OR tarSocRevMotivo.rtsm_icpermiterecadastramento = " + TarifaSocialRevisaoMotivo.INDICADOR_PERMITE_RECADASTRAMENTO_NAO.toString() + ")" ; retorno = session.createSQLQuery(consulta).addScalar("idImovel", Hibernate.INTEGER).setInteger("idCliente", idCliente) .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; } /** * [UC0069] - Manter Dados Tarifa Social * * Verifica se o cliente usu�rio da economia do im�vel j� est� relacionado em outro im�vel na tarifa social * * Autor: Rafael Corr�a * * Data: 30/01/2007 */ public Collection verificarClienteCadastradoManterTarifaSocialMultiplasEconomias(Integer idCliente, Integer idImovelEconomia) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT ci.imov_id as idImovel " + " FROM cadastro.cliente_imovel ci " + " INNER JOIN " + " cadastro.imovel imov " + " on ci.imov_id = imov.imov_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imov_id = imov.imov_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMotivo " + " on tarSocDadoEcon.rtsm_id = tarSocRevMotivo.rtsm_id " + " WHERE imov.iper_id = " + ImovelPerfil.TARIFA_SOCIAL.toString() + " AND ci.clie_id = :idCliente " + " AND ci.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND imov.imov_qteconomia = 1 " + " AND ci.cifr_id is null " + " AND (tarSocRevMotivo.rtsm_id is null " + " OR tarSocRevMotivo.rtsm_icpermiterecadastramento = " + TarifaSocialRevisaoMotivo.INDICADOR_PERMITE_RECADASTRAMENTO_NAO.toString() + ")" + " UNION " + " SELECT imovEcon.imov_id as idImovel " + " FROM cadastro.cliente_imovel_economia cie " + " INNER JOIN " + " cadastro.imovel_economia imovEcon " + " on cie.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.imovel imov " + " on tarSocDadoEcon.imec_id = imovEcon.imec_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMotivo " + " on tarSocDadoEcon.rtsm_id = tarSocRevMotivo.rtsm_id " + " WHERE imov.iper_id = " + ImovelPerfil.TARIFA_SOCIAL.toString() + " AND cie.clie_id = :idCliente "; if (idImovelEconomia != null){ consulta = consulta + " AND cie.imec_id <> :idImovelEconomia "; } consulta = consulta + " AND cie.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND cie.cifr_id is null " + " AND (tarSocRevMotivo.rtsm_id is null " + " OR tarSocRevMotivo.rtsm_icpermiterecadastramento = " + TarifaSocialRevisaoMotivo.INDICADOR_PERMITE_RECADASTRAMENTO_NAO.toString() + ")" ; if (idImovelEconomia != null){ retorno = session.createSQLQuery(consulta).addScalar("idImovel", Hibernate.INTEGER).setInteger("idCliente", idCliente) .setInteger("idImovelEconomia", idImovelEconomia).list(); }else { retorno = session.createSQLQuery(consulta).addScalar("idImovel", Hibernate.INTEGER).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 * * Verifica se o mesmo cliente est� vinculado a mais de uma economia como * usu�rio * * Autor: Rafael Corr�a * * Data: 03/01/2007 */ public int pesquisarClienteImovelEconomiaCount(Integer idImovel, Integer idCliente) throws ErroRepositorioException { int retorno = 0; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT COUNT(clieImovEcon.cime_id) as contador " + " FROM cadastro.cliente_imovel_economia clieImovEcon " + " INNER JOIN " + " cadastro.imovel_economia imovEcon " + " on clieImovEcon.imec_id = imovEcon.imec_id " + " WHERE " + " clieImovEcon.clie_id = :idCliente " + " AND clieImovEcon.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND clieImovEcon.cime_dtrelacaofim is null " + " AND imovEcon.imov_id = :idImovel "; retorno = (Integer) session.createSQLQuery(consulta).addScalar( "contador", Hibernate.INTEGER).setInteger("idCliente", idCliente).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; } /** * [UC0054] - Inserir Dados Tarifa Social * * Retorna os clientes usu�rios das economias do im�vel * * Autor: Rafael Corr�a * * Data: 03/01/2007 */ public Collection pesquisarClientesUsuariosImovelEconomia(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT clieImovEcon.clie_id as idCliente " + " FROM cadastro.cliente_imovel_economia clieImovEcon " + " INNER JOIN " + " cadastro.imovel_economia imovEcon " + " on clieImovEcon.imec_id = imovEcon.imec_id " + " WHERE " + " clieImovEcon.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND imovEcon.imov_id = :idImovel "; retorno = session.createSQLQuery(consulta).addScalar( "idCliente", Hibernate.INTEGER).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 * * Verifica se o cliente usu�rio est� vinculado na tarifa social a outro * im�vel ou economia com motivo de revis�o que permita recadastramento * * Autor: Rafael Corr�a * * Data: 04/01/2007 */ public Collection pesquisarClientesUsuarioExistenteTarifaSocial(Integer idCliente) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT clieImov.imov_id as idImovel, tarSocRevMot.rtsm_dstarsocrevisaomotivo as motivoRevisao, " + " tarSocDadoEcon.tsde_id as idTarifaSocialDadoEconomia " + " FROM cadastro.cliente_imovel clieImov " + " INNER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imov_id = clieImov.imov_id " + " INNER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMot " + " on tarSocRevMot.rtsm_id = tarSocDadoEcon.rtsm_id " + " WHERE " + " clieImov.clie_id = :idCliente " + " AND clieImov.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND clieImov.clim_dtrelacaofim is null " + " AND tarSocRevMot.rtsm_icpermiterecadastramento = " + TarifaSocialRevisaoMotivo.INDICADOR_PERMITE_RECADASTRAMENTO_SIM.toString() + " AND tarSocDadoEcon.etsm_id is null " + " UNION " + " SELECT imovEcon.imov_id as idImovel, tarSocRevMot.rtsm_dstarsocrevisaomotivo as motivoRevisao, " + " tarSocDadoEcon.tsde_id as idTarifaSocialDadoEconomia " + " FROM cadastro.cliente_imovel_economia clieImovEcon " + " INNER JOIN " + " cadastro.imovel_economia imovEcon " + " on imovEcon.imec_id = clieImovEcon.imec_id " + " INNER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on tarSocDadoEcon.imec_id = imovEcon.imec_id " + " INNER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMot " + " on tarSocRevMot.rtsm_id = tarSocDadoEcon.rtsm_id " + " WHERE clieImovEcon.clie_id = :idCliente " + " AND clieImovEcon.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND clieImovEcon.cime_dtrelacaofim is null " + " AND tarSocRevMot.rtsm_icpermiterecadastramento = " + TarifaSocialRevisaoMotivo.INDICADOR_PERMITE_RECADASTRAMENTO_SIM.toString() + " AND tarSocDadoEcon.etsm_id is null "; retorno = session.createSQLQuery(consulta).addScalar("idImovel", Hibernate.INTEGER).addScalar("motivoRevisao", Hibernate.STRING).addScalar("idTarifaSocialDadoEconomia", Hibernate.INTEGER).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 * * Verificar se existe uma OS de vistoria para um im�vel * * Autor: Rafael Corr�a * * Data: 05/01/2007 */ public Collection verificarOSVistoriaImovel(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT os.id " + " FROM OrdemServico os " + " LEFT JOIN os.imovel imov " + " LEFT JOIN os.registroAtendimento ra " + " LEFT JOIN ra.solicitacaoTipoEspecificacao step " + " LEFT JOIN step.solicitacaoTipo sotp " + " WHERE " + " os.codigoRetornoVistoria = 1 " + " AND sotp.indicadorTarifaSocial = 1 " + " AND 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; } /** * [UC0054] - Inserir Dados Tarifa Social * * Verificar se existe uma OS de vistoria para uma economia do im�vel * * Autor: Rafael Corr�a * * Data: 05/01/2007 */ public Collection verificarOSVistoriaImovelEconomia(Integer idImovelEconomia) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT os.orse_id as idOrdemServico " + " FROM atendimentopublico.ordem_servico os " + " LEFT OUTER JOIN cadastro.imovel_economia imovEcon " + " on imovEcon.imov_id = os.imov_id " + " LEFT OUTER JOIN atendimentopublico.registro_atendimento ra " + " on os.rgat_id = ra.rgat_id " + " LEFT OUTER JOIN atendimentopublico.solicitacao_tipo_espec step " + " on step.step_id = ra.step_id " + " LEFT OUTER JOIN atendimentopublico.solicitacao_tipo sotp " + " on sotp.sotp_id = step.sotp_id " + " WHERE " + " os.orse_cdretornovistoria = 1 " + " AND sotp.sotp_ictarifasocial = 1 " + " AND imovEcon.imec_id = :idImovelEconomia "; retorno = session.createSQLQuery(consulta).addScalar( "idOrdemServico", Hibernate.INTEGER).setInteger( "idImovelEconomia", idImovelEconomia).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 * * Verificar se existe um motivo de exclus�o para o cliente que n�o permite * recadastramento na tarifa social * * Autor: Rafael Corr�a * * Data: 05/01/2007 */ public Collection verificarClienteMotivoExclusaoRecadastramento(Integer idCliente) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT tarSocExcMot.etsm_icpermiterecadmtclt as icRecadastramento " + " FROM cadastro.cliente_imovel clieImov " + " INNER JOIN " + " cadastro.imovel imov " + " on clieImov.imov_id = imov.imov_id " + " INNER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on clieImov.imov_id = tarSocDadoEcon.imov_id " + " INNER JOIN " + " cadastro.tar_social_excl_motivo tarSocExcMot " + " on tarSocExcMot.etsm_id = tarSocDadoEcon.etsm_id " + " WHERE " + " clieImov.clie_id = :idCliente " + " AND clieImov.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND imov.imov_qteconomia = 1 " + " UNION " + " SELECT tarSocExcMot.etsm_icpermiterecadmtclt as icRecadastramento " + " FROM cadastro.cliente_imovel_economia clieImovEcon " + " INNER JOIN " + " cadastro.imovel_economia imovEcon " + " on clieImovEcon.imec_id = imovEcon.imec_id " + " INNER JOIN " + " cadastro.tar_social_dado_economia tarSocDadoEcon " + " on imovEcon.imec_id = tarSocDadoEcon.imec_id " + " INNER JOIN " + " cadastro.tar_social_excl_motivo tarSocExcMot " + " on tarSocExcMot.etsm_id = tarSocDadoEcon.etsm_id " + " WHERE " + " clieImovEcon.clie_id = :idCliente " + " AND clieImovEcon.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString(); retorno = session.createSQLQuery(consulta).addScalar( "icRecadastramento", Hibernate.SHORT).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 * * Retorna os cliente a partir do id do clienteImovelEconomia * * Autor: Rafael Corr�a * * Data: 08/01/2007 */ public Integer pesquisarClienteImovelEconomia(Integer idClienteImovelEconomia) throws ErroRepositorioException { Integer retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT clie.id as idCliente " + " FROM ClienteImovelEconomia clieImovEcon " + " INNER JOIN " + " clieImovEcon.cliente clie " + " WHERE " + " clieImovEcon.id = :idClienteImovelEconomia "; retorno = (Integer) session.createQuery(consulta).setInteger( "idClienteImovelEconomia", idClienteImovelEconomia) .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; } /** * [UC0054] - Inserir Dados Tarifa Social * * Retorna a economia do im�vel a partir do id do clienteImovelEconomia * * Autor: Rafael Corr�a * * Data: 15/02/2007 */ public ImovelEconomia pesquisarImovelEconomiaPeloCliente(Integer idClienteImovelEconomia) throws ErroRepositorioException { ImovelEconomia imovelEconomia = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT imovEcon " + " FROM ClienteImovelEconomia clieImovEcon " + " INNER JOIN " + " clieImovEcon.imovelEconomia imovEcon " + " INNER JOIN FETCH imovEcon.imovelSubcategoria imovSub " + " INNER JOIN FETCH imovSub.comp_id.imovel imov " + " INNER JOIN FETCH imov.setorComercial sc " + " INNER JOIN FETCH sc.municipio muni " + " LEFT JOIN FETCH imovEcon.areaConstruidaFaixa areaConsFaixa " + " WHERE " + " clieImovEcon.id = :idClienteImovelEconomia "; imovelEconomia = (ImovelEconomia) session.createQuery(consulta).setInteger( "idClienteImovelEconomia", idClienteImovelEconomia) .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 imovelEconomia; } /** * [UC0054] - Inserir Dados Tarifa Social * * Retorno o hist�rico medi��o atual do im�vel * * Autor: Rafael Corr�a * * Data: 08/01/2007 */ public Collection pesquisarMedicaoHistoricoImovel(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT medicaoHistorico " + " FROM MedicaoHistorico medicaoHistorico " + " INNER JOIN " + " medicaoHistorico.medicaoTipo medicaoTp " + " LEFT JOIN " + " medicaoHistorico.ligacaoAgua ligAgua " + " LEFT JOIN FETCH " + " medicaoHistorico.leituraAnormalidadeFaturamento ltAnFat " + " WHERE " + " medicaoTp.id = " + MedicaoTipo.LIGACAO_AGUA.toString() + " AND " + " ligAgua.id = :idImovel " + " AND " + " medicaoHistorico.anoMesReferencia = " + " ( SELECT max(medHist.anoMesReferencia) " + " FROM MedicaoHistorico medHist " + " INNER JOIN " + " medHist.medicaoTipo medTp " + " LEFT JOIN " + " medHist.ligacaoAgua lagu " + " WHERE " + " medTp.id = " + MedicaoTipo.LIGACAO_AGUA.toString() + " AND " + " lagu.id = :idImovel ) "; retorno = (Collection) 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 * * Retorno o hist�rico de consumo atual do im�vel * * Autor: Rafael Corr�a * * Data: 08/01/2007 */ public Collection pesquisarConsumoHistoricoImovel(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT consumoHistorico " + " FROM ConsumoHistorico consumoHistorico " + " INNER JOIN " + " consumoHistorico.ligacaoTipo ligacaoTp " + " INNER JOIN " + " consumoHistorico.imovel imov " + " WHERE " + " ligacaoTp.id = " + LigacaoTipo.LIGACAO_AGUA.toString() + " AND " + " imov.id = :idImovel " + " AND " + " consumoHistorico.referenciaFaturamento = " + " ( SELECT max(consHist.referenciaFaturamento) " + " FROM ConsumoHistorico consHist " + " INNER JOIN " + " consHist.ligacaoTipo ligTp " + " INNER JOIN " + " consHist.imovel imovel " + " WHERE " + " ligTp.id = " + LigacaoTipo.LIGACAO_AGUA.toString() + " AND " + " imovel.id = :idImovel ) "; retorno = (Collection) 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; } /** * [UC0069] - Manter Dados Tarifa Social * * Pesquisa os dados da tarifa social e do cliente usu�rio * * Autor: Rafael Corr�a * * Data: 15/01/2007 */ public Collection pesquisarDadosClienteTarifaSocial(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT tarSocDadoEcon.tsde_id as idTarSocDadoEcon, clie.clie_nmcliente as nomeCliente, " + " imov.imov_dscomplementoendereco as complementoEnd, clie.clie_nncpf as cpf, " + " clie.clie_nnrg as rg, orgExpRg.oerg_dsabreviado as orgExp, " + " unidFed.unfe_dsufsigla as unidFed, tarSocDadoEcon.tsde_nncartaoprogramasocial as numCartaoProgSoc, " + " tarSocCartaoTp.ctst_id as idTipoCartao, tarSocDadoEcon.tsde_vlrendafamiliar as rendaFamiliar, " + " rendaTp.retp_id as idTipoRenda, tarSocDadoEcon.etsm_id as idMotivoExclusao, " + " tarSocCartaoTp.ctst_dstarifasocialcartaotipo as tipoCartao, tarSocDadoEcon.tsde_dtvalidadecartao as dataValidade, " + " tarSocDadoEcon.tsde_nnmesesadesao as numeroParcelas, imov.imov_nncontratoenergia as contratoEnergia, " + " tarSocDadoEcon.tsde_nnconsumoenergia as consumoMedio, imov.imov_nniptu as numeroIptu, " + " imov.imov_nnareaconstruida as areaConstruida, imov.acon_id as areaConstruidaFaixa, " + " rendaTp.retp_dsrendatipo as tipoRenda, tarSocDadoEcon.rtsm_id as idMotivoRevisao, " + " imov.imov_id as idImovel, sc.stcm_id as idSetorComercial, sc.muni_id as idMunicipio, qd.qdra_id as idQuadra, " + " tarSocDadoEcon.tsde_dtexclusao as dataExclusao, " + " tarSocDadoEcon.tsde_dtimplantacao as dataImplantacao, tarSocDadoEcon.tsde_dtrevisao as dataRevisao, " + " tarSocDadoEcon.tsde_qtrecadastramento as qtdeRecadastramento, tarSocDadoEcon.tsde_dtrecadastramento as dataRecadastramento, " + " imov.imov_nnmorador as numeroMoradores, " + " tarSocExcMot.etsm_dstarsocexclusaomotivo as motivoExclusao, tarSocRevMot.rtsm_dstarsocrevisaomotivo as motivoRevisao, " + " tarSocDadoEcon.tsde_tmultimaalteracao as ultimaAlteracao " + " FROM cadastro.tar_social_dado_economia tarSocDadoEcon " + " INNER JOIN " + " cadastro.imovel imov " + " on imov.imov_id = tarSocDadoEcon.imov_id " + " INNER JOIN " + " cadastro.setor_comercial sc " + " on sc.stcm_id = imov.stcm_id " + " INNER JOIN " + " cadastro.quadra qd " + " on qd.qdra_id = imov.qdra_id " + " INNER JOIN " + " cadastro.cliente_imovel clieImov " + " on clieImov.imov_id = tarSocDadoEcon.imov_id " + " AND clieImov.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND clieImov.clim_dtrelacaofim is null " + " INNER JOIN " + " cadastro.cliente clie " + " on clie.clie_id = clieImov.clie_id " + " LEFT OUTER JOIN " + " cadastro.orgao_expedidor_rg orgExpRg " + " on orgExpRg.oerg_id = clie.oerg_id " + " LEFT OUTER JOIN " + " cadastro.unidade_federacao unidFed " + " on unidFed.unfe_id = clie.unfe_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_cartao_tipo tarSocCartaoTp " + " on tarSocCartaoTp.ctst_id = tarSocDadoEcon.ctst_id " + " LEFT OUTER JOIN " + " cadastro.renda_tipo rendaTp " + " on rendaTp.retp_id = tarSocDadoEcon.retp_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_excl_motivo tarSocExcMot " + " on tarSocExcMot.etsm_id = tarSocDadoEcon.etsm_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMot " + " on tarSocRevMot.rtsm_id = tarSocDadoEcon.rtsm_id " + " WHERE " + " tarSocDadoEcon.imov_id = :idImovel "; retorno = (Collection) session.createSQLQuery(consulta).addScalar( "idTarSocDadoEcon", Hibernate.INTEGER).addScalar( "nomeCliente", Hibernate.STRING).addScalar( "complementoEnd", Hibernate.STRING).addScalar("cpf", Hibernate.STRING).addScalar("rg", Hibernate.STRING) .addScalar("orgExp", Hibernate.STRING).addScalar("unidFed", Hibernate.STRING).addScalar("numCartaoProgSoc", Hibernate.LONG).addScalar("idTipoCartao", Hibernate.INTEGER).addScalar("rendaFamiliar", Hibernate.BIG_DECIMAL).addScalar("idTipoRenda", Hibernate.INTEGER).addScalar("idMotivoExclusao", Hibernate.INTEGER).addScalar("tipoCartao", Hibernate.STRING).addScalar("dataValidade", Hibernate.DATE).addScalar("numeroParcelas", Hibernate.SHORT).addScalar("contratoEnergia", Hibernate.LONG).addScalar("consumoMedio", Hibernate.INTEGER).addScalar("numeroIptu", Hibernate.STRING).addScalar("areaConstruida", Hibernate.BIG_DECIMAL).addScalar( "areaConstruidaFaixa", Hibernate.INTEGER) .addScalar("tipoRenda", Hibernate.STRING).addScalar( "idMotivoRevisao", Hibernate.INTEGER).addScalar( "idImovel", Hibernate.INTEGER).addScalar( "idSetorComercial", Hibernate.INTEGER).addScalar( "idMunicipio", Hibernate.INTEGER).addScalar( "idQuadra", Hibernate.INTEGER).addScalar( "dataExclusao", Hibernate.DATE).addScalar( "dataImplantacao", Hibernate.DATE).addScalar( "dataRevisao", Hibernate.DATE).addScalar( "qtdeRecadastramento", Hibernate.SHORT).addScalar( "dataRecadastramento", Hibernate.DATE).addScalar( "numeroMoradores", Hibernate.SHORT).addScalar( "motivoExclusao", Hibernate.STRING).addScalar( "motivoRevisao", Hibernate.STRING).addScalar( "ultimaAlteracao", Hibernate.TIMESTAMP).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; } /** * [UC0069] - Manter Dados Tarifa Social * * Retorna a tarifa social a partir do seu id * * Autor: Rafael Corr�a * * Data: 16/01/2007 */ public TarifaSocialDadoEconomia pesquisarTarifaSocial(Integer idTarifaSocial) throws ErroRepositorioException { TarifaSocialDadoEconomia tarifaSocialDadoEconomia = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT tarSocDadoEcon " + " FROM TarifaSocialDadoEconomia tarSocDadoEcon " + " LEFT JOIN FETCH tarSocDadoEcon.tarifaSocialCartaoTipo tarSocCarTp " + " LEFT JOIN FETCH tarSocDadoEcon.rendaTipo rendaTp " + " LEFT JOIN FETCH tarSocDadoEcon.tarifaSocialExclusaoMotivo tarSocExcMot " + " WHERE " + " tarSocDadoEcon.id = :idTarifaSocial "; tarifaSocialDadoEconomia = (TarifaSocialDadoEconomia) session .createQuery(consulta).setInteger("idTarifaSocial", idTarifaSocial).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 tarifaSocialDadoEconomia; } /** * [UC0069] - Manter Dados Tarifa Social * * Verifica se existe tarifa social para o im�vel que n�o tenha sido * exclu�do * * Autor: Rafael Corr�a * * Data: 16/01/2007 */ public Collection pesquisarTarifaSocialImovel(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT tarSocDadoEcon.id " + " FROM TarifaSocialDadoEconomia tarSocDadoEcon " + " INNER JOIN " + " tarSocDadoEcon.imovel imov " + " WHERE " + " tarSocDadoEcon.dataExclusao is null " + " AND 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; } /** * [UC0069] - Manter Dados Tarifa Social * * Retorna os clientes das economias do im�vel * * Autor: Rafael Corr�a * * Data: 19/01/2007 */ public Collection pesquisarClientesImovelEconomiaTarifaSocial(Integer idImovelEconomia) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT clieImovEcon.clie_id as idCliente, clie.clie_nmcliente as nomeCliente, " + " crtp.crtp_id as idTipoRelacao, crtp.crtp_dsclienterelacaotipo as tipoRelacao, " + " clie.clie_nncpf as cpf, clie.clie_nnrg as rg, " + " orgExpRg.oerg_dsabreviado as orgaoExpedidor, unidFed.unfe_dsufsigla as unidadeFederacao, " + " clieImovEcon.cime_dtrelacaoinicio as dataInicioRelacao, clieImovEcon.cime_id as idClienteImovelEconomia, " + " clie.clie_nncnpj as cnpj " + " FROM cadastro.cliente_imovel_economia clieImovEcon " + " INNER JOIN " + " cadastro.cliente clie " + " on clie.clie_id = clieImovEcon.clie_id " + " INNER JOIN " + " cadastro.cliente_relacao_tipo crtp " + " on crtp.crtp_id = clieImovEcon.crtp_id " + " AND (crtp.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " OR crtp.crtp_id = " + ClienteRelacaoTipo.PROPRIETARIO.toString() + " ) " + " LEFT JOIN " + " cadastro.orgao_expedidor_rg orgExpRg " + " on orgExpRg.oerg_id = clie.oerg_id " + " LEFT JOIN " + " cadastro.unidade_federacao unidFed " + " on unidFed.unfe_id = clie.unfe_id " + " WHERE " + " clieImovEcon.imec_id = :idImovelEconomia " + " AND clieImovEcon.cime_dtrelacaofim is null "; retorno = session.createSQLQuery(consulta).addScalar("idCliente", Hibernate.INTEGER).addScalar("nomeCliente", Hibernate.STRING).addScalar("idTipoRelacao", Hibernate.INTEGER).addScalar("tipoRelacao", Hibernate.STRING).addScalar("cpf", Hibernate.STRING) .addScalar("rg", Hibernate.STRING).addScalar( "orgaoExpedidor", Hibernate.STRING).addScalar( "unidadeFederacao", Hibernate.STRING).addScalar( "dataInicioRelacao", Hibernate.DATE).addScalar( "idClienteImovelEconomia", Hibernate.INTEGER) .addScalar("cnpj", Hibernate.STRING).setInteger( "idImovelEconomia", idImovelEconomia).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; } /** * [UC0069] - Manter Dados Tarifa Social * * Retorna o id cliente usu�rio da economias do im�vel * * Autor: Rafael Corr�a * * Data: 19/01/2007 */ public Integer pesquisarClienteUsuarioImovelEconomiaTarifaSocial(Integer idImovelEconomia) throws ErroRepositorioException { Integer idClienteUsuario = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT clieImovEcon.clie_id as idCliente " + " FROM cadastro.cliente_imovel_economia clieImovEcon " + " WHERE " + " clieImovEcon.imec_id = :idImovelEconomia " + " AND clieImovEcon.crtp_id = " + ClienteRelacaoTipo.USUARIO + " AND clieImovEcon.cime_dtrelacaofim is null "; idClienteUsuario = (Integer) session.createSQLQuery(consulta) .addScalar("idCliente", Hibernate.INTEGER).setInteger( "idImovelEconomia", idImovelEconomia) .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 idClienteUsuario; } /** * [UC0069] - Manter Dados Tarifa Social * * Retorna os clientes do im�vel * * Autor: Rafael Corr�a * * Data: 19/01/2007 */ public Collection pesquisarClientesImovelTarifaSocial(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT clieImov.clie_id as idCliente, clie.clie_nmcliente as nomeCliente, " + " crtp.crtp_id as idTipoRelacao, crtp.crtp_dsclienterelacaotipo as tipoRelacao, " + " clie.clie_nncpf as cpf, clie.clie_nnrg as rg, " + " orgExpRg.oerg_dsabreviado as orgaoExpedidor, unidFed.unfe_dsufsigla as unidadeFederacao, " + " clieImov.clim_dtrelacaoinicio as dataInicioRelacao, clieImov.clim_id as idClienteImovel, " + " clie.clie_nncnpj as cnpj " + " FROM cadastro.cliente_imovel clieImov " + " INNER JOIN " + " cadastro.cliente clie " + " on clie.clie_id = clieImov.clie_id " + " INNER JOIN " + " cadastro.cliente_relacao_tipo crtp " + " on crtp.crtp_id = clieImov.crtp_id " + " AND (crtp.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " OR crtp.crtp_id = " + ClienteRelacaoTipo.PROPRIETARIO.toString() + " ) " + " LEFT JOIN " + " cadastro.orgao_expedidor_rg orgExpRg " + " on orgExpRg.oerg_id = clie.oerg_id " + " LEFT JOIN " + " cadastro.unidade_federacao unidFed " + " on unidFed.unfe_id = clie.unfe_id " + " WHERE " + " clieImov.imov_id = :idImovel " + " AND clieImov.clim_dtrelacaofim is null "; retorno = session.createSQLQuery(consulta).addScalar("idCliente", Hibernate.INTEGER).addScalar("nomeCliente", Hibernate.STRING).addScalar("idTipoRelacao", Hibernate.INTEGER).addScalar("tipoRelacao", Hibernate.STRING).addScalar("cpf", Hibernate.STRING) .addScalar("rg", Hibernate.STRING).addScalar( "orgaoExpedidor", Hibernate.STRING).addScalar( "unidadeFederacao", Hibernate.STRING).addScalar( "dataInicioRelacao", Hibernate.DATE).addScalar( "idClienteImovel", Hibernate.INTEGER).addScalar( "cnpj", Hibernate.STRING).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; } /** * [UC0069] - Manter Dados Tarifa Social * * Pesquisa o cliente pelo seu id carregando o seu tipo * * Autor: Rafael Corr�a * * Data: 22/01/2007 */ public Collection pesquisarClienteComClienteTipoTarifaSocial(Integer idCliente) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT clie.id, clie.nome, clie.cpf, " + " clie.rg, clie.cnpj, clie.dataNascimento, " + " clieTp.id, clieTp.indicadorPessoaFisicaJuridica, " + " clie.dataEmissaoRg, orgExpRg.descricaoAbreviada, " + " unidFed.sigla " + " FROM Cliente clie " + " INNER JOIN " + " clie.clienteTipo clieTp " + " LEFT JOIN " + " clie.orgaoExpedidorRg orgExpRg " + " LEFT JOIN " + " clie.unidadeFederacao unidFed " + " WHERE " + " clie.id = :idCliente "; 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; } /** * [UC0069] - Manter Dados Tarifa Social * * Pesquisa os dados da tarifa social e do cliente usu�rio para cada economia * * Autor: Rafael Corr�a * * Data: 25/01/2007 */ public Collection pesquisarDadosClienteEconomiaTarifaSocial(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { /* consulta = "SELECT tarSocDadoEcon.tsde_id as idTarSocDadoEcon, clie.clie_nmcliente as nomeCliente, " + " imovEcon.imec_dscomplementoendereco as complementoEnd, clie.clie_nncpf as cpf, " + " clie.clie_nnrg as rg, orgExpRg.oerg_dsabreviado as orgExp, " + " unidFed.unfe_dsufsigla as unidFed, tarSocDadoEcon.tsde_nncartaoprogramasocial as numCartaoProgSoc, " + " tarSocCartaoTp.ctst_id as idTipoCartao, tarSocDadoEcon.tsde_vlrendafamiliar as rendaFamiliar, " + " rendaTp.retp_id as idTipoRenda, tarSocDadoEcon.etsm_id as idMotivoExclusao, " + " tarSocCartaoTp.ctst_dstarifasocialcartaotipo as tipoCartao, tarSocDadoEcon.tsde_dtvalidadecartao as dataValidade, " + " tarSocDadoEcon.tsde_nnmesesadesao as numeroParcelas, imovEcon.imec_nncontratoenergia as contratoEnergia, " + " tarSocDadoEcon.tsde_nnconsumoenergia as consumoMedio, imovEcon.imec_nniptu as numeroIptu, " + " imovEcon.imec_nnareaconstruida as areaConstruida, imovEcon.acon_id as areaConstruidaFaixa, " + " rendaTp.retp_dsrendatipo as tipoRenda, tarSocDadoEcon.rtsm_id as idMotivoRevisao, " + " imovEcon.imec_id as idImovelEconomia, sc.stcm_id as idSetorComercial, sc.muni_id as idMunicipio, " + " tarSocDadoEcon.tsde_dtexclusao as dataExclusao, " + " tarSocDadoEcon.tsde_dtimplantacao as dataImplantacao, tarSocDadoEcon.tsde_dtrevisao as dataRevisao, " + " tarSocDadoEcon.tsde_qtrecadastramento as qtdeRecadastramento, tarSocDadoEcon.tsde_dtrecadastramento as dataRecadastramento, " + " clie.clie_id as idCliente, imovEcon.imec_nnmorador as numeroMoradores, imovEcon.scat_id as idSubcategoria, " + " tarSocExcMot.etsm_dstarsocexclusaomotivo as motivoExclusao, tarSocRevMot.rtsm_dstarsocrevisaomotivo as motivoRevisao, " + " tarSocDadoEcon.tsde_tmultimaalteracao as ultimaAlteracao " + " FROM cadastro.tar_social_dado_economia tarSocDadoEcon " + " LEFT JOIN " + " cadastro.imovel_economia imovEcon " + " on imovEcon.imec_id = tarSocDadoEcon.imec_id " + " LEFT JOIN " + " cadastro.imovel imov " + " on imov.imov_id = imovEcon.imov_id " + " LEFT JOIN " + " cadastro.setor_comercial sc " + " on sc.stcm_id = imov.stcm_id " + " LEFT JOIN " + " cadastro.cliente_imovel_economia clieImovEcon " + " on clieImovEcon.imec_id = tarSocDadoEcon.imec_id " + " AND clieImovEcon.crtp_id = " + ClienteRelacaoTipo.USUARIO.toString() + " AND clieImovEcon.cime_dtrelacaofim is null " + " LEFT JOIN " + " cadastro.cliente clie " + " on clie.clie_id = clieImovEcon.clie_id " + " LEFT OUTER JOIN " + " cadastro.orgao_expedidor_rg orgExpRg " + " on orgExpRg.oerg_id = clie.oerg_id " + " LEFT OUTER JOIN " + " cadastro.unidade_federacao unidFed " + " on unidFed.unfe_id = clie.unfe_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_cartao_tipo tarSocCartaoTp " + " on tarSocCartaoTp.ctst_id = tarSocDadoEcon.ctst_id " + " LEFT OUTER JOIN " + " cadastro.renda_tipo rendaTp " + " on rendaTp.retp_id = tarSocDadoEcon.retp_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_excl_motivo tarSocExcMot " + " on tarSocExcMot.etsm_id = tarSocDadoEcon.etsm_id " + " LEFT OUTER JOIN " + " cadastro.tar_social_rev_motivo tarSocRevMot " + " on tarSocRevMot.rtsm_id = tarSocDadoEcon.rtsm_id " + " WHERE " + " tarSocDadoEcon.imov_id = :idImovel "*/ consulta = "SELECT \n" + " tarSocDadoEcon.tsde_id as idTarSocDadoEcon, \n" + " case when ( CLIEMAISUMECON.CLIE_ID is not null ) then CLIEMAISUMECON.CLIE_NMCLIENTE else CLIEUMAECONOMIA.CLIE_NMCLIENTE end as nomeCliente, \n" + " case when ( CLIEMAISUMECON.CLIE_ID is not null ) then CLIECONMAISUMAECON.IMEC_DSCOMPLEMENTOENDERECO else IMO.IMOV_DSCOMPLEMENTOENDERECO end as complementoEnd, \n" + " case when ( CLIEMAISUMECON.CLIE_ID is not null ) then CLIEMAISUMECON.CLIE_NNCPF else CLIEUMAECONOMIA.CLIE_NNCPF end as cpf, \n" + " case when ( CLIEMAISUMECON.CLIE_ID is not null ) then CLIEMAISUMECON.CLIE_NNRG else CLIEUMAECONOMIA.CLIE_NNRG end as rg, \n" + " case when ( CLIEMAISUMECON.CLIE_ID is not null ) then orgExpRgUMAECONOMIA.OERG_DSORGAOEXPEDIDORRG else orgExpRgMAISUMAECONOMIA.OERG_DSORGAOEXPEDIDORRG end as orgExp, \n" + " case when ( CLIEMAISUMECON.CLIE_ID is not null ) then unidFedMAISUMAECONOMIA.UNFE_DSUFSIGLA else unidFedUMAECONOMIA.UNFE_DSUFSIGLA end as unidFed, \n" + " tarSocDadoEcon.tsde_nncartaoprogramasocial as numCartaoProgSoc, \n" + " tarSocCartaoTp.ctst_id as idTipoCartao, \n" + " tarSocDadoEcon.tsde_vlrendafamiliar as rendaFamiliar, \n" + " rendaTp.retp_id as idTipoRenda, \n" + " tarSocDadoEcon.etsm_id as idMotivoExclusao, \n" + " tarSocCartaoTp.ctst_dstarifasocialcartaotipo as tipoCartao, \n" + " tarSocDadoEcon.tsde_dtvalidadecartao as dataValidade, \n" + " tarSocDadoEcon.tsde_nnmesesadesao as numeroParcelas, \n" + " CLIECONMAISUMAECON.imec_nncontratoenergia as contratoEnergia, \n" + " tarSocDadoEcon.tsde_nnconsumoenergia as consumoMedio, \n" + " CLIECONMAISUMAECON.imec_nniptu as numeroIptu, \n" + " CLIECONMAISUMAECON.imec_nnareaconstruida as areaConstruida, \n" + " CLIECONMAISUMAECON.acon_id as areaConstruidaFaixa, \n" + " rendaTp.retp_dsrendatipo as tipoRenda, \n" + " tarSocDadoEcon.rtsm_id as idMotivoRevisao, \n" + " CLIECONMAISUMAECON.imec_id as idImovelEconomia, \n" + " sc.stcm_id as idSetorComercial, \n" + " sc.muni_id as idMunicipio, \n" + " tarSocDadoEcon.tsde_dtexclusao as dataExclusao, \n" + " tarSocDadoEcon.tsde_dtimplantacao as dataImplantacao, \n" + " tarSocDadoEcon.tsde_dtrevisao as dataRevisao, \n" + " tarSocDadoEcon.tsde_qtrecadastramento as qtdeRecadastramento, \n" + " tarSocDadoEcon.tsde_dtrecadastramento as dataRecadastramento, \n" + " case when ( CLIEMAISUMECON.CLIE_ID is not null ) then CLIEMAISUMECON.CLIE_ID else CLIEUMAECONOMIA.CLIE_ID end as idCliente, \n" + " CLIECONMAISUMAECON.imec_nnmorador as numeroMoradores, \n" + " CLIECONMAISUMAECON.scat_id as idSubcategoria, \n" + " tarSocExcMot.etsm_dstarsocexclusaomotivo as motivoExclusao, \n" + " tarSocRevMot.rtsm_dstarsocrevisaomotivo as motivoRevisao, \n" + " tarSocDadoEcon.tsde_tmultimaalteracao as ultimaAlteracao \n" + "FROM \n" + " cadastro.tar_social_dado_economia tarSocDadoEcon \n" + " INNER JOIN CADASTRO.IMOVEL IMO ON ( IMO.IMOV_ID = tarSocDadoEcon.IMOV_ID ) \n" + " INNER JOIN CADASTRO.SETOR_COMERCIAL SC ON ( SC.STCM_ID = IMO.STCM_ID ) \n" + " -- CLIENTE PARA UMA ECONOMIA \n" + " LEFT JOIN CADASTRO.CLIENTE_IMOVEL CLIIMOUMAECONOMIA ON ( CLIIMOUMAECONOMIA.CRTP_ID = 2 AND CIFR_ID IS NULL AND CLIIMOUMAECONOMIA.IMOV_ID = IMO.IMOV_ID ) \n" + " LEFT JOIN CADASTRO.CLIENTE CLIEUMAECONOMIA ON ( CLIEUMAECONOMIA.CLIE_ID = CLIIMOUMAECONOMIA.CLIE_ID ) \n" + " LEFT JOIN cadastro.orgao_expedidor_rg orgExpRgUMAECONOMIA on ( orgExpRgUMAECONOMIA.oerg_id = CLIEUMAECONOMIA.oerg_id ) \n" + " LEFT JOIN cadastro.unidade_federacao unidFedUMAECONOMIA on ( unidFedUMAECONOMIA.unfe_id = CLIEUMAECONOMIA.unfe_id ) \n" + " -- CLIENTE PARA MAIS DE UMA ECONOMIA \n" + " LEFT JOIN CADASTRO.IMOVEL_ECONOMIA CLIECONMAISUMAECON ON ( IMO.IMOV_ID = CLIECONMAISUMAECON.IMOV_ID ) \n" + " LEFT JOIN CADASTRO.CLIENTE_IMOVEL_ECONOMIA CLIIMOECOMAISUMAECON ON ( CLIIMOECOMAISUMAECON.CRTP_ID = 2 AND CLIIMOECOMAISUMAECON.CIFR_ID IS NULL AND CLIIMOECOMAISUMAECON.IMEC_ID = CLIECONMAISUMAECON.IMEC_ID ) \n" + " LEFT JOIN CADASTRO.CLIENTE CLIEMAISUMECON ON ( CLIEMAISUMECON.CLIE_ID = CLIIMOECOMAISUMAECON.CLIE_ID ) \n" + " LEFT JOIN cadastro.orgao_expedidor_rg orgExpRgMAISUMAECONOMIA on ( orgExpRgMAISUMAECONOMIA.oerg_id = CLIEMAISUMECON.oerg_id ) \n" + " LEFT JOIN cadastro.unidade_federacao unidFedMAISUMAECONOMIA on ( unidFedMAISUMAECONOMIA.unfe_id = CLIEMAISUMECON.unfe_id ) \n" + " LEFT JOIN cadastro.tar_social_cartao_tipo tarSocCartaoTp on ( tarSocCartaoTp.ctst_id = tarSocDadoEcon.ctst_id ) \n" + " LEFT JOIN cadastro.tar_social_excl_motivo tarSocExcMot on ( tarSocExcMot.etsm_id = tarSocDadoEcon.etsm_id ) \n" + " LEFT JOIN cadastro.tar_social_rev_motivo tarSocRevMot on ( tarSocRevMot.rtsm_id = tarSocDadoEcon.rtsm_id ) \n" + " LEFT OUTER JOIN cadastro.renda_tipo rendaTp on ( rendaTp.retp_id = tarSocDadoEcon.retp_id ) \n" + "WHERE \n" + " tarSocDadoEcon.imov_id = :idImovel "; retorno = (Collection) session.createSQLQuery(consulta).addScalar( "idTarSocDadoEcon", Hibernate.INTEGER).addScalar( "nomeCliente", Hibernate.STRING).addScalar( "complementoEnd", Hibernate.STRING).addScalar("cpf", Hibernate.STRING).addScalar("rg", Hibernate.STRING) .addScalar("orgExp", Hibernate.STRING).addScalar("unidFed", Hibernate.STRING).addScalar("numCartaoProgSoc", Hibernate.LONG).addScalar("idTipoCartao", Hibernate.INTEGER).addScalar("rendaFamiliar", Hibernate.BIG_DECIMAL).addScalar("idTipoRenda", Hibernate.INTEGER).addScalar("idMotivoExclusao", Hibernate.INTEGER).addScalar("tipoCartao", Hibernate.STRING).addScalar("dataValidade", Hibernate.DATE).addScalar("numeroParcelas", Hibernate.SHORT).addScalar("contratoEnergia", Hibernate.LONG).addScalar("consumoMedio", Hibernate.INTEGER).addScalar("numeroIptu", Hibernate.STRING).addScalar("areaConstruida", Hibernate.BIG_DECIMAL).addScalar( "areaConstruidaFaixa", Hibernate.INTEGER) .addScalar("tipoRenda", Hibernate.STRING).addScalar( "idMotivoRevisao", Hibernate.INTEGER).addScalar( "idImovelEconomia", Hibernate.INTEGER).addScalar( "idSetorComercial", Hibernate.INTEGER).addScalar( "idMunicipio", Hibernate.INTEGER).addScalar( "dataExclusao", Hibernate.DATE).addScalar( "dataImplantacao", Hibernate.DATE).addScalar( "dataRevisao", Hibernate.DATE).addScalar( "qtdeRecadastramento", Hibernate.SHORT).addScalar( "dataRecadastramento", Hibernate.DATE).addScalar( "idCliente", Hibernate.INTEGER).addScalar( "numeroMoradores", Hibernate.SHORT).addScalar( "idSubcategoria", Hibernate.INTEGER).addScalar( "motivoExclusao", Hibernate.STRING).addScalar( "motivoRevisao", Hibernate.STRING).addScalar( "ultimaAlteracao", Hibernate.TIMESTAMP).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; } /** * [UC0069] - Manter Dados Tarifa Social * * Pesquisa a economia do im�vel pelo seu id * * Autor: Rafael Corr�a * * Data: 01/02/2007 */ public ImovelEconomia pesquisarImovelEconomiaPeloId(Integer idImovelEconomia) throws ErroRepositorioException { ImovelEconomia imovelEconomia = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "SELECT imovEcon " + " FROM ImovelEconomia imovEcon " + " WHERE " + " imovEcon.id = :idImovelEconomia "; imovelEconomia = (ImovelEconomia) session.createQuery(consulta).setInteger("idImovelEconomia", idImovelEconomia).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 imovelEconomia; } /** * [UC0054] - Inserir Dados Tarifa Social * * Seta o indicador do nome da conta para 2 nos clientes propriet�rio e * usu�rios * * Autor: Rafael Corr�a * * Data: 01/02/2007 */ public void atualizarNomeContaClienteImovelTarifaSocial(Integer idImovel) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); String update = null; try { update = "UPDATE ClienteImovel clieImov " + " SET clieImov.indicadorNomeConta = 2 " + " WHERE clieImov.imovel.id = :idImovel " + " AND clieImov.dataFimRelacao is null " + " AND (clieImov.clienteRelacaoTipo.id = " + ClienteRelacaoTipo.PROPRIETARIO + " OR clieImov.clienteRelacaoTipo.id = " + ClienteRelacaoTipo.RESPONSAVEL + ")"; session.createQuery(update).setInteger("idImovel", idImovel) .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); } } /** * [UC0054] - Inserir Dados Tarifa Social * * Autor: Vivianne Sousa * * Data: 27/10/2008 */ public Collection pesquisarImovelEconomia(Integer idImovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = " select imec " + " from ImovelEconomia imec " + " left join imec.imovelSubcategoria imsb " + " left join imsb.comp_id.imovel imov " + " left join fetch imec.tarifaSocialDadoEconomias " + " 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; } }