Skip to main content

7. Activate Next Student Plan - TBD

The student plan table shows the status of the various plans the student has been assigned over time, it is like a log file for the student plans. 

  • Multiple student plan records may be associated to a student record
  • Only one plan may be active at any point in time.  Program_status = active. 
  • There may be other student plan records associated with the student, but their status may not be active.
  • The program start term field contains information on the school term, not the student term.  This is an important value and so the name is stored in the student plan term reocrd field called program start term. 

Only one student plan record may be active at a time

Develop a combination of UI and programming to ensure that only one student plan is active at ay point in time - (I have no idea how to do this)


Find Program start term from start date

When the user assigns the student a plan, they may enter the start date of the plan. For new students is will be important to enter the start date of the plan, as they may be starting in middle of a term.  It is important to know if they had less time to complete courses due to a mid-term start date.

Based on the start_date of the student plan, PEMS identifies the starting school term and creates the relationship between school term and the student's plans.


Entering State date from Program Start Term

Once a new student has become recurring student, it is easier to enter the program start term, rather than the start date. The start date of the student plan should be the corresponding start date ot the Program start term. 

However, if the user selects a Program start term after a student plan start date has been entered, this function will over-write the start date. We do not want to overwrite a start date as that may contain userful information. 

If the Program start term is input by the user, then enter the start date from the Program start term's start date, but only if the start date field is empty.


Determining the school term when a student plan is complete

Student Plans are used to create enrollments, but eventually each student will complete their plan and need to be assigned another plan.  In the course of 13 years of school, the student will likely complete 6 to 8 plans.

  • The student plan is associated to only one school plan in the prgrams of study table. The school plan includes the total number of terms required to complete the plan. 
  • The student's plan record contains the program start term
  • To find the last term of the student plan, add the total number of terms to the sequence

student plan record: program start term: related sequence + related school plan: total number of terms = sequence of term the school plan will be completed


Completing the Active Student Plan

We can find the school term when a student plan should completed (see above).  When the last school term in the plan has passed, PEMS can mark the student plan record complete.  The student plan record is marked complete based only on the calendar. A student's marks for classes during the plan are not relevent.  

So when the current date is passed any student's plan's final term current date, then the student plan record will be marked complete.

When the current date is >/= end date of the student plans' final term, then change the status of the student plan to 'completed.


Activating the next student plan

If there is another student plan record with status = future, then we can automatically activate the next plan record, after we set the satus of the student plan record above to completed.  Each student plan is associated to a program start term, which has a sequence.  The next student plan will have a program start term sequence greater than the last student plan record program start term's sequence.  The last student plan record will be the record we most recently marked complete in the step above.

However, there could be multiple student plans with program start term sequence greater than the current school term. So we need to find the lowest sequence number that is also greater than the last program start term's sequence.

FInd the student plan record where the program start term's squence is greater than the last student plan's  program start term's sequence, but also the lowest value in all the avaiable student plan records. Set this student plan status to active.

No future plan exists

If there are no student plan records with status = future, then the student can not automically be assigned the next plan.  For students who have had their plan marked completed, but they have no future plan, we will create a filtered report for the user.  The user will then assign a plan for these students.  Ideally, the user will complete this task before the end of term.

Create a filtered list of students who do not have any active student plans for the user to review and address

All new student plan records will default to status = future. 


When a Student Plan is activated

When a new student plan is activated, status was changed from future to active. This change in status will trigger the next process, creating the set of enrollment records.


When a Student plan is Changed before its completion

A student may need to change the plan they are working towards. This may occur after some enrollment records were already created, and some records may be completed while others are not completed. 

For a change of plan, the active plan program value field is set to 'suspended' by the user.  A new plan will be created as a future plan, then the field status changed from future to active.  This set of actions will trigger the creating of new enrollment records.