Subversion Repositories Integrator Subversion

Rev

Rev 265 | Rev 299 | 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();
61
                jpql.append("SELECT new br.com.ec.domain.dto.PessoaDTO(p.sequencial, p.nome, p.tipoPessoa, p.cpfCnpj) ");
62
                jpql.append("FROM Pessoa p ");
63
                jpql.append("WHERE p.cpfCnpj LIKE :cnpj ");
64
                jpql.append("ORDER BY p.cpfCnpj ");
65
                try {
66
                        return getEntityManager().createQuery(jpql.toString(), PessoaDTO.class).setParameter("cnpj", cnpj).getResultList();
67
                } catch(Exception ex) {
68
                        ex.printStackTrace();
69
                        return null;
70
                }
71
        }
72
 
73
        /************************************************************************************/
74
 
75
        /*
76
        @Override
265 espaco 77
        public Pessoa detalharPessoa(Pessoa pessoa) {
78
                StringBuilder jpql = new StringBuilder();
79
                jpql.append("SELECT p FROM Pessoa p ");
80
                jpql.append("LEFT JOIN FETCH p.papeis pp ");
81
                jpql.append("LEFT JOIN FETCH p.enderecos e ");
82
                jpql.append("LEFT JOIN FETCH p.dadosBancarios b ");
83
                jpql.append("WHERE p = :pessoa");
84
                return getEntityManager().createQuery(jpql.toString(), Pessoa.class).setParameter("pessoa", pessoa).getSingleResult();
85
        }
86
 
87
        @Override
88
        public List<Pessoa> consultarPessoasJuridicas() {
89
                try {
90
                        StringBuilder jpql = new StringBuilder();
91
                        jpql.append("SELECT p FROM Pessoa p ");
92
                        jpql.append("WHERE p.cpfCnpj != '' AND (p.nomeFantasia != '' OR p.razaoSocial != '' OR p.tipoRegimeTributario != '' OR p.inscricaoEstadual != '' OR p.inscricaoMunicipal != '') ");
93
                        return getEntityManager().createQuery(jpql.toString(), Pessoa.class).getResultList();
94
                } catch (NoResultException e) {
95
                        return null;
96
                }
97
        }
98
         */
99
}