Changes between Initial Version and Version 1 of UseCase013


Ignore:
Timestamp:
09/15/26 11:40:51 (13 days ago)
Author:
233149
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase013

    v1 v1  
     1== UC013 - Отворање на активен семестар
     2
     3'''Иницијален актер:''' Администратор
     4
     5'''Други актери:''' -
     6
     7Администраторот отвора нов активен семестар, со што на студентите им се
     8овозможува да се запишат во него преку [wiki:UseCase007 UC007].
     9
     10=== Сценарио
     11
     12 1. Администраторот избира '''Семестри''' и потоа '''Нов семестар'''.
     13
     14 2. Системот ги прикажува веќе отворените семестри, за да се избегне дупликат.
     15{{{#!sql
     16SELECT id, year, type
     17FROM project.active_semesters
     18ORDER BY year DESC, (type = 'summer') DESC;
     19}}}
     20
     21 3. Администраторот внесува година и тип на семестар (зимски или летен) и потврдува.
     22
     23 4. Системот го отвора семестарот. Ограничувањето UNIQUE (year, type) спречува ист семестар да се отвори двапати.
     24{{{#!sql
     25INSERT INTO project.active_semesters (year, type)
     26VALUES (2027, 'summer')
     27RETURNING id, year, type;
     28}}}
     29
     30 5. Системот проверува дали секој предмет има професор во новиот семестар, бидејќи без тоа студентите не можат да го запишат предметот.
     31{{{#!sql
     32SELECT s.id, s.code, s.name
     33FROM project.subjects s
     34WHERE NOT EXISTS (
     35    SELECT 1 FROM project.professour_subjects ps
     36    WHERE ps.subject_id = s.id
     37      AND ps.active_semester_id = (SELECT id FROM project.active_semesters
     38                                    WHERE year = 2027 AND type = 'summer')
     39)
     40ORDER BY s.code;
     41}}}
     42
     43 6. Ако листата не е празна, администраторот преминува на [wiki:UseCase014 UC014] за да ги распореди професорите.
     44
     45=== Алтернативни текови
     46
     47 * '''4а.''' Семестарот веќе е отворен - ограничувањето UNIQUE (year, type) го одбива записот.
     48
     49=== Забелешки
     50
     51 * Типот на семестар е набројувачки тип semester_type со вредности 'summer' и 'winter'.