Subversion Repositories Integrator Subversion

Rev

Rev 472 | Rev 543 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 472 Rev 524
Line 4... Line 4...
4
4
5
import javax.persistence.TypedQuery;
5
import javax.persistence.TypedQuery;
6
6
7
import org.springframework.stereotype.Repository;
7
import org.springframework.stereotype.Repository;
8
8
-
 
9
import br.com.ec.core.util.VerificadorUtil;
9
import br.com.ec.domain.dto.CompraProdutoDTO;
10
import br.com.ec.domain.dto.CompraProdutoDTO;
10
import br.com.ec.domain.dto.ProdutoDTO;
11
import br.com.ec.domain.dto.ProdutoDTO;
11
import br.com.ec.domain.model.Produto;
12
import br.com.ec.domain.model.Produto;
12
import br.com.ec.domain.util.CodigoBarraEAN;
13
import br.com.ec.domain.util.CodigoBarraEAN;
13
import br.com.ec.repository.ProdutoRepository;
14
import br.com.ec.repository.ProdutoRepository;
Line 22... Line 23...
22
        }
23
        }
23
       
24
       
24
        @Override
25
        @Override
25
        protected boolean adicionarDistinct() {
26
        protected boolean adicionarDistinct() {
26
                return false;
27
                return false;
-
 
28
        }
-
 
29
       
-
 
30
        @Override
-
 
31
        public Produto consultarProdutoPorCodigo(String codigoProduto) {
-
 
32
                StringBuilder sql = new StringBuilder();
-
 
33
                sql.append("SELECT e FROM Produto e ");
-
 
34
                sql.append("WHERE e.codigo = :codigo");
-
 
35
                try {
-
 
36
                        return getEntityManager().createQuery(sql.toString(), Produto.class).setParameter("codigo", codigoProduto).getSingleResult();
-
 
37
                } catch(Exception ex) {
-
 
38
                        ex.printStackTrace();
-
 
39
                        return null;
-
 
40
                }
-
 
41
        }
-
 
42
       
-
 
43
        @Override
-
 
44
        public ProdutoDTO consultarProdutoDTOPorCodigoOuEAN(String codigoOuEAN) {
-
 
45
                StringBuilder jpql = new StringBuilder();
-
 
46
                jpql.append("SELECT new br.com.ec.domain.dto.ProdutoDTO(");
-
 
47
                jpql.append(ProdutoDTO.CONSULTA_DTO_SIMPLES_COM_MODELO);
-
 
48
                jpql.append(") FROM Produto e ");
-
 
49
                jpql.append("WHERE 1=1 AND ");
-
 
50
                if (CodigoBarraEAN.validarCodigoBarras(codigoOuEAN)) {
-
 
51
                        jpql.append("e.codigoEAN = :codigoOuEAN");
-
 
52
                } else {
-
 
53
                        codigoOuEAN = ProdutoDTO.retornarCodigoProdutoPadrao(codigoOuEAN);
-
 
54
                        jpql.append("e.codigo = :codigoOuEAN");
-
 
55
                }
-
 
56
                try {
-
 
57
                        TypedQuery<ProdutoDTO> query = (TypedQuery<ProdutoDTO>) getEntityManager().createQuery(jpql.toString(), ProdutoDTO.class)
-
 
58
                                .setParameter("codigoOuEAN", codigoOuEAN);
-
 
59
                        return query.getSingleResult();
-
 
60
                } catch(Exception ex) {
-
 
61
                        ex.printStackTrace();
-
 
62
                        return null;
-
 
63
                }
-
 
64
        }
-
 
65
       
-
 
66
        @Override
-
 
67
        public List<CompraProdutoDTO> consultarComprasDoProduto(Long sequencialProduto) {
-
 
68
                StringBuilder jpql = new StringBuilder();
-
 
69
                jpql.append("SELECT new br.com.ec.domain.dto.CompraProdutoDTO(");
-
 
70
                jpql.append(CompraProdutoDTO.CONSULTA_DTO_COMPLETA);
-
 
71
                jpql.append(") FROM CompraProduto e ");
-
 
72
                jpql.append("WHERE 1=1 AND ");
-
 
73
                jpql.append("e.produto.sequencial = :sequencialProduto ");
-
 
74
                try {
-
 
75
                        jpql.append("ORDER BY e.compra.dataCompra DESC");
-
 
76
                        return getEntityManager().createQuery(jpql.toString(), CompraProdutoDTO.class)
-
 
77
                                        .setParameter("sequencialProduto", sequencialProduto)
-
 
78
                                        .getResultList();
-
 
79
                } catch(Exception ex) {
-
 
80
                        ex.printStackTrace();
-
 
81
                        return null;
-
 
82
                }
27
        }
83
        }
28
       
84
       
29
        /*
85
        /*
30
        @Override
86
        @Override
31
        public List<Produto> consultarProdutoPorParametros(ParametrosConsultaProdutoDTO parametrosConsultaProduto) {
87
        public List<Produto> consultarProdutoPorParametros(ParametrosConsultaProdutoDTO parametrosConsultaProduto) {
Line 574... Line 630...
574
                        sql.append(" AND p.loja.sequencial = ");
630
                        sql.append(" AND p.loja.sequencial = ");
575
                        sql.append(((ParametrosConsultaProdutoDTO)parametrosConsulta).getLojaSelecionada());
631
                        sql.append(((ParametrosConsultaProdutoDTO)parametrosConsulta).getLojaSelecionada());
576
                }
632
                }
577
                sql.append(") ");
633
                sql.append(") ");
578
        }
634
        }
579
*/     
-
 
580
        @Override
-
 
581
        public Produto consultarProdutoPorCodigo(String codigoProduto) {
-
 
582
                StringBuilder sql = new StringBuilder();
-
 
583
                sql.append("SELECT e FROM Produto e ");
-
 
584
                sql.append("WHERE e.codigo = :codigo");
-
 
585
                try {
-
 
586
                        return getEntityManager().createQuery(sql.toString(), Produto.class).setParameter("codigo", codigoProduto).getSingleResult();
-
 
587
                } catch(Exception ex) {
-
 
588
                        ex.printStackTrace();
-
 
589
                        return null;
-
 
590
                }
-
 
591
        }
-
 
592
       
-
 
593
        @Override
-
 
594
        public ProdutoDTO consultarProdutoDTOPorCodigoOuEAN(String codigoOuEAN) {
-
 
595
                StringBuilder jpql = new StringBuilder();
-
 
596
                jpql.append("SELECT new br.com.ec.domain.dto.ProdutoDTO(");
-
 
597
                jpql.append(ProdutoDTO.CONSULTA_DTO_SIMPLES_COM_MODELO);
-
 
598
                jpql.append(") FROM Produto e ");
-
 
599
                jpql.append("WHERE 1=1 AND ");
-
 
600
                if (CodigoBarraEAN.validarCodigoBarras(codigoOuEAN)) {
-
 
601
                        jpql.append("e.codigoEAN = :codigoOuEAN");
-
 
602
                } else {
-
 
603
                        codigoOuEAN = ProdutoDTO.retornarCodigoProdutoPadrao(codigoOuEAN);
-
 
604
                        jpql.append("e.codigo = :codigoOuEAN");
-
 
605
                }
-
 
606
                try {
-
 
607
                        TypedQuery<ProdutoDTO> query = (TypedQuery<ProdutoDTO>) getEntityManager().createQuery(jpql.toString(), ProdutoDTO.class)
-
 
608
                                .setParameter("codigoOuEAN", codigoOuEAN);
-
 
609
                        return query.getSingleResult();
-
 
610
                } catch(Exception ex) {
-
 
611
                        ex.printStackTrace();
-
 
612
                        return null;
-
 
613
                }
-
 
614
        }
-
 
615
       
-
 
616
        @Override
-
 
617
        public List<CompraProdutoDTO> consultarComprasDoProduto(Long sequencialProduto) {
-
 
618
                StringBuilder jpql = new StringBuilder();
-
 
619
                jpql.append("SELECT new br.com.ec.domain.dto.CompraProdutoDTO(");
-
 
620
                jpql.append(CompraProdutoDTO.CONSULTA_DTO_COMPLETA);
-
 
621
                jpql.append(") FROM CompraProduto e ");
-
 
622
                jpql.append("WHERE 1=1 AND ");
-
 
623
                jpql.append("e.produto.sequencial = :sequencialProduto ");
-
 
624
                try {
-
 
625
                        jpql.append("ORDER BY e.compra.dataCompra DESC");
-
 
626
                        return getEntityManager().createQuery(jpql.toString(), CompraProdutoDTO.class)
-
 
627
                                        .setParameter("sequencialProduto", sequencialProduto)
-
 
628
                                        .getResultList();
-
 
629
                } catch(Exception ex) {
-
 
630
                        ex.printStackTrace();
-
 
631
                        return null;
-
 
632
                }
-
 
633
        }
-
 
634
       
-
 
635
        /*
-
 
-
 
635

636
        @Override
636
        @Override
637
        public Produto consultarProdutoPorCodigoEAN(String codigoEAN) {
637
        public Produto consultarProdutoPorCodigoEAN(String codigoEAN) {
638
                StringBuilder sql = new StringBuilder();
638
                StringBuilder sql = new StringBuilder();
639
                sql.append("SELECT e FROM Produto e ");
639
                sql.append("SELECT e FROM Produto e ");
640
                sql.append("WHERE e.codigoEAN = :codigoEAN");
640
                sql.append("WHERE e.codigoEAN = :codigoEAN");
Line 702... Line 702...
702
                        ex.printStackTrace();
702
                        ex.printStackTrace();
703
                        return 0;
703
                        return 0;
704
                }
704
                }
705
        }
705
        }
706
       
706
       
707
        @Override
-
 
708
        public Double valorTotalEstoque(Loja loja, Modelo modelo) {
-
 
709
                StringBuilder sql = new StringBuilder();
-
 
710
                sql.append("SELECT SUM(e.quantidadeEstoque * e.produto.valorCompra) FROM ProdutoLoja e ");
-
 
711
                sql.append("WHERE e.produto.codigo != '000000'");
-
 
712
                if (VerificadorUtil.naoEstaNulo(loja)) {
-
 
713
                        sql.append(" AND e.loja.sequencial = :sequencialLoja");
-
 
714
                }
-
 
715
                if (VerificadorUtil.naoEstaNulo(modelo)) {
-
 
716
                        sql.append(" AND e.produto.modelo.sequencial = :sequencialModelo");
-
 
717
                }
-
 
718
                try {
-
 
719
                        Double valorTotal = new Double(0.0);
-
 
720
                        TypedQuery<Double> query =  getEntityManager().createQuery(sql.toString(), Double.class);
-
 
721
                        if (VerificadorUtil.naoEstaNulo(loja)) {
-
 
722
                                query.setParameter("sequencialLoja", loja.getSequencial());
-
 
723
                        }
-
 
724
                        if (VerificadorUtil.naoEstaNulo(modelo)) {
-
 
725
                                query.setParameter("sequencialModelo", modelo.getSequencial());
-
 
726
                        }
-
 
727
                        valorTotal = query.getSingleResult();
-
 
728
                        if (VerificadorUtil.naoEstaNulo(valorTotal)) {
-
 
729
                                return valorTotal;
-
 
730
                        }
-
 
731
                        return 0.0;
-
 
732
                } catch(Exception ex) {
-
 
733
                        ex.printStackTrace();
-
 
734
                        return 0.0;
-
 
735
                }
-
 
736
        }
-
 
-
 
707
       
737
       
708
       
738
        @Override
709
        @Override
739
        public Integer quantidadeEstoque(ParametrosConsultaProdutoDTO parametrosConsulta) {
710
        public Integer quantidadeEstoque(ParametrosConsultaProdutoDTO parametrosConsulta) {
740
                StringBuilder sql = new StringBuilder("SELECT SUM(pl.quantidadeEstoque) FROM ProdutoLoja pl WHERE pl.produto.codigo != '000000'");
711
                StringBuilder sql = new StringBuilder("SELECT SUM(pl.quantidadeEstoque) FROM ProdutoLoja pl WHERE pl.produto.codigo != '000000'");
741
                try {
712
                try {