Subversion Repositories Integrator Subversion

Rev

Rev 297 | Rev 302 | Go to most recent revision | 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 ");
78
                jpql.append("WHERE e.cpfCnpj LIKE :cpfCnpj ");
79
                try {
80
                        return getEntityManager().createQuery(jpql.toString(), Pessoa.class).setParameter("cpfCnpj", cpfCnpj).getSingleResult();
81
                } catch(Exception ex) {
82
                        ex.printStackTrace();
83
                        return null;
84
                }
85
        }
86
 
87
        @Override
88
        public Pessoa detalharPessoa(Long sequencialPessoa) {
89
                StringBuilder jpql = new StringBuilder();
90
                jpql.append("SELECT e FROM Pessoa e ");
91
//              jpql.append("LEFT JOIN FETCH p.papeis pp ");
92
//              jpql.append("LEFT JOIN FETCH p.enderecos e ");
93
//              jpql.append("LEFT JOIN FETCH p.dadosBancarios b ");
94
                jpql.append("WHERE e.sequencial = :sequencialPessoa");
95
                return getEntityManager().createQuery(jpql.toString(), Pessoa.class).setParameter("sequencialPessoa", sequencialPessoa).getSingleResult();
96
        }
97
 
297 espaco 98
        /************************************************************************************/
99
 
100
        /*
299 espaco 101
        /*
297 espaco 102
        @Override
299 espaco 103
        public PessoaDTO consultarPessoaDTOPorCpfOuCpnj(String cpfCnpj) {
265 espaco 104
                StringBuilder jpql = new StringBuilder();
299 espaco 105
                jpql.append("SELECT new br.com.ec.domain.dto.PessoaDTO(");
106
                jpql.append(PessoaDTO.CONSULTA_DTO_COMPLETA);
107
                jpql.append(") FROM Pessoa e ");
108
                jpql.append("WHERE e.cpfCnpj LIKE :cpfCnpj ");
109
                try {
110
                        return getEntityManager().createQuery(jpql.toString(), PessoaDTO.class).setParameter("cpfCnpj", cpfCnpj).getSingleResult();
111
                } catch(Exception ex) {
112
                        ex.printStackTrace();
113
                        return null;
114
                }
265 espaco 115
        }
116
 
117
        @Override
118
        public List<Pessoa> consultarPessoasJuridicas() {
119
                try {
120
                        StringBuilder jpql = new StringBuilder();
121
                        jpql.append("SELECT p FROM Pessoa p ");
122
                        jpql.append("WHERE p.cpfCnpj != '' AND (p.nomeFantasia != '' OR p.razaoSocial != '' OR p.tipoRegimeTributario != '' OR p.inscricaoEstadual != '' OR p.inscricaoMunicipal != '') ");
123
                        return getEntityManager().createQuery(jpql.toString(), Pessoa.class).getResultList();
124
                } catch (NoResultException e) {
125
                        return null;
126
                }
127
        }
128
         */
129
}