Subversion Repositories Integrator Subversion

Rev

Rev 346 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
346 espaco 1
package br.com.ec.repository.jpa;
2
 
370 espaco 3
import java.util.Date;
346 espaco 4
import java.util.List;
5
 
6
import javax.persistence.TypedQuery;
7
 
8
import org.springframework.stereotype.Repository;
9
 
10
import br.com.ec.core.util.DataUtils;
370 espaco 11
import br.com.ec.core.util.VerificadorUtil;
346 espaco 12
import br.com.ec.domain.dto.EntregaDTO;
13
import br.com.ec.domain.dto.ExtratoEntregasDTO;
14
import br.com.ec.domain.model.Pedido;
15
import br.com.ec.repository.PedidoRepository;
16
import br.com.ec.repository.SistemaAbstractRepository;
17
 
18
@Repository
19
public class PedidoRepositoryJpaImpl extends SistemaAbstractRepository<Pedido> implements PedidoRepository {
20
 
21
        @Override
22
        protected String getColunaOrdenadora() {
23
//              return "dataUltimaAlteracaoSituacao, dataPedido";
24
                return "dataPedido";
25
        }
26
 
27
        @Override
28
        public List<EntregaDTO> consultarEntregas(ExtratoEntregasDTO extratoEntregasDTO) {
29
                StringBuilder sql = new StringBuilder();
30
                sql.append("SELECT new br.com.ec.domain.dto.EntregaDTO(p.sequencial, p.dataPedido, p.dataEntrega, p.kilometragemEntrega) FROM Pedido p ");
31
                sql.append("WHERE p.dataEntrega >= :dataInicial AND p.dataEntrega <= :dataFinal ");
32
                sql.append("ORDER BY dataEntrega ");
33
                try {
34
                        TypedQuery<EntregaDTO> query = getEntityManager().createQuery(sql.toString(), EntregaDTO.class);
35
                        query.setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(extratoEntregasDTO.getVigenciaDTO().getDataInicio()));
36
                        query.setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(extratoEntregasDTO.getVigenciaDTO().getDataFim()));
37
                        return query.getResultList();
38
                } catch(Exception ex) {
39
                        ex.printStackTrace();
40
                        return null;
41
                }
42
        }
43
 
370 espaco 44
        @Override
45
        public Integer obterQuantidadePedidosPorSituacaoEePeriodo(String tipoPedido, String tipoSituacaoPedido, Date dataInicial, Date dataFinal) {
46
                StringBuilder sql = new StringBuilder();
47
                sql.append("SELECT COUNT(p) FROM Pedido p ");
48
                sql.append("WHERE p.tipoSituacao = :tipoSituacao ");
49
                if (VerificadorUtil.naoEstaNuloOuVazio(tipoPedido)) {
50
                        sql.append("AND p.tipoPedido = :tipoPedido ");
51
                }
52
                if (VerificadorUtil.naoEstaNulo(dataInicial)) {
53
                        sql.append("AND p.dataUltimaAlteracaoSituacao >= :dataInicial ");
54
                }
55
                sql.append("AND p.dataUltimaAlteracaoSituacao <= :dataFinal ");
56
                TypedQuery<Long> query = getEntityManager().createQuery(sql.toString(), Long.class);
57
                if (VerificadorUtil.naoEstaNulo(tipoPedido)) {
58
                        query.setParameter("tipoPedido", tipoPedido);
59
                }
60
                if (VerificadorUtil.naoEstaNulo(dataInicial)) {
61
                        query.setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(dataInicial));
62
                }
63
                query.setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(dataFinal));
64
                query.setParameter("tipoSituacao", tipoSituacaoPedido);
65
                return query.getSingleResult().intValue();
66
 
67
        }
68
 
346 espaco 69
        /*
70
        @Override
71
        protected void setarStringParametrosConsulta(StringBuilder sql, ParametrosConsulta<Pedido> parametros) {
72
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade())) {
73
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getSequencial())) {
74
                                sql.append("AND e.sequencial = :sequencial ");
75
                        } else {
76
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getContatoCliente())) {
77
                                        sql.append("AND (");
78
                                        sql.append(sqlConsultarSemAcento("e.contatoCliente") + " LIKE upper(:contatoCliente) ");
79
                                        sql.append("OR EXISTS (SELECT c FROM Cliente c WHERE c.sequencial = e.cliente.sequencial AND ( ");
80
                                        sql.append(sqlConsultarSemAcento("e.cliente.nome") + " LIKE upper(:contatoCliente) OR ");
81
                                        sql.append("e.cliente.telefone LIKE upper(:contatoCliente) OR e.cliente.contato LIKE upper(:contatoCliente)))");
82
                                        sql.append(") ");
83
                                }
84
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getTipoSituacao())) {
85
                                        sql.append("AND e.tipoSituacao = :tipoSituacao ");
86
                                }
87
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getLoja())) {
88
                                        sql.append("AND e.loja.sequencial = :sequencialLoja ");
89
                                }
90
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getObservacao())) {
91
                                        sql.append("AND ");
92
                                        sql.append(sqlConsultarSemAcento("e.observacao"));
93
                                        sql.append(" LIKE upper(:observacaoPedido) ");
94
                                }
95
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getModelo())) {
96
                                        sql.append("AND e.modelo.sequencial = :sequencialModelo ");
97
                                }
98
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getTipoPedido())) {
99
                                        sql.append("AND e.tipoPedido = :tipoPedido ");
100
                                }
101
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getAtendido())) {
102
                                        if (((ParametrosConsultaPedidoDTO)parametros).getAtendido()) {
103
                                                sql.append("AND e.tipoSituacao IN (" + TipoSituacaoPedido.tipoSituacoesAtendidos() + ") ");
104
                                        } else {
105
                                                sql.append("AND e.tipoSituacao NOT IN (" + TipoSituacaoPedido.tipoSituacoesAtendidos() + ") ");
106
                                        }
107
                                }
108
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getValidos())) {
109
                                        if (((ParametrosConsultaPedidoDTO)parametros).getValidos()) {
110
                                                sql.append("AND e.tipoSituacao != '" + TipoSituacaoPedido.INVALIDO.getValor() + "' ");
111
                                        }
112
                                }
113
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getCompraSolicitada())) {
114
                                        if (((ParametrosConsultaPedidoDTO)parametros).getCompraSolicitada()) {
115
                                                sql.append("AND e.dataSolicitadoParaComprar != NULL ");
116
                                        } else {
117
                                                sql.append("AND e.dataSolicitadoParaComprar IS NULL ");
118
                                        }
119
                                }
120
                        }
121
                }
122
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getPessoa())) {
123
                        sql.append("AND e.usuarioPedido.pessoa.sequencial = :sequencialPessoa ");
124
                }
125
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getDataInicial())
126
                                && VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getDataFinal())) {
127
                        sql.append("AND e.dataPedido >= :dataInicial ");
128
                        sql.append("AND e.dataPedido <= :dataFinal ");
129
                }
130
        }
131
 
132
        @Override
133
        protected void setarQueryParametrosConsulta(Query query, ParametrosConsulta<Pedido> parametros) {
134
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade())) {
135
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getSequencial())) {
136
                                query.setParameter("sequencial", ((ParametrosConsultaPedidoDTO)parametros).getEntidade().getSequencial());
137
                        } else {
138
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getContatoCliente())) {
139
                                        query.setParameter("contatoCliente", "%" + removerAcentuacao(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getContatoCliente()) + "%");
140
                                }
141
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getTipoSituacao())) {
142
                                        query.setParameter("tipoSituacao", ((ParametrosConsultaPedidoDTO)parametros).getEntidade().getTipoSituacao());
143
                                }
144
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getTipoPedido())) {
145
                                        query.setParameter("tipoPedido", ((ParametrosConsultaPedidoDTO)parametros).getEntidade().getTipoPedido());
146
                                }
147
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getLoja())) {
148
                                        query.setParameter("sequencialLoja", ((ParametrosConsultaPedidoDTO)parametros).getEntidade().getSequencialDaLoja());                    }
149
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getObservacao())) {
150
                                        query.setParameter("observacaoPedido", "%" + removerAcentuacao(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getObservacao()) + "%");
151
                                }
152
                                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getEntidade().getModelo())) {
153
                                        query.setParameter("sequencialModelo", ((ParametrosConsultaPedidoDTO)parametros).getEntidade().getSequencialDoModelo());
154
                                }
155
                        }
156
                }
157
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getPessoa())) {
158
                        query.setParameter("sequencialPessoa", ((ParametrosConsultaPedidoDTO)parametros).getPessoa().getSequencial());
159
                }
160
                if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getDataInicial())
161
                                && VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaPedidoDTO)parametros).getDataFinal())) {
162
                        Date dataInicial = DataUtils.getDataComHorarioMinimo(((ParametrosConsultaPedidoDTO)parametros).getDataInicial());
163
                        Date dataFinal = DataUtils.getDataComHorarioMaximo(((ParametrosConsultaPedidoDTO)parametros).getDataFinal());
164
                        query.setParameter("dataInicial", dataInicial);
165
                        query.setParameter("dataFinal", dataFinal);
166
                }
167
        }
168
 
169
        @Override
170
        protected void setarStringParametrosConsultar(StringBuilder sql, Pedido pedido) {
171
                if (VerificadorUtil.naoEstaNuloOuVazio(pedido)) {
172
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getTipoSituacao())) {
173
                                sql.append("AND e.tipoSituacao = :tipoSituacao ");
174
                        }
175
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getTipoPedido())) {
176
                                sql.append("AND e.tipoPedido = :tipoPedido ");
177
                        }
178
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getLoja())) {
179
                                sql.append("AND e.loja.sequencial = :sequencialLoja ");
180
                        }
181
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getObservacao())) {
182
                                sql.append("AND ");
183
                                sql.append(sqlConsultarSemAcento("e.observacao"));
184
                                sql.append(" like upper(:observacaoPedido) ");
185
                        }
186
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getModelo())) {
187
                                sql.append("AND e.modelo.sequencial = :sequencialModelo ");
188
                        }
189
                }
190
        }
191
 
192
        @Override
193
        protected void setarQueryParametrosConsultar(Query query, Pedido pedido) {
194
                if (VerificadorUtil.naoEstaNuloOuVazio(pedido)) {
195
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getTipoSituacao())) {
196
                                query.setParameter("tipoSituacao", pedido.getTipoSituacao());
197
                        }
198
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getTipoPedido())) {
199
                                query.setParameter("tipoPedido", pedido.getTipoPedido());
200
                        }
201
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getLoja())) {
202
                                query.setParameter("sequencialLoja", pedido.getSequencialDaLoja());                     }
203
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getObservacao())) {
204
                                query.setParameter("observacaoPedido", "%" + removerAcentuacao(pedido.getObservacao()) + "%");
205
                        }
206
                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getModelo())) {
207
                                query.setParameter("sequencialModelo", pedido.getSequencialDoModelo());
208
                        }
209
                }
210
        }
211
 
212
        @Override
213
        public Pedido consultarPedidoCompleto(Pedido pedido) {
214
                StringBuilder jpql = new StringBuilder();
215
                try {
216
                        jpql.append("SELECT p FROM Pedido p ");
217
                        jpql.append("LEFT JOIN FETCH p.historico h ");
218
                        jpql.append("WHERE p = :pedido");
219
                        return getEntityManager().createQuery(jpql.toString(), Pedido.class).setParameter("pedido", pedido).getSingleResult();
220
                } catch (NoResultException e) {
221
                        return null;
222
                }
223
        }
224
 
225
        @Override
226
        public Pedido consultarPedidoCompletoDaVenda(Venda venda) {
227
                StringBuilder jpql = new StringBuilder();
228
                try {
229
                        jpql.append("SELECT p FROM Pedido p ");
230
                        jpql.append("LEFT JOIN FETCH p.historico h ");
231
                        jpql.append("WHERE p.venda = :venda");
232
                        return getEntityManager().createQuery(jpql.toString(), Pedido.class).setParameter("venda", venda).getSingleResult();
233
                } catch (NoResultException e) {
234
                        return null;
235
                }
236
        }
237
 
238
        @Override
239
        public List<RankingPedidoDTO> consultarRankingPedidosNaoAtendidos(String generoPedidos, Date dataInicial, Date dataFinal) {
240
                StringBuilder sql = new StringBuilder();
241
                sql.append("SELECT new br.com.ec.domain.dto.RankingPedidoDTO(p.modelo, COUNT(p.modelo)) FROM Pedido p ");
242
                sql.append("WHERE p.dataPedido >= :dataInicial AND p.dataPedido <= :dataFinal ");
243
                sql.append("AND p.tipoSituacao not in (" + TipoSituacaoPedido.tipoSituacoesAtendidos() + ") ");
244
                if (VerificadorUtil.naoEstaNuloOuVazio(generoPedidos)) {
245
                        sql.append("AND p.genero = :genero ");
246
                }
247
                sql.append("GROUP BY p.modelo ");
248
                sql.append("ORDER BY COUNT(p.modelo) DESC ");
249
                try {
250
                        TypedQuery<RankingPedidoDTO> query = getEntityManager().createQuery(sql.toString(), RankingPedidoDTO.class);
251
                        query.setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(dataInicial));
252
                        query.setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(dataFinal));
253
                        if (VerificadorUtil.naoEstaNulo(generoPedidos)) {
254
                                query.setParameter("genero", generoPedidos);
255
                        }
256
                        return query.getResultList();
257
                } catch(Exception ex) {
258
                        ex.printStackTrace();
259
                        return null;
260
                }
261
        }
262
 
263
        @Override
264
        public List<RankingPedidoDTO> consultarRankingPedidos(String generoPedidos, Date dataInicial, Date dataFinal) {
265
                StringBuilder sql = new StringBuilder();
266
                sql.append("SELECT new br.com.ec.domain.dto.RankingPedidoDTO(p.modelo, COUNT(p.modelo)) FROM Pedido p ");
267
                sql.append("WHERE p.dataPedido >= :dataInicial AND p.dataPedido <= :dataFinal ");
268
                if (VerificadorUtil.naoEstaNuloOuVazio(generoPedidos)) {
269
                        sql.append("AND p.genero = :genero ");
270
                }
271
                sql.append("GROUP BY p.modelo ");
272
                sql.append("ORDER BY COUNT(p.modelo) DESC ");
273
                try {
274
                        TypedQuery<RankingPedidoDTO> query = getEntityManager().createQuery(sql.toString(), RankingPedidoDTO.class);
275
                        if (VerificadorUtil.naoEstaNulo(generoPedidos)) {
276
                                query.setParameter("genero", generoPedidos);
277
                        }
278
                        query.setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(dataInicial));
279
                        query.setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(dataFinal));
280
                        return query.getResultList();
281
                } catch(Exception ex) {
282
                        ex.printStackTrace();
283
                        return null;
284
                }
285
        }
286
 
287
        @Override
288
        public Integer obterQuantidadePedidosPorSituacao(String tipoPedido, String tipoSituacaoPedido) {
289
                StringBuilder sql = new StringBuilder();
290
                sql.append("SELECT COUNT(p) FROM Pedido p ");
291
                sql.append("WHERE p.tipoSituacao = :tipoSituacao ");
292
                if (VerificadorUtil.naoEstaNuloOuVazio(tipoPedido)) {
293
                        sql.append("AND p.tipoPedido = :tipoPedido ");
294
                }
295
                TypedQuery<Long> query = getEntityManager().createQuery(sql.toString(), Long.class);
296
                if (VerificadorUtil.naoEstaNulo(tipoPedido)) {
297
                        query.setParameter("tipoPedido", tipoPedido);
298
                }
299
                query.setParameter("tipoSituacao", tipoSituacaoPedido);
300
                return query.getSingleResult().intValue();
301
        }
302
 
303
        @Override
304
        public void excluirHistoricosDoPedido(Pedido pedido) {
305
                StringBuilder sql = new StringBuilder();
306
                sql.append("DELETE FROM PedidoHistorico ph ");
307
                sql.append("WHERE ph.pedido = :pedido ");
308
                try {
309
                        getEntityManager().createQuery(sql.toString())
310
                                .setParameter("pedido", pedido)
311
                                .executeUpdate();
312
                        getEntityManager().flush();
313
                } catch(Exception ex) {
314
                        ex.printStackTrace();
315
                }
316
        }
317
 
318
        @Override
319
        public void solicitarEntrarEmContatoCasoExistaPedidoParaLojaSolicitante(Loja lojaEntrada, Produto produto) {
320
                StringBuilder sql = new StringBuilder();
321
                sql.append("UPDATE Pedido ppc SET ppc.usuarioAtendimento = null, ppc.dataUltimaAlteracaoSituacao = now(), ppc.tipoSituacao = '" + TipoSituacaoPedido.ENTRAR_EM_CONTATO.getValor() + "' ");
322
                sql.append("WHERE ppc.loja = :lojaEntrada ");
323
                sql.append("AND ppc.tipoSituacao NOT IN (" + TipoSituacaoPedido.tipoSituacoesNaoPendentes() + ") ");
324
                sql.append("AND ppc in (SELECT pp.pedido FROM PedidoProduto pp WHERE pp.pedido = ppc AND pp.produto = :produto) ");
325
                try {
326
                        getEntityManager().createQuery(sql.toString())
327
                                .setParameter("lojaEntrada", lojaEntrada)
328
                                .setParameter("produto", produto)
329
                                .executeUpdate();
330
                        getEntityManager().flush();
331
                } catch(Exception ex) {
332
                        ex.printStackTrace();
333
                }
334
        }
335
 
336
        @Override
337
        public List<PedidoProduto> consultarPedidosNaoAtendidos(Produto produto) {
338
                StringBuilder sql = new StringBuilder();
339
                try {
340
                        sql.append("SELECT pp FROM PedidoProduto pp ");
341
                        sql.append("WHERE pp.produto.sequencial = :sequencialProduto ");
342
                        sql.append("AND pp.pedido.tipoSituacao NOT IN (" + TipoSituacaoPedido.tipoSituacoesAtendidos() + ") ");
343
                        TypedQuery<PedidoProduto> query = getEntityManager().createQuery(sql.toString(), PedidoProduto.class);
344
                        query.setParameter("sequencialProduto", produto.getSequencial());
345
                        return query.getResultList();
346
                } catch(Exception ex) {
347
                        ex.printStackTrace();
348
                        return null;
349
                }
350
        }
351
 
352
        @Override
353
        public List<Pedido> consultarPedidosDoCliente(Cliente cliente) {
354
                StringBuilder sql = new StringBuilder();
355
                try {
356
                        sql.append("SELECT p FROM Pedido p ");
357
                        sql.append("WHERE p.cliente = :cliente ");
358
                        TypedQuery<Pedido> query = getEntityManager().createQuery(sql.toString(), Pedido.class);
359
                        query.setParameter("cliente", cliente);
360
                        return query.getResultList();
361
                } catch(Exception ex) {
362
                        ex.printStackTrace();
363
                        return null;
364
                }
365
        }
366
 
367
        @Override
368
        public List<Pedido> consultarPedidosDoProdutoOuModeloPendentes(Produto produto) {
369
                StringBuilder sql = new StringBuilder();
370
                try {
371
                        sql.append("SELECT p FROM Pedido p ");
372
                        sql.append("WHERE p.tipoPedido = '" + TipoPedido.RESERVA.getValor() + "' ");
373
                        sql.append("AND p.tipoSituacao NOT IN (" + TipoSituacaoPedido.tipoSituacoesNaoPendentes() + ") ");
374
                        sql.append("AND ((p.modelo.sequencial = :modeloProduto ");
375
                        sql.append("AND (p.tipoProduto = :tipoProduto OR p.tipoProduto IS NULL) ");
376
                        if (!produto.getGenero().equals(TipoGenero.UNISSEX.getValor())) {
377
                                sql.append("AND (p.genero = :generoProduto OR p.genero IS NULL)) ");
378
                        } else {
379
                                sql.append(") ");
380
                        }
381
                        sql.append("OR p in (SELECT pp.pedido FROM PedidoProduto pp WHERE pp.pedido = p AND pp.produto.sequencial = :sequencialProduto)) ");
382
 
383
                        TypedQuery<Pedido> query = getEntityManager().createQuery(sql.toString(), Pedido.class);
384
                        query.setParameter("modeloProduto", produto.getSequencialDoModelo());
385
                        query.setParameter("tipoProduto", produto.getTipo());
386
                        if (!produto.getGenero().equals(TipoGenero.UNISSEX.getValor())) {
387
                                query.setParameter("generoProduto", produto.getGenero());
388
                        }
389
                        query.setParameter("sequencialProduto", produto.getSequencial());
390
                        return query.getResultList();
391
                } catch(Exception ex) {
392
                        ex.printStackTrace();
393
                        return null;
394
                }
395
        }
396
        */
397
}