Subversion Repositories Integrator Subversion

Rev

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