package br.com.centralit.citcorpore.negocio;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import br.com.centralit.citcorpore.bean.PerfilAcessoGrupoDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoSituacaoOSDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.integracao.MenuDao;
import br.com.centralit.citcorpore.integracao.PerfilAcessoSituacaoOSDao;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.service.CrudServiceImpl;
import br.com.citframework.util.UtilDatas;
public class PerfilAcessoSituacaoOSServiceEjb extends CrudServiceImpl implements PerfilAcessoSituacaoOSService {
private PerfilAcessoSituacaoOSDao dao;
@Override
protected PerfilAcessoSituacaoOSDao getDao() {
if (dao == null) {
dao = new PerfilAcessoSituacaoOSDao();
}
return dao;
}
@Override
public Collection getSituacoesOSPermitidasByUsuario(final UsuarioDTO usuario) throws Exception {
final MenuDao menuDao = new MenuDao();
final Integer idPerfilAcesso = menuDao.getPerfilAcesso(usuario);
if (idPerfilAcesso == null) {
return null;
}
final Collection colSituacoesPerfil = this.getDao().findByIdPerfil(idPerfilAcesso);
if (colSituacoesPerfil == null) {
return null;
}
final Collection<Integer> colFinal = new ArrayList<>();
for (final Iterator it = colSituacoesPerfil.iterator(); it.hasNext();) {
final PerfilAcessoSituacaoOSDTO perfilAcessoSituacaoOSDTO = (PerfilAcessoSituacaoOSDTO) it.next();
if (perfilAcessoSituacaoOSDTO.getDataFim() == null || perfilAcessoSituacaoOSDTO.getDataFim().after(UtilDatas.getDataAtual())) {
colFinal.add(perfilAcessoSituacaoOSDTO.getSituacaoOs());
}
}
return colFinal;
}
@Override
public Collection getSituacoesOSPermitidasByGrupo(final PerfilAcessoGrupoDTO perfilAcessoGrupoDTO) throws Exception {
final Integer idPerfilAcesso = perfilAcessoGrupoDTO.getIdPerfilAcessoGrupo();
if (idPerfilAcesso == null) {
return null;
}
final Collection colSituacoesPerfil = this.getDao().findByIdPerfil(idPerfilAcesso);
if (colSituacoesPerfil == null) {
return null;
}
final Collection colFinal = new ArrayList();
for (final Iterator it = colSituacoesPerfil.iterator(); it.hasNext();) {
final PerfilAcessoSituacaoOSDTO perfilAcessoSituacaoOSDTO = (PerfilAcessoSituacaoOSDTO) it.next();
if (perfilAcessoSituacaoOSDTO.getDataFim() == null || perfilAcessoSituacaoOSDTO.getDataFim().after(UtilDatas.getDataAtual())) {
colFinal.add(perfilAcessoSituacaoOSDTO.getSituacaoOs());
}
}
return colFinal;
}
@Override
public Collection findByIdPerfil(final Integer parm) throws Exception {
try {
return this.getDao().findByIdPerfil(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public void deleteByIdPerfil(final Integer parm) throws Exception {
try {
this.getDao().deleteByIdPerfil(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public Collection findBySituacaoOs(final Integer parm) throws Exception {
try {
return this.getDao().findBySituacaoOs(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public void deleteBySituacaoOs(final Integer parm) throws Exception {
try {
this.getDao().deleteBySituacaoOs(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
}