Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
128 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.Serializable;
356 espaco 4
import java.util.ArrayList;
128 espaco 5
import java.util.Calendar;
6
import java.util.Date;
7
import java.util.GregorianCalendar;
8
import java.util.List;
9
 
10
import javax.inject.Inject;
11
import javax.inject.Named;
356 espaco 12
import javax.persistence.Transient;
128 espaco 13
 
14
import org.primefaces.model.chart.Axis;
15
import org.primefaces.model.chart.AxisType;
16
import org.primefaces.model.chart.BarChartModel;
17
import org.primefaces.model.chart.ChartSeries;
18
import org.springframework.context.annotation.Scope;
19
 
195 espaco 20
import br.com.ec.core.generic.GenericService;
21
import br.com.ec.core.util.DataUtils;
22
import br.com.ec.core.util.VerificadorUtil;
128 espaco 23
import br.com.ec.domain.dto.MeusResultadosDTO;
24
import br.com.ec.domain.dto.ParametrosConsultaVendasDTO;
25
import br.com.ec.domain.dto.ParametrosRelatorioVendasDTO;
356 espaco 26
import br.com.ec.domain.model.Avaliacao;
128 espaco 27
import br.com.ec.domain.model.AvaliacaoFuncionario;
356 espaco 28
import br.com.ec.domain.model.AvaliacaoProduto;
29
import br.com.ec.domain.model.Produto;
128 espaco 30
import br.com.ec.domain.model.Usuario;
31
import br.com.ec.domain.model.Vigencia;
356 espaco 32
import br.com.ec.domain.service.avaliacao.AvaliacaoService;
128 espaco 33
import br.com.ec.domain.service.avaliacaofuncionario.AvaliacaoFuncionarioService;
34
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
35
import br.com.ec.domain.service.usuario.UsuarioService;
36
import br.com.ec.domain.service.venda.VendaService;
37
import br.com.ec.domain.service.vendedor.VendedorService;
38
import br.com.ec.domain.service.vigencia.VigenciaService;
39
import br.com.ec.domain.shared.ConstantesSEC;
195 espaco 40
import br.com.ec.web.generic.AbstractBean;
128 espaco 41
 
42
@Named
43
@Scope("view")
44
public class MeusResultadosBean extends AbstractBean<MeusResultadosDTO> implements Serializable {
45
 
46
        private static final long serialVersionUID = 1L;
47
 
48
        private UsuarioService usuarioService;
49
        private VendaService vendaService;
50
        private VendedorService vendedorService;
51
        private VigenciaService vigenciaService;
52
        private AvaliacaoFuncionarioService avaliacaoFuncionarioService;
356 espaco 53
        private AvaliacaoService avaliacaoService;
128 espaco 54
 
55
        private Vigencia vigenciaAtual;
56
        private Vigencia vigenciaAnterior;
57
        private MeusResultadosDTO resumoAntigo;
58
        private MeusResultadosDTO resumoPromocaoInterna;
59
        private MeusResultadosDTO resumoPromocaoInternaAnterior;
60
 
61
        private ContextoSeguranca contextoSeguranca;
62
 
63
        List<Vigencia> ultimasVigencias;
356 espaco 64
        List<Produto> produtosPromocaoInterna;
65
        List<Produto> produtosPromocaoInternaAnterior;
128 espaco 66
 
67
        private BarChartModel historico;
68
        private BarChartModel historicoPercentual;
69
 
70
        @Inject
71
        public MeusResultadosBean(UsuarioService usuarioService, VendaService vendaService, VendedorService vendedorService,
356 espaco 72
                        VigenciaService vigenciaService, AvaliacaoFuncionarioService avaliacaoFuncionarioService, AvaliacaoService avaliacaoService,
73
                        ContextoSeguranca contextoSeguranca) {
128 espaco 74
                this.usuarioService = usuarioService;
75
                this.vendaService = vendaService;
76
                this.vendedorService = vendedorService;
77
                this.vigenciaService = vigenciaService;
78
                this.avaliacaoFuncionarioService = avaliacaoFuncionarioService;
356 espaco 79
                this.avaliacaoService = avaliacaoService;
128 espaco 80
                this.contextoSeguranca = contextoSeguranca;
81
        }
82
 
83
        @Override
84
        public void preCarregamento() {
85
                setUltimasVigencias(vigenciaService.consultarUltimasVigencias());
86
                Usuario usuarioSelecionado = usuarioService.consultarPorId(contextoSeguranca.obterUsuario());
87
 
88
                if (!getUltimasVigencias().isEmpty()) {
89
                        if (getUltimasVigencias().size() >= 1) {
90
                                setVigenciaAtual(retornarVigenciaDoPeriodo(getUltimasVigencias(), DataUtils.getDataAtual()));
356 espaco 91
                                Avaliacao avaliacaoAtual = avaliacaoService.consultarAvaliacaoDaVigencia(getVigenciaAtual());
92
                                if (VerificadorUtil.naoEstaNulo(avaliacaoAtual)) {
93
                                        List<AvaliacaoProduto> listaProdutosPromocao = avaliacaoService.consultarProdutosPromocaoInterna(avaliacaoAtual.getSequencial());
94
                                        List<Produto> produtosDaPromocao = new ArrayList<Produto>();
95
                                        for (AvaliacaoProduto avaliacaoProduto : listaProdutosPromocao) {
96
                                                produtosDaPromocao.add(avaliacaoProduto.getProduto());
97
                                        }
98
                                        setProdutosPromocaoInterna(produtosDaPromocao);
99
                                }
100
 
101
 
128 espaco 102
                                MeusResultadosDTO colaborador = new MeusResultadosDTO();
103
                                colaborador.setUsuario(usuarioSelecionado);
104
                                colaborador.setRankingVendedor(vendaService.consultarRankingVendedor(vendedorService.consultarVendedorPorPessoa(usuarioSelecionado.getPessoa()), getVigenciaAtual(), true));
105
                                setEntidade(colaborador);
106
                                colaborador.getRankingVendedor().setPercentualMetaMensal(calcularPorcentagemDaMetaMensal());
107
                                colaborador.getRankingVendedor().setPercentualMetaMensalVivo(calcularPorcentagemDaMetaMensalVivo());
108
                                colaborador.getRankingVendedor().setPercentualMetaDiaria(calcularPorcentagemDaMetaDiaria());
356 espaco 109
 
110
                                if (!getProdutosPromocaoInterna().isEmpty()) {
111
                                        MeusResultadosDTO colaboradorPromocaoInterna = new MeusResultadosDTO();
112
                                        colaboradorPromocaoInterna.setUsuario(usuarioSelecionado);
113
                                        colaboradorPromocaoInterna.setRankingVendedor(vendaService.consultarRankingPromocaoInternaDoVendedor(vendedorService.consultarVendedorPorPessoa(usuarioSelecionado.getPessoa()),
114
                                                        DataUtils.getDataComHorarioMinimo(DataUtils.getPrimeiroDiaDoMesAtual()),
115
                                                        DataUtils.getDataComHorarioMaximo(DataUtils.getUltimoDiaDoMesAtual()),
116
                                                        getProdutosPromocaoInterna()));
117
                                        setResumoPromocaoInterna(colaboradorPromocaoInterna);
118
                                }
128 espaco 119
                        }
120
                        if (getUltimasVigencias().size() >= 2) {
121
                                Date dataAnterior = DataUtils.acrescentarMeses(DataUtils.getDataAtual(), -1);
122
                                setVigenciaAnterior(retornarVigenciaDoPeriodo(getUltimasVigencias(), dataAnterior));
356 espaco 123
 
124
                                Avaliacao avaliacaoAnterior = avaliacaoService.consultarAvaliacaoDaVigencia(getVigenciaAnterior());
125
                                if (VerificadorUtil.naoEstaNulo(avaliacaoAnterior)) {
126
                                        List<AvaliacaoProduto> listaProdutosPromocao = avaliacaoService.consultarProdutosPromocaoInterna(avaliacaoAnterior.getSequencial());
127
                                        List<Produto> produtosDaPromocao = new ArrayList<Produto>();
128
                                        for (AvaliacaoProduto avaliacaoProduto : listaProdutosPromocao) {
129
                                                produtosDaPromocao.add(avaliacaoProduto.getProduto());
130
                                        }
131
                                        setProdutosPromocaoInternaAnterior(produtosDaPromocao);
132
                                }
133
 
128 espaco 134
                                MeusResultadosDTO colaboradorAnterior = new MeusResultadosDTO();
135
                                colaboradorAnterior.setUsuario(usuarioSelecionado);
136
                                colaboradorAnterior.setRankingVendedor(vendaService.consultarRankingVendedor(vendedorService.consultarVendedorPorPessoa(usuarioSelecionado.getPessoa()), getVigenciaAnterior(), true));
137
                                setResumoAntigo(colaboradorAnterior);
356 espaco 138
 
139
                                if (!getProdutosPromocaoInternaAnterior().isEmpty()) {
140
                                        MeusResultadosDTO colaboradorPromocaoInternaAnterior = new MeusResultadosDTO();
141
                                        colaboradorPromocaoInternaAnterior.setUsuario(usuarioSelecionado);
142
                                        colaboradorPromocaoInternaAnterior.setRankingVendedor(vendaService.consultarRankingPromocaoInternaDoVendedor(vendedorService.consultarVendedorPorPessoa(usuarioSelecionado.getPessoa()),
143
                                                        DataUtils.getDataComHorarioMinimo(DataUtils.getPrimeiroDiaDoMesAnterior()),
144
                                                        DataUtils.getDataComHorarioMaximo(DataUtils.getUltimoDiaDoMesAnterior()),
145
                                                        getProdutosPromocaoInternaAnterior()));
146
                                        setResumoPromocaoInternaAnterior(colaboradorPromocaoInternaAnterior);
147
                                }
128 espaco 148
                        }
149
                }
356 espaco 150
 
151
                /*
128 espaco 152
                MeusResultadosDTO colaboradorPromocaoInterna = new MeusResultadosDTO();
153
                colaboradorPromocaoInterna.setUsuario(usuarioSelecionado);
356 espaco 154
 
155
                Vigencia vigenciaAtual = retornarVigenciaDoPeriodo(getUltimasVigencias(), DataUtils.getPrimeiroDiaDoMesAtual());
156
                Avaliacao avaliacaoAtual = avaliacaoService.consultarAvaliacaoDaVigencia(vigenciaAtual);
157
                List<AvaliacaoProduto> listaProdutosPromocao = new ArrayList<AvaliacaoProduto>();
158
                listaProdutosPromocao = avaliacaoService.consultarProdutosPromocaoInterna(avaliacaoAtual.getSequencial());
128 espaco 159
                colaboradorPromocaoInterna.setRankingVendedor(vendaService.consultarRankingPromocaoInternaDoVendedor(vendedorService.consultarVendedorPorPessoa(usuarioSelecionado.getPessoa()),
160
                                DataUtils.getDataComHorarioMinimo(DataUtils.getPrimeiroDiaDoMesAtual()),
252 espaco 161
                                DataUtils.getDataComHorarioMaximo(DataUtils.getUltimoDiaDoMesAtual()),
162
                                ConstantesSEC.ProdutosPromocaoInterna.PRODUTOS));
128 espaco 163
                setResumoPromocaoInterna(colaboradorPromocaoInterna);
164
 
356 espaco 165
 
128 espaco 166
                MeusResultadosDTO colaboradorPromocaoInternaAnterior = new MeusResultadosDTO();
167
                colaboradorPromocaoInternaAnterior.setUsuario(usuarioSelecionado);
168
                colaboradorPromocaoInternaAnterior.setRankingVendedor(vendaService.consultarRankingPromocaoInternaDoVendedor(vendedorService.consultarVendedorPorPessoa(usuarioSelecionado.getPessoa()),
169
                                DataUtils.getDataComHorarioMinimo(DataUtils.getPrimeiroDiaDoMesAnterior()),
252 espaco 170
                                DataUtils.getDataComHorarioMaximo(DataUtils.getUltimoDiaDoMesAnterior()),
171
                                ConstantesSEC.ProdutosPromocaoInterna.PRODUTOS_MES_ANTERIOR));
128 espaco 172
                setResumoPromocaoInternaAnterior(colaboradorPromocaoInternaAnterior);
356 espaco 173
                */
128 espaco 174
        }
175
 
176
        private Vigencia retornarVigenciaDoPeriodo(List<Vigencia> ultimasVigencias, Date dataAtual) {
177
                for (Vigencia vigencia : ultimasVigencias) {
178
                        if (vigencia.getDataInicio().before(dataAtual) && vigencia.getDataFim().after(dataAtual)) {
179
                                return vigencia;
180
                        }
181
                }
182
                return null;
183
        }
356 espaco 184
 
128 espaco 185
        @Override
186
        public void limparEntidade() {
187
                setEntidade(new MeusResultadosDTO());
188
        }
189
 
190
        @Override
191
        public GenericService<MeusResultadosDTO> getService() {
192
                return null;
193
        }
194
 
195
        @Override
196
        public MeusResultadosDTO getEntidade() {
197
                return entidade;
198
        }
199
 
200
        @Override
201
        public MeusResultadosDTO getId() {
202
                return getEntidade();
203
        }
204
 
205
        public Vigencia getVigenciaAtual() {
206
                return vigenciaAtual;
207
        }
208
        public void setVigenciaAtual(Vigencia vigenciaAtual) {
209
                this.vigenciaAtual = vigenciaAtual;
210
        }
211
 
212
        public Vigencia getVigenciaAnterior() {
213
                return vigenciaAnterior;
214
        }
215
        public void setVigenciaAnterior(Vigencia vigenciaAnterior) {
216
                this.vigenciaAnterior = vigenciaAnterior;
217
        }
218
 
219
        public MeusResultadosDTO getResumoAntigo() {
220
                return resumoAntigo;
221
        }
222
        public void setResumoAntigo(MeusResultadosDTO resumoAntigo) {
223
                this.resumoAntigo = resumoAntigo;
224
        }
225
 
226
        public MeusResultadosDTO getResumoPromocaoInterna() {
227
                return resumoPromocaoInterna;
228
        }
229
        public void setResumoPromocaoInterna(MeusResultadosDTO resumoPromocaoInterna) {
230
                this.resumoPromocaoInterna = resumoPromocaoInterna;
231
        }
232
 
233
        public MeusResultadosDTO getResumoPromocaoInternaAnterior() {
234
                return resumoPromocaoInternaAnterior;
235
        }
236
        public void setResumoPromocaoInternaAnterior(MeusResultadosDTO resumoPromocaoInternaAnterior) {
237
                this.resumoPromocaoInternaAnterior = resumoPromocaoInternaAnterior;
238
        }
239
 
240
        public List<Vigencia> getUltimasVigencias() {
241
                return ultimasVigencias;
242
        }
243
        public void setUltimasVigencias(List<Vigencia> ultimasVigencias) {
244
                this.ultimasVigencias = ultimasVigencias;
245
        }
246
 
356 espaco 247
        public List<Produto> getProdutosPromocaoInterna() {
248
                return produtosPromocaoInterna;
249
        }
250
        public void setProdutosPromocaoInterna(List<Produto> produtosPromocaoInterna) {
251
                this.produtosPromocaoInterna = produtosPromocaoInterna;
252
        }
253
 
254
        public List<Produto> getProdutosPromocaoInternaAnterior() {
255
                return produtosPromocaoInternaAnterior;
256
        }
257
        public void setProdutosPromocaoInternaAnterior(List<Produto> produtosPromocaoInternaAnterior) {
258
                this.produtosPromocaoInternaAnterior = produtosPromocaoInternaAnterior;
259
        }
260
 
128 espaco 261
        public BarChartModel getHistorico() {
262
                if (VerificadorUtil.estaNulo(historico)) {
263
                        consultarHistorico();
264
                }
265
                return historico;
266
        }
267
        public void setHistorico(BarChartModel historico) {
268
                this.historico = historico;
269
        }
270
 
271
        public BarChartModel getHistoricoPercentual() {
272
                if (VerificadorUtil.estaNulo(historicoPercentual)) {
273
                        consultarHistoricoPercentual();
274
                }
275
                return historicoPercentual;
276
        }
277
        public void setHistoricoPercentual(BarChartModel historicoPercentual) {
278
                this.historicoPercentual = historicoPercentual;
279
        }
280
 
281
        /***************************************************************/
282
 
283
        public Double calcularPorcentagemDaMetaMensal() {
284
                return verificarMetas(getEntidade().getRankingVendedor().getAvaliacaoFuncionario()) ?
285
                                consultarPorcentagem(getEntidade().getRankingVendedor().getAvaliacaoFuncionario().getValorMetaMensal(),
286
                                        getEntidade().getRankingVendedor().getValorTotalVendido()) : 0.0;
287
        }
288
 
289
        public Double calcularPorcentagemDaMetaMensalVivo() {
290
                return verificarMetasVivo(getEntidade().getRankingVendedor().getAvaliacaoFuncionario()) ?
291
                                consultarPorcentagem(getEntidade().getRankingVendedor().getAvaliacaoFuncionario().getValorMetaMensalVivo(),
292
                                        getEntidade().getRankingVendedor().getValorTotalVendidoVivo()) : 0.0;
293
        }
294
 
295
        public Double calcularPorcentagemDaMetaDiaria() {
296
                Integer quantidadeDiasNoMes = new GregorianCalendar().getActualMaximum (Calendar.DAY_OF_MONTH);
297
                return verificarMetas(getEntidade().getRankingVendedor().getAvaliacaoFuncionario()) ?
298
                                consultarPorcentagem(getEntidade().getRankingVendedor().getAvaliacaoFuncionario().getValorMetaMensal() / quantidadeDiasNoMes,
299
                                        getEntidade().getRankingVendedor().getValorTotalVendidoDoDia()) : 0.0;
300
        }
301
 
302
        public String retornarEstiloMetaDiaria() {
303
                Integer quantidadeDiasNoMes = new GregorianCalendar().getActualMaximum (Calendar.DAY_OF_MONTH);
304
                return verificarMetas(getEntidade().getRankingVendedor().getAvaliacaoFuncionario()) ?
305
                                retornarEstilo(getEntidade().getRankingVendedor().getAvaliacaoFuncionario().getValorMetaMensal() / quantidadeDiasNoMes,
306
                                        getEntidade().getRankingVendedor().getValorTotalVendidoDoDia()) : "red-intense";
307
        }
308
 
309
        public String retornarEstiloMetaMensal() {
310
                return verificarMetas(getEntidade().getRankingVendedor().getAvaliacaoFuncionario()) ?
311
                                retornarEstilo(getEntidade().getRankingVendedor().getAvaliacaoFuncionario().getValorMetaMensal(),
312
                                        getEntidade().getRankingVendedor().getValorTotalVendido()) : "red-intense";
313
        }
314
 
315
        public String retornarEstiloMetaMensalVivo() {
316
                return verificarMetasVivo(getEntidade().getRankingVendedor().getAvaliacaoFuncionario()) ?
317
                                retornarEstilo(getEntidade().getRankingVendedor().getAvaliacaoFuncionario().getValorMetaMensalVivo(),
318
                                        getEntidade().getRankingVendedor().getValorTotalVendidoVivo()) : "red-intense";
319
        }
320
 
321
        private boolean verificarMetas(AvaliacaoFuncionario avaliacaoFuncionario) {
322
                if (VerificadorUtil.naoEstaNulo(avaliacaoFuncionario)) {
323
                        if (VerificadorUtil.naoEstaNulo(avaliacaoFuncionario.getValorMetaMensal())) {
324
                                return true;
325
                        }
326
                }
327
                return false;
328
        }
329
 
330
        private boolean verificarMetasVivo(AvaliacaoFuncionario avaliacaoFuncionario) {
331
                if (VerificadorUtil.naoEstaNulo(avaliacaoFuncionario)) {
332
                        if (VerificadorUtil.naoEstaNulo(avaliacaoFuncionario.getValorMetaMensalVivo())) {
333
                                return true;
334
                        }
335
                }
336
                return false;
337
        }
338
 
339
        private String retornarEstilo(Double valorMetaMensal, Double valorTotal) {
340
                if (VerificadorUtil.naoEstaNuloOuVazio(valorMetaMensal)) {
341
                        Double percentualRealizado = valorTotal * 100 / valorMetaMensal;
342
                        if (percentualRealizado < 75) {
343
                                return "red-intense";
344
                        } else {
345
                                if (percentualRealizado < 100) {
346
                                        return "blue-madison";
347
                                } else {
348
                                        if (percentualRealizado < 125) {
349
                                                return "green-haze";
350
                                        } else {
351
                                                return "green-seagreen";
352
                                        }
353
                                }
354
                        }
355
                }
356
                return "purple";
357
        }
358
 
359
        private Double consultarPorcentagem(Double valorTotal, Double valor) {
360
                if (VerificadorUtil.naoEstaNuloOuVazio(valorTotal) && VerificadorUtil.naoEstaNuloOuVazio(valor)) {
361
                        return (valor * 100 / valorTotal) / 100;
362
                }
363
                return 0.0;
364
        }
365
 
366
        public Integer getQuantidadeMinimaComissaoPromocaoInterna() {
367
                return ConstantesSEC.ProdutosPromocaoInterna.QUANTIDADE_MINIMA_RECEBIMENTO;
368
        }
369
 
370
        public void consultarHistorico() {
371
                ParametrosRelatorioVendasDTO parametrosRelatorioVendas = new ParametrosRelatorioVendasDTO();
372
                parametrosRelatorioVendas.iniciarDatasAtuais();
373
                if (VerificadorUtil.naoEstaNulo(getEntidade())) {
374
                        parametrosRelatorioVendas.setVendedor(getEntidade().getRankingVendedor().getVendedor());
375
 
376
                        ParametrosConsultaVendasDTO parametrosConsulta = new ParametrosConsultaVendasDTO(parametrosRelatorioVendas);
377
                        historico = new BarChartModel();
378
                        historico.setShowPointLabels(true);
379
                        historico.setDatatipFormat("<span>R$ %2$d</span><span style='display:none;'>%2$d</span>");
380
                        historico.setShowDatatip(true);
381
                        historico.setTitle("");
382
                        Axis xAxis = historico.getAxis(AxisType.X);
383
                        xAxis.setLabel("MESES");
384
                        Axis yAxis = historico.getAxis(AxisType.Y);
385
                    yAxis.setLabel("VALORES");
386
                        Integer mesAtual = new Integer(parametrosRelatorioVendas.getMes());
387
                        Integer anoAtual = new Integer(parametrosRelatorioVendas.getAno());
388
                        Integer quantidadeMesesAnteriores = 13;
389
 
390
                        mesAtual = mesAtual - quantidadeMesesAnteriores + 1;
391
                        if (mesAtual <= 0) {
392
                                mesAtual = mesAtual + 12;
393
                                anoAtual--;
394
                        }
395
                        ChartSeries linha = new ChartSeries();
396
                        for (int mes = 1; mes <= quantidadeMesesAnteriores; quantidadeMesesAnteriores--) {
397
                                if (mesAtual == 13) {
398
                                        mesAtual = 1;
399
                                        anoAtual++;
400
                                }
401
                                Double valorAcumulado = new Double(0.0);
402
                                Calendar dataInicial = DataUtils.obterCalendario(DataUtils.obterData(1, mesAtual - 1, anoAtual));
403
                                parametrosConsulta.setDataInicial(dataInicial.getTime());
404
                                int qntMaximaDias = dataInicial.getActualMaximum(Calendar.DAY_OF_MONTH);
405
                                parametrosConsulta.setDataFinal(DataUtils.obterCalendario(DataUtils.obterData(qntMaximaDias, mesAtual - 1, anoAtual)).getTime());
406
                                parametrosConsulta.setIndicadorComissionado(true);
407
                                valorAcumulado = vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsulta);
408
                                String descricaoLinha = mesAtual.toString() + "/" + anoAtual;
409
                                linha.set(descricaoLinha, valorAcumulado);
410
                        mesAtual++;
411
                        }
412
                        historico.addSeries(linha);
413
                }
414
        }
415
 
416
        public void consultarHistoricoPercentual() {
417
                ParametrosRelatorioVendasDTO parametrosRelatorioVendas = new ParametrosRelatorioVendasDTO();
418
                parametrosRelatorioVendas.iniciarDatasAtuais();
419
                if (VerificadorUtil.naoEstaNulo(getEntidade())) {
420
                        parametrosRelatorioVendas.setVendedor(getEntidade().getRankingVendedor().getVendedor());
421
 
422
                        ParametrosConsultaVendasDTO parametrosConsulta = new ParametrosConsultaVendasDTO(parametrosRelatorioVendas);
423
                        historicoPercentual = new BarChartModel();
424
                        historicoPercentual.setShowPointLabels(true);
425
                        historicoPercentual.setDatatipFormat("<span>%2$d%</span><span style='display:none;'>%2$d</span>");
426
                        historicoPercentual.setShowDatatip(true);
427
                        historicoPercentual.setTitle("");
428
                        Axis xAxis = historicoPercentual.getAxis(AxisType.X);
429
                        xAxis.setLabel("MESES");
430
                        Axis yAxis = historicoPercentual.getAxis(AxisType.Y);
431
                    yAxis.setLabel("PERCENTUAIS");
432
                        Integer mesAtual = new Integer(parametrosRelatorioVendas.getMes());
433
                        Integer anoAtual = new Integer(parametrosRelatorioVendas.getAno());
434
                        Integer quantidadeMesesAnteriores = 13;
435
 
436
                        mesAtual = mesAtual - quantidadeMesesAnteriores + 1;
437
                        if (mesAtual <= 0) {
438
                                mesAtual = mesAtual + 12;
439
                                anoAtual--;
440
                        }
441
                        ChartSeries linha = new ChartSeries();
442
                        for (int mes = 1; mes <= quantidadeMesesAnteriores; quantidadeMesesAnteriores--) {
443
                                if (mesAtual == 13) {
444
                                        mesAtual = 1;
445
                                        anoAtual++;
446
                                }
447
                                Double valorAcumulado = new Double(0.0);
448
                                Calendar dataInicial = DataUtils.obterCalendario(DataUtils.obterData(1, mesAtual - 1, anoAtual));
449
                                parametrosConsulta.setDataInicial(dataInicial.getTime());
450
                                int qntMaximaDias = dataInicial.getActualMaximum(Calendar.DAY_OF_MONTH);
451
                                parametrosConsulta.setDataFinal(DataUtils.obterCalendario(DataUtils.obterData(qntMaximaDias, mesAtual - 1, anoAtual)).getTime());
452
                                parametrosConsulta.setIndicadorComissionado(true);
453
                                valorAcumulado = vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsulta);
454
                                String descricaoLinha = mesAtual.toString() + "/" + anoAtual;
455
 
456
                                AvaliacaoFuncionario avaliacaoFuncionario = avaliacaoFuncionarioService.consultarAvaliacaoFuncionarioPelaData(parametrosRelatorioVendas.getVendedor(), DataUtils.getDataComHorarioMinimo(parametrosConsulta.getDataFinal()));
457
                                Double percentualMetaMensal = 0.0;
458
                                if (VerificadorUtil.naoEstaNulo(avaliacaoFuncionario)) {
459
                                        percentualMetaMensal = avaliacaoFuncionario.retornarPercentualRealizado(valorAcumulado);
460
                                }
461
 
462
                                linha.set(descricaoLinha, percentualMetaMensal * 100);
463
                        mesAtual++;
464
                        }
465
                        historicoPercentual.addSeries(linha);
466
                }
467
        }
468
 
469
        public String produtosPromocaoInterna() {
470
                return ConstantesSEC.ProdutosPromocaoInterna.PRODUTOS.replace("'", "");
471
        }
472
 
252 espaco 473
        public String produtosPromocaoInternaMesAnterior() {
474
                return ConstantesSEC.ProdutosPromocaoInterna.PRODUTOS_MES_ANTERIOR.replace("'", "");
475
        }
476
 
128 espaco 477
}