String labelAtributoRestritivo = "'" + estruturaDao.getLabelAtributoEstrutra(itemEstrutura.getEstruturaEtt(), sgaRestritivo) + "'";
List satbsRestritivosOrdenados = sgaDao.ordenadarSisAtributos(sgaRestritivo, satbsRestritivos);
Iterator itSatbsRestritivosOrdenados = satbsRestritivosOrdenados.iterator();
StringBuffer labelSatbsRestritivos = new StringBuffer();
while (itSatbsRestritivosOrdenados.hasNext()){
SisAtributoSatb sisAtb = (SisAtributoSatb) itSatbsRestritivosOrdenados.next();
labelSatbsRestritivos.append("'" + sisAtb.getDescricaoSatb() + "'");
if (itSatbsRestritivosOrdenados.hasNext()){
labelSatbsRestritivos.append(", ");
}
}
if (satbsRestritivosOrdenados.size() > 1){
throw new ECARException("itemEstrutura.sisAtributoSatbEttSuperior.sisAtributoSatbUsadoComoAtributoRestritoEstruturaFilha", null, new String[]{labelSatbsRestritivos.toString(), labelAtributoRestritivo});
} else {
throw new ECARException("itemEstrutura.sisAtributoSatbEttSuperior.umSisAtributoSatbUsadoComoAtributoRestritoEstruturaFilha", null, new String[]{labelSatbsRestritivos.toString(), labelAtributoRestritivo});
}
}
}
// seta o novo item_estrutura
/**
* S� dever� setar os dados recebidos do request no objeto item Estrutura, se o objeto itemEstruturaArg passado
* como par�metro estiver nulo, caso o objeto itemEstruturaArg tenha valor ele j� dever� estar com todos os dados que
* ser�o alterados.
*/
if (itemEstruturaArg == null ) {
this.setItemEstrutura(request, itemEstrutura);
}
itemEstrutura.setUsuarioUsuByCodUsuUltManutIett(usuarioLogado);
itemEstrutura.setDataUltManutencaoIett(Data.getDataAtual());
/*
* Salvar os atributos livres, pois agora j� tenho o codIett
*/
for(Iterator it = atributosLivres.iterator(); it.hasNext();){
ItemEstruturaSisAtributoIettSatb atbLivre = (ItemEstruturaSisAtributoIettSatb) it.next();
SisAtributoSatb sisAtributo = atbLivre.getSisAtributoSatb();
FuncaoFun funcao;
FuncaoDao funcaoDao;
//Caso o tipo de valida��o seja igual a Mascara Editavel, ser� gerado um c�digo incremental.
if (sisAtributo.getAtribInfCompSatb() != null && sisAtributo.isAtributoMascaraEditavel()) {
funcaoDao = new FuncaoDao(request);
funcao = funcaoDao.getFuncaoDadosGerais();
this.atualizaValorAtributosID(atbLivre,sisAtributo,funcao);
} else if (sisAtributo.getAtribInfCompSatb() != null &&
(sisAtributo.isAtributoAutoIcremental() || sisAtributo.isAtributoMascara())) {
ItemEstruturaSisAtributoIettSatb atributoLivreNoItem = atbLivre.getItemEstruturaIett().buscarItemEstruturaSisAtributoLista(sisAtributo);
funcaoDao = new FuncaoDao(request);
funcao = funcaoDao.getFuncaoDadosGerais();
if (atributoLivreNoItem != null && atributoLivreNoItem.getTiposValores() != null && !atributoLivreNoItem.getTiposValores().isEmpty()) {
this.copiarTipoValorSemID(atbLivre, atributoLivreNoItem.getTiposValores(),funcao);
} else {
String arg = "Item "+atbLivre.getItemEstruturaIett().getCodIett()+" atributo livre "+sisAtributo.getCodSatb();
throw new ECARException("erro.atributo.item.inconsistente");
}
}
session.save(atbLivre);