=== modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java' --- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java 2013-10-31 04:12:32 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java 2013-11-01 09:56:52 +0000 @@ -91,6 +91,7 @@ import org.hisp.dhis.program.ProgramStageSection; import org.hisp.dhis.program.ProgramStageSectionService; import org.hisp.dhis.program.ProgramStageService; +import org.hisp.dhis.program.comparator.ProgramStageInstanceVisitDateComparator; import org.hisp.dhis.relationship.Relationship; import org.hisp.dhis.relationship.RelationshipService; import org.hisp.dhis.relationship.RelationshipType; @@ -2093,7 +2094,7 @@ ProgramStageInstance oldProgramStageIntance = programStageInstanceService.getProgramStageInstance( Integer.valueOf( mobileProgramStageId ) ); - ProgramInstance programInstance = oldProgramStageIntance.getProgramInstance(); + ProgramInstance programInstance = oldProgramStageIntance.getProgramInstance(); ProgramStageInstance newProgramStageInstance = new ProgramStageInstance( programInstance, oldProgramStageIntance.getProgramStage() ); @@ -2103,6 +2104,13 @@ programInstance.getProgramStageInstances().add( newProgramStageInstance ); + List proStageInstanceList = new ArrayList( programInstance.getProgramStageInstances() ); + + Collections.sort( proStageInstanceList, new ProgramStageInstanceVisitDateComparator() ); + + programInstance.getProgramStageInstances().removeAll( proStageInstanceList ); + programInstance.getProgramStageInstances().addAll( proStageInstanceList ); + programStageInstanceService.addProgramStageInstance( newProgramStageInstance ); programInstanceService.updateProgramInstance( programInstance );