public Collection<ValidationRule> getRelevantValidationRules(DataSet dataSet) { Set<ValidationRule> relevantValidationRules = new HashSet<ValidationRule>(); Set<DataElementOperand> operands = dataEntryFormService.getOperandsInDataEntryForm(dataSet); Set<DataElementOperand> validationRuleOperands = new HashSet<DataElementOperand>(); for (ValidationRule validationRule : getAllValidationRules()) { validationRuleOperands.clear(); validationRuleOperands.addAll( expressionService.getOperandsInExpression(validationRule.getLeftSide().getExpression())); validationRuleOperands.addAll( expressionService.getOperandsInExpression(validationRule.getRightSide().getExpression())); if (operands.containsAll(validationRuleOperands)) { relevantValidationRules.add(validationRule); } } return relevantValidationRules; }
protected void addDataValue( OrganisationUnit unit, Period period, String expression, String value, Set<DataValue> oldList, Set<DataValue> newList) { // value = value.replaceAll( "\\.", "" ).replace( ",", "." ); DataElementOperand operand = expressionService.getOperandsInExpression(expression).iterator().next(); DataElement dataElement = dataElementService.getDataElement(operand.getDataElementId()); DataElementCategoryOptionCombo optionCombo = categoryService.getDataElementCategoryOptionCombo(operand.getOptionComboId()); String storedBy = currentUserService.getCurrentUsername(); DataValue dataValue = dataValueService.getDataValue(unit, dataElement, period, optionCombo); if (dataValue == null) { dataValue = new DataValue(dataElement, period, unit, value, storedBy, new Date(), null, optionCombo); dataValueService.addDataValue(dataValue); newList.add(dataValue); } else { DataValue backedUpDataValue = new DataValue(dataElement, period, unit, dataValue.getValue(), optionCombo); oldList.add(backedUpDataValue); dataValue.setValue(value); dataValue.setTimestamp(new Date()); dataValue.setStoredBy(storedBy); dataValueService.updateDataValue(dataValue); } }