* @author felipe
*/
public int podeRecuperarRelatorio(UsuarioUsu usuario, TipoFuncAcompTpfa funcao, AcompReferenciaItemAri acompReferenciaItem, AcompRelatorioArel acompRelatorio) throws ECARException{
try{
boolean usuarioSemPermissao = true;
ItemEstUsutpfuacIettutfa itemEstUsutpfuacIettutfa = new ItemEstUsutpfuacDao(request).buscar(acompReferenciaItem.getItemEstruturaIett().getCodIett(), funcao.getCodTpfa());
if (itemEstUsutpfuacIettutfa != null){
if (itemEstUsutpfuacIettutfa.getUsuarioUsu() != null && itemEstUsutpfuacIettutfa.getUsuarioUsu().equals(usuario)){
usuarioSemPermissao = false;
} else if(itemEstUsutpfuacIettutfa.getUsuarioUsu() != null && !itemEstUsutpfuacIettutfa.getUsuarioUsu().equals(usuario)){
List listaEstruturas = new ItemEstUsutpfuacDao(request).buscarSuperiores(acompReferenciaItem.getItemEstruturaIett().getCodIett(), acompRelatorio.getTipoFuncAcompTpfa().getCodTpfa());
Iterator itEstruturas = listaEstruturas.iterator();
while (itEstruturas.hasNext()){
ItemEstUsutpfuacIettutfa itemEst = (ItemEstUsutpfuacIettutfa) itEstruturas.next();
if(itemEst != null) {
if (itemEst.getUsuarioUsu() != null) {
if(itemEst.getUsuarioUsu().equals(usuario)){
usuarioSemPermissao = false;
break;
}
} else if (itemEst.getSisAtributoSatb() != null) {
Iterator itUsuarios = new UsuarioDao().getUsuariosBySisAtributoSatb(itemEst.getSisAtributoSatb()).iterator();
while (itUsuarios.hasNext()){
UsuarioUsu usu = (UsuarioUsu) itUsuarios.next();
if (usu.equals(usuario)){
usuarioSemPermissao = false;
break;
}
}
}
}
}
} else if (itemEstUsutpfuacIettutfa.getSisAtributoSatb() != null){
Iterator itUsuarios = new UsuarioDao().getUsuariosBySisAtributoSatb(itemEstUsutpfuacIettutfa.getSisAtributoSatb()).iterator();
while (itUsuarios.hasNext()){
UsuarioUsu usu = (UsuarioUsu) itUsuarios.next();
if (usu.equals(usuario)){
usuarioSemPermissao = false;
}
}
if(usuarioSemPermissao){
//adiciona a parte de buscar superiores
List listaEstruturas = new ItemEstUsutpfuacDao(request).buscarSuperiores(acompReferenciaItem.getItemEstruturaIett().getCodIett(), acompRelatorio.getTipoFuncAcompTpfa().getCodTpfa());
Iterator itEstruturas = listaEstruturas.iterator();
while (itEstruturas.hasNext()){
ItemEstUsutpfuacIettutfa itemEst = (ItemEstUsutpfuacIettutfa) itEstruturas.next();
if(itemEst != null) {
if (itemEst.getUsuarioUsu() != null) {
usuarioSemPermissao = !itemEst.getUsuarioUsu().getCodUsu().equals(usuario.getCodUsu());
if(!usuarioSemPermissao){
break;
}
} else if (itemEst.getSisAtributoSatb().getUsuarioAtributoUsuas() != null) {
Iterator itUsuarios2 = itemEst.getSisAtributoSatb().getUsuarioAtributoUsuas().iterator();
while (itUsuarios2.hasNext()) {
UsuarioAtributoUsua usuarioAtributoUsua = (UsuarioAtributoUsua) itUsuarios2.next();
if (usuarioAtributoUsua.getUsuarioUsu() != null && usuarioAtributoUsua.getUsuarioUsu().getCodUsu().equals(usuario.getCodUsu())){
usuarioSemPermissao = false;
break;