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