Skip to main content

4. Create Set of School Terms - Updated!

Purpose

For every academic year, there needs to be a user-specified number of term records, so when a new academic year record is added, the program should automatically create the associated term records for that year.  The program knows how many term records to make, and how they should be configured from the records in the term label table.  

Term Labels

The user adds one “term label” record to represent each term in a general school year.  The number of records in the term label table equals the number of terms in a year. There are start days and start months fields in the term label records, but there are no actual years since the term label is general in nature and applies to any year. The Terms records are created using the infromation in the term label records.

Term labels records can not be associated with a year since, so there can not be a date field in the term label records.

The term label sequence shows the order of the terms as the academic year progresses.

Terms (or School Terms)

Terms are a list of actual terms the school is/was/will be in operation.  They have a start date and an end date, and are associated with an Academic Year and a term label.  

The term sequence, the ordinate field,  continues from 1, the very first term in the system, continuously through all terms of operation.  These will follow the term start dates as the start dates will also indicate the order of the terms.

Setting the default term start and end dates

Information in the term label record and the academic years are used to set the default term start and end dates. The use may manually adjust these dates year to year, as the same date may fall on a Monday one year but a Tuesday the next year.  Setting the default term dates helps the user to pick an appropriate date for each term.

While th term record must contain the actual start and end dates, the term label record only contains a general start day and start month.  Academic Years generally cross over a calendar year, so the actual year of the term is difficult to figure out.

For this reason the following two fields are added to the Term label record:

Add the menu select fields "Start Year" & "End Year" to the term label table

For each of the fields ablove, menu options are the same:  Academic Start Year, Academic End Year

The user selects academic start year if the term begins in the same year as the academic start year or selects academic end year if the term starts in the same year as the academic end year.  The same applies to the end year.


Create (School) Terms

Based on the information in the Term Label table, Terms are automatically made for each academic year added to the school.  The term label records contain the sequence of terms, the names of terms, and the number of records indicated the total number terms.

For every new academic year record, PEMS makes a number of term records equal to the number of Term Label records and updates the ordinate of the terms to match the sequence of the term label records.

Make a new set of term records when an academic year is created

Key trigger is the creation of a new academic year record.

Create a term record and associate it to the academic year record and the term label record with flag = official start and status = active.  If no record is found, stop.

Set the (school) term ordinate to maximum term ordinate value + 1

If the term label start year field is set to 'academic start year' then use the academic year's start year field for the term start year.   If the term label start year field is set to 'academic end year' then use the academic year's end year field for the term end year. 

If the term label end year field is set to 'academic start year' then use the academic year's start year field for the term end year.   If the term label end year field is set to 'academic end year' then use the academic year's end year field for the term end year. 

Calculate the term record's start date from the  term label record “start day” and term label record “start month” and the start year found above. 

Calculate the term record's end date from the  term label record “end day” and term label record “end month” and the end year found above.

Calendar days  - TBD

School days - TBD

Term Name = concatenate Term Label name and Term Start Year.

Set the Term Flag = Term Label Flag

Set the term status = the status of the associated academic year. note: if the user tiggers this automation mid year, all terms will be set to current, regarless of actual status, the user will need to manually update them.

Find the next active term label record with sequence equal to the last term label record sequence + 1. If there are no records that meet this criteria, add 1 to the sequence value.   Repeat.

If the term label record flag value is "Offical End" and status = "active", then this is the last term record to be made.  

Note: Add an additional exit criteria as a back-up in case this loop goes on for ever, for example, if the user did not configure the term label records properly.