Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
510 blopes 1
package br.com.ec.controller;
2
 
3
import java.io.Serializable;
4
 
5
import javax.inject.Inject;
6
import javax.inject.Named;
7
 
8
import org.springframework.context.annotation.Scope;
9
 
10
import br.com.ec.core.generic.GenericService;
11
import br.com.ec.domain.model.Produto;
12
import br.com.ec.domain.model.tipos.TipoProduto;
13
import br.com.ec.domain.service.ProdutoService;
14
import br.com.ec.web.generic.AbstractBean;
15
import br.com.ec.web.util.TipoOperacao;
16
 
17
@Named
18
@Scope("view")
19
public class ProdutoBean extends AbstractBean<Produto> implements Serializable {
20
 
21
        private static final long serialVersionUID = 1L;
22
 
23
        private ProdutoService produtoService;
24
        /*
25
        private ProdutoLojaService produtoLojaService;
26
        private UsuarioService usuarioService;
27
        private PerfilService perfilService;
28
 
29
        private ContextoSeguranca contextoSeguranca;
30
 
31
        private Produto produtoSelecionado;
32
        private String senhaUsuario;
33
        private Loja lojaSelecionada;
34
        private Integer quantidadeEstoque;
35
        private String localizacao;
36
        private String codigoProdutoParaContagem;
37
        private ProdutoLoja produtoLojaSelecionado;
38
        private FornecedorProduto fornecedorProdutoParaVinculo;
39
        private ProdutoRelacionado produtoRelacionadoParaVinculo;
40
        private List<ProdutoHistoricoDTO> produtosHistorico;
41
        private List<ProdutoHistoricoDetalhesDTO> produtosHistoricoDetalhes;
42
 
43
        private Produto ultimoProdutoCadastrado;
44
        private String codigoProdutoParaDuplicar;
45
 
46
        private Usuario usuarioParaContagem;
47
        */
48
 
49
        @Inject
50
        public ProdutoBean(ProdutoService produtoService/*, ProdutoLojaService produtoLojaService, UsuarioService usuarioService,
51
                        PerfilService perfilService, FornecedorProdutoService fornecedorProdutoService, ContextoSeguranca contextoSeguranca*/) {
52
                this.produtoService = produtoService;
53
//              this.produtoLojaService = produtoLojaService;
54
//              this.usuarioService = usuarioService;
55
//              this.perfilService = perfilService;
56
//              this.contextoSeguranca = contextoSeguranca;
57
        }
58
 
59
        @Override
60
        public void preCarregamento() {
61
                entidade = new Produto();
62
//              parametrosConsulta = new ParametrosConsultaProdutoDTO();
63
//              parametrosConsulta.setEntidade(entidade);
64
        }
65
 
66
        @Override
67
        public void limparEntidade() {
68
                setEntidade(new Produto());
69
//              setCodigoProdutoParaDuplicar(null);
70
        }
71
 
72
        @Override
73
        public GenericService<Produto> getService() {
74
                return produtoService;
75
        }
76
 
77
        @Override
78
        public Produto getEntidade() {
79
                return entidade;
80
        }
81
 
82
        @Override
83
        public Produto getId() {
84
                return getEntidade();
85
        }
86
 
87
        @Override
88
        public void preConsultar() {
89
                setTipoOperacao(TipoOperacao.CONSULTAR);
90
        }
91
 
92
        @Override
93
        public void preCadastrar() {
94
                super.preCadastrar();
95
//              prepararNovoProduto();
96
        }
97
 
98
        public TipoProduto[] getTiposProduto() {
99
                return TipoProduto.values();
100
        }
101
 
102
        /*
103
        @Override
104
        public void preAlterar(Produto produto) {
105
                Produto produtoConsultado = produtoService.detalharProduto(produto);
106
                super.preAlterar(produtoConsultado);
107
        }
108
 
109
        public Produto getProdutoSelecionado() {
110
                return produtoSelecionado;
111
        }
112
        public void setProdutoSelecionado(Produto produtoSelecionado) {
113
                this.produtoSelecionado = produtoSelecionado;
114
        }
115
 
116
        public String getSenhaUsuario() {
117
                return senhaUsuario;
118
        }
119
        public void setSenhaUsuario(String senhaUsuario) {
120
                this.senhaUsuario = senhaUsuario;
121
        }
122
 
123
        public Loja getLojaSelecionada() {
124
                return lojaSelecionada;
125
        }
126
        public void setLojaSelecionada(Loja lojaSelecionada) {
127
                this.lojaSelecionada = lojaSelecionada;
128
        }
129
 
130
        public Integer getQuantidadeEstoque() {
131
                return quantidadeEstoque;
132
        }
133
        public void setQuantidadeEstoque(Integer quantidadeEstoque) {
134
                this.quantidadeEstoque = quantidadeEstoque;
135
        }
136
 
137
        public String getLocalizacao() {
138
                return localizacao;
139
        }
140
        public void setLocalizacao(String localizacao) {
141
                this.localizacao = localizacao;
142
        }
143
 
144
        public String getCodigoProdutoParaContagem() {
145
                return codigoProdutoParaContagem;
146
        }
147
        public void setCodigoProdutoParaContagem(String codigoProdutoParaContagem) {
148
                this.codigoProdutoParaContagem = codigoProdutoParaContagem;
149
        }
150
 
151
        public ProdutoLoja getProdutoLojaSelecionado() {
152
                return produtoLojaSelecionado;
153
        }
154
        public void setProdutoLojaSelecionado(ProdutoLoja produtoLojaSelecionado) {
155
                this.produtoLojaSelecionado = produtoLojaSelecionado;
156
        }
157
 
158
        public FornecedorProduto getFornecedorProdutoParaVinculo() {
159
                return fornecedorProdutoParaVinculo;
160
        }
161
        public void setFornecedorProdutoParaVinculo(FornecedorProduto fornecedorProdutoParaVinculo) {
162
                this.fornecedorProdutoParaVinculo = fornecedorProdutoParaVinculo;
163
        }
164
 
165
        public ProdutoRelacionado getProdutoRelacionadoParaVinculo() {
166
                return produtoRelacionadoParaVinculo;
167
        }
168
        public void setProdutoRelacionadoParaVinculo(ProdutoRelacionado produtoRelacionadoParaVinculo) {
169
                this.produtoRelacionadoParaVinculo = produtoRelacionadoParaVinculo;
170
        }
171
 
172
        public List<ProdutoHistoricoDTO> getProdutosHistorico() {
173
                return produtosHistorico;
174
        }
175
        public void setProdutosHistorico(List<ProdutoHistoricoDTO> produtosHistorico) {
176
                this.produtosHistorico = produtosHistorico;
177
        }
178
 
179
        public List<ProdutoHistoricoDetalhesDTO> getProdutosHistoricoDetalhes() {
180
                return produtosHistoricoDetalhes;
181
        }
182
        public void setProdutosHistoricoDetalhes(List<ProdutoHistoricoDetalhesDTO> produtosHistoricoDetalhes) {
183
                this.produtosHistoricoDetalhes = produtosHistoricoDetalhes;
184
        }
185
 
186
        public Produto getUltimoProdutoCadastrado() {
187
                return ultimoProdutoCadastrado;
188
        }
189
        public void setUltimoProdutoCadastrado(Produto ultimoProdutoCadastrado) {
190
                this.ultimoProdutoCadastrado = ultimoProdutoCadastrado;
191
        }
192
 
193
        public String getCodigoProdutoParaDuplicar() {
194
                return codigoProdutoParaDuplicar;
195
        }
196
        public void setCodigoProdutoParaDuplicar(String codigoProdutoParaDuplicar) {
197
                this.codigoProdutoParaDuplicar = codigoProdutoParaDuplicar;
198
        }
199
 
200
        public Usuario getUsuarioParaContagem() {
201
                return usuarioParaContagem;
202
        }
203
        public void setUsuarioParaContagem(Usuario usuarioParaContagem) {
204
                this.usuarioParaContagem = usuarioParaContagem;
205
        }
206
        */
207
 
208
        /***************************************************************/
209
 
210
        /*
211
        public List<Produto> getConsultarTodas() {
212
                return produtoService.consultarTodos(new Produto());
213
        }
214
 
215
        public Integer consultarEstoque(Produto produto) {
216
                return produtoLojaService.consultarEstoqueProduto(produto);
217
        }
218
 
219
        public Integer consultarEstoquePorModelo(Modelo modelo) {
220
                return consultarEstoquePorModeloEeTipo(modelo, null);
221
        }
222
 
223
        public Integer consultarEstoquePorModeloEeTipo(Modelo modelo, String tipoProduto) {
224
                return produtoLojaService.consultarEstoqueModeloEeLoja(modelo, null, null, tipoProduto, null, null);
225
        }
226
 
227
        public Integer consultarEstoque(Produto produto, Long sequencialLoja) {
228
                return produtoLojaService.consultarEstoqueProdutoEeLoja(produto, new Loja(sequencialLoja));
229
        }
230
 
231
        public Integer consultarEstoquePorModeloEeLoja(Long sequencialModelo, Long sequencialLoja, String descricaoProduto, String tipoProduto, String genero, String tipoEstilo) {
232
                Modelo modelo = new Modelo();
233
                modelo.setSequencial(sequencialModelo);
234
                return produtoLojaService.consultarEstoqueModeloEeLoja(modelo, sequencialLoja, descricaoProduto, tipoProduto, tipoEstilo, genero);
235
        }
236
 
237
        public Date consultarDataContagem(Produto produto, Loja loja) {
238
                return produtoLojaService.consultarDataContagem(produto, loja);
239
        }
240
 
241
        public ProdutoLoja consultarProdutoLoja(Produto produto, Long sequencialLoja) {
242
                return produtoLojaService.consultarProdutoLoja(produto, new Loja(sequencialLoja));
243
        }
244
 
245
        public TipoProdutoCapas[] getTiposProdutoCapas() {
246
                return TipoProdutoCapas.values();
247
        }
248
 
249
        public TipoProdutoRemedios[] getTiposProdutoRemedios() {
250
                return TipoProdutoRemedios.values();
251
        }
252
 
253
        public TipoProdutoAtendimentos[] getTiposProdutoAtendimentos() {
254
                return TipoProdutoAtendimentos.values();
255
        }
256
 
257
        public TipoGenero[] getTiposGenero() {
258
                return TipoGenero.values();
259
        }
260
 
261
        public TipoEstiloProduto[] getTiposEstilo() {
262
                return TipoEstiloProduto.values();
263
        }
264
 
265
        public TipoCorProduto[] getTiposCor() {
266
                return TipoCorProduto.values();
267
        }
268
 
269
        public TipoGeneroProduto[] getTiposGeneroProduto() {
270
                return TipoGeneroProduto.values();
271
        }
272
 
273
        public void prepararNovoProduto() {
274
                limparEntidade();
275
                getEntidade().prepararNovoProduto();
276
        }
277
 
278
        @Override
279
        public void cadastrar() {
280
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
281
                        public void execute() {
282
                                modificarEntidadeAntesDaOperacao();
283
                                getService().cadastrar(entidade);
284
                                String codigoProdutoCadastro = entidade.getCodigoProdutoPadrao();
285
                                setUltimoProdutoCadastrado(entidade);
286
                                limparEntidade();
287
                                modificarEntidadeDepoisDaOperacao();
288
                                LancadorMensagem.lancarSucesso(getMensagens().get(IDENTIFICADOR_MENSAGEM_CADASTRADO_COM_SUCESSO) + " CÓDIGO GERADO: " + codigoProdutoCadastro);
289
                        }
290
                });
291
        }
292
 
293
        public void lancarAvaria(final EstoqueAuditoria estoqueAuditoria, final Loja loja) {
294
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
295
                        public void execute() {
296
                                Usuario usuario = verificarSenhaUsuario();
297
                                verificarSeTemPerfilVendedorOuSuperior(usuario);
298
                                produtoService.lancarAvaria(estoqueAuditoria, loja, estoqueAuditoria.getProduto(), usuario);
299
                                setSenhaUsuario("");
300
                                LancadorMensagem.lancarSucessoRedirecionandoTela("AVARIA CONFIRMADA COM SUCESSO!", "/sistema/informar_avaria.xhtml?sequencialLoja=" + loja.getSequencial());
301
                        }
302
                });
303
        }
304
 
305
        public void lancarAvaria(final EstoqueAuditoria estoqueAuditoria, final Loja loja, final Integer quantidadeParaAvaria) {
306
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
307
                        public void execute() {
308
                                Usuario usuario = verificarSenhaUsuario();
309
                                verificarSeTemPerfilVendedorOuSuperior(usuario);
310
                                produtoService.lancarAvarias(estoqueAuditoria, loja, estoqueAuditoria.getProduto(), usuario, quantidadeParaAvaria);
311
                                setSenhaUsuario("");
312
                                LancadorMensagem.lancarSucessoRedirecionandoTela("AVARIA CONFIRMADA COM SUCESSO!", "/sistema/informar_avaria.xhtml?sequencialLoja=" + loja.getSequencial());
313
                        }
314
                });
315
        }
316
 
317
        public void lancarTroca(final EstoqueAuditoria estoqueAuditoria, final Loja loja) {
318
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
319
                        public void execute() {
320
                                Usuario usuario = verificarSenhaUsuario();
321
                                verificarSeTemPerfilVendedorOuSuperior(usuario);
322
                                produtoService.lancarTroca(estoqueAuditoria, loja, estoqueAuditoria.getProduto(), usuario);
323
                                setSenhaUsuario("");
324
                                LancadorMensagem.lancarSucessoRedirecionandoTela("TROCA CONFIRMADA COM SUCESSO!", "/sistema/informar_troca.xhtml?sequencialLoja=" + loja.getSequencial());
325
                        }
326
                });
327
        }
328
 
329
        private Usuario verificarSenhaUsuario() {
330
                return usuarioService.consultarUsuarioPorSenha(getSenhaUsuario());
331
        }
332
 
333
        private void verificarSeTemPerfilVendedorOuSuperior(Usuario usuario) {
334
                if (!perfilService.temPerfilVendedor(usuario) &&
335
                        !perfilService.temPerfilLojistica(usuario) &&
336
                        !perfilService.temPerfilCompras(usuario) &&
337
                        !perfilService.temPerfilRecursosHumanos(usuario)) {
338
                        throw new NegocioException("Sem permissão para esta operação");
339
                }
340
        }
341
 
342
        public void desativarProduto() {
343
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
344
                        public void execute() {
345
                                produtoService.desativarProduto(getEntidade());
346
                                limparEntidade();
347
                                LancadorMensagem.lancarSucesso("PRODUTO DESATIVADO COM SUCESSO!");
348
                        }
349
                });
350
        }
351
 
352
        public void ativarProduto() {
353
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
354
                        public void execute() {
355
                                produtoService.ativarProduto(getEntidade());
356
                                limparEntidade();
357
                                LancadorMensagem.lancarSucesso("PRODUTO ATIVADO COM SUCESSO!");
358
                        }
359
                });
360
        }
361
 
362
        public void alterarEstoque(final Produto produto, final Loja loja) {
363
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
364
                        public void execute() {
365
                                produtoLojaService.alterarEstoque(getQuantidadeEstoque(), produto, loja);
366
                                LancadorMensagem.lancarSucesso("ESTOQUE ALTERADO COM SUCESSO!");
367
                        }
368
                });
369
        }
370
 
371
        public void alterarLocalizacao(final Produto produto, final Loja loja) {
372
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
373
                        public void execute() {
374
                                produtoLojaService.alterarLocalizacao(getLocalizacao(), produto, loja);
375
                                LancadorMensagem.lancarSucesso("LOCALIZAÇÃO ALTERADA COM SUCESSO!");
376
                        }
377
                });
378
        }
379
 
380
        public void adicionarEstoque(final Produto produto, final Loja loja) {
381
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
382
                        public void execute() {
383
                                produtoLojaService.alterarEstoqueAcrescentandoQuantidadeInformada(1, produto, loja);
384
                                LancadorMensagem.lancarSucesso("ESTOQUE ADICIONADO COM SUCESSO!");
385
                        }
386
                });
387
        }
388
 
389
        public void retirarEstoque(final Produto produto, final Loja loja) {
390
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
391
                        public void execute() {
392
                                produtoLojaService.alterarEstoqueAcrescentandoQuantidadeInformada(-1, produto, loja);
393
                                LancadorMensagem.lancarSucesso("ESTOQUE ADICIONADO COM SUCESSO!");
394
                        }
395
                });
396
        }
397
 
398
        public Integer quantidadeDias(Date dataInicial) {
399
                return DataUtils.calcularDiferenceEmDiasEntreDuasDatas(DataUtils.getDataAtual(), dataInicial);
400
        }
401
 
402
        public void iniciarContagem() {
403
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
404
                        public void execute() {
405
                                Usuario usuarioContagem = usuarioService.consultarUsuarioPorSenha(getSenhaUsuario());
406
                                usuarioService.naoPermitirPerfilLoja(usuarioContagem);
407
                                setUsuarioParaContagem(usuarioContagem);
408
                                setSenhaUsuario("");
409
                        }
410
                });
411
        }
412
 
413
        public void sairContagem() {
414
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
415
                        public void execute() {
416
                                setUsuarioParaContagem(null);
417
                        }
418
                });
419
        }
420
 
421
        public String verificarStatusContagem(Produto produto, Loja loja) {
422
                ProdutoLoja produtoLoja = produtoLojaService.consultarProdutoLoja(produto, loja);
423
                if (VerificadorUtil.naoEstaNulo(produtoLoja)) {
424
                        if (produtoLoja.getIndicadorContagemSolicitada()) {
425
                                return ConstantesSEC.StatusContagem.CONTAGEM_SOLICITADA_STYLE_CLASS;
426
                        }
427
                }
428
                Date dataContagemSolicitada = null;
429
                if (VerificadorUtil.naoEstaNulo(produto.getMarcaDoModelo())) {
430
                        dataContagemSolicitada = produto.getMarcaDoModelo().getDataContagemSolicitada();
431
                }
432
                return UtilBean.statusContagem(consultarDataContagem(produto, loja), dataContagemSolicitada);
433
        }
434
 
435
        public void prepararParaContagem(Produto produto, Loja loja) {
436
                setProdutoLojaSelecionado(produtoLojaService.consultarProdutoLoja(produto, loja));
437
                setQuantidadeEstoque(getProdutoLojaSelecionado().getQuantidadeEstoque());
438
                setLocalizacao(getProdutoLojaSelecionado().getLocalizacao());
439
        }
440
 
441
        public void prepararParaContagemPorCodigo(final Loja loja) {
442
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
443
                        public void execute() {
444
                                Produto produtoConsultado = produtoService.consultarProdutoPorCodigoParaContagem(StringUtils.trim(getCodigoProdutoParaContagem()), loja, getUsuarioParaContagem());
445
                                ((ParametrosConsultaProdutoDTO)parametrosConsulta).setLojaSelecionadaParaContagem(getLojaSelecionada());
446
                                setProdutoLojaSelecionado(produtoLojaService.consultarProdutoLoja(produtoConsultado, loja));
447
                                setQuantidadeEstoque(getProdutoLojaSelecionado().getQuantidadeEstoque());
448
                                setLocalizacao(getProdutoLojaSelecionado().getLocalizacao());
449
                                adicionandoParametroArgsConfirmandoAcao(true);
450
                        }
451
                });
452
        }
453
 
454
        public void realizarContagemDireta() {
455
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
456
                        public void execute() {
457
                                setUsuarioParaContagem(contextoSeguranca.obterUsuario());
458
                                verificarSeTemPerfilVendedorOuSuperior(getUsuarioParaContagem());
459
                                produtoService.realizarContagemDireta(getProdutoLojaSelecionado(), getQuantidadeEstoque(), getLocalizacao(), getUsuarioParaContagem(), false);
460
                                setCodigoProdutoParaContagem("");
461
                                LancadorMensagem.lancarSucesso("CONTAGEM REALIZADA COM SUCESSO! CÓDIGO: " + getProdutoLojaSelecionado().getProduto().getCodigoProdutoPadrao());
462
                        }
463
                });
464
        }
465
 
466
        public void realizarContagem() {
467
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
468
                        public void execute() {
469
                                verificarSeTemPerfilVendedorOuSuperior(getUsuarioParaContagem());
470
                                produtoService.realizarContagem(getProdutoLojaSelecionado(), getQuantidadeEstoque(), getLocalizacao(), getUsuarioParaContagem(), false);
471
                                setCodigoProdutoParaContagem("");
472
                                LancadorMensagem.lancarSucesso("CONTAGEM REALIZADA COM SUCESSO! CÓDIGO: " + getProdutoLojaSelecionado().getProduto().getCodigoProdutoPadrao());
473
                        }
474
                });
475
        }
476
 
477
        public void realizarContagemRedirecionandoTela() {
478
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
479
                        public void execute() {
480
                                verificarSeTemPerfilVendedorOuSuperior(contextoSeguranca.obterUsuario());
481
                                produtoService.realizarContagem(getProdutoLojaSelecionado(), getQuantidadeEstoque(), getLocalizacao(), contextoSeguranca.obterUsuario(), false);
482
                                LancadorMensagem.lancarSucessoRedirecionandoTela("CONTAGEM REALIZADA COM SUCESSO!", "/sistema/contagem/contagem-loja.xhtml?sequencialLoja=" + getProdutoLojaSelecionado().getSequencialDaLoja());
483
                        }
484
                });
485
        }
486
 
487
        public Produto detalharProduto(Produto produto) {
488
                Produto produtoDetalhado = produtoService.detalharProduto(produto);
489
                produtoDetalhado.setDataUltimaVenda(produtoService.dataUltimaVenda(produtoDetalhado));
490
                return produtoDetalhado;
491
        }
492
 
493
        public void consultarHistorico(Produto produto) {
494
                setProdutoSelecionado(produtoService.detalharProduto(produto));
495
                setProdutosHistorico(produtoService.consultarHistorico(getProdutoSelecionado(), 12));
496
        }
497
 
498
        public void detalharHistorico(ProdutoHistoricoDTO produtoHistorico) {
499
                setProdutosHistoricoDetalhes(produtoService.detalharHistorico(produtoHistorico));
500
        }
501
 
502
        public Integer quantidadeProdutosParaRetirarDoOnline(Loja loja) {
503
                return produtoService.quantidadeProdutosParaRetirarDoOnline(loja);
504
        }
505
 
506
        public void prepararNovoFornecedor() {
507
                setFornecedorProdutoParaVinculo(new FornecedorProduto());
508
        }
509
 
510
        public void vincularNovoFornecedor() {
511
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
512
                        public void execute() {
513
                                getFornecedorProdutoParaVinculo().setProduto(getEntidade());
514
                                getEntidade().getFornecedores().add(getFornecedorProdutoParaVinculo());
515
                                setFornecedorProdutoParaVinculo(null);
516
                        }
517
                });
518
        }
519
 
520
        public void excluirVinculo(final FornecedorProduto fornecedorProduto) {
521
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
522
                        public void execute() {
523
                                getEntidade().getFornecedores().remove(fornecedorProduto);
524
                        }
525
                });
526
        }
527
 
528
        public void prepararNovoRelacionado() {
529
                ProdutoRelacionado produtoRelacionado = new ProdutoRelacionado();
530
                produtoRelacionado.setProdutoRelacionado(new Produto());
531
                setProdutoRelacionadoParaVinculo(produtoRelacionado);
532
        }
533
 
534
        public void consultarProdutoRelacionado() {
535
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
536
                        public void execute() {
537
                                Produto produtoSelecionado = produtoService.consultarProdutoPorCodigoOuCodigoEAN(getProdutoRelacionadoParaVinculo().getProdutoRelacionado().getCodigo());
538
                                if (VerificadorUtil.naoEstaNulo(produtoSelecionado)) {
539
                                        getProdutoRelacionadoParaVinculo().setProdutoRelacionado(produtoSelecionado);
540
                                }
541
                        }
542
                });
543
        }
544
 
545
        public void vincularNovoRelacionado() {
546
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
547
                        public void execute() {
548
                                getProdutoRelacionadoParaVinculo().setProduto(getEntidade());
549
                                getEntidade().getRelacionados().add(getProdutoRelacionadoParaVinculo());
550
                                setProdutoRelacionadoParaVinculo(null);
551
                        }
552
                });
553
        }
554
 
555
        public void excluirRelacionado(final ProdutoRelacionado produtoRelacionado) {
556
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
557
                        public void execute() {
558
                                getEntidade().getRelacionados().remove(produtoRelacionado);
559
                                getEntidade().getRelacionadosReverse().remove(produtoRelacionado);
560
                        }
561
                });
562
        }
563
 
564
        public void recuperarUltimoCadastro() {
565
                getUltimoProdutoCadastrado().setSequencial(null);
566
                setEntidade(getUltimoProdutoCadastrado());
567
        }
568
 
569
        public void duplicarProduto() {
570
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
571
                        public void execute() {
572
                                if (VerificadorUtil.estaNuloOuVazio(getCodigoProdutoParaDuplicar())) {
573
                                        LancadorMensagem.lancarErro("INFORMAR CÓDIGO DO PRODUTO");
574
                                } else {
575
                                        Produto produtoSelecionado = produtoService.consultarProdutoPorCodigoOuCodigoEAN(getCodigoProdutoParaDuplicar());
576
                                        if (produtoSelecionado.getCodigo().equals("000000")) {
577
                                                LancadorMensagem.lancarErro("PRODUTO NÃO ENCONTRADO");
578
                                        } else {
579
                                                getEntidade().prepararDadosParaDuplicacao(produtoSelecionado);
580
                                                getEntidade().setDataOnline(null);
581
                                                getEntidade().setIndicadorOnline(null);
582
                                                LancadorMensagem.lancarSucesso("OPERAÇÃO REALIZADA COM SUCESSO");
583
                                        }
584
                                }
585
                        }
586
                });
587
        }
588
        */
589
}