1. Calendar Functions
| Calendar Functions | Not started |
1.1 Automatically Create Academic Years Past and Future |
| Purpose | Automate creating new academic future academic records when the user-defined promotion date has been reached. This reduces the need for users to add a year every time they complete one. | |
| Trigger | Promotion Date (school configuration) = actual date | |
| Conditions | Initial configuration was completed. | |
| Sequence | This function must run before more school terms can be created. | |
| Step 1 | Find the academic year record the farthest in the future, the "last record" | |
| Step 2 | Create one more academic year record | |
| Step 3 |
Set field values: Sequence = last record sequence + 1 Start year = last record start year + 1 End year = last record end year + 1 Academic year name - concatenate start year - end year start date = last record start date + 1 year end date = last record end date + 1 year. set status = future |
|
| END |
| Calendar Functions | Not started |
1.2 Automatically Update Status of Academic Years. |
| Purpose | Academic Year records have a status of current, past, or future, update the status of the records automatically when the user-defined promotion date has been reached. | |
| Trigger | Managed by the Promotion WorkFlow | |
| Conditions | There can be only one current year. | |
| Sequence | This step is best triggered after the next future record has been made and in accordance with the PROMOTION workflow. | |
| Step 1 | Set previous current academic year status to 'past' | |
| Step 2 | Set next year, based on ordinate to current. | |
| END |
| Calendar Functions | Not started |
1.3 Automatically Create School Term Records |
| Purpose | Automate student term records creation as new academic years are added. | |
| Trigger | When a new academic year is added. | |
| Conditions | ||
| Sequence | This step is best triggered after the creation of a new academic year record. Term records must be made before students can have their plans updated. | |
| Step 1 | Find the first term label record with Flag = official start term. | |
| Step 2 | Create a new school term record | |
| Step 3 |
Set Term Start Year and Start Date Academic year: start date => term: start date Academic year start year => term: start year |
|
| calculate estimated dates, terms may run over an calendar year | Step 4 |
Calculate Term End Year, Term End Date If Term Label "End in same year" = true then: Term End Year = term: start year Term End Date = Term: start year; Term label:end month: Term Label End day If Term label "End in same year" = False then: Term End Year = term: start year + 1 Term End Date = Term: end year; Term label:end month: Term Label End day |
| Step 4 |
Set other term field values: Name - concatenate term label name and term: start year status = future term label => related term label record academic year => related academic year record term label flag => term flag |
|
| Step 5 | If term label: flag not equal to "official end term" then go to the next term label record, increase term label: sequence by one. | |
| Ste 6 |
Set Term Start Year and Start Date If previous term label record (sequence -1) end month </= (LESS THAN OR EQUAL TO) term label start month, term start year = previous term (ordinate -1) end year Else term start year = previous term (ordinate -1) end year + 1 |
|
| Step 6 | Continue to the next Term Label record (sequence + 1), stop when sequence + 1 can not be found (note we must continue past 'official end term' into optional terms. | |
| Step 7 | Set other term fields per step 4 | |
| END | Review 1.3 Use Case Test |
Use Case Test 1.3 Automatically Create School Term Records
Classic Semesters I |
||||||||
| Term Label Start Month | Term Label End Month | Term Label Flag | Term Label End in Same Year | School Term start year | School Term end year | |||
| Academic Year | 9-2023 | 5-2024 | ||||||
| Fall | 9 | 1 | Official Start Term | false | flag = official start term start year so start year = academic start year = 2023 | pass | "end in same year" = false so term end year = term start year + 1 = 2024 | pass |
| Spring | 1 | 5 | Official End Term | true | previous term label record (sequence -1) end month </= term label start month, so term start year = previous term (ordinate -1) end year = 2024 | pass | "end in same year = true so term end year = term start year = 2024 | pass |
| Summer | 6 | 8 | true | previous term label record (sequence -1) end month </= term label start month, so term start year = previous term (ordinate -1) end year = 2024 | pass | "end in same year = true so term end year = term start year = 2024 | pass | |
Classic Semesters II |
||||||||
| Academic Year | 8-2023 | 5-2024 | ||||||
| Fall | 8 | 12 | Official Start Term | true | flag = official start term start year so start year = academic start year = 2023 | pass | "end in same year" = true so term end year = term start year = 2023 | pass |
| Spring | 12 | 5 | Official End Term | false | previous term label record (sequence -1) end month </= term label start month, so term start year = previous term (ordinate -1) end year = 2023 | pass | "end in same year" = false so term end year = start year + 1 = 2024 | pass |
| Summer | 6 | 7 | true | previous term label record (sequence -1) end month </= term label start month, so term start year = previous term (ordinate -1) end year = 2024 | "end in same year" = true so term end year = start year = 2023 | pass | ||
Classic Semesters III |
||||||||
| Academic Year | 8-2023 | 5-2024 | ||||||
| Fall | 8 | 12 | Official Start Term | true | flag = official start term start year so start year = academic start year = 2023 | pass | "end in same year" = true so term end year = term start year = 2023 | pass |
| Spring | 1 | 5 | true | previous term label record (sequence -1) end month NOT </= term label start month, so term start year = previous term (ordinate -1) end year + 1 = 2024 | pass | "end in same year" = true so term end year = term start year = 2024 | pass | |
| Summer | 6 | 8 | Official End Term | true | previous term label record (sequence -1) end month </= term label start month, so term start year = previous term (ordinate -1) end year = 2024 | pass | "end in same year" = true so term end year = term start year = 2024 | pass |
| Calendar Functions | Not started |
1.4 Automatically Calculate Vacation Days In Terms and Academic Years |
| Purpose | Academic Year records have a status of current, past, or future, update the status of the records automatically when the user-defined promotion date has been reached. | |
| Trigger | Managed by the Promotion WorkFlow | |
| Conditions | There can be only one current year. | |
| Sequence | This step is best triggered after the next future record has been made and in accordance with the PROMOTION workflow. | |
| Step 1 | Set previous current academic year status to 'past' | |
| Step 2 | Set next year, based on ordinate to current. | |
| END |
Calculate School and Calendar Days
Term School Days = calendar days - vacation days - excluded week days
Term Calendar Days = actual days - do not subtract weekends
Academic Year School Days = sum of required terms school days
Academic Years Calendar Days = sum of required terms calendar days