Subversion Repositories Integrator Subversion

Rev

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

Rev 229 Rev 230
Line 4... Line 4...
4
4
-
 
5
import javax.persistence.Query;
5
import javax.persistence.TypedQuery;
6
import javax.persistence.TypedQuery;
6
7
7
import org.springframework.stereotype.Repository;
8
import org.springframework.stereotype.Repository;
8
9
9
import br.com.ec.core.util.DataUtils;
10
import br.com.ec.core.util.DataUtils;
-
 
11
import br.com.ec.core.util.VerificadorUtil;
-
 
12
import br.com.ec.domain.dto.consulta.ParametrosConsultaVendasDTO;
10
import br.com.ec.domain.modal.Venda;
13
import br.com.ec.domain.modal.Venda;
11
import br.com.ec.repository.SistemaAbstractRepository;
14
import br.com.ec.repository.SistemaAbstractRepository;
12
import br.com.ec.repository.VendaRepository;
15
import br.com.ec.repository.VendaRepository;
13
16
14
@Repository
17
@Repository
Line 18... Line 21...
18
        protected String getColunaOrdenadora() {
21
        protected String getColunaOrdenadora() {
19
                return "dataVenda";
22
                return "dataVenda";
20
        }
23
        }
21
       
24
       
22
        @Override
25
        @Override
23
        public Integer obterQuantidadeDeVendasPorLojaEePeriodo(Long sequencialLoja, Date dataInicial, Date dataFinal) {
-
 
-
 
26
        public Integer obterQuantidadeDeVendasPorLojaEePeriodo(ParametrosConsultaVendasDTO parametrosConsultaVendasDTO) {
24
                StringBuilder sql = new StringBuilder();
27
                StringBuilder sql = new StringBuilder();
25
                sql.append("SELECT COUNT(*) FROM Venda e ");
28
                sql.append("SELECT COUNT(*) FROM Venda e ");
26
                sql.append("WHERE e.loja.sequencial = :sequencialLoja ");
-
 
27
                sql.append("AND e.dataVenda >= :dataInicial AND e.dataVenda <= :dataFinal ");
-
 
-
 
29
                sql.append("WHERE 1=1 ");
-
 
30
                setarStringParametrosConsulta(sql, parametrosConsultaVendasDTO);
28
                try {
31
                try {
29
                        return getEntityManager().createQuery(sql.toString(), Long.class)
-
 
30
                                        .setParameter("sequencialLoja", sequencialLoja)
-
 
31
                                        .setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(dataInicial))
-
 
32
                                        .setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(dataFinal))
-
 
33
                                        .getSingleResult().intValue();
-
 
-
 
32
                        TypedQuery<Long> query = getEntityManager().createQuery(sql.toString(), Long.class);
-
 
33
                        setarQueryParametrosConsulta(query, parametrosConsultaVendasDTO);
-
 
34
                        return query.getSingleResult().intValue();
34
                } catch(Exception ex) {
35
                } catch(Exception ex) {
35
                        ex.printStackTrace();
36
                        ex.printStackTrace();
36
                        return null;
37
                        return null;
37
                }
38
                }
-
 
39
        }
-
 
40
       
-
 
41
        @Override
-
 
42
        public Double obterValorTotalBrutoDeVendasPorLojaEePeriodo(ParametrosConsultaVendasDTO parametrosConsultaVendasDTO) {
-
 
43
                StringBuilder sql = new StringBuilder();
-
 
44
                sql.append("SELECT SUM(l.valorVenda) FROM Venda e ");
-
 
45
                sql.append("LEFT JOIN e.listaLancamentos l ");
-
 
46
                sql.append("WHERE l.ativo IS TRUE ");
-
 
47
                setarStringParametrosConsulta(sql, parametrosConsultaVendasDTO);
-
 
48
                try {
-
 
49
                        TypedQuery<Double> query = getEntityManager().createQuery(sql.toString(), Double.class);
-
 
50
                        setarQueryParametrosConsulta(query, parametrosConsultaVendasDTO);
-
 
51
                        Double total = query.getSingleResult();
-
 
52
                        if (VerificadorUtil.estaNulo(total)) {
-
 
53
                                return new Double(0.0);
-
 
54
                        }
-
 
55
                        return total;
-
 
56
                } catch(Exception ex) {
-
 
57
                        ex.printStackTrace();
-
 
58
                        return null;
-
 
59
                }
-
 
60
        }
-
 
61
       
-
 
62
        @Override
-
 
63
        public Double obterValorDeCuponsUtilizadosPorLojaEePeriodo(ParametrosConsultaVendasDTO parametrosConsultaVendasDTO) {
-
 
64
                StringBuilder sql = new StringBuilder();
-
 
65
                sql.append("SELECT SUM(p.valorPagamento) FROM VendaFormaPagamento p ");
-
 
66
                sql.append("LEFT JOIN p.venda e ");
-
 
67
                sql.append("WHERE p.formaPagamento.codigo = 16 ");
-
 
68
                setarStringParametrosConsulta(sql, parametrosConsultaVendasDTO);
-
 
69
//              parametrosConsulta.setIndicadorComissionado(null);
-
 
70
//              parametrosConsulta.setTipoProduto(null);
-
 
71
                try {
-
 
72
                        TypedQuery<Double> query = getEntityManager().createQuery(sql.toString(), Double.class);
-
 
73
                        setarQueryParametrosConsulta(query, parametrosConsultaVendasDTO);
-
 
74
                        Double total = query.getSingleResult();
-
 
75
                        if (VerificadorUtil.estaNulo(total)) {
-
 
76
                                return new Double(0.0);
-
 
77
                        }
-
 
78
                        return total;
-
 
79
                } catch(Exception ex) {
-
 
80
                        ex.printStackTrace();
-
 
81
                        return null;
-
 
82
                }
-
 
83
        }
-
 
84
       
-
 
85
        private void setarStringParametrosConsulta(StringBuilder sql, ParametrosConsultaVendasDTO parametros) {
-
 
86
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getSequencialLoja())) {
-
 
87
                        sql.append("AND e.loja.sequencial = :sequencialLoja ");
-
 
88
                }
-
 
89
                /*
-
 
90
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getSituacaoVenda())) {
-
 
91
                        sql.append("AND e.tipoSituacao = :tipoSituacao ");
-
 
92
                }
-
 
93
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getVendedor())) {
-
 
94
                        sql.append("AND e.vendedor.sequencial = :sequencialVendedor ");
-
 
95
                }
-
 
96
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getIndicacao())) {
-
 
97
                        sql.append("AND e.indicacao.sequencial = :sequencialIndicacao ");
-
 
98
                }
-
 
99
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getIndicadorComissionado())) {
-
 
100
                        sql.append("AND l.produto.indicadorComissionado = :indicadorComissionado ");
-
 
101
                }
-
 
102
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getTipoProduto())) {
-
 
103
                        sql.append("AND l.produto.tipo = :tipoProduto ");
-
 
104
                }
-
 
105
                //TODO: VERIFICAR LANÇAMENTOS COM MAIS PAGAMENTOS QUE LANÇAMENTOS
-
 
106
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getSituacaoFinanceiraVenda())) {
-
 
107
                        if (parametros.getSituacaoFinanceiraVenda().equals(br.com.ec.domain.model.tipos.TipoSituacaoFinanceira.NENHUMA.getValor())) {
-
 
108
                                sql.append("AND (SELECT COUNT(c) FROM Conta c WHERE c.venda = e) = 0 ");
-
 
109
//                                      sql.append("AND ((SELECT COUNT(vf) FROM VendaFormaPagamento vf WHERE vf.venda = e) > (SELECT COUNT(cr) FROM ContaAReceber cr WHERE cr.venda = e)) ");
-
 
110
                        }
-
 
111
                        if (parametros.getSituacaoFinanceiraVenda().equals(br.com.ec.domain.model.tipos.TipoSituacaoFinanceira.QUITADO.getValor())) {
-
 
112
                                sql.append("AND (SELECT COUNT(p) FROM Parcela p WHERE p.conta.venda = e AND p.dataPagamento is null AND p.indicadorAtivo = true) = 0 ");
-
 
113
                                sql.append("AND (SELECT COUNT(c) FROM Conta c WHERE c.venda = e AND c.indicadorAtivo = true) > 0 ");
-
 
114
                        }
-
 
115
                        if (parametros.getSituacaoFinanceiraVenda().equals(br.com.ec.domain.model.tipos.TipoSituacaoFinanceira.PENDENCIAS.getValor())) {
-
 
116
                                sql.append("AND ((SELECT COUNT(p) FROM Parcela p WHERE p.conta.venda = e AND p.dataPagamento is null AND p.indicadorAtivo = true) > 0 ");
-
 
117
                                sql.append("OR (SELECT COUNT(c) FROM Conta c WHERE c.venda = e AND c.indicadorAtivo = true) = 0) ");
-
 
118
                        }
-
 
119
                }
-
 
120
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getFormaPagamento())) {
-
 
121
                        sql.append("AND (SELECT COUNT(p) FROM VendaFormaPagamento p WHERE p.venda = e AND p.formaPagamento.codigo = :codigoFormaPagamento) > 0 ");
-
 
122
                }
-
 
123
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getBandeiraCartao())) {
-
 
124
                        sql.append("AND (SELECT COUNT(b) FROM VendaFormaPagamento b WHERE b.venda = e AND b.bandeiraCartao.codigo = :codigoBandeiraCartao) > 0 ");
-
 
125
                }
-
 
126
                */
-
 
127
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getSequencialVenda())) {
-
 
128
                        sql.append("AND e.sequencial = :sequencialVenda ");
-
 
129
                } else if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getDataVendas())
-
 
130
                                || VerificadorUtil.naoEstaNuloOuVazio(parametros.getDataInicial())
-
 
131
                                || VerificadorUtil.naoEstaNuloOuVazio(parametros.getDataFinal())) {
-
 
132
                        sql.append("AND e.dataVenda >= :dataInicial ");
-
 
133
                        sql.append("AND e.dataVenda <= :dataFinal ");
-
 
134
                }
-
 
135
                /*
-
 
136
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getCodigoCupom())) {
-
 
137
                        sql.append("AND (SELECT COUNT(cl) FROM Lancamento cl WHERE cl.venda = e AND cl.cupom.codigo = :codigoCupom) > 0) ");
-
 
138
                }
-
 
139
                */
-
 
140
        }
-
 
141
       
-
 
142
        private void setarQueryParametrosConsulta(Query query, ParametrosConsultaVendasDTO parametros) {
-
 
143
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getSequencialLoja())) {
-
 
144
                        query.setParameter("sequencialLoja", parametros.getSequencialLoja());
-
 
145
                }
-
 
146
                /*
-
 
147
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getSituacaoVenda())) {
-
 
148
                        query.setParameter("tipoSituacao", parametros.getSituacaoVenda());
-
 
149
                }
-
 
150
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getVendedor())) {
-
 
151
                        query.setParameter("sequencialVendedor", parametros.getVendedor().getSequencial());
-
 
152
                }
-
 
153
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getIndicacao())) {
-
 
154
                        query.setParameter("sequencialIndicacao", parametros.getIndicacao().getSequencial());
-
 
155
                }
-
 
156
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getIndicadorComissionado())) {
-
 
157
                        query.setParameter("indicadorComissionado", parametros.getIndicadorComissionado());
-
 
158
                }
-
 
159
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getTipoProduto())) {
-
 
160
                        query.setParameter("tipoProduto", parametros.getTipoProduto());
-
 
161
                }
-
 
162
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getFormaPagamento())) {
-
 
163
                        query.setParameter("codigoFormaPagamento", parametros.getFormaPagamento().getCodigo());
-
 
164
                }
-
 
165
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getBandeiraCartao())) {
-
 
166
                        query.setParameter("codigoBandeiraCartao", parametros.getBandeiraCartao().getCodigo());
-
 
167
                }
-
 
168
                 */
-
 
169
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getSequencialVenda())) {
-
 
170
                        query.setParameter("sequencialVenda", parametros.getSequencialVenda());
-
 
171
                } else if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getDataInicial())
-
 
172
                                && VerificadorUtil.naoEstaNuloOuVazio(parametros.getDataFinal())) {
-
 
173
                        Date dataInicial = DataUtils.getDataComHorarioMinimo(parametros.getDataInicial());
-
 
174
                        Date dataFinal = DataUtils.getDataComHorarioMaximo(parametros.getDataFinal());
-
 
175
                        query.setParameter("dataInicial", dataInicial);
-
 
176
                        query.setParameter("dataFinal", dataFinal);
-
 
177
                } else if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getDataVendas())) {
-
 
178
                        Date dataInicial = DataUtils.getDataComHorarioMinimo(parametros.getDataVendas());
-
 
179
                        Date dataFinal = DataUtils.getDataComHorarioMaximo(parametros.getDataVendas());
-
 
180
                        query.setParameter("dataInicial", dataInicial);
-
 
181
                        query.setParameter("dataFinal", dataFinal);
-
 
182
                }
-
 
183
                /*
-
 
184
                if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getCodigoCupom())) {
-
 
185
                        query.setParameter("codigoCupom", parametros.getCodigoCupom());
-
 
186
                }
-
 
187
                */
38
        }
188
        }
39
       
189
       
40
        /*
190
        /*
41
        private void setarParametrosStringConsultarVendaPorLojaEePeriodo(StringBuilder sql, Venda venda, Date dataInicial, Date dataFinal) {
191
        private void setarParametrosStringConsultarVendaPorLojaEePeriodo(StringBuilder sql, Venda venda, Date dataInicial, Date dataFinal) {
42
                setarStringParametrosConsultar(sql, venda);
192
                setarStringParametrosConsultar(sql, venda);
Line 109... Line 259...
109
               
259
               
110
                        return query.setFirstResult(primeiroRegistro).setMaxResults(tamanhoPagina).getResultList();
260
                        return query.setFirstResult(primeiroRegistro).setMaxResults(tamanhoPagina).getResultList();
111
                } catch(Exception ex) {
261
                } catch(Exception ex) {
112
                        ex.printStackTrace();
262
                        ex.printStackTrace();
113
                        return null;
263
                        return null;
114
                }
-
 
115
        }
-
 
116
       
-
 
117
        @Override
-
 
118
        protected void setarStringParametrosConsulta(StringBuilder sql, ParametrosConsulta<Venda> parametros) {
-
 
119
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getLoja())) {
-
 
120
                        sql.append("AND e.loja.sequencial = :sequencialLoja ");
-
 
121
                }
-
 
122
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getSituacaoVenda())) {
-
 
123
                        sql.append("AND e.tipoSituacao = :tipoSituacao ");
-
 
124
                }
-
 
125
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getVendedor())) {
-
 
126
                        sql.append("AND e.vendedor.sequencial = :sequencialVendedor ");
-
 
127
                }
-
 
128
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getIndicacao())) {
-
 
129
                        sql.append("AND e.indicacao.sequencial = :sequencialIndicacao ");
-
 
130
                }
-
 
131
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getIndicadorComissionado())) {
-
 
132
                        sql.append("AND l.produto.indicadorComissionado = :indicadorComissionado ");
-
 
133
                }
-
 
134
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getTipoProduto())) {
-
 
135
                        sql.append("AND l.produto.tipo = :tipoProduto ");
-
 
136
                }
-
 
137
                //TODO: VERIFICAR LANÇAMENTOS COM MAIS PAGAMENTOS QUE LANÇAMENTOS
-
 
138
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getSituacaoFinanceiraVenda())) {
-
 
139
                        if (((ParametrosConsultaVendasDTO)parametros).getSituacaoFinanceiraVenda().equals(br.com.ec.domain.model.tipos.TipoSituacaoFinanceira.NENHUMA.getValor())) {
-
 
140
                                sql.append("AND (SELECT COUNT(c) FROM Conta c WHERE c.venda = e) = 0 ");
-
 
141
//                                      sql.append("AND ((SELECT COUNT(vf) FROM VendaFormaPagamento vf WHERE vf.venda = e) > (SELECT COUNT(cr) FROM ContaAReceber cr WHERE cr.venda = e)) ");
-
 
142
                        }
-
 
143
                        if (((ParametrosConsultaVendasDTO)parametros).getSituacaoFinanceiraVenda().equals(br.com.ec.domain.model.tipos.TipoSituacaoFinanceira.QUITADO.getValor())) {
-
 
144
                                sql.append("AND (SELECT COUNT(p) FROM Parcela p WHERE p.conta.venda = e AND p.dataPagamento is null AND p.indicadorAtivo = true) = 0 ");
-
 
145
                                sql.append("AND (SELECT COUNT(c) FROM Conta c WHERE c.venda = e AND c.indicadorAtivo = true) > 0 ");
-
 
146
                        }
-
 
147
                        if (((ParametrosConsultaVendasDTO)parametros).getSituacaoFinanceiraVenda().equals(br.com.ec.domain.model.tipos.TipoSituacaoFinanceira.PENDENCIAS.getValor())) {
-
 
148
                                sql.append("AND ((SELECT COUNT(p) FROM Parcela p WHERE p.conta.venda = e AND p.dataPagamento is null AND p.indicadorAtivo = true) > 0 ");
-
 
149
                                sql.append("OR (SELECT COUNT(c) FROM Conta c WHERE c.venda = e AND c.indicadorAtivo = true) = 0) ");
-
 
150
                        }
-
 
151
                }
-
 
152
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getFormaPagamento())) {
-
 
153
                        sql.append("AND (SELECT COUNT(p) FROM VendaFormaPagamento p WHERE p.venda = e AND p.formaPagamento.codigo = :codigoFormaPagamento) > 0 ");
-
 
154
                }
-
 
155
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getBandeiraCartao())) {
-
 
156
                        sql.append("AND (SELECT COUNT(b) FROM VendaFormaPagamento b WHERE b.venda = e AND b.bandeiraCartao.codigo = :codigoBandeiraCartao) > 0 ");
-
 
157
                }
-
 
158
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getSequencialVenda())) {
-
 
159
                        sql.append("AND e.sequencial = :sequencialVenda ");
-
 
160
                } else if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO) parametros).getDataVendas())
-
 
161
                                || VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO) parametros).getDataInicial())
-
 
162
                                || VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO) parametros).getDataFinal())) {
-
 
163
                        sql.append("AND e.dataVenda >= :dataInicial ");
-
 
164
                        sql.append("AND e.dataVenda <= :dataFinal ");
-
 
165
                }
-
 
166
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getCodigoCupom())) {
-
 
167
                        sql.append("AND (SELECT COUNT(cl) FROM Lancamento cl WHERE cl.venda = e AND cl.cupom.codigo = :codigoCupom) > 0) ");
-
 
168
                }
-
 
169
        }
-
 
170
       
-
 
171
        @Override
-
 
172
        protected void setarQueryParametrosConsulta(Query query, ParametrosConsulta<Venda> parametros) {
-
 
173
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getLoja())) {
-
 
174
                        query.setParameter("sequencialLoja", ((ParametrosConsultaVendasDTO)parametros).getLoja().getSequencial());
-
 
175
                }
-
 
176
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getSituacaoVenda())) {
-
 
177
                        query.setParameter("tipoSituacao", ((ParametrosConsultaVendasDTO)parametros).getSituacaoVenda());
-
 
178
                }
-
 
179
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getVendedor())) {
-
 
180
                        query.setParameter("sequencialVendedor", ((ParametrosConsultaVendasDTO)parametros).getVendedor().getSequencial());
-
 
181
                }
-
 
182
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getIndicacao())) {
-
 
183
                        query.setParameter("sequencialIndicacao", ((ParametrosConsultaVendasDTO)parametros).getIndicacao().getSequencial());
-
 
184
                }
-
 
185
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getIndicadorComissionado())) {
-
 
186
                        query.setParameter("indicadorComissionado", ((ParametrosConsultaVendasDTO)parametros).getIndicadorComissionado());
-
 
187
                }
-
 
188
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getTipoProduto())) {
-
 
189
                        query.setParameter("tipoProduto", ((ParametrosConsultaVendasDTO)parametros).getTipoProduto());
-
 
190
                }
-
 
191
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getFormaPagamento())) {
-
 
192
                        query.setParameter("codigoFormaPagamento", ((ParametrosConsultaVendasDTO)parametros).getFormaPagamento().getCodigo());
-
 
193
                }
-
 
194
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getBandeiraCartao())) {
-
 
195
                        query.setParameter("codigoBandeiraCartao", ((ParametrosConsultaVendasDTO)parametros).getBandeiraCartao().getCodigo());
-
 
196
                }
-
 
197
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getSequencialVenda())) {
-
 
198
                        query.setParameter("sequencialVenda", ((ParametrosConsultaVendasDTO)parametros).getSequencialVenda());
-
 
199
                } else if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO) parametros).getDataInicial())
-
 
200
                                && VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO) parametros).getDataFinal())) {
-
 
201
                        Date dataInicial = DataUtils.getDataComHorarioMinimo(((ParametrosConsultaVendasDTO) parametros).getDataInicial());
-
 
202
                        Date dataFinal = DataUtils.getDataComHorarioMaximo(((ParametrosConsultaVendasDTO) parametros).getDataFinal());
-
 
203
                        query.setParameter("dataInicial", dataInicial);
-
 
204
                        query.setParameter("dataFinal", dataFinal);
-
 
205
                } else if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO) parametros).getDataVendas())) {
-
 
206
                        Date dataInicial = DataUtils.getDataComHorarioMinimo(((ParametrosConsultaVendasDTO) parametros).getDataVendas());
-
 
207
                        Date dataFinal = DataUtils.getDataComHorarioMaximo(((ParametrosConsultaVendasDTO) parametros).getDataVendas());
-
 
208
                        query.setParameter("dataInicial", dataInicial);
-
 
209
                        query.setParameter("dataFinal", dataFinal);
-
 
210
                }
-
 
211
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaVendasDTO)parametros).getCodigoCupom())) {
-
 
212
                        query.setParameter("codigoCupom", ((ParametrosConsultaVendasDTO)parametros).getCodigoCupom());
-
 
213
                }
264
                }
214
        }
265
        }
215
       
266
       
216
        @Override
267
        @Override
217
        public List<Venda> consultarVendaPorParametros(ParametrosConsultaVendasDTO parametrosConsultaVendas) {
268
        public List<Venda> consultarVendaPorParametros(ParametrosConsultaVendasDTO parametrosConsultaVendas) {
Line 279... Line 330...
279
                        ex.printStackTrace();
330
                        ex.printStackTrace();
280
                        return null;
331
                        return null;
281
                }
332
                }
282
        }
333
        }
283
       
334
       
284
        @Override
-
 
285
        public Double obterValorTotalBrutoDeVendasPorLojaEePeriodo(Loja loja, Date dataInicial, Date dataFinal) {
-
 
286
                StringBuilder sql = new StringBuilder();
-
 
287
                sql.append("SELECT SUM(l.valorVenda) FROM Venda e ");
-
 
288
                sql.append("LEFT JOIN e.listaLancamentos l ");
-
 
289
                sql.append("WHERE l.ativo IS TRUE ");
-
 
290
                try {
-
 
291
                        setarParametrosStringConsultarVendaPorLojaEePeriodo(sql, new Venda(loja, null), dataInicial, dataFinal);
-
 
292
                        TypedQuery<Double> query = getEntityManager().createQuery(sql.toString(), Double.class);
-
 
293
                        setarParametrosQueryConsultarVendaPorLojaEePeriodo(query, new Venda(loja, null), dataInicial, dataFinal);
-
 
294
                        Double total = query.getSingleResult();
-
 
295
                        if (VerificadorUtil.estaNulo(total)) {
-
 
296
                                return new Double(0.0);
-
 
297
                        }
-
 
298
                        return total;
-
 
299
                } catch(Exception ex) {
-
 
300
                        ex.printStackTrace();
-
 
301
                        return null;
-
 
302
                }
-
 
303
        }
-
 
304
       
335
       
305
        private void setarParametrosQueryConsultarVendaPorLojaEePeriodo(Query query, Venda venda, Date dataInicial, Date dataFinal) {
336
        private void setarParametrosQueryConsultarVendaPorLojaEePeriodo(Query query, Venda venda, Date dataInicial, Date dataFinal) {
306
                setarQueryParametrosConsultar(query, venda);
337
                setarQueryParametrosConsultar(query, venda);
307
                if (VerificadorUtil.naoEstaNuloOuVazio(dataInicial) && VerificadorUtil.naoEstaNuloOuVazio(dataFinal)) {
338
                if (VerificadorUtil.naoEstaNuloOuVazio(dataInicial) && VerificadorUtil.naoEstaNuloOuVazio(dataFinal)) {
308
                        query.setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(dataInicial));
339
                        query.setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(dataInicial));