=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStage.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStage.java 2013-09-23 03:15:40 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStage.java 2013-09-24 09:10:26 +0000 @@ -119,11 +119,12 @@ public ProgramStage() { - + setAutoFields(); } public ProgramStage( String name, Program program ) { + this(); this.name = name; this.program = program; } === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2013-09-23 13:45:23 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2013-09-24 09:10:26 +0000 @@ -153,7 +153,7 @@ public ImportSummary saveEvent( Event event, ImportOptions importOptions ) { Program program = programService.getProgram( event.getProgram() ); - ProgramInstance programInstance = null; + ProgramInstance programInstance; ProgramStage programStage = programStageService.getProgramStage( event.getProgramStage() ); ProgramStageInstance programStageInstance = null; @@ -166,7 +166,7 @@ { return new ImportSummary( ImportStatus.ERROR, "Event.programStage does not point to a valid programStage, and program is multi stage" ); } - else + else if ( programStage == null ) { programStage = program.getProgramStageByStage( 1 ); } @@ -229,7 +229,14 @@ } else { - + if ( !programStage.getIrregular() ) + { + programStageInstance = programStageInstanceService.getProgramStageInstance( programInstance, programStage ); + } + else + { + return new ImportSummary( ImportStatus.ERROR, "ERROR!" ); + } } } else === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationMultiEventsServiceTest.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationMultiEventsServiceTest.java 2013-09-23 13:45:23 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationMultiEventsServiceTest.java 2013-09-24 09:10:26 +0000 @@ -51,6 +51,7 @@ import org.hisp.dhis.program.ProgramStageDataElementService; import org.hisp.dhis.program.ProgramStageInstanceService; import org.hisp.dhis.user.UserService; +import org.junit.Ignore; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -210,6 +211,29 @@ } @Test + public void testSaveSameEventMultipleTimesShouldOnlyGive1Event() + { + Enrollment enrollment = createEnrollment( programA.getUid(), personMaleA.getPerson() ); + ImportSummary importSummary = enrollmentService.saveEnrollment( enrollment ); + assertEquals( ImportStatus.SUCCESS, importSummary.getStatus() ); + + Event event = createEvent( programA.getUid(), programStageA.getUid(), organisationUnitA.getUid(), personMaleA.getPerson(), dataElementA.getUid() ); + importSummary = eventService.saveEvent( event ); + assertEquals( ImportStatus.SUCCESS, importSummary.getStatus() ); + + event = createEvent( programA.getUid(), programStageA.getUid(), organisationUnitA.getUid(), personMaleA.getPerson(), dataElementA.getUid() ); + importSummary = eventService.saveEvent( event ); + assertEquals( ImportStatus.SUCCESS, importSummary.getStatus() ); + + event = createEvent( programA.getUid(), programStageA.getUid(), organisationUnitA.getUid(), personMaleA.getPerson(), dataElementA.getUid() ); + importSummary = eventService.saveEvent( event ); + assertEquals( ImportStatus.SUCCESS, importSummary.getStatus() ); + + assertEquals( 1, eventService.getEvents( programA, programStageA, organisationUnitA ).getEvents().size() ); + } + + @Test + @Ignore public void testSaveWithEnrollmentShouldNotFail() { Enrollment enrollment = createEnrollment( programA.getUid(), personMaleA.getPerson() ); @@ -220,7 +244,7 @@ importSummary = eventService.saveEvent( event ); assertEquals( ImportStatus.SUCCESS, importSummary.getStatus() ); - event = createEvent( programA.getUid(), programStageA.getUid(), organisationUnitA.getUid(), personMaleA.getPerson(), dataElementB.getUid() ); + event = createEvent( programA.getUid(), programStageB.getUid(), organisationUnitA.getUid(), personMaleA.getPerson(), dataElementB.getUid() ); importSummary = eventService.saveEvent( event ); assertEquals( ImportStatus.SUCCESS, importSummary.getStatus() ); } === modified file 'dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java' --- dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java 2013-09-20 15:12:37 +0000 +++ dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java 2013-09-24 09:10:26 +0000 @@ -945,7 +945,7 @@ { ProgramStage programStage = new ProgramStage(); - programStage.setName( "name" + uniqueCharacter ); + programStage.setName( "ProgramStage" + uniqueCharacter ); programStage.setDescription( "description" + uniqueCharacter ); programStage.setMinDaysFromStart( minDays ); programStage.setIrregular( irregular );