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