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 | } |