@Override public String allowDeleteProgram( Program program ) { String sql = "SELECT COUNT(*) FROM programstageinstance psi join programinstance pi on pi.programinstanceid=psi.programinstanceid where pi.programid = " + program.getId(); return jdbcTemplate.queryForObject( sql, Integer.class ) == 0 ? null : ERROR; } }
@Override public int addProgram( Program program ) { programStore.save( program ); return program.getId(); }
@Override public List<TrackedEntityProgramOwner> getTrackedEntityProgramOwnersUsingId( List<Integer> teiIds, Program program ) { return trackedEntityProgramOwnerStore.getTrackedEntityProgramOwners( teiIds, program.getId() ); }
private List<Integer> getDataYears( Program program, Date earliest ) { String sql = "select distinct(extract(year from psi.executiondate)) " + "from programstageinstance psi " + "inner join programinstance pi on psi.programinstanceid = pi.programinstanceid " + "where pi.programid = " + program.getId() + " " + "and psi.executiondate is not null " + "and psi.deleted is false "; if ( earliest != null ) { sql += "and psi.executiondate >= '" + DateUtils.getMediumDateString( earliest ) + "'"; } return jdbcTemplate.queryForList( sql, Integer.class ); } }
@Override public TrackedEntityProgramOwner getTrackedEntityProgramOwner( String teiUid, String programUid ) { TrackedEntityInstance entityInstance = trackedEntityInstanceService.getTrackedEntityInstance( teiUid ); Program program = programService.getProgram( programUid ); if ( entityInstance == null || program == null ) { return null; } return trackedEntityProgramOwnerStore.getTrackedEntityProgramOwner( entityInstance.getId(), program.getId() ); }
@Override public void updateTrackedEntityProgramOwner( TrackedEntityInstance entityInstance, Program program, OrganisationUnit ou ) { if ( entityInstance == null || program == null || ou == null ) { return; } TrackedEntityProgramOwner teiProgramOwner = trackedEntityProgramOwnerStore .getTrackedEntityProgramOwner( entityInstance.getId(), program.getId() ); if ( teiProgramOwner == null ) { return; } teiProgramOwner = updateTrackedEntityProgramOwner( teiProgramOwner, ou ); trackedEntityProgramOwnerStore.update( teiProgramOwner ); }
/** * Get the current owner of this tei-program combination. Fallbacks to the * registered OU if no owner explicitly exists for the program * * @param entityInstance The tei * @param program The program * @return The owning Organisation unit. */ private OrganisationUnit getOwner( TrackedEntityInstance entityInstance, Program program ) { OrganisationUnit ou = null; TrackedEntityProgramOwner trackedEntityProgramOwner = trackedEntityProgramOwnerService.getTrackedEntityProgramOwner( entityInstance.getId(), program.getId() ); if ( trackedEntityProgramOwner == null ) { ou = entityInstance.getOrganisationUnit(); } else { ou = trackedEntityProgramOwner.getOrganisationUnit(); } return ou; }
@Override public void createOrUpdateTrackedEntityProgramOwner( TrackedEntityInstance entityInstance, Program program, OrganisationUnit ou ) { if ( entityInstance == null || program == null || ou == null ) { return; } TrackedEntityProgramOwner teiProgramOwner = trackedEntityProgramOwnerStore .getTrackedEntityProgramOwner( entityInstance.getId(), program.getId() ); if ( teiProgramOwner == null ) { trackedEntityProgramOwnerStore.save( buildTrackedEntityProgramOwner( entityInstance, program, ou ) ); } else { teiProgramOwner = updateTrackedEntityProgramOwner( teiProgramOwner, ou ); trackedEntityProgramOwnerStore.update( teiProgramOwner ); } }
@Override public void updateTrackedEntityProgramOwner( String teiUid, String programUid, String orgUnitUid ) { TrackedEntityInstance entityInstance = trackedEntityInstanceService.getTrackedEntityInstance( teiUid ); if ( entityInstance == null ) { return; } Program program = programService.getProgram( programUid ); if ( program == null ) { return; } TrackedEntityProgramOwner teProgramOwner = trackedEntityProgramOwnerStore .getTrackedEntityProgramOwner( entityInstance.getId(), program.getId() ); if ( teProgramOwner == null ) { return; } OrganisationUnit ou = orgUnitService.getOrganisationUnit( orgUnitUid ); if ( ou == null ) { return; } teProgramOwner = updateTrackedEntityProgramOwner( teProgramOwner, ou ); trackedEntityProgramOwnerStore.update( teProgramOwner ); }
@Override public void createOrUpdateTrackedEntityProgramOwner( int teiUid, int programUid, int orgUnitUid ) { TrackedEntityInstance entityInstance = trackedEntityInstanceService.getTrackedEntityInstance( teiUid ); Program program = programService.getProgram( programUid ); if ( entityInstance == null ) { return; } TrackedEntityProgramOwner teiProgramOwner = trackedEntityProgramOwnerStore .getTrackedEntityProgramOwner( entityInstance.getId(), program.getId() ); OrganisationUnit ou = orgUnitService.getOrganisationUnit( orgUnitUid ); if ( ou == null ) { return; } if ( teiProgramOwner == null ) { trackedEntityProgramOwnerStore.save( buildTrackedEntityProgramOwner( entityInstance, program, ou ) ); } else { teiProgramOwner = updateTrackedEntityProgramOwner( teiProgramOwner, ou ); trackedEntityProgramOwnerStore.update( teiProgramOwner ); } }
@Override public void createOrUpdateTrackedEntityProgramOwner( String teiUid, String programUid, String orgUnitUid ) { TrackedEntityInstance entityInstance = trackedEntityInstanceService.getTrackedEntityInstance( teiUid ); Program program = programService.getProgram( programUid ); if ( entityInstance == null ) { return; } TrackedEntityProgramOwner teiProgramOwner = trackedEntityProgramOwnerStore .getTrackedEntityProgramOwner( entityInstance.getId(), program.getId() ); OrganisationUnit ou = orgUnitService.getOrganisationUnit( orgUnitUid ); if ( ou == null ) { return; } if ( teiProgramOwner == null ) { trackedEntityProgramOwnerStore.save( buildTrackedEntityProgramOwner( entityInstance, program, ou ) ); } else { teiProgramOwner = updateTrackedEntityProgramOwner( teiProgramOwner, ou ); trackedEntityProgramOwnerStore.update( teiProgramOwner ); } }
TrackedEntityProgramOwner teProgramOwner = trackedEntityProgramOwnerService.getTrackedEntityProgramOwner( entityInstance.getId(), program.getId() ); if ( teProgramOwner != null )
TrackedEntityProgramOwner teProgramOwner = trackedEntityProgramOwnerService.getTrackedEntityProgramOwner( entityInstance.getId(), program.getId() ); if ( teProgramOwner != null )
"and (cast(date_trunc('month', pi.enrollmentdate) as date)=ougs.startdate or ougs.startdate is null) " + "left join _dateperiodstructure dps on cast(pi.enrollmentdate as date)=dps.dateperiod " + "where pr.programid=" + program.getId() + " " + "and pi.organisationunitid is not null " + "and pi.lastupdated <= '" + getLongDateString( params.getStartTime() ) + "' " +
"and psi.executiondate < '" + end + "' " + "and psi.lastupdated <= '" + getLongDateString( params.getStartTime() ) + "' " + "and pr.programid=" + program.getId() + " " + "and psi.organisationunitid is not null " + "and psi.executiondate is not null " +
sql += hlp.whereAnd() + " p.programid = " + params.getProgram().getId() + " ";
+ "from programinstance pi where pi.programid= " + params.getProgram().getId() + " ";