Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Anchor
projectCallValidator-anchor
projectCallValidator-anchor
projectCallValidator
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
languagejs
linenumberstrue
collapsetrue
			
			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
isAlphaNumeric-anchor
isAlphaNumeric-anchor
isAlphaNumeric
Verifica che il campo isScoraNumeric sia a TRUE
Code Block
languagejs
linenumberstrue
collapsetrue
			
				!object.getBooleanMap().get('isScoreNumeric').booleanValue();
		

Anchor
wfStartLogicPublicEngagement-anchor
wfStartLogicPublicEngagement-anchor
wfStartLogicPublicEngagement
Questa logica viene eseguita in fase di creazione di un nuovo oggetto.
Effettua il setup dei seguenti attributi con i valori tra parentesi

...

Anchor
isNotLegacy-anchor
isNotLegacy-anchor
isNotLegacy
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
languagejs
linenumberstrue
collapsetrue
			(
				object.getBooleanMap().get('legacy')==null 
				|| 
				Packages.java.lang.Boolean.FALSE.equals(object.getBooleanMap().get('legacy'))
			)
		

Anchor
childAndParentDetectorDeleteValidator-anchor
childAndParentDetectorDeleteValidator-anchor
childAndParentDetectorDeleteValidator
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
languagejs
linenumberstrue
collapsetrue

						
			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");
			}