Subversion Repositories Integrator Subversion

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.repository.jpa;

import java.util.List;

import javax.persistence.TypedQuery;

import org.springframework.stereotype.Repository;

import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.EstampaDTO;
import br.com.ec.domain.dto.TemaEstampaDTO;
import br.com.ec.domain.model.Estampa;
import br.com.ec.repository.EstampaRepository;
import br.com.ec.repository.SistemaAbstractRepository;

@Repository
public class EstampaRepositoryJpaImpl extends SistemaAbstractRepository<Estampa> implements EstampaRepository {

        @Override
        protected String getColunaOrdenadora() {
                return "descricao";
        }
       
        /*
        @Override
        protected void setarStringParametrosConsulta(StringBuilder sql, ParametrosConsulta<Pessoa> parametros) {
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPessoasDTO)parametros).getEntidade())) {
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaPessoasDTO)parametros).getEntidade().getNome())) {
                                sql.append("AND ");
                                sql.append(sqlConsultarSemAcento("e.nome"));
                                sql.append(" like upper(:nomePessoa) ");
                        }
                }
        }

        @Override
        protected void setarQueryParametrosConsulta(Query query, ParametrosConsulta<Pessoa> parametros) {
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPessoasDTO)parametros).getEntidade())) {
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaPessoasDTO)parametros).getEntidade().getNome())) {
                                query.setParameter("nomePessoa", "%" + removerAcentuacao(((ParametrosConsultaPessoasDTO)parametros).getEntidade().getNome()) + "%");
                        }
                }
        }
        */

        /************************************************************************************/
       
        @Override
        public List<EstampaDTO> consultarEstampas(TemaEstampaDTO tema) {
                StringBuilder jpql = new StringBuilder();
                jpql.append("SELECT new br.com.ec.domain.dto.EstampaDTO(");
                jpql.append(EstampaDTO.CONSULTA_DTO_COMPLETA);
                jpql.append(") FROM Estampa e ");
                jpql.append("WHERE 1=1 ");
                if (VerificadorUtil.naoEstaNulo(tema)) {
                        jpql.append("AND e.temaEstampa.sequencial LIKE :sequencialTema ");
                }
                jpql.append("ORDER BY e.temaEstampa.descricao, e.descricao ");
                try {
                        TypedQuery<EstampaDTO> query = getEntityManager().createQuery(jpql.toString(), EstampaDTO.class);
                        if (VerificadorUtil.naoEstaNulo(tema)) {
                                query.setParameter("sequencialTema", tema.getSequencial());
                        }
                        return query.getResultList();
                } catch(Exception ex) {
                        ex.printStackTrace();
                        return null;
                }
        }
       
        /*
        @Override
        public List<PessoaDTO> consultarPessoasJuridicas(String cnpj) {
                StringBuilder jpql = new StringBuilder();
                jpql.append("SELECT new br.com.ec.domain.dto.PessoaDTO(");
                jpql.append(PessoaDTO.CONSULTA_DTO);
                jpql.append(") FROM Pessoa e ");
                jpql.append("WHERE e.cpfCnpj LIKE :cnpj ");
                jpql.append("ORDER BY e.cpfCnpj ");
                try {
                        return getEntityManager().createQuery(jpql.toString(), PessoaDTO.class).setParameter("cnpj", cnpj).getResultList();
                } catch(Exception ex) {
                        ex.printStackTrace();
                        return null;
                }
        }
       
        @Override
        public Pessoa consultarPessoaPorCpfOuCpnj(String cpfCnpj) {
                StringBuilder jpql = new StringBuilder();
                jpql.append("SELECT e FROM Pessoa e ");
                jpql.append("LEFT JOIN FETCH e.enderecos en ");
                jpql.append("WHERE e.cpfCnpj LIKE :cpfCnpj ");
                try {
                        return getEntityManager().createQuery(jpql.toString(), Pessoa.class).setParameter("cpfCnpj", cpfCnpj).getSingleResult();
                } catch(Exception ex) {
                        ex.printStackTrace();
                        return null;
                }
        }
       
        @Override
        public Pessoa detalharPessoa(Long sequencialPessoa) {
                StringBuilder jpql = new StringBuilder();
                jpql.append("SELECT e FROM Pessoa e ");
                jpql.append("LEFT JOIN FETCH e.enderecos en ");
//              jpql.append("LEFT JOIN FETCH p.papeis pp ");
//              jpql.append("LEFT JOIN FETCH p.dadosBancarios b ");
                jpql.append("WHERE e.sequencial = :sequencialPessoa");
                return getEntityManager().createQuery(jpql.toString(), Pessoa.class).setParameter("sequencialPessoa", sequencialPessoa).getSingleResult();
        }
        */

        /************************************************************************************/
       
        /*
        /*
        @Override
        public PessoaDTO consultarPessoaDTOPorCpfOuCpnj(String cpfCnpj) {
                StringBuilder jpql = new StringBuilder();
                jpql.append("SELECT new br.com.ec.domain.dto.PessoaDTO(");
                jpql.append(PessoaDTO.CONSULTA_DTO_COMPLETA);
                jpql.append(") FROM Pessoa e ");
                jpql.append("WHERE e.cpfCnpj LIKE :cpfCnpj ");
                try {
                        return getEntityManager().createQuery(jpql.toString(), PessoaDTO.class).setParameter("cpfCnpj", cpfCnpj).getSingleResult();
                } catch(Exception ex) {
                        ex.printStackTrace();
                        return null;
                }
        }
       
        @Override
        public List<Pessoa> consultarPessoasJuridicas() {
                try {
                        StringBuilder jpql = new StringBuilder();
                        jpql.append("SELECT p FROM Pessoa p ");
                        jpql.append("WHERE p.cpfCnpj != '' AND (p.nomeFantasia != '' OR p.razaoSocial != '' OR p.tipoRegimeTributario != '' OR p.inscricaoEstadual != '' OR p.inscricaoMunicipal != '') ");
                        return getEntityManager().createQuery(jpql.toString(), Pessoa.class).getResultList();
                } catch (NoResultException e) {
                        return null;
                }
        }
         */

}