@Override public void incompleteProgramInstanceStatus( ProgramInstance programInstance ) { Program program = programInstance.getProgram(); TrackedEntityInstance tei = programInstance.getEntityInstance(); if ( getProgramInstances( tei, program, ProgramStatus.ACTIVE ).size() > 0 ) { log.warn( "Program has another active enrollment going on. Not possible to incomplete" ); throw new IllegalQueryException( "Program has another active enrollment going on. Not possible to incomplete" ); } // ----------------------------------------------------------------- // Update program-instance // ----------------------------------------------------------------- programInstance.setStatus( ProgramStatus.ACTIVE ); updateProgramInstance( programInstance ); }
@Override public void completeProgramInstanceStatus( ProgramInstance programInstance ) { // --------------------------------------------------------------------- // Send sms-message when to completed the program // --------------------------------------------------------------------- programNotificationPublisher.publishEnrollment( programInstance, ProgramNotificationEventType.PROGRAM_COMPLETION ); eventPublisher.publishEvent( new TrackedEntityInstanceEnrolledEvent( this, programInstance ) ); // ----------------------------------------------------------------- // Update program-instance // ----------------------------------------------------------------- programInstance.setStatus( ProgramStatus.COMPLETED ); programInstance.setEndDate( new Date() ); programInstance.setCompletedBy( currentUserService.getCurrentUsername() ); updateProgramInstance( programInstance ); }
@Override public ProgramInstance enrollTrackedEntityInstance( TrackedEntityInstance trackedEntityInstance,Program program, Date enrollmentDate, Date incidentDate, OrganisationUnit organisationUnit, String uid ) { // --------------------------------------------------------------------- // Add program instance // --------------------------------------------------------------------- ProgramInstance programInstance = prepareProgramInstance( trackedEntityInstance, program, ProgramStatus.ACTIVE, enrollmentDate, incidentDate, organisationUnit, uid ); addProgramInstance( programInstance ); // ----------------------------------------------------------------- // Send enrollment notifications (if any) // ----------------------------------------------------------------- programNotificationPublisher.publishEnrollment( programInstance, ProgramNotificationEventType.PROGRAM_ENROLLMENT ); eventPublisher.publishEvent( new TrackedEntityInstanceEnrolledEvent( this, programInstance ) ); // ----------------------------------------------------------------- // Update ProgramInstance and TEI // ----------------------------------------------------------------- updateProgramInstance( programInstance ); trackedEntityInstanceService.updateTrackedEntityInstance( trackedEntityInstance ); return programInstance; }
updateProgramInstance( programInstance );