Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
106 espaco 1
 
2
package br.com.ec.controller.managedbean;
3
 
4
import java.io.Serializable;
5
import java.util.ArrayList;
6
import java.util.HashMap;
7
import java.util.List;
8
 
9
import javax.inject.Inject;
10
import javax.inject.Named;
11
 
12
import org.springframework.context.annotation.Scope;
13
 
195 espaco 14
import br.com.ec.core.generic.GenericService;
15
import br.com.ec.core.util.DataUtils;
16
import br.com.ec.core.util.VerificadorUtil;
106 espaco 17
import br.com.ec.domain.dto.ParametrosConsultaPedidoCompraDTO;
18
import br.com.ec.domain.dto.PedidosResumoDTO;
19
import br.com.ec.domain.dto.ProdutoPedidoCompraExtrairDTO;
20
import br.com.ec.domain.model.Fornecedor;
21
import br.com.ec.domain.model.FornecedorProduto;
22
import br.com.ec.domain.model.Loja;
23
import br.com.ec.domain.model.Produto;
24
import br.com.ec.domain.model.ProdutoPedidoCompra;
731 blopes 25
import br.com.ec.domain.model.SubtipoProduto;
106 espaco 26
import br.com.ec.domain.model.tipos.TipoStatusPedidoCompra;
27
import br.com.ec.domain.service.fornecedor.FornecedorService;
28
import br.com.ec.domain.service.fornecedorproduto.FornecedorProdutoService;
29
import br.com.ec.domain.service.produto.ProdutoService;
30
import br.com.ec.domain.service.produtodaloja.ProdutoLojaService;
31
import br.com.ec.domain.service.produtopedidocompra.ProdutoPedidoCompraService;
32
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
731 blopes 33
import br.com.ec.domain.service.subtipoproduto.SubtipoProdutoService;
195 espaco 34
import br.com.ec.web.exception.VerificadorLancamentoException;
35
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
36
import br.com.ec.web.generic.AbstractBean;
37
import br.com.ec.web.message.LancadorMensagem;
106 espaco 38
 
39
@Named
40
@Scope("view")
41
public class ProdutoPedidoCompraBean extends AbstractBean<ProdutoPedidoCompra> implements Serializable {
42
 
43
        private static final long serialVersionUID = 1L;
44
 
45
        private List<ProdutoPedidoCompra> produtoPedidoCompras;
46
 
47
        private ProdutoPedidoCompraService produtoPedidoCompraService;
48
        private FornecedorProdutoService fornecedorProdutoService;
49
        private FornecedorService fornecedorService;
50
        private ProdutoService produtoService;
51
        private ProdutoLojaService produtoLojaService;
731 blopes 52
        private SubtipoProdutoService subtipoProdutoService;
106 espaco 53
        private ContextoSeguranca contextoSeguranca;
54
 
55
        private ProdutoPedidoCompra produtoPedidoCompraSelecionado;
56
 
57
        private ProdutoPedidoCompraExtrairDTO produtoPedidoCompraExtrairDTO;
58
        private String pedidoEmTexto;
59
 
60
        private Loja lojaAlteracao;
61
        private Fornecedor fornecedorAlteracao;
62
        private String statusAlteracao;
63
 
64
        private List<PedidosResumoDTO> resumoPedidos;
731 blopes 65
        private List<SubtipoProduto> listaSubtipos;
106 espaco 66
 
67
        @Inject
68
        public ProdutoPedidoCompraBean(ProdutoPedidoCompraService produtoPedidoCompraService, FornecedorProdutoService fornecedorProdutoService,
731 blopes 69
                        FornecedorService fornecedorService, ProdutoService produtoService, ProdutoLojaService produtoLojaService, SubtipoProdutoService subtipoProdutoService,
70
                        ContextoSeguranca contextoSeguranca) {
106 espaco 71
                this.produtoPedidoCompraService = produtoPedidoCompraService;
72
                this.fornecedorProdutoService = fornecedorProdutoService;
73
                this.fornecedorService = fornecedorService;
74
                this.produtoService = produtoService;
75
                this.produtoLojaService = produtoLojaService;
731 blopes 76
                this.subtipoProdutoService = subtipoProdutoService;
106 espaco 77
                this.contextoSeguranca = contextoSeguranca;
78
        }
79
 
80
        @Override
81
        public void preCarregamento() {
82
                entidade = new ProdutoPedidoCompra();
83
                entidade.setProduto(new Produto());
84
                parametrosConsulta = new ParametrosConsultaPedidoCompraDTO();
85
                parametrosConsulta.setEntidade(entidade);
86
        }
87
 
88
        @Override
89
        public void limparEntidade() {
90
                setEntidade(new ProdutoPedidoCompra());
91
        }
92
 
93
        @Override
94
        public GenericService<ProdutoPedidoCompra> getService() {
95
                return produtoPedidoCompraService;
96
        }
97
 
98
        @Override
99
        public ProdutoPedidoCompra getEntidade() {
100
                return entidade;
101
        }
102
 
103
        @Override
104
        public ProdutoPedidoCompra getId() {
105
                return getEntidade();
106
        }
107
 
108
        public List<ProdutoPedidoCompra> getProdutoPedidoCompras() {
109
                return produtoPedidoCompras;
110
        }
111
        public void setProdutoPedidoCompras(List<ProdutoPedidoCompra> produtoPedidoCompras) {
112
                this.produtoPedidoCompras = produtoPedidoCompras;
113
        }
114
        public void prepararConsulta() {
115
                setProdutoPedidoCompras(produtoPedidoCompraService.consultarPassandoParametrosConsulta(parametrosConsulta, 0, produtoPedidoCompraService.obterQuantidadeDeRegistrosParametrosConsulta(parametrosConsulta), null, null, new HashMap<String, Object>()));
116
                atualizarResumoPedidos();
117
        }
118
        public Integer quantidadeItensPedidoParaComprar() {
119
                Integer quantidadeItens = 0;
120
                if (VerificadorUtil.naoEstaNulo(getProdutoPedidoCompras())) {
121
                        for (ProdutoPedidoCompra produtoPedidoCompra : getProdutoPedidoCompras()) {
122
                                if (VerificadorUtil.naoEstaNulo(produtoPedidoCompra.getQuantidadeParaComprar())) {
123
                                        quantidadeItens = quantidadeItens + produtoPedidoCompra.getQuantidadeParaComprar();
124
                                }
125
                        }
126
                }
127
                return quantidadeItens;
128
        }
129
 
130
        public ProdutoPedidoCompra getProdutoPedidoCompraSelecionado() {
131
                return produtoPedidoCompraSelecionado;
132
        }
133
        public void setProdutoPedidoCompraSelecionado(ProdutoPedidoCompra produtoPedidoCompraSelecionado) {
134
                this.produtoPedidoCompraSelecionado = produtoPedidoCompraSelecionado;
135
        }
136
 
137
        public TipoStatusPedidoCompra[] getTiposStatusPedidoCompra() {
138
                return TipoStatusPedidoCompra.values();
139
        }
140
 
141
        public ProdutoPedidoCompraExtrairDTO getProdutoPedidoCompraExtrairDTO() {
142
                return produtoPedidoCompraExtrairDTO;
143
        }
144
        public void setProdutoPedidoCompraExtrairDTO(ProdutoPedidoCompraExtrairDTO produtoPedidoCompraExtrairDTO) {
145
                this.produtoPedidoCompraExtrairDTO = produtoPedidoCompraExtrairDTO;
146
        }
147
 
148
        public String getPedidoEmTexto() {
149
                return pedidoEmTexto;
150
        }
151
        public void setPedidoEmTexto(String pedidoEmTexto) {
152
                this.pedidoEmTexto = pedidoEmTexto;
153
        }
154
 
155
        public Loja getLojaAlteracao() {
156
                return lojaAlteracao;
157
        }
158
        public void setLojaAlteracao(Loja lojaAlteracao) {
159
                this.lojaAlteracao = lojaAlteracao;
160
        }
161
 
162
        public Fornecedor getFornecedorAlteracao() {
163
                return fornecedorAlteracao;
164
        }
165
        public void setFornecedorAlteracao(Fornecedor fornecedorAlteracao) {
166
                this.fornecedorAlteracao = fornecedorAlteracao;
167
        }
168
 
169
        public String getStatusAlteracao() {
170
                return statusAlteracao;
171
        }
172
        public void setStatusAlteracao(String statusAlteracao) {
173
                this.statusAlteracao = statusAlteracao;
174
        }
175
 
176
        public List<PedidosResumoDTO> getResumoPedidos() {
177
                return resumoPedidos;
178
        }
179
        public void setResumoPedidos(List<PedidosResumoDTO> resumoPedidos) {
180
                this.resumoPedidos = resumoPedidos;
181
        }
182
 
731 blopes 183
        public List<SubtipoProduto> getListaSubtipos() {
184
                if (VerificadorUtil.estaNulo(listaSubtipos)) {
185
                        setListaSubtipos(subtipoProdutoService.consultarTodosAtivos());
186
                }
187
                return listaSubtipos;
188
        }
189
        public void setListaSubtipos(List<SubtipoProduto> listaSubtipos) {
190
                this.listaSubtipos = listaSubtipos;
191
        }
192
 
106 espaco 193
        public Double getValorTotalPedido() {
194
                Double valorTotal = new Double(0.0);
195
                if (VerificadorUtil.naoEstaNuloOuVazio(getProdutoPedidoCompras())) {
196
                        for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
197
                                if (VerificadorUtil.naoEstaNulo(pedido.getProduto().getValorCompra()) &&
198
                                                VerificadorUtil.naoEstaNulo(pedido.getQuantidadeParaComprar())) {
199
                                        valorTotal = valorTotal + (pedido.getProduto().getValorCompra() * pedido.getQuantidadeParaComprar());
200
                                }
201
                        }
202
                }
203
                return valorTotal;
204
        }
205
        public Double getValorTotalOrcadoPedido() {
206
                Double valorTotal = new Double(0.0);
207
                if (VerificadorUtil.naoEstaNuloOuVazio(getProdutoPedidoCompras())) {
208
                        for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
209
                                if (VerificadorUtil.naoEstaNulo(pedido.getValorOrcado()) &&
210
                                                VerificadorUtil.naoEstaNulo(pedido.getQuantidadeParaComprar())) {
211
                                        valorTotal = valorTotal + (pedido.getValorOrcado() * pedido.getQuantidadeParaComprar());
212
                                }
213
                        }
214
                }
215
                return valorTotal;
216
        }
217
 
218
        public void atualizarResumoPedidos() {
219
                List<Fornecedor> fornecedores = fornecedorService.consultarTodos(new Fornecedor());
220
                List<PedidosResumoDTO> resumo = new ArrayList<PedidosResumoDTO>();
221
                for (Fornecedor fornecedor : fornecedores) {
222
                        PedidosResumoDTO pedidosResumoDTO = new PedidosResumoDTO();
223
                        pedidosResumoDTO.setFornecedor(fornecedor);
224
                        resumo.add(pedidosResumoDTO);
225
                }
226
                List<ProdutoPedidoCompra> produtosPedido = produtoPedidoCompraService.consultarTodos(new ProdutoPedidoCompra());
227
                for (ProdutoPedidoCompra pedido : produtosPedido) {
228
                        for (PedidosResumoDTO pedidoResumo : resumo) {
229
                                if (VerificadorUtil.naoEstaNulo(pedido.getFornecedorParaComprar())) {
230
                                        if (pedidoResumo.getFornecedor().equals(pedido.getFornecedorParaComprar())) {
231
                                                if (pedido.getStatus().equals(TipoStatusPedidoCompra.PENDENTE.getValor())) {
232
                                                        pedidoResumo.adicionarPendencias();
233
                                                }
234
                                                if (pedido.getStatus().equals(TipoStatusPedidoCompra.VERIFICADO.getValor())) {
235
                                                        pedidoResumo.adicionarVerificados();
236
                                                }
237
                                                if (pedido.getStatus().equals(TipoStatusPedidoCompra.SOLICITADO.getValor())) {
238
                                                        pedidoResumo.adicionarSolicitados();
239
                                                }
240
                                                if (pedido.getStatus().equals(TipoStatusPedidoCompra.SEM_ESTOQUE.getValor())) {
241
                                                        pedidoResumo.adicionarSemEstoque();
242
                                                }
243
                                        }
244
                                }
245
                        }
246
                }
247
                List<PedidosResumoDTO> pedidos = new ArrayList<PedidosResumoDTO>();
248
                for (PedidosResumoDTO pedido : resumo) {
249
                        if (pedido.getQuantidadeTotal() > 0) {
250
                                pedidos.add(pedido);
251
                        }
252
                }
253
                setResumoPedidos(pedidos);
254
        }
255
 
256
        @Override
257
        public void cadastrar() {
258
                super.cadastrar();
259
                prepararConsulta();
260
        }
261
 
262
        @Override
263
        public void alterar() {
264
                super.alterar();
265
                prepararConsulta();
266
        }
267
 
268
        public void iniciarSolicitacao(Produto produto) {
269
                ProdutoPedidoCompra produtoPedidoCompra = new ProdutoPedidoCompra();
270
                produtoPedidoCompra.setProduto(produto);
271
                produtoPedidoCompra.setDataPedido(DataUtils.getDataAtual());
272
                produtoPedidoCompra.setDataUltimaAtualizacao(DataUtils.getDataAtual());
273
                produtoPedidoCompra.setStatus(TipoStatusPedidoCompra.VERIFICADO.getValor());
274
                produtoPedidoCompra.setUsuarioPedido(contextoSeguranca.obterUsuario());
275
                produtoPedidoCompra.setUsuarioUltimaAtualizacao(contextoSeguranca.obterUsuario());
276
                setProdutoPedidoCompraSelecionado(produtoPedidoCompra);
277
        }
278
 
279
        public void prepararOrcamento(ProdutoPedidoCompra produtoPedidoCompra) {
280
                setProdutoPedidoCompraSelecionado(produtoPedidoCompra);
281
        }
282
 
283
        public void consultarSolicitacaoCompra(Produto produto) {
284
                Produto produtoDetalhado = produtoService.detalharProduto(produto);
285
                ProdutoPedidoCompra produtoPedidoCompra = new ProdutoPedidoCompra();
286
                produtoPedidoCompra.setProduto(produtoDetalhado);
287
                setProdutoPedidoCompraSelecionado(produtoPedidoCompraService.consultarPorProduto(produtoPedidoCompra.getProduto()));
288
                if (VerificadorUtil.estaNulo(getProdutoPedidoCompraSelecionado())) {
289
                        iniciarSolicitacao(produtoDetalhado);
290
                        List<FornecedorProduto> fornecedores = new ArrayList<>(produtoDetalhado.getFornecedores());
291
                        if (fornecedores.size() == 1) {
292
                                getProdutoPedidoCompraSelecionado().setFornecedorParaComprar(fornecedores.get(0).getFornecedor());
293
                        }
294
                }
295
                getProdutoPedidoCompraSelecionado().setQuantidadeEstoque(produtoLojaService.consultarEstoqueProduto(produtoDetalhado));
296
                getProdutoPedidoCompraSelecionado().setProduto(produtoDetalhado);
297
                getProdutoPedidoCompraSelecionado().setProdutosHistorico(produtoService.consultarHistorico(produtoDetalhado, 6));
298
        }
299
 
300
        public void consultarSolicitacaoResumidaCompra(Produto produto) {
301
                Produto produtoDetalhado = produtoService.detalharProduto(produto);
302
                ProdutoPedidoCompra produtoPedidoCompra = new ProdutoPedidoCompra();
303
                produtoPedidoCompra.setProduto(produtoDetalhado);
304
                setProdutoPedidoCompraSelecionado(produtoPedidoCompraService.consultarPorProduto(produtoPedidoCompra.getProduto()));
305
                if (VerificadorUtil.estaNulo(getProdutoPedidoCompraSelecionado())) {
306
                        iniciarSolicitacao(produtoDetalhado);
307
                        getProdutoPedidoCompraSelecionado().setStatus(null);
308
                        getProdutoPedidoCompraSelecionado().setQuantidadeEstoque(produtoLojaService.consultarEstoqueProduto(produtoDetalhado));
309
                }
310
                getProdutoPedidoCompraSelecionado().setProduto(produtoDetalhado);
311
        }
312
 
313
        public void alterarSolicitacaoCompra() {
314
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
315
                        public void execute() {
316
                                getProdutoPedidoCompraSelecionado().setUsuarioUltimaAtualizacao(contextoSeguranca.obterUsuario());
317
                                getProdutoPedidoCompraSelecionado().setDataUltimaAtualizacao(DataUtils.getDataAtual());
318
                                getService().alterar(getProdutoPedidoCompraSelecionado());
319
                                prepararConsulta();
320
                                LancadorMensagem.lancarSucesso("Solicitação de compra realizada com sucesso!");
321
                        }
322
                });
323
        }
324
 
325
        public void alterarSolicitacaoCompraResumida() {
326
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
327
                        public void execute() {
328
                                getProdutoPedidoCompraSelecionado().setStatus(TipoStatusPedidoCompra.PENDENTE.getValor());
329
                                /*
330
                                if (getProdutoPedidoCompraSelecionado().getProduto().tipoProdutoEhRemedioOuOutros()) {
331
                                        getProdutoPedidoCompraSelecionado().setLoja(new Loja(ConstantesSEC.SEQUENCIAL_LOJA_FARMACIA_7));
332
                                } else {
333
                                        getProdutoPedidoCompraSelecionado().setLoja(new Loja(ConstantesSEC.SEQUENCIAL_ESTOQUE_9));
334
                                }
335
                                */
336
                                getService().alterar(getProdutoPedidoCompraSelecionado());
337
                                prepararConsulta();
338
                                LancadorMensagem.lancarSucesso("Solicitação de compra realizada com sucesso!");
339
                        }
340
                });
341
        }
342
 
343
        public void excluirSolicitacaoCompra(final ProdutoPedidoCompra produtoPedidoCompra) {
344
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
345
                        public void execute() {
346
                                produtoPedidoCompraService.excluirPedido(produtoPedidoCompra.getProduto(), produtoPedidoCompra.getLoja());
347
                                prepararConsulta();
348
                                LancadorMensagem.lancarSucesso("Solicitação de compra excluída com sucesso!");
349
                        }
350
                });
351
        }
352
 
353
        public String obterInformacoesUltimaCompraFornecedorSelecionado(Produto produto, Fornecedor fornecedor) {
354
                FornecedorProduto fornecedorProduto = new FornecedorProduto();
355
                fornecedorProduto.setProduto(produto);
356
                fornecedorProduto.setFornecedor(fornecedor);
357
                fornecedorProduto = fornecedorProdutoService.consultarPorFornecedorEeProduto(fornecedorProduto);
358
                String informacoes = null;
359
                if (VerificadorUtil.naoEstaNulo(fornecedorProduto)) {
360
                        informacoes = "ID: " + fornecedorProduto.getIdentificador() + ", CUSTO: R$" + fornecedorProduto.getValorCompra();
361
                }
362
                return informacoes;
363
        }
364
 
365
        public String obterFornecedorMenorValorComprado(ProdutoPedidoCompra produtoPedidoCompra) {
366
                Produto produtoDetalhado = produtoService.detalharProduto(produtoPedidoCompra.getProduto());
367
                return produtoDetalhado.getFornecedorMenorValorComprado(produtoPedidoCompra.getFornecedorParaComprar());
368
        }
369
 
370
        public void iniciarExtrairSolicitacao() {
371
                setProdutoPedidoCompraExtrairDTO(new ProdutoPedidoCompraExtrairDTO());
372
                extrairSolicitacao();
373
        }
374
 
375
        public void extrairSolicitacao() {
376
                if (VerificadorUtil.naoEstaNulo(getProdutoPedidoCompraExtrairDTO())) {
377
                        StringBuilder extraido = new StringBuilder(adicionarTituloExtrair());
378
                        for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
379
                                if (getProdutoPedidoCompraExtrairDTO().getColunaQuantidade()) {
380
                                        if (VerificadorUtil.naoEstaNulo(pedido.getQuantidadeParaComprar())) {
381
                                                extraido.append(String.format("%-8s", pedido.getQuantidadeParaComprar()));
382
                                        } else {
383
                                                extraido.append(String.format("%-8s", "XXX"));
384
                                        }
385
                                }
386
                                if (getProdutoPedidoCompraExtrairDTO().getColunaCodigoEAN()) {
387
                                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getProduto().getCodigoEAN())) {
388
                                                extraido.append(String.format("%-16s", pedido.getProduto().getCodigoEAN()));
389
                                        }
390
                                }
391
                                if (getProdutoPedidoCompraExtrairDTO().getColunaCodigoFornecedor()) {
392
                                        Produto produtoConsultado = produtoService.detalharProduto(pedido.getProduto());
393
                                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getCodigoDoFornecedorParaComprar(produtoConsultado))) {
394
                                                extraido.append(" [" + pedido.getCodigoDoFornecedorParaComprar(produtoConsultado) + "] ");
395
                                        }
396
                                }
397
                                if (getProdutoPedidoCompraExtrairDTO().getColunaModelo()) {
398
//                                      if (!pedido.getProduto().tipoProdutoEhRemedioOuOutros()) {
399
                                        extraido.append(pedido.getProduto().getDescricaoDoModelo());
400
//                                      }
401
                                }
402
                                if (getProdutoPedidoCompraExtrairDTO().getColunaDescricao()) {
403
                                        if (getProdutoPedidoCompraExtrairDTO().getColunaModelo()) {
404
                                                extraido.append(" - ");
405
                                        }
406
                                        extraido.append(pedido.getProduto().getDescricaoCompleta());
407
                                }
408
                                if (getProdutoPedidoCompraExtrairDTO().getColunaMenorValor()) {
409
                                        extraido.append(" ");
410
                                        extraido.append(obterFornecedorMenorValorComprado(pedido));
411
                                }
412
                                if (getProdutoPedidoCompraExtrairDTO().getColunaValorVenda()) {
413
                                        extraido.append(" R$ " + formatarValor(pedido.getProduto().getValorVarejo()));
414
                                }
415
                                extraido.append("\n");
416
                        }
417
                        setPedidoEmTexto(extraido.toString());
418
                }
419
        }
420
 
421
        private String formatarValor(Double valor) {
422
                return VerificadorUtil.naoEstaNulo(valor)? String.format("%.2f", valor) : "0,00";
423
        }
424
 
425
        private String adicionarTituloExtrair() {
426
                StringBuilder titulo = new StringBuilder();
427
                if (getProdutoPedidoCompraExtrairDTO().getColunaQuantidade()) {
428
                        titulo.append("QNT");
429
                }
430
                if (getProdutoPedidoCompraExtrairDTO().getColunaCodigoEAN()) {
431
                        if (titulo.length() > 0) {
432
                                titulo.append("  |  ");
433
                        }
434
                        titulo.append("ID");
435
                }
436
                if (getProdutoPedidoCompraExtrairDTO().getColunaModelo()) {
437
                        if (titulo.length() > 0) {
438
                                titulo.append("  |  ");
439
                        }
440
                        titulo.append("MODELO");               
441
                }
442
                if (getProdutoPedidoCompraExtrairDTO().getColunaDescricao()) {
443
                        if (titulo.length() > 0) {
444
                                titulo.append("  |  ");
445
                        }
446
                        titulo.append("DESCRIÇÃO");
447
                }
448
                if (getProdutoPedidoCompraExtrairDTO().getColunaCodigoFornecedor()) {
449
                        if (titulo.length() > 0) {
450
                                titulo.append("  |  ");
451
                        }
452
                        titulo.append("[ID]");
453
                }
454
                if (getProdutoPedidoCompraExtrairDTO().getColunaMenorValor()) {
455
                        if (titulo.length() > 0) {
456
                                titulo.append("  |  ");
457
                        }
458
                        titulo.append("MENOR $");
459
                }
460
                if (getProdutoPedidoCompraExtrairDTO().getColunaValorVenda()) {
461
                        if (titulo.length() > 0) {
462
                                titulo.append("  |  ");
463
                        }
464
                        titulo.append("$ VENDA");
465
                }
466
                return titulo.append("\n").toString();
467
        }
468
 
469
        public void confirmarSolicitacaoCompra() {
470
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
471
                        public void execute() {
472
                                for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
473
                                        pedido.setStatus(TipoStatusPedidoCompra.SOLICITADO.getValor());
474
                                        produtoPedidoCompraService.alterar(pedido);
475
                                }
476
                                prepararConsulta();
477
                                LancadorMensagem.lancarSucesso("Solicitações de compra confirmada com sucesso!");
478
                        }
479
                });
480
        }
481
 
482
        public String consultarDetalhesSolicitacaoCompra(Produto produto, Loja loja) {
483
                StringBuilder detalhesSolicitacao = new StringBuilder();
484
                ProdutoPedidoCompra produtoPedidoCompra = new ProdutoPedidoCompra();
485
                produtoPedidoCompra.setProduto(produto);
486
                produtoPedidoCompra.setLoja(loja);
487
                produtoPedidoCompra = produtoPedidoCompraService.consultarPorProduto(produtoPedidoCompra.getProduto());
488
                if (VerificadorUtil.naoEstaNulo(produtoPedidoCompra)) {
489
                        if (VerificadorUtil.naoEstaNulo(produtoPedidoCompra.getQuantidadeParaComprar())) {
490
                                detalhesSolicitacao.append(produtoPedidoCompra.getQuantidadeParaComprar());
491
                        }
492
                        if (VerificadorUtil.naoEstaNulo(produtoPedidoCompra.getValorOrcado())) {
493
                                detalhesSolicitacao.append(" POR R$ ");
494
                                detalhesSolicitacao.append(produtoPedidoCompra.getValorOrcado());
495
                        } else {
496
                                detalhesSolicitacao.append(" SEM PREÇO");
497
                        }
498
                } else {
499
                        detalhesSolicitacao.append("NÃO");
500
                }
501
                return detalhesSolicitacao.toString();
502
        }
503
 
504
        public void prepararAlteracaoPedidos() {
505
                setLojaAlteracao(null);
506
                setFornecedorAlteracao(null);
507
                setStatusAlteracao(null);
508
        }
509
 
510
        public void alterarDadosPedidosConsultados() {
511
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
512
                        public void execute() {
513
                                for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
514
                                        if (VerificadorUtil.naoEstaNulo(getLojaAlteracao())) {
515
                                                pedido.setLoja(getLojaAlteracao());
516
                                        }
517
                                        if (VerificadorUtil.naoEstaNulo(getFornecedorAlteracao())) {
518
                                                pedido.setFornecedorParaComprar(getFornecedorAlteracao());
519
                                        }
520
                                        if (VerificadorUtil.naoEstaNulo(getStatusAlteracao())) {
521
                                                pedido.setStatus(getStatusAlteracao());
522
                                        }
523
                                        produtoPedidoCompraService.alterar(pedido);
524
                                }
525
                                prepararConsulta();
526
                                LancadorMensagem.lancarSucesso("DADOS ALTERADOS COM SUCESSO!");
527
                        }
528
                });
529
        }
530
 
731 blopes 531
        public void consultarSubtipos() {
532
                SubtipoProduto subtipoProduto = new SubtipoProduto();
533
                if (VerificadorUtil.naoEstaNuloOuVazio(getParametrosConsulta().getEntidade().getProduto().getTipo())) {
534
                        subtipoProduto.setTipo(getParametrosConsulta().getEntidade().getProduto().getTipo());
535
                }
536
                subtipoProduto.setAtivo(true);
537
                setListaSubtipos(subtipoProdutoService.consultar(subtipoProduto));
538
        }
539
 
106 espaco 540
}