=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java 2012-11-08 16:07:27 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java 2012-11-09 03:14:42 +0000 @@ -133,14 +133,12 @@ if ( (leftSideValue != null && rightSideValue.equals( NOT_NULL_VALUE_IN_EXPRESSION ) && rightSideValue == null) || ( !(leftSideValue != null && rightSideValue != null - && ((operator.equals( "==" ) && leftSideValue.equals( rightSideValue )) - || (operator.equals( "<" ) && leftSideValue.compareTo( rightSideValue ) < 0) - || (operator.equals( "<=" ) && (leftSideValue.equals( rightSideValue ) || leftSideValue - .compareTo( rightSideValue ) < 0)) + && ( (operator.equals( "==" ) && leftSideValue.compareTo( rightSideValue )==0 ) + || (operator.equals( "<" ) && leftSideValue.compareTo( rightSideValue ) < 0 ) + || (operator.equals( "<=" ) && (leftSideValue.compareTo( rightSideValue ) <= 0)) || (operator.equals( ">" ) && leftSideValue.compareTo( rightSideValue ) > 0) - || (operator.equals( ">=" ) && (leftSideValue.equals( rightSideValue ) || leftSideValue - .compareTo( rightSideValue ) > 0)) || (operator.equals( "!=" ) && !leftSideValue - .equals( rightSideValue ))))) ) + || (operator.equals( ">=" ) && leftSideValue.compareTo( rightSideValue ) >= 0)) + || (operator.equals( "!=" ) && leftSideValue.compareTo( rightSideValue ) ==0 ))) ) { return new ProgramValidationResult( programStageInstance, validation, leftSideValue, rightSideValue ); } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/ValidateProgramInstanceAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/ValidateProgramInstanceAction.java 2012-11-08 16:07:27 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/ValidateProgramInstanceAction.java 2012-11-09 03:14:42 +0000 @@ -34,8 +34,8 @@ import java.util.Map; import org.hisp.dhis.caseentry.state.SelectedStateManager; -import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.program.ProgramExpressionService; import org.hisp.dhis.program.ProgramStageInstance; import org.hisp.dhis.program.ProgramValidation; import org.hisp.dhis.program.ProgramValidationResult; @@ -58,6 +58,8 @@ private ProgramValidationService programValidationService; + private ProgramExpressionService programExpressionService; + // ------------------------------------------------------------------------- // Input // ------------------------------------------------------------------------- @@ -70,14 +72,19 @@ private List programValidationResults; - private Map leftsideFormulaMap; + private Map leftsideFormulaMap = new HashMap(); - private Map rightsideFormulaMap; + private Map rightsideFormulaMap = new HashMap(); // ------------------------------------------------------------------------- // Getters && Setters // ------------------------------------------------------------------------- + public void setProgramExpressionService( ProgramExpressionService programExpressionService ) + { + this.programExpressionService = programExpressionService; + } + public void setSelectedStateManager( SelectedStateManager selectedStateManager ) { this.selectedStateManager = selectedStateManager; @@ -123,7 +130,7 @@ // --------------------------------------------------------------------- ProgramStageInstance programStageInstance = selectedStateManager.getSelectedProgramStageInstance(); - + // --------------------------------------------------------------------- // Check validations for dataelement into multi-stages // --------------------------------------------------------------------- @@ -145,11 +152,22 @@ { for ( ProgramValidation validation : validations ) { - ProgramValidationResult validationResult = programValidationService.validate( validation, programStageInstance, format ); + ProgramValidationResult validationResult = programValidationService.validate( validation, + programStageInstance, format ); if ( validationResult != null ) { programValidationResults.add( validationResult ); + + leftsideFormulaMap.put( + validationResult.getProgramValidation().getId(), + programExpressionService.getExpressionDescription( validationResult.getProgramValidation() + .getLeftSide().getExpression() ) ); + + rightsideFormulaMap.put( + validationResult.getProgramValidation().getId(), + programExpressionService.getExpressionDescription( validationResult.getProgramValidation() + .getRightSide().getExpression() ) ); } } } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml 2012-11-08 02:58:24 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml 2012-11-09 03:14:42 +0000 @@ -323,6 +323,8 @@ ref="org.hisp.dhis.caseentry.state.SelectedStateManager" /> + - + === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js 2012-11-08 18:59:10 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js 2012-11-09 03:14:42 +0000 @@ -605,7 +605,6 @@ $.ajax({ url: "getOptions.action?id=" + dataElementId + "&query=" + input.val(), dataType: "json", - cache: true, success: function(data) { response($.map(data.options, function(item) { return { === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/validationResult.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/validationResult.vm 2012-11-08 16:07:27 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/validationResult.vm 2012-11-09 03:14:42 +0000 @@ -32,12 +32,17 @@ #set ( $leftFormula = $leftsideFormulaMap.get( $id ) ) #set ( $rightFormula = $rightsideFormulaMap.get( $id ) ) + #set($leftsideValue = "NULL") + #if($result.leftsideValue) #set($leftsideValue = $result.leftsideValue) #end + #set($rightsideValue = "NULL") + #if($result.rightsideValue) #set($rightsideValue = $result.rightsideValue ) #end + $encoder.htmlEncode( $result.programValidation.description ) $!encoder.htmlEncode( $leftFormula ) $encoder.htmlEncode( $i18n.getString( $result.programValidation.operator.mathematicalOperator ) ) $!encoder.htmlEncode( $rightFormula ) $!encoder.htmlEncode( $result.programValidation.leftSide.description ) - $result.leftsideValue + $leftsideValue $encoder.htmlEncode( $i18n.getString( $result.programValidation.operator.mathematicalOperator ) ) - $result.rightsideValue + $rightsideValue $!encoder.htmlEncode( $result.programValidation.rightSide.description ) #set( $mark = !$mark )