Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.repository.jpa;

import javax.persistence.NoResultException;

import org.springframework.stereotype.Repository;

import br.com.ec.domain.dto.VendedorDTO;
import br.com.ec.domain.model.Vendedor;
import br.com.ec.repository.SistemaAbstractRepository;
import br.com.ec.repository.VendedorRepository;

@Repository
public class VendedorRepositoryJpaImpl extends SistemaAbstractRepository<Vendedor> implements VendedorRepository {

        private static final String VENDEDOR_INFORMADO_NAO_EXISTE_PARA_ESTA_PESSOA = "Vendedor informado não existe para esta pessoa";
       
        @Override
        protected String getColunaOrdenadora() {
                return "nome";
        }
       
        /*
        @Override
        protected void setarStringParametrosConsultar(StringBuilder sql, Vendedor vendedor) {
                if (VerificadorUtil.naoEstaNuloOuVazio(vendedor)) {
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getNome())) {
                                sql.append("AND ");
                                sql.append(sqlConsultarSemAcento("e.nome"));
                                sql.append(" like upper(:nomeVendedor) ");
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getAtivo())) {
                                sql.append("AND e.ativo = :ativo ");
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getIndicadorColaborador())) {
                                sql.append("AND e.indicadorColaborador = :indicadorColaborador ");
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getPessoa())) {
                                sql.append("AND e.pessoa = :pessoa ");
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getLoja())) {
                                sql.append("AND e.loja = :loja ");
                        }
                }
        }
       
        @Override
        protected void setarQueryParametrosConsultar(Query query, Vendedor vendedor) {
                if (VerificadorUtil.naoEstaNuloOuVazio(vendedor)) {
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getNome())) {
                                query.setParameter("nomeVendedor", "%" + removerAcentuacao(vendedor.getNome()) + "%");
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getAtivo())) {
                                query.setParameter("ativo", vendedor.getAtivo());
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getIndicadorColaborador())) {
                                query.setParameter("indicadorColaborador", vendedor.getIndicadorColaborador());
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getPessoa())) {
                                query.setParameter("pessoa", vendedor.getPessoa());
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(vendedor.getLoja())) {
                                query.setParameter("loja", vendedor.getLoja());
                        }
                }
        }
        */

        @Override
        public VendedorDTO consultarVendedorPorPessoa(Long sequencialPessoa) {
                StringBuilder jpql = new StringBuilder();
                jpql.append("SELECT new br.com.ec.domain.dto.VendedorDTO(v.sequencial, v.nome, v.loja.sequencial, v.loja.descricao) ");
                jpql.append("FROM Vendedor v ");
                jpql.append("WHERE v.pessoa.sequencial = :sequencialPessoa");
                try {
                        return getEntityManager().createQuery(jpql.toString(), VendedorDTO.class)
                                        .setParameter("sequencialPessoa", sequencialPessoa)
                                        .getSingleResult();
                } catch (NoResultException nre) {
                        throw new RuntimeException(VENDEDOR_INFORMADO_NAO_EXISTE_PARA_ESTA_PESSOA);
                }
        }
       
}