Subversion Repositories Integrator Subversion

Rev

Rev 302 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
265 espaco 1
package br.com.ec.repository.jpa;
2
 
3
import java.util.List;
4
 
297 espaco 5
import javax.persistence.Query;
6
 
265 espaco 7
import org.springframework.stereotype.Repository;
8
 
297 espaco 9
import br.com.ec.core.consulta.ParametrosConsulta;
10
import br.com.ec.core.util.VerificadorUtil;
265 espaco 11
import br.com.ec.domain.dto.PessoaDTO;
297 espaco 12
import br.com.ec.domain.dto.consulta.ParametrosConsultaPessoasDTO;
265 espaco 13
import br.com.ec.domain.model.Pessoa;
14
import br.com.ec.repository.PessoaRepository;
15
import br.com.ec.repository.SistemaAbstractRepository;
16
 
17
@Repository
18
public class PessoaRepositoryJpaImpl extends SistemaAbstractRepository<Pessoa> implements PessoaRepository {
19
 
20
        @Override
21
        protected String getColunaOrdenadora() {
22
                return "nome";
23
        }
24
 
25
        @Override
26
        protected void setarStringParametrosConsulta(StringBuilder sql, ParametrosConsulta<Pessoa> parametros) {
297 espaco 27
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPessoasDTO)parametros).getEntidade())) {
28
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaPessoasDTO)parametros).getEntidade().getNome())) {
265 espaco 29
                                sql.append("AND ");
30
                                sql.append(sqlConsultarSemAcento("e.nome"));
31
                                sql.append(" like upper(:nomePessoa) ");
32
                        }
33
                }
297 espaco 34
                /*
35
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPessoasDTO)parametros).getConsultarColaboradores())) {
36
                        if (((ParametrosConsultaPessoasDTO)parametros).getConsultarColaboradores().equals(ConstantesSEC.Pessoa.CONSULTAR_COLABORADORES_C)) {
265 espaco 37
                                sql.append("AND EXISTS (SELECT f FROM Funcionario f WHERE f.pessoa.sequencial = e.sequencial AND (f.admissao != null OR f.demissao != null)) ");
38
                        } else if (((ParametrosConsultaPessoaDTO)parametros).getConsultarColaboradores().equals(ConstantesSEC.Pessoa.CONSULTAR_COLABORADORES_ADMITIDOS_A)) {
39
                                sql.append("AND EXISTS (SELECT f FROM Funcionario f WHERE f.pessoa.sequencial = e.sequencial AND f.admissao != null AND f.demissao is null) ");
40
                        } else if (((ParametrosConsultaPessoaDTO)parametros).getConsultarColaboradores().equals(ConstantesSEC.Pessoa.CONSULTAR_COLABORADORES_DEMITIDOS_D)) {
41
                                sql.append("AND EXISTS (SELECT f FROM Funcionario f WHERE f.pessoa.sequencial = e.sequencial AND f.admissao != null AND f.demissao != null) ");
42
                        }
43
                }
297 espaco 44
                */
265 espaco 45
        }
46
 
47
        @Override
48
        protected void setarQueryParametrosConsulta(Query query, ParametrosConsulta<Pessoa> parametros) {
297 espaco 49
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPessoasDTO)parametros).getEntidade())) {
50
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaPessoasDTO)parametros).getEntidade().getNome())) {
51
                                query.setParameter("nomePessoa", "%" + removerAcentuacao(((ParametrosConsultaPessoasDTO)parametros).getEntidade().getNome()) + "%");
265 espaco 52
                        }
53
                }
54
        }
55
 
297 espaco 56
        /************************************************************************************/
57
 
265 espaco 58
        @Override
297 espaco 59
        public List<PessoaDTO> consultarPessoasJuridicas(String cnpj) {
60
                StringBuilder jpql = new StringBuilder();
299 espaco 61
                jpql.append("SELECT new br.com.ec.domain.dto.PessoaDTO(");
62
                jpql.append(PessoaDTO.CONSULTA_DTO);
63
                jpql.append(") FROM Pessoa e ");
64
                jpql.append("WHERE e.cpfCnpj LIKE :cnpj ");
65
                jpql.append("ORDER BY e.cpfCnpj ");
297 espaco 66
                try {
67
                        return getEntityManager().createQuery(jpql.toString(), PessoaDTO.class).setParameter("cnpj", cnpj).getResultList();
68
                } catch(Exception ex) {
69
                        ex.printStackTrace();
70
                        return null;
71
                }
72
        }
73
 
299 espaco 74
        @Override
75
        public Pessoa consultarPessoaPorCpfOuCpnj(String cpfCnpj) {
76
                StringBuilder jpql = new StringBuilder();
77
                jpql.append("SELECT e FROM Pessoa e ");
302 espaco 78
                jpql.append("LEFT JOIN FETCH e.enderecos en ");
299 espaco 79
                jpql.append("WHERE e.cpfCnpj LIKE :cpfCnpj ");
80
                try {
81
                        return getEntityManager().createQuery(jpql.toString(), Pessoa.class).setParameter("cpfCnpj", cpfCnpj).getSingleResult();
82
                } catch(Exception ex) {
83
                        ex.printStackTrace();
84
                        return null;
85
                }
86
        }
87
 
88
        @Override
89
        public Pessoa detalharPessoa(Long sequencialPessoa) {
90
                StringBuilder jpql = new StringBuilder();
468 blopes 91
                jpql.append("SELECT DISTINCT e FROM Pessoa e ");
302 espaco 92
                jpql.append("LEFT JOIN FETCH e.enderecos en ");
468 blopes 93
//              jpql.append("LEFT JOIN FETCH e.papeis pp ");
94
//              jpql.append("LEFT JOIN FETCH e.dadosBancarios b ");
299 espaco 95
                jpql.append("WHERE e.sequencial = :sequencialPessoa");
96
                return getEntityManager().createQuery(jpql.toString(), Pessoa.class).setParameter("sequencialPessoa", sequencialPessoa).getSingleResult();
97
        }
98
 
297 espaco 99
        /************************************************************************************/
100
 
101
        /*
299 espaco 102
        /*
297 espaco 103
        @Override
299 espaco 104
        public PessoaDTO consultarPessoaDTOPorCpfOuCpnj(String cpfCnpj) {
265 espaco 105
                StringBuilder jpql = new StringBuilder();
299 espaco 106
                jpql.append("SELECT new br.com.ec.domain.dto.PessoaDTO(");
107
                jpql.append(PessoaDTO.CONSULTA_DTO_COMPLETA);
108
                jpql.append(") FROM Pessoa e ");
109
                jpql.append("WHERE e.cpfCnpj LIKE :cpfCnpj ");
110
                try {
111
                        return getEntityManager().createQuery(jpql.toString(), PessoaDTO.class).setParameter("cpfCnpj", cpfCnpj).getSingleResult();
112
                } catch(Exception ex) {
113
                        ex.printStackTrace();
114
                        return null;
115
                }
265 espaco 116
        }
117
 
118
        @Override
119
        public List<Pessoa> consultarPessoasJuridicas() {
120
                try {
121
                        StringBuilder jpql = new StringBuilder();
122
                        jpql.append("SELECT p FROM Pessoa p ");
123
                        jpql.append("WHERE p.cpfCnpj != '' AND (p.nomeFantasia != '' OR p.razaoSocial != '' OR p.tipoRegimeTributario != '' OR p.inscricaoEstadual != '' OR p.inscricaoMunicipal != '') ");
124
                        return getEntityManager().createQuery(jpql.toString(), Pessoa.class).getResultList();
125
                } catch (NoResultException e) {
126
                        return null;
127
                }
128
        }
129
         */
130
}