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 temPerfilGerenteComercial
(List<UsuarioPerfilDTO
> perfis
) {
return temPerfilAdministrador
(perfis
) || verificarPerfil
(perfis, ConstantesSEC.
Perfil.
PERFIL_GERENTE_COMERCIAL_17);
}
@
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;
}
}