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.primefaces.model.chart.AxisType;
11
import org.primefaces.model.chart.LineChartModel;
12
import org.primefaces.model.chart.LineChartSeries;
13
import org.springframework.context.annotation.Scope;
14
 
15
import br.com.ec.domain.dto.ConsolidadoDTO;
16
import br.com.ec.domain.dto.GraficoAcumuladoDTO;
17
import br.com.ec.domain.model.ConsolidadoEstoque;
18
import br.com.ec.domain.model.Marca;
19
import br.com.ec.domain.model.Vigencia;
20
import br.com.ec.domain.service.consolidado.ConsolidadoService;
21
import br.com.ec.domain.service.marca.MarcaService;
22
import br.com.ec.domain.service.modelo.ModeloService;
23
import br.com.ec.domain.service.notafiscal.NotaFiscalService;
24
import br.com.ec.domain.service.vigencia.VigenciaService;
25
import br.edu.cesmac.core.consulta.ParametrosConsulta;
26
import br.edu.cesmac.core.exception.NegocioException;
27
import br.edu.cesmac.core.generic.GenericService;
28
import br.edu.cesmac.core.util.VerificadorUtil;
29
import br.edu.cesmac.web.exception.VerificadorLancamentoException;
30
import br.edu.cesmac.web.exception.VerificadorLancamentoException.CommandBean;
31
import br.edu.cesmac.web.generic.AbstractBean;
32
import br.edu.cesmac.web.message.LancadorMensagem;
33
 
34
@Named
35
@Scope("view")
36
public class ConsolidadoBean extends AbstractBean<ConsolidadoDTO> implements Serializable {
37
 
38
        private static final long serialVersionUID = 1L;
39
 
40
        private List<String> anosSelecionados;
41
        private List<String> mesesSelecionados;
42
 
43
        private List<Vigencia> vigencias;
44
 
45
        private Boolean consolidadoEstoquePorMarca;
46
        private List<ConsolidadoDTO> consolidacaoEstoqueMarca;
47
        private LineChartModel graficoConsolidacaoEstoqueMarca;
48
 
49
        private ConsolidadoService consolidadoService;
50
        private VigenciaService vigenciaService;
51
        private MarcaService marcaService;
52
 
53
        @Inject
54
        public ConsolidadoBean(NotaFiscalService notaFiscalService, ConsolidadoService consolidadoService, VigenciaService vigenciaService,
55
                        MarcaService marcaService) {
56
                this.consolidadoService = consolidadoService;
57
                this.vigenciaService = vigenciaService;
58
                this.marcaService = marcaService;
59
        }
60
 
61
        public List<String> getAnosSelecionados() {
62
                return anosSelecionados;
63
        }
64
        public void setAnosSelecionados(List<String> anosSelecionados) {
65
                this.anosSelecionados = anosSelecionados;
66
        }
67
 
68
        public List<String> getMesesSelecionados() {
69
                return mesesSelecionados;
70
        }
71
        public void setMesesSelecionados(List<String> mesesSelecionados) {
72
                this.mesesSelecionados = mesesSelecionados;
73
        }
74
 
75
        public List<Vigencia> getVigencias() {
76
                return vigencias;
77
        }
78
        public void setVigencias(List<Vigencia> vigencias) {
79
                this.vigencias = vigencias;
80
        }
81
 
82
        public Boolean getConsolidadoEstoquePorMarca() {
83
                return consolidadoEstoquePorMarca;
84
        }
85
        public void setConsolidadoEstoquePorMarca(Boolean consolidadoEstoquePorMarca) {
86
                this.consolidadoEstoquePorMarca = consolidadoEstoquePorMarca;
87
        }
88
 
89
        public List<ConsolidadoDTO> getConsolidacaoEstoqueMarca() {
90
                return consolidacaoEstoqueMarca;
91
        }
92
        public void setConsolidacaoEstoqueMarca(List<ConsolidadoDTO> consolidacaoEstoqueMarca) {
93
                this.consolidacaoEstoqueMarca = consolidacaoEstoqueMarca;
94
        }
95
 
96
        public LineChartModel getGraficoConsolidacaoEstoqueMarca() {
97
                return graficoConsolidacaoEstoqueMarca;
98
        }
99
        public void setGraficoConsolidacaoEstoqueMarca(LineChartModel graficoConsolidacaoEstoqueMarca) {
100
                this.graficoConsolidacaoEstoqueMarca = graficoConsolidacaoEstoqueMarca;
101
        }
102
 
103
        @Override
104
        public void preCarregamento() {
105
                entidade = new ConsolidadoDTO();
106
                parametrosConsulta = new ParametrosConsulta<ConsolidadoDTO>();
107
                parametrosConsulta.setEntidade(entidade);
108
        }
109
 
110
        @Override
111
        public void limparEntidade() {
112
                ConsolidadoDTO ConsolidadoVigencia = new ConsolidadoDTO();
113
                setEntidade(ConsolidadoVigencia);
114
        }
115
 
116
        @Override
117
        public GenericService<ConsolidadoDTO> getService() {
118
                return null;
119
        }
120
 
121
        @Override
122
        public ConsolidadoDTO getEntidade() {
123
                return entidade;
124
        }
125
 
126
        @Override
127
        public ConsolidadoDTO getId() {
128
                return getEntidade();
129
        }
130
 
131
        /*******************************************************/
132
 
133
        public void consolidarVigente() {
134
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
135
                        public void execute() {
136
                                consolidadoService.consolidarVigencia();
137
                                LancadorMensagem.lancarSucesso("CONSOLIDAÇÃO REALIZADA COM SUCESSO! ");
138
                        }
139
                });
140
        }
141
 
142
        public void consultarConsolidacoes() {
143
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
144
                        public void execute() {
145
                                verificarSeVigenciaSelecionada();
146
                                if (getConsolidadoEstoquePorMarca()) {
147
                                        List<Vigencia> vigenciasDoAno = vigenciaService.consultarVigenciasDoAno("2020");
148
                                        List<ConsolidadoEstoque> consolidados = new ArrayList<ConsolidadoEstoque>();
149
                                        for (Vigencia vigencia : vigenciasDoAno) {
150
                                                consolidados.addAll(consolidadoService.consultarPorVigencia(vigencia));
151
                                        }
152
 
153
                                        List<ConsolidadoDTO> consolidacao = new ArrayList<ConsolidadoDTO>();
154
                                        for (ConsolidadoEstoque consolidado : consolidados) {
155
                                                ConsolidadoDTO consolidadoDTO = new ConsolidadoDTO();
156
                                                consolidadoDTO.setMarca(consolidado.getModelo().getMarca());
157
                                                consolidadoDTO.setVigencia(consolidado.getVigencia());
158
                                                Integer quantidadeTotal = consolidado.getQuantidadeEstoque();
159
                                                if (consolidacao.contains(consolidadoDTO)) {
160
                                                        ConsolidadoDTO consolidadoAnterior = consolidacao.get(consolidacao.indexOf(consolidadoDTO));
161
                                                        consolidadoAnterior.setQuantidadeTotal(quantidadeTotal + consolidadoAnterior.getQuantidadeTotal());
162
                                                } else {
163
                                                        consolidadoDTO.setQuantidadeTotal(quantidadeTotal);
164
                                                        consolidacao.add(consolidadoDTO);
165
                                                }
166
                                        }
167
                                        setConsolidacaoEstoqueMarca(consolidacao);
168
 
169
                                        // linhas ALCATEL
170
//                                      01/2020, 10
171
//                                      02/2020, 50
172
 
173
                                        LineChartModel graficoConsolidacaoEstoqueMarca = new LineChartModel();
174
                                        List<Marca> marcasAtivas = marcaService.consultarTodos(new Marca());
175
                                        for (Marca marcaAtiva : marcasAtivas) {
176
                                                LineChartSeries linha = new LineChartSeries();
177
                                                for (Vigencia vigencia : vigenciasDoAno) {
178
                                                        // 06/2020
179
                                                        Boolean adicionado = false;
180
                                                        for (ConsolidadoDTO consolidado : consolidacao) {
181
                                                                if (marcaAtiva.equals(consolidado.getMarca()) &&
182
                                                                                vigencia.equals(consolidado.getVigencia())) {
183
                                                                        //consolidado: 06/2020, ALCATEL, 30
184
                                                                        linha.set(vigencia.getDescricao(), consolidado.getQuantidadeTotal());
185
                                                                        adicionado = true;
186
                                                                        break;
187
                                                                }
188
                                                        }
189
                                                        if (!adicionado) {
190
                                                                linha.set(vigencia.getDescricao(), new Integer(0));
191
                                                        }
192
                                                }
193
                                                linha.setLabel(marcaAtiva.getDescricao());
194
                                                graficoConsolidacaoEstoqueMarca.addSeries(linha);
195
                                        }
196
 
197
                                        /*LineChartSeries linha = new LineChartSeries();
198
                                        for (Vigencia vigencia : vigenciasDoAno) {
199
                                                String marca = "";
200
                                                for (ConsolidadoDTO consolidado : consolidacao) {
201
                                                        marca = consolidado.getMarca().getDescricao();
202
                                                        if (vigencia.equals(consolidado.getVigencia())) {
203
                                                                linha.set(vigencia.getDescricao(), consolidado.getQuantidadeTotal());
204
                                                        }
205
                                                }
206
                                                linha.setLabel(marca);
207
                                                graficoConsolidacaoEstoqueMarca.addSeries(linha);
208
                                        }*/
209
 
210
                                graficoConsolidacaoEstoqueMarca.setTitle("");
211
                                graficoConsolidacaoEstoqueMarca.setZoom(true);
212
                                graficoConsolidacaoEstoqueMarca.setShowPointLabels(true);
213
                                graficoConsolidacaoEstoqueMarca.getAxis(AxisType.Y).setLabel("MARCAS");
214
                                graficoConsolidacaoEstoqueMarca.getAxis(AxisType.X).setLabel("VIGÊNCIAS");
215
                                /*
216
                                DateAxis axis = new DateAxis("VIGÊNCIAS");
217
                                axis.setTickAngle(-50);
218
                                axis.setMin("02/2020");
219
                                axis.setMax("07/2020");
220
                                axis.setTickFormat("%b %#d, 20%y");
221
                                graficoConsolidacaoEstoqueMarca.getAxes().put(AxisType.X, axis);
222
                                */
223
                                setGraficoConsolidacaoEstoqueMarca(graficoConsolidacaoEstoqueMarca);
224
                                }
225
                        }
226
                });
227
        }
228
 
229
        private LineChartSeries preencherLinha(GraficoAcumuladoDTO graficoLinha, String mes, String ano) {
230
                LineChartSeries linha = new LineChartSeries();
231
                Double valorAcumulado = new Double(0.0);
232
                valorAcumulado = valorAcumulado + graficoLinha.getDIA_01();
233
        linha.set(ano + "-" + mes + "-" + "01", valorAcumulado);
234
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_02();
235
        linha.set(ano + "-" + mes + "-" + "02", valorAcumulado);
236
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_03();
237
        linha.set(ano + "-" + mes + "-" + "03", valorAcumulado);
238
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_04();
239
        linha.set(ano + "-" + mes + "-" + "04", valorAcumulado);
240
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_05();
241
        linha.set(ano + "-" + mes + "-" + "05", valorAcumulado);
242
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_06();
243
        linha.set(ano + "-" + mes + "-" + "06", valorAcumulado);
244
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_07();
245
        linha.set(ano + "-" + mes + "-" + "07", valorAcumulado);
246
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_08();
247
        linha.set(ano + "-" + mes + "-" + "08", valorAcumulado);
248
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_09();
249
        linha.set(ano + "-" + mes + "-" + "09", valorAcumulado);
250
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_10();
251
        linha.set(ano + "-" + mes + "-" + "10", valorAcumulado);
252
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_11();
253
        linha.set(ano + "-" + mes + "-" + "11", valorAcumulado);
254
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_12();
255
        linha.set(ano + "-" + mes + "-" + "12", valorAcumulado);
256
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_13();
257
        linha.set(ano + "-" + mes + "-" + "13", valorAcumulado);
258
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_14();
259
        linha.set(ano + "-" + mes + "-" + "14", valorAcumulado);
260
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_15();
261
        linha.set(ano + "-" + mes + "-" + "15", valorAcumulado);
262
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_16();
263
        linha.set(ano + "-" + mes + "-" + "16", valorAcumulado);
264
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_17();
265
        linha.set(ano + "-" + mes + "-" + "17", valorAcumulado);
266
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_18();
267
        linha.set(ano + "-" + mes + "-" + "18", valorAcumulado);
268
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_19();
269
        linha.set(ano + "-" + mes + "-" + "19", valorAcumulado);
270
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_20();
271
        linha.set(ano + "-" + mes + "-" + "20", valorAcumulado);
272
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_21();
273
        linha.set(ano + "-" + mes + "-" + "21", valorAcumulado);
274
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_22();
275
        linha.set(ano + "-" + mes + "-" + "22", valorAcumulado);
276
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_23();
277
        linha.set(ano + "-" + mes + "-" + "23", valorAcumulado);
278
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_24();
279
        linha.set(ano + "-" + mes + "-" + "24", valorAcumulado);
280
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_25();
281
        linha.set(ano + "-" + mes + "-" + "25", valorAcumulado);
282
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_26();
283
        linha.set(ano + "-" + mes + "-" + "26", valorAcumulado);
284
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_27();
285
        linha.set(ano + "-" + mes + "-" + "27", valorAcumulado);
286
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_28();
287
        linha.set(ano + "-" + mes + "-" + "28", valorAcumulado);
288
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_29();
289
        linha.set(ano + "-" + mes + "-" + "29", valorAcumulado);
290
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_30();
291
        linha.set(ano + "-" + mes + "-" + "30", valorAcumulado);
292
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_31();
293
        linha.set(ano + "-" + mes + "-" + "31", valorAcumulado);
294
        return linha;
295
        }
296
 
297
        private void verificarSeVigenciaSelecionada() {
298
                if (VerificadorUtil.isListaNulaOuVazia(getAnosSelecionados())) {
299
                        throw new NegocioException("NECESSÁRIO SELECIONAR O ANO");
300
                }
301
        }
302
 
303
}