public void atualizarPermissoesItemEstrutura(ItemEstruturaIett item, Set fuacAnteriores, Session session, boolean novoItem, HttpServletRequest request) throws ECARException {
Iterator itFuncoesAcompanhamento = item.getEstruturaEtt().getEstrutTpFuncAcmpEtttfas().iterator();
/****** historico *****/
HistoricoIettus historico = new HistoricoIettus(new ItemEstrutUsuarioIettus(),
HistoricoIettus.excluirPermissoes,
session,
new ConfiguracaoDao(request),
request);
/****** historico *****/
while(itFuncoesAcompanhamento.hasNext()){
TipoFuncAcompTpfa funcaoAcompanhamento = ((EstrutTpFuncAcmpEtttfa) itFuncoesAcompanhamento.next()).getTipoFuncAcompTpfa();
ItemEstUsutpfuacIettutfa fuacNovo = getUsuarioAcompanhamento(item, funcaoAcompanhamento);
ItemEstUsutpfuacIettutfa fuacAnterior = getUsuarioAcompanhamento(fuacAnteriores, item, funcaoAcompanhamento);
if(fuacNovo == null && fuacAnterior != null) {
excluirPermissoesItem(item, fuacAnterior, session, request, historico);
}
}
itFuncoesAcompanhamento = item.getEstruturaEtt().getEstrutTpFuncAcmpEtttfas().iterator();
while(itFuncoesAcompanhamento.hasNext()){
EstrutTpFuncAcmpEtttfa funcaoAcomp = (EstrutTpFuncAcmpEtttfa) itFuncoesAcompanhamento.next();
TipoFuncAcompTpfa funcaoAcompanhamento = funcaoAcomp.getTipoFuncAcompTpfa();
ItemEstUsutpfuacIettutfa fuacNovo = getUsuarioAcompanhamento(item, funcaoAcompanhamento);
ItemEstUsutpfuacIettutfa fuacAnterior = getUsuarioAcompanhamento(fuacAnteriores, item, funcaoAcompanhamento);
if(fuacNovo != null){
if(fuacAnterior == null){
String manterProximoNivel = funcaoAcomp.getIndManterProximoNivelEtttfa();
ItemEstrutUsuarioIettus iettus = incluirPermissaoItem(item, fuacNovo,manterProximoNivel);
session.save(iettus);
item.getEstruturaEtt();
//Manter a permiss�o no pr�ximo n�vel de acordo com o definido na 'Fun��o de Acompanhamento na Estrutura'
if(manterProximoNivel != null && manterProximoNivel.equals("S")){
incluirPermissoesItensFilho(item, fuacNovo, session,manterProximoNivel);
}
} else {
if(fuacNovo.getUsuarioUsu() != null && fuacAnterior.getUsuarioUsu() != null && !fuacNovo.getUsuarioUsu().equals(fuacAnterior.getUsuarioUsu())){
alterarPermissoesItem(item, fuacAnterior, session, request, historico);
} else if(fuacNovo.getSisAtributoSatb() != null && fuacAnterior.getSisAtributoSatb() != null && !fuacNovo.getSisAtributoSatb().equals(fuacAnterior.getSisAtributoSatb())){
alterarPermissoesItem(item, fuacAnterior, session, request, historico);
} else if(fuacNovo.getUsuarioUsu() != null && fuacAnterior.getUsuarioUsu() == null){
alterarPermissoesItem(item, fuacAnterior, session, request, historico);
} else if(fuacNovo.getSisAtributoSatb() != null && fuacAnterior.getSisAtributoSatb() == null){
alterarPermissoesItem(item, fuacAnterior, session, request, historico);
}
}
}
}
if(novoItem) {
Set iettusCopiaPai = copiarPermissoesItemPai(item);
Iterator it = iettusCopiaPai.iterator();
while(it.hasNext()) {
ItemEstrutUsuarioIettus iettus = (ItemEstrutUsuarioIettus)it.next();
session.save(iettus);
}
}
}