=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/trackedentity/ProgramEnrollmentSelectAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/trackedentity/ProgramEnrollmentSelectAction.java 2014-03-18 08:10:10 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/trackedentity/ProgramEnrollmentSelectAction.java 2014-07-18 04:02:57 +0000 @@ -126,20 +126,21 @@ Iterator iterProgram = programs.iterator(); while ( iterProgram.hasNext() ) { - if ( iterProgram.next().getOnlyEnrollOnce() ) + Program program = iterProgram.next(); + for ( ProgramInstance programInstance : entityInstance.getProgramInstances() ) { - iterProgram.remove(); + if ( programInstance.getProgram().equals( program ) ) + { + if (programInstance.getStatus() == ProgramInstance.STATUS_ACTIVE + || program.getOnlyEnrollOnce() + || ((programInstance.getStatus() == ProgramInstance.STATUS_COMPLETED && program.isSingleEvent() ))) + { + iterProgram.remove(); + } + } } } - Collection programInstances = programInstanceService.getProgramInstances( entityInstance, - ProgramInstance.STATUS_ACTIVE ); - - for ( ProgramInstance programInstance : programInstances ) - { - programs.remove( programInstance.getProgram() ); - } - return SUCCESS; } }