Subversion Repositories Integrator Subversion

Rev

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
 
195 espaco 12
import br.com.ec.core.generic.GenericService;
13
import br.com.ec.core.util.VerificadorUtil;
106 espaco 14
import br.com.ec.domain.dto.ProdutoHistoricoDTO;
15
import br.com.ec.domain.dto.ProdutoHistoricoDetalhesDTO;
16
import br.com.ec.domain.model.FornecedorProduto;
17
import br.com.ec.domain.model.Loja;
18
import br.com.ec.domain.model.Produto;
19
import br.com.ec.domain.model.ProdutoLoja;
20
import br.com.ec.domain.model.tipos.TipoGenero;
21
import br.com.ec.domain.model.tipos.TipoGeneroProduto;
22
import br.com.ec.domain.model.tipos.TipoLancamentoHistorico;
23
import br.com.ec.domain.model.tipos.TipoProduto;
24
import br.com.ec.domain.service.fornecedorproduto.FornecedorProdutoService;
25
import br.com.ec.domain.service.loja.LojaService;
26
import br.com.ec.domain.service.produto.ProdutoService;
27
import br.com.ec.domain.service.produtodaloja.ProdutoLojaService;
28
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
195 espaco 29
import br.com.ec.web.exception.VerificadorLancamentoException;
30
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
31
import br.com.ec.web.generic.AbstractBean;
32
import br.com.ec.web.message.LancadorMensagem;
106 espaco 33
 
34
@Named
35
@Scope("view")
36
public class ProdutoDetalheBean extends AbstractBean<Produto> implements Serializable {
37
 
38
        private static final long serialVersionUID = 1L;
39
 
40
        private ProdutoService produtoService;
41
        private ProdutoLojaService produtoLojaService;
42
        private FornecedorProdutoService fornecedorProdutoService;
43
        private LojaService lojaService;
44
 
45
        private Produto produtoSelecionado;
46
        private List<ProdutoHistoricoDTO> produtosHistorico;
47
        private List<ProdutoHistoricoDetalhesDTO> produtosHistoricoDetalhes;
48
        private List<ProdutoHistoricoDetalhesDTO> resumoProdutosHistoricoDetalhes;
49
 
50
        private String descricaoDetalhamento;
147 espaco 51
        private Integer mesesConsultaHistorico;
106 espaco 52
 
53
        @Inject
54
        public ProdutoDetalheBean(ProdutoService produtoService, ProdutoLojaService produtoLojaService,
55
                        FornecedorProdutoService fornecedorProdutoService, LojaService lojaService, ContextoSeguranca contextoSeguranca) {
56
                this.produtoService = produtoService;
57
                this.produtoLojaService = produtoLojaService;
58
                this.fornecedorProdutoService = fornecedorProdutoService;
59
                this.lojaService = lojaService;
60
        }
61
 
62
        @Override
63
        public void preCarregamento() {
64
                entidade = new Produto();
65
        }
66
 
67
        @Override
68
        public void limparEntidade() {
69
                setEntidade(new Produto());
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
        public Produto getProdutoSelecionado() {
88
                return produtoSelecionado;
89
        }
90
        public void setProdutoSelecionado(Produto produtoSelecionado) {
91
                this.produtoSelecionado = produtoSelecionado;
92
        }
93
 
94
        public List<ProdutoHistoricoDTO> getProdutosHistorico() {
95
                return produtosHistorico;
96
        }
97
        public void setProdutosHistorico(List<ProdutoHistoricoDTO> produtosHistorico) {
98
                this.produtosHistorico = produtosHistorico;
99
        }
100
 
101
        public List<ProdutoHistoricoDetalhesDTO> getProdutosHistoricoDetalhes() {
102
                return produtosHistoricoDetalhes;
103
        }
104
        public void setProdutosHistoricoDetalhes(List<ProdutoHistoricoDetalhesDTO> produtosHistoricoDetalhes) {
105
                this.produtosHistoricoDetalhes = produtosHistoricoDetalhes;
106
        }
107
 
108
        public List<ProdutoHistoricoDetalhesDTO> getResumoProdutosHistoricoDetalhes() {
109
                return resumoProdutosHistoricoDetalhes;
110
        }
111
        public void setResumoProdutosHistoricoDetalhes(List<ProdutoHistoricoDetalhesDTO> resumoProdutosHistoricoDetalhes) {
112
                this.resumoProdutosHistoricoDetalhes = resumoProdutosHistoricoDetalhes;
113
        }
114
 
161 espaco 115
        public Integer subtotalResumoDetalhado() {
116
                Integer subtotal = 0;
117
                for (ProdutoHistoricoDetalhesDTO detalhado : getProdutosHistoricoDetalhes()) {
118
                        if (VerificadorUtil.naoEstaNulo(detalhado.getTipoLancamento()) &&
119
                                        VerificadorUtil.naoEstaNulo(detalhado.getQuantidadeLancamentos())) {
120
                                if (detalhado.ehTipoLancamentoHistoricoAvarias()) {
121
                                        subtotal = subtotal - detalhado.getQuantidadeLancamentos();
122
                                }
123
                                if (detalhado.ehTipoLancamentoHistoricoCompras()) {
124
                                        subtotal = subtotal + detalhado.getQuantidadeLancamentos();
125
                                }
126
                                if (detalhado.ehTipoLancamentoHistoricoContagensEntrada()) {
127
                                        subtotal = subtotal + detalhado.getQuantidadeLancamentos();
128
                                }
129
                                if (detalhado.ehTipoLancamentoHistoricoContagensSaida()) {
130
                                        subtotal = subtotal - detalhado.getQuantidadeLancamentos();
131
                                }
132
                                if (detalhado.ehTipoLancamentoHistoricoTrocas()) {
133
                                        subtotal = subtotal - detalhado.getQuantidadeLancamentos();
134
                                }
135
                                if (detalhado.ehTipoLancamentoHistoricoVendas()) {
136
                                        subtotal = subtotal - detalhado.getQuantidadeLancamentos();
137
                                }
138
                        } else {
139
                                subtotal++;
140
                        }
141
                }
142
                return subtotal;
143
        }
144
 
106 espaco 145
        public String getDescricaoDetalhamento() {
146
                return descricaoDetalhamento;
147
        }
148
        public void setDescricaoDetalhamento(String descricaoDetalhamento) {
149
                this.descricaoDetalhamento = descricaoDetalhamento;
150
        }
151
 
147 espaco 152
        public Integer getMesesConsultaHistorico() {
153
                return mesesConsultaHistorico;
154
        }
155
        public void setMesesConsultaHistorico(Integer mesesConsultaHistorico) {
156
                this.mesesConsultaHistorico = mesesConsultaHistorico;
157
        }
158
 
106 espaco 159
        /***************************************************************/
160
 
161
        public Integer consultarEstoque(Produto produto) {
162
                return produtoLojaService.consultarEstoqueProduto(produto);
163
        }
164
 
165
        public Integer consultarEstoque(Produto produto, Long sequencialLoja) {
166
                return produtoLojaService.consultarEstoqueProdutoEeLoja(produto, new Loja(sequencialLoja));
167
        }
168
 
169
        public ProdutoLoja consultarProdutoLoja(Produto produto, Long sequencialLoja) {
170
                return produtoLojaService.consultarProdutoLoja(produto, new Loja(sequencialLoja));
171
        }
172
 
173
        public TipoProduto[] getTiposProduto() {
174
                return TipoProduto.values();
175
        }
176
 
177
        public TipoGenero[] getTiposGenero() {
178
                return TipoGenero.values();
179
        }
180
 
181
        public TipoGeneroProduto[] getTiposGeneroProduto() {
182
                return TipoGeneroProduto.values();
183
        }
184
 
147 espaco 185
        public void consultarHistorico(final Produto produto) {
186
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
187
                        public void execute() {
188
                                setProdutoSelecionado(produto);
189
                                setMesesConsultaHistorico(12);
190
                                setProdutosHistorico(produtoService.consultarHistorico(produto, getMesesConsultaHistorico()));
191
                        }
192
                });
106 espaco 193
        }
194
 
195
        public void detalharHistorico(ProdutoHistoricoDTO produtoHistorico) {
196
                setDescricaoDetalhamento(TipoLancamentoHistorico.parse(produtoHistorico.getTipoLancamento()).getDescricao());
197
                setProdutosHistoricoDetalhes(produtoService.detalharHistorico(produtoHistorico));
198
                montarResumoHistorico();
199
        }
200
 
201
        private void montarResumoHistorico() {
202
                List<ProdutoHistoricoDetalhesDTO> resumos = new ArrayList<ProdutoHistoricoDetalhesDTO>();
203
                List<Loja> lojasAtivas = lojaService.listarLojasAtivasEspacoCase();
204
                for (Loja loja : lojasAtivas) {
205
                        ProdutoHistoricoDetalhesDTO resumoLoja = new ProdutoHistoricoDetalhesDTO();
206
                        resumoLoja.setLoja(loja);
207
                        resumoLoja.setQuantidadeLancamentos(0);
208
                        resumos.add(resumoLoja);
209
                }
210
 
211
                for (ProdutoHistoricoDetalhesDTO produtoHistoricoDetalhes : getProdutosHistoricoDetalhes()) {
212
                        for (ProdutoHistoricoDetalhesDTO resumo : resumos) {
213
                                if (resumo.getLoja().equals(produtoHistoricoDetalhes.getLoja())) {
214
                                        resumo.setQuantidadeLancamentos(resumo.getQuantidadeLancamentos()+1);
215
                                }
216
                        }
217
                }
218
                setResumoProdutosHistoricoDetalhes(resumos);
219
        }
220
 
221
        public void excluirVinculo(final FornecedorProduto fornecedorProduto) {
222
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
223
                        public void execute() {
224
                                fornecedorProdutoService.excluirPorFornecedorEeProduto(fornecedorProduto);
225
                                setEntidade(produtoService.detalharProduto(fornecedorProduto.getProduto()));
226
                                LancadorMensagem.lancarSucesso("VÍNCULO EXCLUÍDO COM SUCESSO");
227
                        }
228
                });
229
        }
230
 
147 espaco 231
        public void consultarMaisHistorico() {
232
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
233
                        public void execute() {
234
                                setMesesConsultaHistorico(getMesesConsultaHistorico() + 12);
235
                                setProdutosHistorico(produtoService.consultarHistorico(getProdutoSelecionado(), getMesesConsultaHistorico()));
236
                        }
237
                });
238
        }
239
 
106 espaco 240
}