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.PerfilAcessoSituacaoFaturaDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.integracao.MenuDao;
import br.com.centralit.citcorpore.integracao.PerfilAcessoSituacaoFaturaDao;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.service.CrudServiceImpl;
import br.com.citframework.util.UtilDatas;
public class PerfilAcessoSituacaoFaturaServiceEjb extends CrudServiceImpl implements PerfilAcessoSituacaoFaturaService {
private PerfilAcessoSituacaoFaturaDao dao;
@Override
protected PerfilAcessoSituacaoFaturaDao getDao() {
if (dao == null) {
dao = new PerfilAcessoSituacaoFaturaDao();
}
return dao;
}
@Override
public Collection getSituacoesFaturaPermitidasByUsuario(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 PerfilAcessoSituacaoFaturaDTO perfilAcessoSituacaoFaturaDTO = (PerfilAcessoSituacaoFaturaDTO) it.next();
if (perfilAcessoSituacaoFaturaDTO.getDataFim() == null || perfilAcessoSituacaoFaturaDTO.getDataFim().after(UtilDatas.getDataAtual())) {
colFinal.add(Integer.parseInt(perfilAcessoSituacaoFaturaDTO.getSituacaoFatura()));
}
}
return colFinal;
}
@Override
public Collection getSituacoesFaturaPermitidasByGrupo(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<Integer> colFinal = new ArrayList<>();
for (final Iterator it = colSituacoesPerfil.iterator(); it.hasNext();) {
final PerfilAcessoSituacaoFaturaDTO perfilAcessoSituacaoFaturaDTO = (PerfilAcessoSituacaoFaturaDTO) it.next();
if (perfilAcessoSituacaoFaturaDTO.getDataFim() == null || perfilAcessoSituacaoFaturaDTO.getDataFim().after(UtilDatas.getDataAtual())) {
colFinal.add(Integer.parseInt(perfilAcessoSituacaoFaturaDTO.getSituacaoFatura()));
}
}
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 findBySituacaoFatura(final String parm) throws Exception {
try {
return this.getDao().findBySituacaoFatura(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public void deleteBySituacaoFatura(final String parm) throws Exception {
try {
this.getDao().deleteBySituacaoFatura(parm);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
}