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.VerificadorUtil;
import br.com.ec.domain.dto.ModeloDTO;
import br.com.ec.domain.model.Modelo;
import br.com.ec.repository.ModeloRepository;
import br.com.ec.repository.SistemaAbstractRepository;

@Repository
public class ModeloRepositoryJpaImpl extends SistemaAbstractRepository<Modelo> implements ModeloRepository {

        @Override
        protected String getColunaOrdenadora() {
                return "sequencial";
        }
       
        @Override
        public List<ModeloDTO> consultarModelos(ModeloDTO modeloDTO) {
                StringBuilder jpql = new StringBuilder();
                jpql.append("SELECT ");
                jpql.append(ModeloDTO.CONSULTA_DTO_COMPLETA);
                jpql.append("FROM Modelo e ");
                jpql.append("WHERE 1=1 ");
                if (VerificadorUtil.naoEstaNulo(modeloDTO.getAtivo())) {
                        jpql.append("AND e.ativo = :indicadorAtivo ");
                }
                jpql.append("ORDER BY e.descricao ");
                try {
                        TypedQuery<ModeloDTO> query = getEntityManager().createQuery(jpql.toString(), ModeloDTO.class);
                        if (VerificadorUtil.naoEstaNulo(modeloDTO.getAtivo())) {
                                query.setParameter("indicadorAtivo", modeloDTO.getAtivo());
                        }
                        return query.getResultList();
                } catch (Exception ex) {
                        ex.printStackTrace();
                }
                return null;
        }
       
        /*
        @Override
        protected void setarStringParametrosConsultar(StringBuilder sql, Conta conta) {
                if (VerificadorUtil.naoEstaNulo(conta)) {
                        if (VerificadorUtil.naoEstaNuloOuVazio(conta.getSequencialDaVenda())) {
                                sql.append("AND e.venda.sequencial = :sequencialVenda ");
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(conta.getIndicadorAtivo())) {
                                sql.append("AND e.indicadorAtivo = :indicadorAtivo ");
                        }
                }
        }
       
        @Override
        protected void setarQueryParametrosConsultar(Query query, Conta conta) {
                if (VerificadorUtil.naoEstaNulo(conta)) {
                        if (VerificadorUtil.naoEstaNuloOuVazio(conta.getSequencialDaVenda())) {
                                query.setParameter("sequencialVenda", conta.getSequencialDaVenda());
                        }
                        if (VerificadorUtil.naoEstaNuloOuVazio(conta.getIndicadorAtivo())) {
                                query.setParameter("indicadorAtivo", conta.getIndicadorAtivo());
                        }
                }
        }
       
        @Override
        public Conta consultarContaAReceber(VendaFormaPagamento vendaFormaPagamento) {
                StringBuilder sql = new StringBuilder();
                sql.append("SELECT c FROM Conta c ");
                sql.append("WHERE c.venda.sequencial = :sequencialVenda ");
                try {
                        return getEntityManager().createQuery(sql.toString(),Conta.class)
                                                .setParameter("sequencialVenda", vendaFormaPagamento.getSequencialDaVenda())
                                                .getSingleResult();
                } catch(NoResultException ex) {
                        return null;
                } catch(Exception ex) {
                        ex.printStackTrace();
                        return null;
                }
        }
       
        @Override
        @Deprecated
        public List<Conta> consultarContasAReceber(Venda venda) {
                StringBuilder sql = new StringBuilder();
                sql.append("SELECT c FROM Conta c ");
                sql.append("WHERE c.venda.sequencial = :sequencialVenda ORDER BY c.sequencial");
                try {
                        return getEntityManager().createQuery(sql.toString(),Conta.class).setParameter("sequencialVenda", venda.getSequencial()).getResultList();
                } catch(NoResultException ex) {
                        return null;
                } catch(Exception ex) {
                        ex.printStackTrace();
                        return null;
                }
        }
       
        @Override
        public List<Conta> consultarContasAReceberPorPeriodo(Date dataInicial, Date dataFinal) {
                StringBuilder sql = new StringBuilder();
                sql.append("SELECT c FROM Conta c ");
                sql.append("WHERE c.venda.dataVenda >= :dataInicial AND c.venda.dataVenda <= :dataFinal ");
                sql.append("ORDER BY c.sequencial");
                try {
                        return getEntityManager().createQuery(sql.toString(),Conta.class)
                                                .setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(dataInicial))
                                                .setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(dataFinal))
                                                .getResultList();
                } catch(NoResultException ex) {
                        return null;
                } catch(Exception ex) {
                        ex.printStackTrace();
                        return null;
                }
        }
        */

}