Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
1 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.Serializable;
4
import java.util.ArrayList;
5
import java.util.List;
6
 
7
import javax.inject.Inject;
8
import javax.inject.Named;
9
 
10
import org.springframework.context.annotation.Scope;
11
 
12
import br.com.ec.domain.dto.ProdutoHistoricoDTO;
13
import br.com.ec.domain.dto.ProdutoHistoricoDetalhesDTO;
14
import br.com.ec.domain.model.FornecedorProduto;
15
import br.com.ec.domain.model.Loja;
16
import br.com.ec.domain.model.Produto;
17
import br.com.ec.domain.model.ProdutoLoja;
18
import br.com.ec.domain.model.tipos.TipoGenero;
19
import br.com.ec.domain.model.tipos.TipoGeneroProduto;
20
import br.com.ec.domain.model.tipos.TipoLancamentoHistorico;
21
import br.com.ec.domain.model.tipos.TipoProduto;
22
import br.com.ec.domain.service.fornecedorproduto.FornecedorProdutoService;
23
import br.com.ec.domain.service.loja.LojaService;
24
import br.com.ec.domain.service.produto.ProdutoService;
25
import br.com.ec.domain.service.produtodaloja.ProdutoLojaService;
26
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
27
import br.edu.cesmac.core.generic.GenericService;
28
import br.edu.cesmac.web.exception.VerificadorLancamentoException;
29
import br.edu.cesmac.web.exception.VerificadorLancamentoException.CommandBean;
30
import br.edu.cesmac.web.generic.AbstractBean;
31
import br.edu.cesmac.web.message.LancadorMensagem;
32
 
33
@Named
34
@Scope("view")
35
public class ProdutoDetalheBean extends AbstractBean<Produto> implements Serializable {
36
 
37
        private static final long serialVersionUID = 1L;
38
 
39
        private ProdutoService produtoService;
40
        private ProdutoLojaService produtoLojaService;
41
        private FornecedorProdutoService fornecedorProdutoService;
42
        private LojaService lojaService;
43
 
44
        private Produto produtoSelecionado;
45
        private List<ProdutoHistoricoDTO> produtosHistorico;
46
        private List<ProdutoHistoricoDetalhesDTO> produtosHistoricoDetalhes;
47
        private List<ProdutoHistoricoDetalhesDTO> resumoProdutosHistoricoDetalhes;
48
 
49
        private String descricaoDetalhamento;
50
 
51
        @Inject
52
        public ProdutoDetalheBean(ProdutoService produtoService, ProdutoLojaService produtoLojaService,
53
                        FornecedorProdutoService fornecedorProdutoService, LojaService lojaService, ContextoSeguranca contextoSeguranca) {
54
                this.produtoService = produtoService;
55
                this.produtoLojaService = produtoLojaService;
56
                this.fornecedorProdutoService = fornecedorProdutoService;
57
                this.lojaService = lojaService;
58
        }
59
 
60
        @Override
61
        public void preCarregamento() {
62
                entidade = new Produto();
63
        }
64
 
65
        @Override
66
        public void limparEntidade() {
67
                setEntidade(new Produto());
68
        }
69
 
70
        @Override
71
        public GenericService<Produto> getService() {
72
                return produtoService;
73
        }
74
 
75
        @Override
76
        public Produto getEntidade() {
77
                return entidade;
78
        }
79
 
80
        @Override
81
        public Produto getId() {
82
                return getEntidade();
83
        }
84
 
85
        public Produto getProdutoSelecionado() {
86
                return produtoSelecionado;
87
        }
88
        public void setProdutoSelecionado(Produto produtoSelecionado) {
89
                this.produtoSelecionado = produtoSelecionado;
90
        }
91
 
92
        public List<ProdutoHistoricoDTO> getProdutosHistorico() {
93
                return produtosHistorico;
94
        }
95
        public void setProdutosHistorico(List<ProdutoHistoricoDTO> produtosHistorico) {
96
                this.produtosHistorico = produtosHistorico;
97
        }
98
 
99
        public List<ProdutoHistoricoDetalhesDTO> getProdutosHistoricoDetalhes() {
100
                return produtosHistoricoDetalhes;
101
        }
102
        public void setProdutosHistoricoDetalhes(List<ProdutoHistoricoDetalhesDTO> produtosHistoricoDetalhes) {
103
                this.produtosHistoricoDetalhes = produtosHistoricoDetalhes;
104
        }
105
 
106
        public List<ProdutoHistoricoDetalhesDTO> getResumoProdutosHistoricoDetalhes() {
107
                return resumoProdutosHistoricoDetalhes;
108
        }
109
        public void setResumoProdutosHistoricoDetalhes(List<ProdutoHistoricoDetalhesDTO> resumoProdutosHistoricoDetalhes) {
110
                this.resumoProdutosHistoricoDetalhes = resumoProdutosHistoricoDetalhes;
111
        }
112
 
113
        public String getDescricaoDetalhamento() {
114
                return descricaoDetalhamento;
115
        }
116
        public void setDescricaoDetalhamento(String descricaoDetalhamento) {
117
                this.descricaoDetalhamento = descricaoDetalhamento;
118
        }
119
 
120
        /***************************************************************/
121
 
122
        public Integer consultarEstoque(Produto produto) {
123
                return produtoLojaService.consultarEstoqueProduto(produto);
124
        }
125
 
126
        public Integer consultarEstoque(Produto produto, Long sequencialLoja) {
127
                return produtoLojaService.consultarEstoqueProdutoEeLoja(produto, new Loja(sequencialLoja));
128
        }
129
 
130
        public ProdutoLoja consultarProdutoLoja(Produto produto, Long sequencialLoja) {
131
                return produtoLojaService.consultarProdutoLoja(produto, new Loja(sequencialLoja));
132
        }
133
 
134
        public TipoProduto[] getTiposProduto() {
135
                return TipoProduto.values();
136
        }
137
 
138
        public TipoGenero[] getTiposGenero() {
139
                return TipoGenero.values();
140
        }
141
 
142
        public TipoGeneroProduto[] getTiposGeneroProduto() {
143
                return TipoGeneroProduto.values();
144
        }
145
 
146
        public void consultarHistorico(Produto produto) {
147
                setProdutoSelecionado(produto);
148
                setProdutosHistorico(produtoService.consultarHistorico(produto, 12));
149
        }
150
 
151
        public void detalharHistorico(ProdutoHistoricoDTO produtoHistorico) {
152
                setDescricaoDetalhamento(TipoLancamentoHistorico.parse(produtoHistorico.getTipoLancamento()).getDescricao());
153
                setProdutosHistoricoDetalhes(produtoService.detalharHistorico(produtoHistorico));
154
                montarResumoHistorico();
155
        }
156
 
157
        private void montarResumoHistorico() {
158
                List<ProdutoHistoricoDetalhesDTO> resumos = new ArrayList<ProdutoHistoricoDetalhesDTO>();
159
                List<Loja> lojasAtivas = lojaService.listarLojasAtivasEspacoCase();
160
                for (Loja loja : lojasAtivas) {
161
                        ProdutoHistoricoDetalhesDTO resumoLoja = new ProdutoHistoricoDetalhesDTO();
162
                        resumoLoja.setLoja(loja);
163
                        resumoLoja.setQuantidadeLancamentos(0);
164
                        resumos.add(resumoLoja);
165
                }
166
 
167
                for (ProdutoHistoricoDetalhesDTO produtoHistoricoDetalhes : getProdutosHistoricoDetalhes()) {
168
                        for (ProdutoHistoricoDetalhesDTO resumo : resumos) {
169
                                if (resumo.getLoja().equals(produtoHistoricoDetalhes.getLoja())) {
170
                                        resumo.setQuantidadeLancamentos(resumo.getQuantidadeLancamentos()+1);
171
                                }
172
                        }
173
                }
174
                setResumoProdutosHistoricoDetalhes(resumos);
175
        }
176
 
177
        public void excluirVinculo(final FornecedorProduto fornecedorProduto) {
178
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
179
                        public void execute() {
180
                                fornecedorProdutoService.excluirPorFornecedorEeProduto(fornecedorProduto);
181
                                setEntidade(produtoService.detalharProduto(fornecedorProduto.getProduto()));
182
                                LancadorMensagem.lancarSucesso("VÍNCULO EXCLUÍDO COM SUCESSO");
183
                        }
184
                });
185
        }
186
 
187
}