List funcoesNaoAlteradas = new ArrayList();
// apagar as funcoes de acompanhamento do item
if (itemEstrutura.getItemEstUsutpfuacIettutfas() != null) {
Iterator it = itemEstrutura.getItemEstUsutpfuacIettutfas().iterator();
while (it.hasNext()) {
ItemEstUsutpfuacIettutfa obj = (ItemEstUsutpfuacIettutfa)it.next();
// Assume que a fun��o est� desbloqueada
Boolean podeAlterar = true;
// Itera entre as fun��es que est�o bloqueadas. S� haver� valores nesta lista,
// caso o planejamento esteja bloqueado.
Iterator it2 = funcoesBloqueadas.iterator();
while (it2.hasNext()) {
EstrutTpFuncAcmpEtttfa funcaoBloqueada = (EstrutTpFuncAcmpEtttfa)it2.next();
// compara a fun��o e verifica se a confira��o est� para bloqueada.
// Caso bloqueada, define que o usu�rio n�o pode ter alterado a fun��o.
if (funcaoBloqueada.getComp_id().getCodTpfa().equals(obj.getComp_id().getCodTpfa())) {
podeAlterar = false;
break;
}
}
// S� remove do banco de dados as fun��es que o usu�rio poderia ter alterado.
if (podeAlterar) {
obj.setDataUltManutencao(Data.getDataAtual());
obj.setUsuManutencao(usuarioLogado);
//System.out.println("Deletou Fun��o Acomp: " + obj.getTipoFuncAcompTpfa().getDescricaoTpfa());
session.delete(obj);
objetos.add(obj);
} else {
funcoesNaoAlteradas.add(obj);
}
}
}
// Verifica quais s�o os atributos livres vinculados a estrutura.
// Isto s� � feito se o planejamento estiver bloqueado.
List sgas = new ArrayList();
if (planejamentoBloqueado) {
// busca os atributos livre configurados para o item em seu n�vel na estrutura
if(itemEstrutura.getEstruturaEtt() != null && itemEstrutura.getEstruturaEtt().getEstruturaAtributoEttats() != null && !itemEstrutura.getEstruturaEtt().getEstruturaAtributoEttats().isEmpty()){
for(Iterator it = itemEstrutura.getEstruturaEtt().getEstruturaAtributoEttats().iterator(); it.hasNext();){
EstruturaAtributoEttat ettat = (EstruturaAtributoEttat) it.next();
if(ettat.getAtributosAtb() != null && ettat.getAtributosAtb().getSisGrupoAtributoSga() != null){
// verifica se o atributo livre esta configurado para estar bloqueado.
if (ettat.iGetBloqueado() && ( !podeEditarAtributoBloqueadoNaEstrutura(itemEstrutura, ettat, funcoesDoUsuario)) ) {
//System.out.println("Atributo Livre" + ettat.getLabelEstruturaEttat());
sgas.add(ettat.getAtributosAtb().getSisGrupoAtributoSga());
}
}
}
}
}
List atributosLivres = this.getAtributosLivresItemEstrutura(request, itemEstrutura);
// apagar os atributos livres do item
if (itemEstrutura.getItemEstruturaSisAtributoIettSatbs() != null){
//busca os atributos livre configurados para este n�vel da estrutura
Iterator it = itemEstrutura.getItemEstruturaSisAtributoIettSatbs().iterator();
List satbsRestritivos = new ArrayList();
SisGrupoAtributoSga sgaRestritivo = null;
while (it.hasNext()) {
ItemEstruturaSisAtributoIettSatb obj = (ItemEstruturaSisAtributoIettSatb)it.next();
// assumo que o usu�rio poderia alterar este atributo.
Boolean podeAlterar = true;
if (planejamentoBloqueado) {
for(Iterator it2 = sgas.iterator(); it2.hasNext();){
SisGrupoAtributoSga grupoAtributo = (SisGrupoAtributoSga) it2.next();
if(grupoAtributo.getCodSga().equals(obj.getSisAtributoSatb().getSisGrupoAtributoSga().getCodSga())) {
// System.out.println("Atributo livre n�o editavel: " + grupoAtributo.getDescricaoSga());
podeAlterar = false;
break;
}
}
}
//verifica se a estrutura do item tem estrturas filhas e o atributo � um atributo restritivo.
if(obj.getSisAtributoSatb().getSisGrupoAtributoSga().getSisTipoExibicGrupoSteg().getCodSteg() == Input.LISTBOX ||
obj.getSisAtributoSatb().getSisGrupoAtributoSga().getSisTipoExibicGrupoSteg().getCodSteg() == Input.RADIO_BUTTON ||
obj.getSisAtributoSatb().getSisGrupoAtributoSga().getSisTipoExibicGrupoSteg().getCodSteg() == Input.COMBOBOX ||
obj.getSisAtributoSatb().getSisGrupoAtributoSga().getSisTipoExibicGrupoSteg().getCodSteg() == Input.CHECKBOX) {
if(existeEstruturaFilhaUsandoAtributoComoRestritivo( itemEstrutura, obj.getSisAtributoSatb()) &&
!atributosLivres.contains(obj) && podeAlterar) {
if (sgaRestritivo == null){
sgaRestritivo = obj.getSisAtributoSatb().getSisGrupoAtributoSga();
satbsRestritivos.add(obj.getSisAtributoSatb());
sgaRestritivo = obj.getSisAtributoSatb().getSisGrupoAtributoSga();
//estruturaDao.getLabelAtributoEstrutra(itemEstrutura.getEstruturaEtt(), obj.getSisAtributoSatb().getSisGrupoAtributoSga());
} else if (sgaRestritivo.equals(obj.getSisAtributoSatb().getSisGrupoAtributoSga())){
sgaRestritivo = obj.getSisAtributoSatb().getSisGrupoAtributoSga();
satbsRestritivos.add(obj.getSisAtributoSatb());
//args.append(", ").append(obj.getSisAtributoSatb().getDescricaoSatb());
}
existeSisAtributoStabUsadoComoRestrititvo = true;
}
}
if (podeAlterar && !existeSisAtributoStabUsadoComoRestrititvo) {
if(obj.getSisAtributoSatb().getSisGrupoAtributoSga().getSisTipoExibicGrupoSteg().getCodSteg() == Input.IMAGEM){
String nomeCampo = request.getParameter("a" + obj.getSisAtributoSatb().getSisGrupoAtributoSga().getCodSga().toString());
if (nomeCampo != null && nomeCampo.equals("")){
String fullFile = obj.getInformacao();
if (fullFile.lastIndexOf("=") != -1)
fullFile = fullFile.substring(fullFile.lastIndexOf("=") + 1);
File f = new File(fullFile);