Subversion Repositories Integrator Subversion

Rev

Rev 106 | Rev 161 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 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;
147 espaco 50
        private Integer mesesConsultaHistorico;
106 espaco 51
 
52
        @Inject
53
        public ProdutoDetalheBean(ProdutoService produtoService, ProdutoLojaService produtoLojaService,
54
                        FornecedorProdutoService fornecedorProdutoService, LojaService lojaService, ContextoSeguranca contextoSeguranca) {
55
                this.produtoService = produtoService;
56
                this.produtoLojaService = produtoLojaService;
57
                this.fornecedorProdutoService = fornecedorProdutoService;
58
                this.lojaService = lojaService;
59
        }
60
 
61
        @Override
62
        public void preCarregamento() {
63
                entidade = new Produto();
64
        }
65
 
66
        @Override
67
        public void limparEntidade() {
68
                setEntidade(new Produto());
69
        }
70
 
71
        @Override
72
        public GenericService<Produto> getService() {
73
                return produtoService;
74
        }
75
 
76
        @Override
77
        public Produto getEntidade() {
78
                return entidade;
79
        }
80
 
81
        @Override
82
        public Produto getId() {
83
                return getEntidade();
84
        }
85
 
86
        public Produto getProdutoSelecionado() {
87
                return produtoSelecionado;
88
        }
89
        public void setProdutoSelecionado(Produto produtoSelecionado) {
90
                this.produtoSelecionado = produtoSelecionado;
91
        }
92
 
93
        public List<ProdutoHistoricoDTO> getProdutosHistorico() {
94
                return produtosHistorico;
95
        }
96
        public void setProdutosHistorico(List<ProdutoHistoricoDTO> produtosHistorico) {
97
                this.produtosHistorico = produtosHistorico;
98
        }
99
 
100
        public List<ProdutoHistoricoDetalhesDTO> getProdutosHistoricoDetalhes() {
101
                return produtosHistoricoDetalhes;
102
        }
103
        public void setProdutosHistoricoDetalhes(List<ProdutoHistoricoDetalhesDTO> produtosHistoricoDetalhes) {
104
                this.produtosHistoricoDetalhes = produtosHistoricoDetalhes;
105
        }
106
 
107
        public List<ProdutoHistoricoDetalhesDTO> getResumoProdutosHistoricoDetalhes() {
108
                return resumoProdutosHistoricoDetalhes;
109
        }
110
        public void setResumoProdutosHistoricoDetalhes(List<ProdutoHistoricoDetalhesDTO> resumoProdutosHistoricoDetalhes) {
111
                this.resumoProdutosHistoricoDetalhes = resumoProdutosHistoricoDetalhes;
112
        }
113
 
114
        public String getDescricaoDetalhamento() {
115
                return descricaoDetalhamento;
116
        }
117
        public void setDescricaoDetalhamento(String descricaoDetalhamento) {
118
                this.descricaoDetalhamento = descricaoDetalhamento;
119
        }
120
 
147 espaco 121
        public Integer getMesesConsultaHistorico() {
122
                return mesesConsultaHistorico;
123
        }
124
        public void setMesesConsultaHistorico(Integer mesesConsultaHistorico) {
125
                this.mesesConsultaHistorico = mesesConsultaHistorico;
126
        }
127
 
106 espaco 128
        /***************************************************************/
129
 
130
        public Integer consultarEstoque(Produto produto) {
131
                return produtoLojaService.consultarEstoqueProduto(produto);
132
        }
133
 
134
        public Integer consultarEstoque(Produto produto, Long sequencialLoja) {
135
                return produtoLojaService.consultarEstoqueProdutoEeLoja(produto, new Loja(sequencialLoja));
136
        }
137
 
138
        public ProdutoLoja consultarProdutoLoja(Produto produto, Long sequencialLoja) {
139
                return produtoLojaService.consultarProdutoLoja(produto, new Loja(sequencialLoja));
140
        }
141
 
142
        public TipoProduto[] getTiposProduto() {
143
                return TipoProduto.values();
144
        }
145
 
146
        public TipoGenero[] getTiposGenero() {
147
                return TipoGenero.values();
148
        }
149
 
150
        public TipoGeneroProduto[] getTiposGeneroProduto() {
151
                return TipoGeneroProduto.values();
152
        }
153
 
147 espaco 154
        public void consultarHistorico(final Produto produto) {
155
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
156
                        public void execute() {
157
                                setProdutoSelecionado(produto);
158
                                setMesesConsultaHistorico(12);
159
                                setProdutosHistorico(produtoService.consultarHistorico(produto, getMesesConsultaHistorico()));
160
                        }
161
                });
106 espaco 162
        }
163
 
164
        public void detalharHistorico(ProdutoHistoricoDTO produtoHistorico) {
165
                setDescricaoDetalhamento(TipoLancamentoHistorico.parse(produtoHistorico.getTipoLancamento()).getDescricao());
166
                setProdutosHistoricoDetalhes(produtoService.detalharHistorico(produtoHistorico));
167
                montarResumoHistorico();
168
        }
169
 
170
        private void montarResumoHistorico() {
171
                List<ProdutoHistoricoDetalhesDTO> resumos = new ArrayList<ProdutoHistoricoDetalhesDTO>();
172
                List<Loja> lojasAtivas = lojaService.listarLojasAtivasEspacoCase();
173
                for (Loja loja : lojasAtivas) {
174
                        ProdutoHistoricoDetalhesDTO resumoLoja = new ProdutoHistoricoDetalhesDTO();
175
                        resumoLoja.setLoja(loja);
176
                        resumoLoja.setQuantidadeLancamentos(0);
177
                        resumos.add(resumoLoja);
178
                }
179
 
180
                for (ProdutoHistoricoDetalhesDTO produtoHistoricoDetalhes : getProdutosHistoricoDetalhes()) {
181
                        for (ProdutoHistoricoDetalhesDTO resumo : resumos) {
182
                                if (resumo.getLoja().equals(produtoHistoricoDetalhes.getLoja())) {
183
                                        resumo.setQuantidadeLancamentos(resumo.getQuantidadeLancamentos()+1);
184
                                }
185
                        }
186
                }
187
                setResumoProdutosHistoricoDetalhes(resumos);
188
        }
189
 
190
        public void excluirVinculo(final FornecedorProduto fornecedorProduto) {
191
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
192
                        public void execute() {
193
                                fornecedorProdutoService.excluirPorFornecedorEeProduto(fornecedorProduto);
194
                                setEntidade(produtoService.detalharProduto(fornecedorProduto.getProduto()));
195
                                LancadorMensagem.lancarSucesso("VÍNCULO EXCLUÍDO COM SUCESSO");
196
                        }
197
                });
198
        }
199
 
147 espaco 200
        public void consultarMaisHistorico() {
201
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
202
                        public void execute() {
203
                                setMesesConsultaHistorico(getMesesConsultaHistorico() + 12);
204
                                setProdutosHistorico(produtoService.consultarHistorico(getProdutoSelecionado(), getMesesConsultaHistorico()));
205
                        }
206
                });
207
        }
208
 
106 espaco 209
}