Subversion Repositories Integrator Subversion

Rev

Rev 328 | Rev 693 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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