...
Anchor | ||||
---|---|---|---|---|
|
Questa validazione viene eseguita solo e solamente se sono state abilitate le validazioni e l'invio verso UGOV-PJ.
Questa validazione controlla che esista uno ed un solo bando di finanziamento associato a questo progetto nel tab "Dati generali".
Viene verificato inoltre che il bando di finanziamento sia in stato approvato
Se viene rilevata una riga anomala, cioè con un Bando vuoto, segnala l'errore
Dal punto di vista del modello dati si tratta degli elementi di tipo callProjectLink
Per maggiori dettagli cfr. excel modello dati dell'entità Progetto
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
if (!Packages.java.lang.Boolean.TRUE.equals(wfItem.getBooleanMap().get("legacy"))){ var linkSet = Packages.it.cilea.core.fragment.util.FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object, "getParentWfItemLinkSet", "it.cilea.wf.model.WfItemLink", "callProjectLink", wfService); //log.error("linkSet: " + linkSet); if(linkSet != null){ if (linkSet.size()>1){ errors.reject("error.project.call.moreThanOne"); } else if (linkSet.size()==1){ var linkSetIterator = linkSet.iterator(); if( linkSetIterator.hasNext() ){ var linkElement = linkSetIterator.next(); var call = linkElement.getParent(); if(call != null){ var callState = call.getWfState().getDescription(); if (!Packages.org.apache.commons.lang.StringUtils.equals("approved", callState)){ errors.reject("error.project.call.notApproved"); } }else{ errors.reject("error.project.call.emptyRow"); } } } } } |
Anchor | ||||
---|---|---|---|---|
|
Verifica che il campo isScoraNumeric sia a TRUE
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
!object.getBooleanMap().get('isScoreNumeric').booleanValue();
|
Anchor | ||||
---|---|---|---|---|
|
Questa logica viene eseguita in fase di creazione di un nuovo oggetto.
Effettua il setup dei seguenti attributi con i valori tra parentesi
...
Anchor | ||||
---|---|---|---|---|
|
Questa è un'applicability rule che viene valutata prima di eseguire altre validazioni.
Se ritorna true allora vengono eseguite le altre validazioni altrimenti no.
Questa regola considera l'attributo legacy, tipicamente con etichetta "Disattivazione validazioni" (cfr il modello dati)
Per tutti gli oggetti che hanno questo attributo valorizzato a true vengono disattivate le validazioni e le eventuali sincronizzazioni.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
(
object.getBooleanMap().get('legacy')==null
||
Packages.java.lang.Boolean.FALSE.equals(object.getBooleanMap().get('legacy'))
)
|
Anchor | ||||
---|---|---|---|---|
|
Questa è una validazione che viene chiamata in ogni flusso di Laboratori, Grupppi di Ricerca, Grandi Attrezzature, Public-Engagement e Progetti quando si prova ad eliminare l'oggetto.
Essa impedisce che si possa eliminare l'oggetto in questione se è collegato (sia da parte di padre sia da parte di figlio) ad un qualsiasi altro oggetto.
In caso trovasse questi collegamenti, verrà presentato un messaggio di errore che mostrerà un elenco con tutti gli oggetti trovati.
Il messaggio di errore viene ricavato dall'etichetta con chiave error.delete.link.childAndParentDetected
Per maggiori dettagli cfr. modello dati dell'entità in questione
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
var wfItemFull = wfService.getWfItem(wfItem.getWfItemId()); var listOfLinksDetected = '<ul>'; var childWfItemLinkSet = wfItemFull.getChildWfItemLinkSet(); //var listOfChildsLinked = ''; var isChildDetected = false; if(childWfItemLinkSet.size() != 0){ //listOfChildsLinked += '<ul>'; var childWfItemLinkSetIterator = childWfItemLinkSet.iterator(); while (childWfItemLinkSetIterator.hasNext()){ var childLink = childWfItemLinkSetIterator.next(); //considero solo quelli che non sono version if(!childLink.getDiscriminator().equals('version')){ isChildDetected = true; var childWfItem = childLink.getChild(); //listOfChildsLinked += '<li>' + childWfItem.getIdentifier() + '-' + childWfItem.getDescription() + '</li>'; listOfLinksDetected += '<li>' + childWfItem.getIdentifier() + ' - ' + childWfItem.getDescription() + '</li>'; } } //ricontrollo così da escludere completamente anche le versioni /*if(isChildDetected) listOfChildsLinked += '</ul>'; else listOfChildsLinked = 'Non è stato trovato nessun figlio';*/ }else{ //listOfChildsLinked = 'Non è stato trovato nessun figlio'; } var parentWfItemLinkSet = wfItemFull.getParentWfItemLinkSet(); //var listOfParentsLinked = ''; var isParentDetected = false; if(parentWfItemLinkSet.size() != 0){ //listOfParentsLinked += '<ul>'; var parentWfItemLinkSetIterator = parentWfItemLinkSet.iterator(); while (parentWfItemLinkSetIterator.hasNext()){ var parentLink = parentWfItemLinkSetIterator.next(); //considero solo quelli che non sono version if(!parentLink.getDiscriminator().equals('version')){ isParentDetected = true; var parentWfItem = parentLink.getParent(); //listOfParentsLinked += '<li>' + parentWfItem.getIdentifier() + '-' + parentWfItem.getDescription() + '</li>'; listOfLinksDetected += '<li>' + parentWfItem.getIdentifier() + ' - ' + parentWfItem.getDescription() + '</li>'; } } //ricontrollo così da escludere completamente anche le versioni /*if(isParentDetected) listOfParentsLinked += '</ul>'; else listOfParentsLinked = 'Non è stato trovato nessun padre';*/ }else{ //listOfParentsLinked = 'Non è stato trovato nessun padre'; } listOfLinksDetected += '</ul>'; //se trovo anche solo uno dei due, scateno l'errore if(isChildDetected || isParentDetected){ //var messageContainer = [listOfChildsLinked, listOfParentsLinked]; var messageContainer = [listOfLinksDetected]; errors.reject("error.delete.link.childAndParentDetected", messageContainer, "error.delete.link.childAndParentDetected.default"); } |