Subversion Repositories Integrator Subversion

Rev

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