Subversion Repositories Integrator Subversion

Rev

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