Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
106 espaco 1
package br.com.ec.domain.service.perfil.impl;
2
 
3
import java.util.List;
4
 
5
import org.springframework.beans.factory.annotation.Autowired;
6
import org.springframework.stereotype.Service;
7
 
195 espaco 8
import br.com.ec.core.generic.AbstractService;
9
import br.com.ec.core.generic.GenericRepository;
10
import br.com.ec.core.validador.Validador;
106 espaco 11
import br.com.ec.domain.model.Perfil;
12
import br.com.ec.domain.model.Usuario;
13
import br.com.ec.domain.model.UsuarioPerfil;
14
import br.com.ec.domain.service.perfil.PerfilService;
15
import br.com.ec.domain.shared.ConstantesSEC;
16
import br.com.ec.infrastructure.repository.PerfilRepository;
17
 
18
@Service
19
public class PerfilServiceImpl extends AbstractService<Perfil> implements PerfilService {
20
 
21
        private final PerfilRepository perfilRepository;
22
 
23
        @Autowired
24
        public PerfilServiceImpl(PerfilRepository perfilRepository, Validador validador) {
25
                super(validador);
26
                this.perfilRepository = perfilRepository;
27
        }
28
 
29
        @Override
30
        protected GenericRepository<Perfil> getRepository() {
31
                return this.perfilRepository;
32
        }
33
 
34
        /***************************************************************/
35
 
36
        @Override
37
        public List<Perfil> consultarPerfisComSetoresAtivos() {
38
                return perfilRepository.consultarPerfisComSetoresAtivos();
39
        }
40
 
41
        @Override
42
        public Boolean temPerfilAdministrador(Usuario usuario) {
43
                return verificarPerfil(usuario, ConstantesSEC.PERFIL_ADMINISTRADOR_1);
44
        }
45
 
46
        @Override
305 espaco 47
        public Boolean temPerfilFinanceiro(Usuario usuario) {
48
                return temPerfilAdministrador(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_FINANCEIRO_2);
106 espaco 49
        }
50
 
51
        /********************/
52
 
53
        @Override
54
        public Boolean temPerfilGerenteAdministrativo(Usuario usuario) {
55
                return temPerfilAdministrador(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_GERENTE_ADMINISTRATIVO_3);
56
        }
57
 
58
        @Override
305 espaco 59
        public Boolean temPerfilComercial(Usuario usuario) {
60
                return temPerfilGerenteAdministrativo(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_COMERCIAL_6);
106 espaco 61
        }
62
 
63
        @Override
305 espaco 64
        public Boolean temPerfilLojistica(Usuario usuario) {
65
                return temPerfilGerenteAdministrativo(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_LOJISTICA_4);
106 espaco 66
        }
67
 
68
        @Override
69
        public Boolean temPerfilVendedor(Usuario usuario) {
305 espaco 70
                return temPerfilComercial(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_VENDEDOR_5);
106 espaco 71
        }
72
 
73
        @Override
74
        public Boolean temPerfilLoja(Usuario usuario) {
75
                return temPerfilVendedor(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_LOJA_9);
76
        }
77
 
78
        @Override
305 espaco 79
        public Boolean temPerfilCompras(Usuario usuario) {
80
                return temPerfilGerenteAdministrativo(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_COMPRAS_7);
106 espaco 81
        }
82
 
83
        @Override
84
        public Boolean temPerfilGerenteVivo(Usuario usuario) {
85
                return temPerfilGerenteAdministrativo(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_GERENTE_VIVO_8);
86
        }
87
 
88
        @Override
89
        public Boolean temPerfilTecnico(Usuario usuario) {
90
                return temPerfilGerenteAdministrativo(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_TECNICO_10);
91
        }
92
 
93
        @Override
94
        public Boolean temPerfilRecursosHumanos(Usuario usuario) {
95
                return temPerfilGerenteAdministrativo(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_RECURSOS_HUMANOS_11);
96
        }
97
 
98
        @Override
305 espaco 99
        public Boolean temPerfilOperacoes(Usuario usuario) {
106 espaco 100
                return temPerfilGerenteAdministrativo(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_OPERACOES_12);
101
        }
102
 
103
        @Override
305 espaco 104
        public Boolean temPerfilProducao(Usuario usuario) {
105
                return temPerfilGerenteAdministrativo(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_PRODUCAO_15);
106
        }
107
 
108
        @Override
106 espaco 109
        public Boolean temPerfilSupervisor(Usuario usuario) {
110
                return temPerfilGerenteAdministrativo(usuario) || verificarPerfil(usuario, ConstantesSEC.PERFIL_SUPERVISOR_13);
111
        }
112
 
113
        @Override
114
        public Boolean temPerfilTreinamento(Usuario usuario) {
115
                return verificarPerfil(usuario, ConstantesSEC.PERFIL_TREINAMENTO_14);
116
        }
117
 
118
        private Boolean verificarPerfil(Usuario usuario, Long sequencialPerfil) {
119
                for (UsuarioPerfil usuarioPerfil : usuario.getPerfis()) {
120
                        if (usuarioPerfil.getPerfil().getCodigo().equals(sequencialPerfil)) {
121
                                return true;
122
                        }
123
                }
124
                return false;
125
        }
126
 
127
}