Versions Compared

Key

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

...

Anchor
grantorFinancingQuotaRequiredValidatorProject-anchor
grantorFinancingQuotaRequiredValidatorProject-anchor
grantorFinancingQuotaRequiredValidatorProject
Questa validazione controlla viene attivata dalla configuration ap.prj.grantor.financingQuota.enabled.
Verfica che vengano inserite le quote di finanziamento associate a ogni ente e che la loro somma sia corretta.
Dal punto di vista del modello dati si tratta degli elementi di tipo grantor.
Per maggiori dettagli cfr. excel modello dati dell'entità Progetto
Code Block
languagejs
linenumberstrue
collapsetrue
	
			if(ConfigurationUtil.getConfigValue("ap.prj.grantor.financingQuota.enabled") != null){
				if(ConfigurationUtil.getConfigValue("ap.prj.grantor.financingQuota.enabled").equalsIgnoreCase("true")){
					var grantorSet = FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object, "getWfItemElementSet", "it.cilea.wf.model.WfItemElement", "grantor", wfService);
					var grantorSetIterator = grantorSet.iterator();
					var sum = BigDecimal.ZERO;
					while (grantorSetIterator.hasNext()){
						var element = grantorSetIterator.next();		
						sum = sum.add(element.getNumberMap().get("financingQuota") != null ? element.getNumberMap().get("financingQuota") : BigDecimal.ZERO);
					}
					if(!sum.equals(object.getNumberMap().get("internalContribution"))){
						errors.rejectAndLocate("error.project.grantor.quota.internalContribution.inconsistent", "grantor");		
					}
			
				}
			}
		

Anchor
topicValidatorProject-anchor
topicValidatorProject-anchor
topicValidatorProject
Questa validazione controlla che esista almeno una area tematica
Dal punto di vista del modello dati si tratta degli elementi di tipo topic
Per maggiori dettagli cfr. excel modello dati dell'entità Progetto
Code Block
languagejs
linenumberstrue
collapsetrue
					
			var topicSet = Packages.it.cilea.core.fragment.util.FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object, "getWfItemElementSet", "it.cilea.wf.model.WfItemElement", "topic", wfService);
			if (topicSet.size()<1)
				errors.rejectAndLocate("error.project.topic.atLeast1", "topic");		
		

...

Anchor
financingSumProjectValidator-anchor
financingSumProjectValidator-anchor
financingSumProjectValidator
Questa validazione controlla che la somma dei campi Contributo totale Ateneo, Cofinanziamento Ateneo in risorse e Cofinanziamento Ateneo in personale coincida con il valore del Costo totale del progetto per l'Ateneo.
Viene attivata dalla configurazione Questa validazione valuta anche le configurazioni ap.prj.grantor.financingQuota.enabled e ap.prj.financinggrantor.sumfinancingQuota.validation.enabled.
SOLO nel caso in cui la prima configurazione viene settata a true e la seconda non è presente o è settata a true, viene controllato che la somma delle quote associate agli Enti Finanziatori deve essere uguale al Contributo Totale Ateneo.
IN TUTTI GLI ALTRI CASI questo controllo NON viene effettuato.
Code Block
languagejs
linenumberstrue
collapsetrue
	
			if (ConfigurationUtil.getConfigValue("ap.prj.financing.sum.validation.enabled").equalsIgnoreCase("true")) {
			    var cost = wfItem.getNumberMap().get("internalCost") != null ? wfItem.getNumberMap().get("internalCost") : BigDecimal.ZERO;
			    var contribution = wfItem.getNumberMap().get("internalContribution") != null ? wfItem.getNumberMap().get("internalContribution") : BigDecimal.ZERO;
			    var internalCofinancing = wfItem.getNumberMap().get("internalCofinancing") != null ? wfItem.getNumberMap().get("internalCofinancing") : BigDecimal.ZERO;
			    var manHoursCofinancing = wfItem.getNumberMap().get("manHoursCofinancing") != null ? wfItem.getNumberMap().get("manHoursCofinancing") : BigDecimal.ZERO;
			  
			    if (!cost.stripTrailingZeros().equals(contribution.add(internalCofinancing).add(manHoursCofinancing).stripTrailingZeros())) {
			        errors.rejectValue("numberMap[internalCost]", "error.project.financing.sum");
		    }
		    
		    var financingQuotaConf = Packages.it.cilea.core.configuration.util.ConfigurationUtil.getConfigValue("ap.prj.grantor.financingQuota.enabled");
		    var financingQuotaValidationConf = Packages.it.cilea.core.configuration.util.ConfigurationUtil.getConfigValue("ap.prj.grantor.financingQuota.validation.enabled");
			if ((financingQuotaConf && financingQuotaConf.trim().equalsIgnoreCase("true")) && (!financingQuotaValidationConf || financingQuotaValidationConf.trim().equalsIgnoreCase("true"))){
				var grantorSet = FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object, "getWfItemElementSet", "it.cilea.wf.model.WfItemElement", "grantor", wfService);
				var grantorSetIterator = grantorSet.iterator();
				var sum = BigDecimal.ZERO;
				while (grantorSetIterator.hasNext()){
					var element = grantorSetIterator.next();		
					sum = sum.add(element.getNumberMap().get("financingQuota") != null ? element.getNumberMap().get("financingQuota") : BigDecimal.ZERO);
				}
				if(!sum.equals(object.getNumberMap().get("internalContribution"))){
					errors.rejectAndLocate("error.project.grantor.quota.internalContribution.inconsistent", "grantor");		
				}
			}
		

Anchor
internalOrganizationUnitEditValidator-anchor
internalOrganizationUnitEditValidator-anchor
internalOrganizationUnitEditValidator
Questa validazione impedisce la modifica della Struttura in internalOganizationUnit
se tale Struttura è presente in internalOganizationUnitCost (finanziamenti associati a unità organizzative interne).
Agisce in caso di modifica dei valori del fragment.
Code Block
languagejs
linenumberstrue
collapsetrue
			if (!Packages.java.lang.Boolean.TRUE.equals(object.getWfItem().getBooleanMap().get("legacy"))){  	
				var iouSet= Packages.it.cilea.core.fragment.util.FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object.getWfItem(), "getWfItemElementSet", "it.cilea.wf.model.WfItemElement", "internalOrganizationUnit", wfService);				
				var iouCostSet= Packages.it.cilea.core.fragment.util.FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object.getWfItem(), "getWfItemElementSet", "it.cilea.wf.model.WfItemElement", "internalOrganizationUnitCost", wfService);				
				var iouSetIterator=iouSet.iterator();
				var iouCostSetIterator=iouCostSet.iterator();
				var ouSet = new Packages.java.util.HashSet();
				while (iouSetIterator.hasNext()){
					var element = iouSetIterator.next();
					ouSet.add(element.getOrganizationUnitMap().get("ouId"));
				}
				var ouCostSet = new Packages.java.util.HashSet();
				while (iouCostSetIterator.hasNext()){
					var element = iouCostSetIterator.next();
					ouCostSet.add(element.getOrganizationUnitMap().get("ouId"));
				}
				if(!ouSet.containsAll(ouCostSet)){
					errors.reject("error.project.internalOrganizationUnit.editOrDelete");
				}
			}
		

...