Subversion Repositories Integrator Subversion

Rev

Rev 452 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.ec.core.generic.AbstractService;
import br.com.ec.core.generic.GenericRepository;
import br.com.ec.core.validador.Validador;
import br.com.ec.domain.dto.UsuarioPerfilDTO;
import br.com.ec.domain.model.Perfil;
import br.com.ec.domain.service.PerfilService;
import br.com.ec.domain.shared.ConstantesSEC;
import br.com.ec.repository.PerfilRepository;

@Service
public class PerfilServiceImpl extends AbstractService<Perfil> implements PerfilService {

        private final PerfilRepository perfilRepository;

        @Autowired
        public PerfilServiceImpl(PerfilRepository perfilRepository, Validador validador) {
                super(validador);
                this.perfilRepository = perfilRepository;
        }

        @Override
        protected GenericRepository<Perfil> getRepository() {
                return this.perfilRepository;
        }
       
        /***************************************************************/
       
        /*
        @Override
        public List<Perfil> consultarPerfisComSetoresAtivos() {
                return perfilRepository.consultarPerfisComSetoresAtivos();
        }
        */

       
        /***************************************************************/
       
        @Override
        public Boolean temPerfilAdministrador(List<UsuarioPerfilDTO> perfis) {
                return verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_ADMINISTRADOR_1);
        }
       
        @Override
        public Boolean temPerfilFinanceiro(List<UsuarioPerfilDTO> perfis) {
                return temPerfilAdministrador(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_FINANCEIRO_2);
        }
       
        /********************/
       
        @Override
        public Boolean temPerfilGerenteAdministrativo(List<UsuarioPerfilDTO> perfis) {
                return temPerfilAdministrador(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_GERENTE_ADMINISTRATIVO_3);
        }
       
        @Override
        public Boolean temPerfilComercial(List<UsuarioPerfilDTO> perfis) {
                return temPerfilGerenteAdministrativo(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_COMERCIAL_6);
        }
       
        @Override
        public Boolean temPerfilLojistica(List<UsuarioPerfilDTO> perfis) {
                return temPerfilGerenteAdministrativo(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_LOJISTICA_4);
        }
       
        @Override
        public Boolean temPerfilVendedor(List<UsuarioPerfilDTO> perfis) {
                return temPerfilGerenteAdministrativo(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_VENDEDOR_5);
        }
       
        @Override
        public Boolean temPerfilLoja(List<UsuarioPerfilDTO> perfis) {
                return temPerfilVendedor(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_LOJA_9);
        }
       
        @Override
        public Boolean temPerfilCompras(List<UsuarioPerfilDTO> perfis) {
                return temPerfilGerenteAdministrativo(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_COMPRAS_7);
        }
       
        @Override
        public Boolean temPerfilGerenteVivo(List<UsuarioPerfilDTO> perfis) {
                return temPerfilGerenteAdministrativo(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_GERENTE_VIVO_8);
        }
       
        @Override
        public Boolean temPerfilTecnico(List<UsuarioPerfilDTO> perfis) {
                return temPerfilGerenteAdministrativo(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_TECNICO_10);
        }
       
        @Override
        public Boolean temPerfilRecursosHumanos(List<UsuarioPerfilDTO> perfis) {
                return temPerfilGerenteAdministrativo(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_RECURSOS_HUMANOS_11);
        }
       
        @Override
        public Boolean temPerfilOperacoes(List<UsuarioPerfilDTO> perfis) {
                return temPerfilGerenteAdministrativo(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_OPERACOES_12);
        }
       
        @Override
        public Boolean temPerfilSupervisor(List<UsuarioPerfilDTO> perfis) {
                return temPerfilGerenteAdministrativo(perfis) || verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_SUPERVISOR_13);
        }
       
        @Override
        public Boolean temPerfilTreinamento(List<UsuarioPerfilDTO> perfis) {
                return verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_TREINAMENTO_14);
        }
       
        @Override
        public Boolean temPerfilAuditor(List<UsuarioPerfilDTO> perfis) {
                return verificarPerfil(perfis, ConstantesSEC.Perfil.PERFIL_AUDITOR_16);
        }
       
        private Boolean verificarPerfil(List<UsuarioPerfilDTO> perfis, Long sequencialPerfil) {
                for (UsuarioPerfilDTO perfil : perfis) {
                        if (perfil.getCodigoPerfil().equals(sequencialPerfil)) {
                                return true;
                        }
                }
                return false;
        }

}