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.ByteArrayInputStream;
4
import java.io.ByteArrayOutputStream;
5
import java.io.Serializable;
6
import java.util.ArrayList;
7
import java.util.HashSet;
8
import java.util.List;
9
 
10
import javax.faces.context.FacesContext;
11
import javax.inject.Inject;
12
import javax.inject.Named;
13
import javax.servlet.ServletContext;
14
 
15
import org.apache.poi.openxml4j.opc.OPCPackage;
16
import org.apache.poi.xwpf.usermodel.XWPFDocument;
17
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
18
import org.apache.poi.xwpf.usermodel.XWPFTable;
19
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
20
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
21
import org.primefaces.model.DefaultStreamedContent;
22
import org.primefaces.model.StreamedContent;
23
import org.springframework.context.annotation.Scope;
24
 
25
import br.com.ec.domain.dto.ParametrosConsultaVendasDTO;
26
import br.com.ec.domain.dto.ParametrosConsultaVendasVivoDTO;
27
import br.com.ec.domain.dto.RankingVendedorDTO;
28
import br.com.ec.domain.model.Avaliacao;
29
import br.com.ec.domain.model.AvaliacaoFuncionario;
30
import br.com.ec.domain.model.AvaliacaoFuncionarioItemAvaliacao;
31
import br.com.ec.domain.model.AvaliacaoLoja;
32
import br.com.ec.domain.model.Funcionario;
33
import br.com.ec.domain.model.ItemAvaliacao;
34
import br.com.ec.domain.model.Loja;
35
import br.com.ec.domain.model.Pessoa;
36
import br.com.ec.domain.model.Vendedor;
37
import br.com.ec.domain.model.Vigencia;
38
import br.com.ec.domain.model.tipos.TipoFaixaComissao;
39
import br.com.ec.domain.service.avaliacao.AvaliacaoService;
40
import br.com.ec.domain.service.avaliacaofuncionario.AvaliacaoFuncionarioService;
41
import br.com.ec.domain.service.avaliacaoloja.AvaliacaoLojaService;
42
import br.com.ec.domain.service.itemavaliacao.ItemAvaliacaoService;
43
import br.com.ec.domain.service.venda.VendaService;
44
import br.com.ec.domain.service.vendavivo.VendaVivoService;
45
import br.com.ec.domain.service.vendedor.VendedorService;
46
import br.edu.cesmac.core.consulta.ParametrosConsulta;
47
import br.edu.cesmac.core.generic.GenericService;
48
import br.edu.cesmac.core.util.ArquivoUtil;
49
import br.edu.cesmac.core.util.StringUtil;
50
import br.edu.cesmac.core.util.VerificadorUtil;
51
import br.edu.cesmac.web.exception.VerificadorLancamentoException;
52
import br.edu.cesmac.web.exception.VerificadorLancamentoException.CommandBean;
53
import br.edu.cesmac.web.generic.AbstractBean;
54
import br.edu.cesmac.web.message.LancadorMensagem;
55
import br.edu.cesmac.web.util.TipoOperacao;
56
 
57
@Named
58
@Scope("view")
59
public class AvaliacaoBean extends AbstractBean<Avaliacao> implements Serializable {
60
 
61
        private static final long serialVersionUID = 1L;
62
 
63
        private AvaliacaoService avaliacaoService;
64
        private AvaliacaoFuncionarioService avaliacaoFuncionarioService;
65
        private AvaliacaoLojaService avaliacaoLojaService;
66
        private ItemAvaliacaoService itemAvaliacaoService;
67
        private VendedorService vendedorService;
68
        private VendaService vendaService;
69
        private VendaVivoService vendaVivoService;
70
 
71
        private Avaliacao avaliacaoSelecionado;
72
        private AvaliacaoFuncionario participanteSelecionado;
73
        private AvaliacaoFuncionarioItemAvaliacao itemSelecionado;
74
 
75
        private AvaliacaoLoja lojaParticipanteSelecionada;
76
 
77
        private Avaliacao avaliacaoSelecionadaParaDuplicacao;
78
        private Vigencia vigenciaSelecionadaParaDuplicacao;
79
 
80
        private List<Avaliacao> avaliacoesDivulgadas;
81
        private String reavaliacao;
82
 
83
        @Inject
84
        public AvaliacaoBean(AvaliacaoService avaliacaoService, AvaliacaoFuncionarioService avaliacaoFuncionarioService, AvaliacaoLojaService avaliacaoLojaService,
85
                        ItemAvaliacaoService itemAvaliacaoService, VendedorService vendedorService, VendaService vendaService, VendaVivoService vendaVivoService) {
86
                this.avaliacaoService = avaliacaoService;
87
                this.avaliacaoFuncionarioService = avaliacaoFuncionarioService;
88
                this.avaliacaoLojaService = avaliacaoLojaService;
89
                this.itemAvaliacaoService = itemAvaliacaoService;
90
                this.vendedorService = vendedorService;
91
                this.vendaService = vendaService;
92
                this.vendaVivoService = vendaVivoService;
93
        }
94
 
95
        @Override
96
        public void preCarregamento() {
97
                parametrosConsulta = new ParametrosConsulta<Avaliacao>();
98
                parametrosConsulta.setEntidade(new Avaliacao());
99
                setParticipanteSelecionado(new AvaliacaoFuncionario());
100
        }
101
 
102
        @Override
103
        public void limparEntidade() {
104
                setEntidade(new Avaliacao());
105
        }
106
 
107
        @Override
108
        public GenericService<Avaliacao> getService() {
109
                return avaliacaoService;
110
        }
111
 
112
        @Override
113
        public Avaliacao getEntidade() {
114
                return entidade;
115
        }
116
 
117
        @Override
118
        public Avaliacao getId() {
119
                return getEntidade();
120
        }
121
 
122
        public Avaliacao getAvaliacaoSelecionado() {
123
                return avaliacaoSelecionado;
124
        }
125
        public void setAvaliacaoSelecionado(Avaliacao avaliacaoSelecionado) {
126
                this.avaliacaoSelecionado = avaliacaoSelecionado;
127
        }
128
 
129
        public AvaliacaoFuncionario getParticipanteSelecionado() {
130
                return participanteSelecionado;
131
        }
132
        public void setParticipanteSelecionado(AvaliacaoFuncionario participanteSelecionado) {
133
                this.participanteSelecionado = participanteSelecionado;
134
        }
135
 
136
        public AvaliacaoFuncionarioItemAvaliacao getItemSelecionado() {
137
                return itemSelecionado;
138
        }
139
        public void setItemSelecionado(AvaliacaoFuncionarioItemAvaliacao itemSelecionado) {
140
                this.itemSelecionado = itemSelecionado;
141
        }
142
 
143
        public AvaliacaoLoja getLojaParticipanteSelecionada() {
144
                return lojaParticipanteSelecionada;
145
        }
146
        public void setLojaParticipanteSelecionada(AvaliacaoLoja lojaParticipanteSelecionada) {
147
                this.lojaParticipanteSelecionada = lojaParticipanteSelecionada;
148
        }
149
 
150
        public Avaliacao getAvaliacaoSelecionadaParaDuplicacao() {
151
                return avaliacaoSelecionadaParaDuplicacao;
152
        }
153
        public void setAvaliacaoSelecionadaParaDuplicacao(Avaliacao avaliacaoSelecionadaParaDuplicacao) {
154
                this.avaliacaoSelecionadaParaDuplicacao = avaliacaoSelecionadaParaDuplicacao;
155
        }
156
 
157
        public Vigencia getVigenciaSelecionadaParaDuplicacao() {
158
                return vigenciaSelecionadaParaDuplicacao;
159
        }
160
        public void setVigenciaSelecionadaParaDuplicacao(Vigencia vigenciaSelecionadaParaDuplicacao) {
161
                this.vigenciaSelecionadaParaDuplicacao = vigenciaSelecionadaParaDuplicacao;
162
        }
163
 
164
        public List<Avaliacao> getAvaliacoesDivulgadas() {
165
                if (VerificadorUtil.estaNulo(avaliacoesDivulgadas)) {
166
                        setAvaliacoesDivulgadas(consultarAvaliacoesDivulgadas());
167
                }
168
                return avaliacoesDivulgadas;
169
        }
170
        public void setAvaliacoesDivulgadas(List<Avaliacao> avaliacoesDivulgadas) {
171
                this.avaliacoesDivulgadas = avaliacoesDivulgadas;
172
        }
173
 
174
        public String getReavaliacao() {
175
                return reavaliacao;
176
        }
177
        public void setReavaliacao(String reavaliacao) {
178
                this.reavaliacao = StringUtil.setarUpperCaseComTrim(reavaliacao);
179
        }
180
 
181
        /***************************************************************/
182
 
183
        public TipoFaixaComissao[] getTiposFaixaComissao() {
184
                return TipoFaixaComissao.values();
185
        }
186
 
187
        @Override
188
        public void preDetalhar(Avaliacao avaliacao) {
189
                detalhar(avaliacao);
190
                setTipoOperacao(TipoOperacao.DETALHAR);
191
        }
192
 
193
        @Override
194
        public void preAlterar(Avaliacao avaliacao) {
195
                detalhar(avaliacao);
196
                setTipoOperacao(TipoOperacao.ALTERAR);
197
        }
198
 
199
        public void detalhar(Avaliacao avaliacao) {
200
                setEntidade(avaliacaoService.detalhar(avaliacao));
201
        }
202
 
203
        public void selecionarParticipante(AvaliacaoFuncionario avaliacaoFuncionario) {
204
                setParticipanteSelecionado(avaliacaoFuncionarioService.detalhar(avaliacaoFuncionario));
205
                setItemSelecionado(new AvaliacaoFuncionarioItemAvaliacao());
206
                getParticipanteSelecionado().setValorTotalVendido(consultarVendasDoPeriodo(getParticipanteSelecionado()));
207
                getParticipanteSelecionado().setValorTotalVendidoVivo(consultarVendasVivoDoPeriodo(getParticipanteSelecionado()));
208
        }
209
 
210
        public void selecionarParticipante(Pessoa pessoa, Avaliacao avaliacao) {
211
                setParticipanteSelecionado(avaliacaoFuncionarioService.detalhar(pessoa, avaliacao));
212
                setItemSelecionado(new AvaliacaoFuncionarioItemAvaliacao());
213
                getParticipanteSelecionado().setValorTotalVendido(consultarVendasDoPeriodo(getParticipanteSelecionado()));
214
                getParticipanteSelecionado().setValorTotalVendidoVivo(consultarVendasVivoDoPeriodo(getParticipanteSelecionado()));
215
        }
216
 
217
        public void selecionarLojaParticipante(AvaliacaoLoja avaliacaoLoja) {
218
                setLojaParticipanteSelecionada(avaliacaoLojaService.detalhar(avaliacaoLoja));
219
                getLojaParticipanteSelecionada().setValorTotalVendido(consultarVendasDoPeriodo(getLojaParticipanteSelecionada()));
220
        }
221
 
222
        public void selecionarLojaParticipante(Loja loja, Avaliacao avaliacao) {
223
                setLojaParticipanteSelecionada(avaliacaoLojaService.detalhar(loja, avaliacao));
224
                getLojaParticipanteSelecionada().setValorTotalVendido(consultarVendasDoPeriodo(getLojaParticipanteSelecionada()));
225
        }
226
 
227
        private Double consultarVendasDoPeriodo(AvaliacaoFuncionario avaliacaoFuncionario) {
228
                Vendedor vendedor = vendedorService.consultarVendedorPorPessoa(avaliacaoFuncionario.getFuncionario().getPessoa());
229
                ParametrosConsultaVendasDTO parametrosConsultaVendasDTO = new ParametrosConsultaVendasDTO();
230
                parametrosConsultaVendasDTO.setVendedor(vendedor);
231
                parametrosConsultaVendasDTO.setDataInicial(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataInicio());
232
                parametrosConsultaVendasDTO.setDataFinal(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataFim());
233
                parametrosConsultaVendasDTO.setIndicadorComissionado(true);
234
                return vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsultaVendasDTO);
235
        }
236
 
237
        private Double consultarVendasVivoDoPeriodo(AvaliacaoFuncionario avaliacaoFuncionario) {
238
                Vendedor vendedor = vendedorService.consultarVendedorPorPessoa(avaliacaoFuncionario.getFuncionario().getPessoa());
239
                ParametrosConsultaVendasVivoDTO parametrosConsultaVendasVivoDTO = new ParametrosConsultaVendasVivoDTO();
240
                parametrosConsultaVendasVivoDTO.setVendedor(vendedor);
241
                parametrosConsultaVendasVivoDTO.setDataInicial(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataInicio());
242
                parametrosConsultaVendasVivoDTO.setDataFinal(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataFim());
243
                return vendaVivoService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsultaVendasVivoDTO);
244
        }
245
 
246
        private Double consultarVendasDoPeriodo(AvaliacaoLoja avaliacaoLoja) {
247
                ParametrosConsultaVendasDTO parametrosConsultaVendasDTO = new ParametrosConsultaVendasDTO();
248
                parametrosConsultaVendasDTO.setLoja(avaliacaoLoja.getLoja());
249
                parametrosConsultaVendasDTO.setDataInicial(avaliacaoLoja.getAvaliacao().getVigencia().getDataInicio());
250
                parametrosConsultaVendasDTO.setDataFinal(avaliacaoLoja.getAvaliacao().getVigencia().getDataFim());
251
                parametrosConsultaVendasDTO.setIndicadorComissionado(true);
252
                return vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsultaVendasDTO);
253
        }
254
 
255
        public void adicionarParticipante(final Funcionario funcionario) {
256
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
257
                        public void execute() {
258
                                if (VerificadorUtil.estaNuloOuVazio(getEntidade().getParticipantes())) {
259
                                        getEntidade().setParticipantes(new HashSet<AvaliacaoFuncionario>());
260
                                }
261
                                boolean adicionar = true;
262
                                for (AvaliacaoFuncionario participante : getEntidade().getParticipantes()) {
263
                                        if (participante.getFuncionario().equals(funcionario)) {
264
                                                adicionar = false;
265
                                                break;
266
                                        }
267
                                }
268
                                if (adicionar) {
269
                                        AvaliacaoFuncionario avaliacaoFuncionario = new AvaliacaoFuncionario();
270
                                        avaliacaoFuncionario.setFuncionario(funcionario);
271
                                        avaliacaoFuncionario.setAvaliacao(getEntidade());
272
                                        getEntidade().getParticipantes().add(avaliacaoFuncionario);
273
                                        avaliacaoService.alterar(getEntidade());
274
                                        detalhar(getEntidade());
275
                                        LancadorMensagem.lancarSucesso("PARTICIPANTE ADICIONADO COM SUCESSO");
276
                                } else {
277
                                        LancadorMensagem.lancarErro("PARTICIPANTE JÁ FOI ADICIONADO");
278
                                }
279
                        }
280
                });
281
        }
282
 
283
        public void removerParticipante(final AvaliacaoFuncionario avaliacaoFuncionario) {
284
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
285
                        public void execute() {
286
                                if (VerificadorUtil.naoEstaNuloOuVazio(getEntidade().getParticipantes())) {
287
                                        getEntidade().getParticipantes().remove(avaliacaoFuncionario);
288
                                }
289
                                avaliacaoService.alterar(getEntidade());
290
                                detalhar(getEntidade());
291
                                LancadorMensagem.lancarSucesso("PARTICIPANTE REMOVIDO COM SUCESSO");
292
                        }
293
                });
294
        }
295
 
296
        public void alterarParticipante() {
297
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
298
                        public void execute() {
299
                                avaliacaoService.alterar(getEntidade());
300
                                avaliacaoFuncionarioService.alterar(getParticipanteSelecionado());
301
                                detalhar(getEntidade());
302
                                LancadorMensagem.lancarSucesso("PARTICIPANTE ALTERADO COM SUCESSO");
303
                        }
304
                });
305
        }
306
 
307
        public Double consultarValorComissao(AvaliacaoFuncionario avaliacaoFuncionario) {
308
                if (VerificadorUtil.naoEstaNuloOuVazio(avaliacaoFuncionario.getPorcentagemComissao())) {
309
                        return consultarVendasDoPeriodo(avaliacaoFuncionario) * avaliacaoFuncionario.getPorcentagemComissao() / 100;
310
                }
311
                return null;
312
        }
313
 
314
        public void adicionarItem(AvaliacaoFuncionarioItemAvaliacao avaliacaoFuncionarioItemAvaliacao) {
315
                if (VerificadorUtil.estaNuloOuVazio(getParticipanteSelecionado())) {
316
                        getParticipanteSelecionado().getItens().add(avaliacaoFuncionarioItemAvaliacao);
317
                }
318
        }
319
 
320
        public void removerItem(AvaliacaoFuncionarioItemAvaliacao avaliacaoFuncionarioItemAvaliacao) {
321
                if (VerificadorUtil.naoEstaNuloOuVazio(getParticipanteSelecionado())) {
322
                        if (VerificadorUtil.naoEstaNuloOuVazio(getParticipanteSelecionado().getItens())) {
323
                                getParticipanteSelecionado().getItens().remove(avaliacaoFuncionarioItemAvaliacao);
324
                        }
325
                }
326
        }
327
 
328
        public Integer consultarPontuacao(AvaliacaoFuncionario avaliacaoFuncionario) {
329
                try {
330
                        AvaliacaoFuncionario participanteDetalhado = avaliacaoFuncionarioService.detalhar(avaliacaoFuncionario);
331
                        return participanteDetalhado.getPontuacao();
332
                } catch (Exception ex) {}
333
                return null;
334
        }
335
 
336
        public Integer consultarPontuacao(Pessoa pessoa, Avaliacao avaliacao) {
337
                try {
338
                        AvaliacaoFuncionario participanteDetalhado = avaliacaoFuncionarioService.detalhar(pessoa, avaliacao);
339
                        return participanteDetalhado.getPontuacao();
340
                } catch (Exception ex) {}
341
                return null;
342
        }
343
 
344
        public void alterarItensDoParticipante() {
345
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
346
                        public void execute() {
347
                                avaliacaoFuncionarioService.alterar(getParticipanteSelecionado());
348
                                LancadorMensagem.lancarSucesso("AVALIAÇÃO DO PARTICIPANTE ALTERADA COM SUCESSO");
349
                        }
350
                });
351
        }
352
 
353
        public List<ItemAvaliacao> consultarItensAvaliacao() {
354
                return itemAvaliacaoService.consultarTodos(new ItemAvaliacao());
355
        }
356
 
357
        public void adicionarItemAvaliacao() {
358
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
359
                        public void execute() {
360
                                getItemSelecionado().setAvaliacaoFuncionario(getParticipanteSelecionado());
361
                                getParticipanteSelecionado().adicionarItemAvaliacao(getItemSelecionado());
362
                                setItemSelecionado(new AvaliacaoFuncionarioItemAvaliacao());
363
                                LancadorMensagem.lancarSucesso("ITEM DE AVALIAÇÃO ADICIONADO COM SUCESSO");
364
                        }
365
                });
366
        }
367
 
368
        public void adicionarLojaParticipante(final Loja loja) {
369
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
370
                        public void execute() {
371
                                if (VerificadorUtil.estaNuloOuVazio(getEntidade().getLojasParticipantes())) {
372
                                        getEntidade().setLojasParticipantes(new HashSet<AvaliacaoLoja>());
373
                                }
374
                                boolean adicionar = true;
375
                                for (AvaliacaoLoja participante : getEntidade().getLojasParticipantes()) {
376
                                        if (participante.getLoja().equals(loja)) {
377
                                                adicionar = false;
378
                                                break;
379
                                        }
380
                                }
381
                                if (adicionar) {
382
                                        AvaliacaoLoja avaliacaoLoja = new AvaliacaoLoja();
383
                                        avaliacaoLoja.setLoja(loja);
384
                                        avaliacaoLoja.setAvaliacao(getEntidade());
385
                                        getEntidade().getLojasParticipantes().add(avaliacaoLoja);
386
                                        avaliacaoService.alterar(getEntidade());
387
                                        detalhar(getEntidade());
388
                                        LancadorMensagem.lancarSucesso("LOJA PARTICIPANTE ADICIONADA COM SUCESSO");
389
                                } else {
390
                                        LancadorMensagem.lancarErro("LOJA PARTICIPANTE JÁ FOI ADICIONADA");
391
                                }
392
                        }
393
                });
394
        }
395
 
396
        public void removerLojaParticipante(final AvaliacaoLoja avaliacaoLoja) {
397
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
398
                        public void execute() {
399
                                if (VerificadorUtil.naoEstaNuloOuVazio(getEntidade().getLojasParticipantes())) {
400
                                        getEntidade().getLojasParticipantes().remove(avaliacaoLoja);
401
                                }
402
                                avaliacaoService.alterar(getEntidade());
403
                                detalhar(getEntidade());
404
                                LancadorMensagem.lancarSucesso("LOJA PARTICIPANTE REMOVIDA COM SUCESSO");
405
                        }
406
                });
407
        }
408
 
409
        public void alterarLojaParticipante() {
410
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
411
                        public void execute() {
412
                                avaliacaoService.alterar(getEntidade());
413
                                avaliacaoLojaService.alterar(getLojaParticipanteSelecionada());
414
                                detalhar(getEntidade());
415
                                LancadorMensagem.lancarSucesso("LOJA PARTICIPANTE ALTERADA COM SUCESSO");
416
                        }
417
                });
418
        }
419
 
420
        public List<Avaliacao> consultarAvaliacoesDivulgadas() {
421
                return avaliacaoService.consultarAvaliacoesDivulgadas();
422
        }
423
 
424
        public void prepararDuplicacaoAvaliacao(Avaliacao avaliacao) {
425
                setAvaliacaoSelecionadaParaDuplicacao(avaliacaoService.detalhar(avaliacao));
426
        }
427
 
428
        public void duplicarAvaliacao() {
429
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
430
                        public void execute() {
431
                                Avaliacao avaliacaoNova = new Avaliacao();
432
                                avaliacaoNova.setVigencia(vigenciaSelecionadaParaDuplicacao);
433
                                avaliacaoService.cadastrar(avaliacaoNova);
434
 
435
                                List<AvaliacaoFuncionario> participantesNovos = new ArrayList<AvaliacaoFuncionario>();
436
                                for (AvaliacaoFuncionario avaliacaoFuncionario : getAvaliacaoSelecionadaParaDuplicacao().getParticipantesOrdenados()) {
437
                                        AvaliacaoFuncionario avaliacaoFuncionarioNovo = new AvaliacaoFuncionario();
438
                                        avaliacaoFuncionarioNovo.setAvaliacao(avaliacaoNova);
439
                                        avaliacaoFuncionarioNovo.setFuncionario(avaliacaoFuncionario.getFuncionario());
440
                                        avaliacaoFuncionarioNovo.setValorMetaMensal(avaliacaoFuncionario.getValorMetaMensal());
441
                                        avaliacaoFuncionarioNovo.setValorMetaMensalVivo(avaliacaoFuncionario.getValorMetaMensalVivo());
442
                                        participantesNovos.add(avaliacaoFuncionarioNovo);
443
                                }
444
                                avaliacaoNova.getParticipantes().addAll(participantesNovos);
445
 
446
                                List<AvaliacaoLoja> lojasParticipantesNovas = new ArrayList<AvaliacaoLoja>();
447
                                for (AvaliacaoLoja avaliacaoLoja : getAvaliacaoSelecionadaParaDuplicacao().getLojasParticipantesOrdenadas()) {
448
                                        AvaliacaoLoja avaliacaoLojaNovo = new AvaliacaoLoja();
449
                                        avaliacaoLojaNovo.setAvaliacao(avaliacaoNova);
450
                                        avaliacaoLojaNovo.setLoja(avaliacaoLoja.getLoja());
451
                                        avaliacaoLojaNovo.setValorMetaMensal(avaliacaoLoja.getValorMetaMensal());
452
                                        avaliacaoLojaNovo.setValorMargemContribuicao(avaliacaoLoja.getValorMargemContribuicao());
453
                                        lojasParticipantesNovas.add(avaliacaoLojaNovo);
454
                                }
455
                                avaliacaoNova.getLojasParticipantes().addAll(lojasParticipantesNovas);
456
 
457
                                avaliacaoService.alterar(avaliacaoNova);
458
                                LancadorMensagem.lancarSucesso("AVALIAÇÃO DUPLICADA COM SUCESSO");
459
                        }
460
                });
461
        }
462
 
463
        public void atualizarValorComissao() {
464
                if (VerificadorUtil.naoEstaNuloOuVazio(getParticipanteSelecionado().getPorcentagemComissao())) {
465
                        getParticipanteSelecionado().setValorComissao(consultarVendasDoPeriodo(getParticipanteSelecionado()) * getParticipanteSelecionado().getPorcentagemComissao() / 100);
466
                }
467
        }
468
 
469
        public void enviarReavaliacao(final RankingVendedorDTO rankingVendedor) {
470
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
471
                        public void execute() {
472
                                avaliacaoService.solicitarReavaliacao(rankingVendedor, getReavaliacao());
473
                                LancadorMensagem.lancarSucesso("REAVALIAÇÃO SOLICITADA COM SUCESSO");
474
                        }
475
                });
476
        }
477
 
478
        public StreamedContent emitirRelatorioImportacaoFolhaPagamento() throws Exception {
479
                ByteArrayInputStream input = new ByteArrayInputStream(avaliacaoService.emitirRelatorioImportacaoFolhaPagamento((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext(), getEntidade()));
480
                return new DefaultStreamedContent(input, ArquivoUtil.retornarContentTypeArquivo("xls"), "Relatório de Importação - Folha de Pagamento Espaço Case.xls");
481
        }
482
 
483
}