Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
648 blopes 1
package br.com.ec.controller;
2
 
650 blopes 3
import java.io.IOException;
648 blopes 4
import java.io.Serializable;
5
 
650 blopes 6
import javax.annotation.PostConstruct;
648 blopes 7
import javax.inject.Inject;
8
import javax.inject.Named;
9
 
10
import org.springframework.context.annotation.Scope;
11
 
12
import br.com.ec.core.generic.GenericService;
650 blopes 13
import br.com.ec.core.util.VerificadorUtil;
14
import br.com.ec.domain.dto.AvaliacaoDTO;
655 blopes 15
import br.com.ec.domain.dto.AvaliacaoFuncionarioDTO;
664 blopes 16
import br.com.ec.domain.dto.AvaliacaoLojaDTO;
722 blopes 17
import br.com.ec.domain.dto.AvaliacaoLojaFuncionarioDTO;
724 blopes 18
import br.com.ec.domain.dto.FuncionarioDTO;
659 blopes 19
import br.com.ec.domain.dto.LojaDTO;
657 blopes 20
import br.com.ec.domain.dto.UsuarioDTO;
659 blopes 21
import br.com.ec.domain.dto.VendedorDTO;
650 blopes 22
import br.com.ec.domain.dto.VigenciaDTO;
659 blopes 23
import br.com.ec.domain.dto.consulta.ParametrosConsultaVendasDTO;
24
import br.com.ec.domain.dto.consulta.ParametrosPeriodoDTO;
648 blopes 25
import br.com.ec.domain.model.Avaliacao;
655 blopes 26
import br.com.ec.domain.model.AvaliacaoFuncionario;
656 blopes 27
import br.com.ec.domain.model.AvaliacaoFuncionarioId;
664 blopes 28
import br.com.ec.domain.model.AvaliacaoLoja;
29
import br.com.ec.domain.model.AvaliacaoLojaId;
659 blopes 30
import br.com.ec.domain.model.tipos.TipoFaixaComissao;
656 blopes 31
import br.com.ec.domain.service.AvaliacaoFuncionarioService;
664 blopes 32
import br.com.ec.domain.service.AvaliacaoLojaService;
648 blopes 33
import br.com.ec.domain.service.AvaliacaoService;
659 blopes 34
import br.com.ec.domain.service.LojaService;
657 blopes 35
import br.com.ec.domain.service.UsuarioService;
659 blopes 36
import br.com.ec.domain.service.VendaService;
37
import br.com.ec.domain.service.VendedorService;
648 blopes 38
import br.com.ec.domain.service.VigenciaService;
39
import br.com.ec.web.exception.VerificadorLancamentoException;
40
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
41
import br.com.ec.web.generic.AbstractBean;
42
import br.com.ec.web.message.LancadorMensagem;
43
import br.com.ec.web.util.TipoOperacao;
44
 
45
@Named
46
@Scope("view")
650 blopes 47
public class MetasAvaliacoesBean extends AbstractBean<Avaliacao> implements Serializable {
648 blopes 48
 
49
        private static final long serialVersionUID = 1L;
50
 
650 blopes 51
        private VigenciaDTO vigenciaSelecionada;
722 blopes 52
        private VigenciaDTO vigenciaSelecionadaParaImportar;
650 blopes 53
        private AvaliacaoDTO avaliacaoSelecionada;
54
 
664 blopes 55
        private AvaliacaoLoja avaliacaoLojaSelecionada;
656 blopes 56
        private AvaliacaoFuncionario participanteSelecionado;
657 blopes 57
        private UsuarioDTO usuarioParticipanteSelecionado;
659 blopes 58
        private LojaDTO lojaParticipanteSelecionado;
724 blopes 59
        private FuncionarioDTO funcionarioSelecionado;
656 blopes 60
        private Long sequencialLojaSelecionada;
655 blopes 61
 
648 blopes 62
        private VigenciaService vigenciaService;
63
        private AvaliacaoService avaliacaoService;
664 blopes 64
        private AvaliacaoLojaService avaliacaoLojaService;
656 blopes 65
        private AvaliacaoFuncionarioService avaliacaoFuncionarioService;
657 blopes 66
        private UsuarioService usuarioService;
659 blopes 67
        private LojaService lojaService;
68
        private VendaService vendaService;
69
        private VendedorService vendedorService;
648 blopes 70
 
71
        @Inject
656 blopes 72
        public MetasAvaliacoesBean(VigenciaService vigenciaService, AvaliacaoService avaliacaoService,
664 blopes 73
                        AvaliacaoLojaService avaliacaoLojaService, AvaliacaoFuncionarioService avaliacaoFuncionarioService,
74
                        UsuarioService usuarioService, LojaService lojaService, VendaService vendaService,
75
                        VendedorService vendedorService) {
648 blopes 76
                this.vigenciaService = vigenciaService;
77
                this.avaliacaoService = avaliacaoService;
664 blopes 78
                this.avaliacaoLojaService = avaliacaoLojaService;
656 blopes 79
                this.avaliacaoFuncionarioService = avaliacaoFuncionarioService;
657 blopes 80
                this.usuarioService = usuarioService;
659 blopes 81
                this.lojaService = lojaService;
82
                this.vendaService = vendaService;
83
                this.vendedorService = vendedorService;
648 blopes 84
        }
85
 
86
        @Override
87
        public void preCarregamento() {
88
                limparEntidade();
89
        }
650 blopes 90
 
91
        @PostConstruct
92
        private void posCarregamento() {
656 blopes 93
                consultarMetasAvaliacoes();
650 blopes 94
        }
656 blopes 95
 
648 blopes 96
        @Override
97
        public void limparEntidade() {
650 blopes 98
                setEntidade(new Avaliacao());
648 blopes 99
        }
100
 
101
        @Override
650 blopes 102
        public GenericService<Avaliacao> getService() {
103
                return avaliacaoService;
648 blopes 104
        }
105
 
106
        @Override
650 blopes 107
        public Avaliacao getEntidade() {
648 blopes 108
                return entidade;
109
        }
110
 
111
        @Override
112
        public void preConsultar() {
113
                setTipoOperacao(TipoOperacao.CONSULTAR);
114
        }
115
 
116
        @Override
650 blopes 117
        public Avaliacao getId() {
648 blopes 118
                return getEntidade();
119
        }
120
 
650 blopes 121
        public VigenciaDTO getVigenciaSelecionada() {
122
                return vigenciaSelecionada;
123
        }
124
        public void setVigenciaSelecionada(VigenciaDTO vigenciaSelecionada) {
125
                this.vigenciaSelecionada = vigenciaSelecionada;
126
        }
127
 
722 blopes 128
        public VigenciaDTO getVigenciaSelecionadaParaImportar() {
129
                return vigenciaSelecionadaParaImportar;
130
        }
131
        public void setVigenciaSelecionadaParaImportar(VigenciaDTO vigenciaSelecionadaParaImportar) {
132
                this.vigenciaSelecionadaParaImportar = vigenciaSelecionadaParaImportar;
133
        }
134
 
650 blopes 135
        public AvaliacaoDTO getAvaliacaoSelecionada() {
136
                return avaliacaoSelecionada;
137
        }
138
        public void setAvaliacaoSelecionada(AvaliacaoDTO avaliacaoSelecionada) {
139
                this.avaliacaoSelecionada = avaliacaoSelecionada;
140
        }
141
 
664 blopes 142
        public AvaliacaoLoja getAvaliacaoLojaSelecionada() {
143
                return avaliacaoLojaSelecionada;
144
        }
145
        public void setAvaliacaoLojaSelecionada(AvaliacaoLoja avaliacaoLojaSelecionada) {
146
                this.avaliacaoLojaSelecionada = avaliacaoLojaSelecionada;
147
        }
148
 
656 blopes 149
        public AvaliacaoFuncionario getParticipanteSelecionado() {
655 blopes 150
                return participanteSelecionado;
151
        }
656 blopes 152
        public void setParticipanteSelecionado(AvaliacaoFuncionario participanteSelecionado) {
655 blopes 153
                this.participanteSelecionado = participanteSelecionado;
154
        }
155
 
656 blopes 156
        public Long getSequencialLojaSelecionada() {
157
                return sequencialLojaSelecionada;
158
        }
159
        public void setSequencialLojaSelecionada(Long sequencialLojaSelecionada) {
160
                this.sequencialLojaSelecionada = sequencialLojaSelecionada;
161
        }
162
 
657 blopes 163
        public UsuarioDTO getUsuarioParticipanteSelecionado() {
164
                return usuarioParticipanteSelecionado;
165
        }
166
        public void setUsuarioParticipanteSelecionado(UsuarioDTO usuarioParticipanteSelecionado) {
167
                this.usuarioParticipanteSelecionado = usuarioParticipanteSelecionado;
168
        }
169
 
659 blopes 170
        public LojaDTO getLojaParticipanteSelecionado() {
171
                return lojaParticipanteSelecionado;
172
        }
173
        public void setLojaParticipanteSelecionado(LojaDTO lojaParticipanteSelecionado) {
174
                this.lojaParticipanteSelecionado = lojaParticipanteSelecionado;
175
        }
176
 
724 blopes 177
        public FuncionarioDTO getFuncionarioSelecionado() {
178
                return funcionarioSelecionado;
179
        }
180
        public void setFuncionarioSelecionado(FuncionarioDTO funcionarioSelecionado) {
181
                this.funcionarioSelecionado = funcionarioSelecionado;
182
        }
183
 
648 blopes 184
        /***************************************************************/
185
 
659 blopes 186
        public TipoFaixaComissao[] getTiposFaixaComissao() {
187
                return TipoFaixaComissao.values();
188
        }
189
 
190
        public void atualizarValorComissao() {
191
                if (VerificadorUtil.naoEstaNuloOuVazio(getParticipanteSelecionado().getPorcentagemComissao())) {
192
                        getParticipanteSelecionado().setValorComissao(consultarVendasDoPeriodo(getParticipanteSelecionado()) * getParticipanteSelecionado().getPorcentagemComissao() / 100);
193
                }
194
        }
195
 
196
        private Double consultarVendasDoPeriodo(AvaliacaoFuncionario avaliacaoFuncionario) {
197
                ParametrosConsultaVendasDTO parametrosConsultaVendasDTO = new ParametrosConsultaVendasDTO();
198
                VendedorDTO vendedorDTO = vendedorService.consultarVendedorPorPessoa(avaliacaoFuncionario.getFuncionario().getSequencialDaPessoa());
199
                parametrosConsultaVendasDTO.setSequencialVendedor(vendedorDTO.getSequencial());
200
                ParametrosPeriodoDTO parametrosPeriodoDTO = new ParametrosPeriodoDTO();
201
                parametrosPeriodoDTO.setDataInicial(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataInicio());
202
                parametrosPeriodoDTO.setDataFinal(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataFim());
203
                parametrosConsultaVendasDTO.setParametrosPeriodoDTO(parametrosPeriodoDTO);
204
                parametrosConsultaVendasDTO.setIndicadorComissionado(true);
705 blopes 205
                return vendaService.obterValorTotalBrutoDeVendasRetirandoValorCuponsUtilizados(parametrosConsultaVendasDTO);
659 blopes 206
        }
207
 
664 blopes 208
        private Double consultarVendasDoPeriodo(AvaliacaoLoja avaliacaoLoja) {
209
                ParametrosConsultaVendasDTO parametrosConsultaVendasDTO = new ParametrosConsultaVendasDTO();
210
                ParametrosPeriodoDTO parametrosPeriodoDTO = new ParametrosPeriodoDTO();
211
                parametrosPeriodoDTO.setDataInicial(avaliacaoLoja.getAvaliacao().getVigencia().getDataInicio());
212
                parametrosPeriodoDTO.setDataFinal(avaliacaoLoja.getAvaliacao().getVigencia().getDataFim());
213
                parametrosConsultaVendasDTO.setSequencialLoja(avaliacaoLoja.getSequencialDaLoja());
214
                parametrosConsultaVendasDTO.setParametrosPeriodoDTO(parametrosPeriodoDTO);
215
                parametrosConsultaVendasDTO.setIndicadorComissionado(true);
705 blopes 216
                return vendaService.obterValorTotalBrutoDeVendasRetirandoValorCuponsUtilizados(parametrosConsultaVendasDTO);
664 blopes 217
        }
218
 
656 blopes 219
        private void consultarMetasAvaliacoes() {
220
                if (VerificadorUtil.estaNulo(vigenciaSelecionada)) {
221
                        if (VerificadorUtil.naoEstaNulo(getParametro("vigencia"))) {
222
                                setVigenciaSelecionada(vigenciaService.consultarVigencia(new Long(getParametro("vigencia").toString())));
223
                        }
224
                }
225
 
226
                AvaliacaoDTO avaliacaoDTO = avaliacaoService.consultarAvaliacao(getVigenciaSelecionada().getSequencial());
227
                if (VerificadorUtil.naoEstaNulo(avaliacaoDTO)) {
228
                        VigenciaDTO vigenciaDetalhada = vigenciaService.consultarVigencia(avaliacaoDTO.getVigenciaDTO().getSequencial());
229
                        setVigenciaSelecionada(vigenciaDetalhada);
230
                        // DETALHAR AVALIAÇÃO COMPLETA
231
                        AvaliacaoDTO avaliacaoDetalhada = avaliacaoService.consultarAvaliacaoCompleta(avaliacaoDTO.getSequencial());
232
                        setAvaliacaoSelecionada(avaliacaoDetalhada);
233
                }
234
        }
235
 
650 blopes 236
        public void redirecionarGestaoMensal() {
237
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
238
                        public void execute() {
239
                                try {
240
                                        LancadorMensagem.redirecionarTela("/sistema/gestao_mensal/gestao_mensal.xhtml");
241
                                } catch (IOException e) {
242
                                        e.printStackTrace();
243
                                }
244
                        }
245
                });
246
        }
247
 
664 blopes 248
        public void selecionarLoja(AvaliacaoLojaDTO avaliacaoLojaDTO) {
249
                AvaliacaoLojaId avaliacaoLojaId = new AvaliacaoLojaId();
250
                avaliacaoLojaId.setSequencialAvaliacao(avaliacaoLojaDTO.getAvaliacaoDTO().getSequencial());
251
                avaliacaoLojaId.setSequencialLoja(avaliacaoLojaDTO.getLojaDTO().getSequencial());
252
 
253
                AvaliacaoLoja avaliacaoLoja = avaliacaoLojaService.detalhar(avaliacaoLojaId);
254
                avaliacaoLoja.setValorTotalVendido(consultarVendasDoPeriodo(avaliacaoLoja));
255
                setAvaliacaoLojaSelecionada(avaliacaoLoja);
256
        }
257
 
655 blopes 258
        public void selecionarParticipante(AvaliacaoFuncionarioDTO avaliacaoFuncionarioDTO) {
656 blopes 259
                AvaliacaoFuncionarioId avaliacaoFuncionarioId = new AvaliacaoFuncionarioId();
260
                avaliacaoFuncionarioId.setSequencialAvaliacao(avaliacaoFuncionarioDTO.getSequencialDaAvaliacao());
657 blopes 261
                avaliacaoFuncionarioId.setSequencialFuncionario(avaliacaoFuncionarioDTO.getSequencialDoFuncionario());
664 blopes 262
 
657 blopes 263
                AvaliacaoFuncionario avaliacaoFuncionario = avaliacaoFuncionarioService.detalhar(avaliacaoFuncionarioId);
656 blopes 264
                setParticipanteSelecionado(avaliacaoFuncionario);
659 blopes 265
                LojaDTO lojaParticipanteSelecionado = lojaService.consultarLojaPeloId(avaliacaoFuncionario.getSequencialDaLoja());
266
                setLojaParticipanteSelecionado(lojaParticipanteSelecionado);
657 blopes 267
                setUsuarioParticipanteSelecionado(usuarioService.consultarPorPessoa(avaliacaoFuncionario.getFuncionario().getSequencialDaPessoa()));
659 blopes 268
                getParticipanteSelecionado().setValorTotalVendido(consultarVendasDoPeriodo(getParticipanteSelecionado()));
655 blopes 269
//              setItemSelecionado(new AvaliacaoFuncionarioItemAvaliacao());
270
//              getParticipanteSelecionado().setValorTotalVendidoVivo(consultarVendasVivoDoPeriodo(getParticipanteSelecionado()));
271
        }
272
 
656 blopes 273
 
274
        public void alterarMetaAvaliacao() {
275
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
276
                        public void execute() {
659 blopes 277
                                avaliacaoFuncionarioService.alterarMetaAvaliacao(getParticipanteSelecionado(), getLojaParticipanteSelecionado());
656 blopes 278
                                consultarMetasAvaliacoes();
664 blopes 279
                                LancadorMensagem.lancarSucesso("META/AVALIAÇÃO DO PARTICIPANTE ALTERADA COM SUCESSO");
656 blopes 280
                        }
281
                });
282
        }
283
 
664 blopes 284
        public void alterarMetaAvaliacaoLoja() {
285
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
286
                        public void execute() {
287
                                avaliacaoLojaService.alterar(getAvaliacaoLojaSelecionada());
288
                                consultarMetasAvaliacoes();
289
                                LancadorMensagem.lancarSucesso("META DA LOJA ALTERADA COM SUCESSO");
290
                        }
291
                });
292
        }
293
 
722 blopes 294
        public void importarAvaliacaoAnterior() {
295
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
296
                        public void execute() {
297
                                avaliacaoService.importarAvaliacaoAnterior(getVigenciaSelecionada(), getVigenciaSelecionadaParaImportar());
298
                                consultarMetasAvaliacoes();
299
                                LancadorMensagem.lancarSucesso("AVALIAÇÃO ANTERIOR IMPORTADA COM SUCESSO");
300
                        }
301
                });
302
        }
303
 
304
        public void adicionarLojaNaAvaliacao() {
305
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
306
                        public void execute() {
307
                                avaliacaoService.adicionarLojaNaAvaliacao(getAvaliacaoSelecionada(), getLojaParticipanteSelecionado());
308
                                consultarMetasAvaliacoes();
309
                                LancadorMensagem.lancarSucesso("LOJA ADICIONADA NA AVALIAÇÃO COM SUCESSO");
310
                        }
311
                });
312
        }
313
 
724 blopes 314
        public void removerLojaDaAvaliacao(AvaliacaoLojaDTO avaliacaoLojaDTO) {
315
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
316
                        public void execute() {
317
                                avaliacaoService.removerLojaDaAvaliacao(getAvaliacaoSelecionada(), avaliacaoLojaDTO.getLojaDTO());
318
                                consultarMetasAvaliacoes();
319
                                LancadorMensagem.lancarSucesso("LOJA REMOVIDA DA AVALIAÇÃO COM SUCESSO");
320
                        }
321
                });
322
        }
323
 
324
        public void adicionarParticipanteNaAvaliacao() {
325
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
326
                        public void execute() {
327
                                avaliacaoService.adicionarParticipanteNaAvaliacao(getAvaliacaoSelecionada(), getLojaParticipanteSelecionado(), getFuncionarioSelecionado());
328
                                consultarMetasAvaliacoes();
329
                                LancadorMensagem.lancarSucesso("LOJA ADICIONADA NA AVALIAÇÃO COM SUCESSO");
330
                        }
331
                });
332
        }
333
 
334
        public void removerParticipanteDaAvaliacao(AvaliacaoFuncionarioDTO avaliacaoFuncionarioDTO) {
335
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
336
                        public void execute() {
337
                                avaliacaoService.removerParticipanteDaAvaliacao(avaliacaoFuncionarioDTO);
338
                                consultarMetasAvaliacoes();
339
                                LancadorMensagem.lancarSucesso("PARTICIPANTE REMOVIDO DA AVALIAÇÃO COM SUCESSO");
340
                        }
341
                });
342
        }
648 blopes 343
}