Subversion Repositories Integrator Subversion

Rev

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