Changes between Version 1 and Version 2 of UseCase008


Ignore:
Timestamp:
09/15/26 11:39:38 (2 weeks ago)
Author:
233149
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase008

    v1 v2  
    1 == UseCase008 - Генерирање и преземање на документ (PDF)
     1== UC008 - Генерирање и преземање на документ
    22
    3 === Актери
    4  * Најавен студент
     3'''Иницијален актер:''' Студент
    54
    6 === Чекори
    7  1. Студентот навигира до страната „Документи“
    8  2. Студентот избира тип на документ (уверение, потврда, итн.)
    9  3. Студентот кликнува на копчето „Генерирај документ“
    10  4. Системот креира нов запис за документот со архивски број и датум
    11  5. Студентот кликнува на копчето за преземање
    12  6. Системот генерира PDF документ и го презема на уредот на студентот
     5'''Други актери:''' -
     6
     7Студентот сака да побара документ, на пример уверение за положени испити или
     8потврда за редовен студент, и да го преземе како PDF со своите реални податоци.
     9
     10=== Сценарио
     11
     12 1. Студентот избира '''Документи''' од менито.
     13
     14 2. Системот ги презема достапните видови документи со нивната цена.
     15{{{#!sql
     16SELECT id, type, cost
     17FROM project.documents
     18ORDER BY type;
     19}}}
     20
     21 3. Студентот избира вид документ и потврдува.
     22
     23 4. Системот ја запишува врската меѓу студентот и документот. Доколку студентот веќе го побарал истиот документ, повторното барање не создава дупликат, бидејќи примарниот клуч е составен од двете колони.
     24{{{#!sql
     25INSERT INTO project.user_documents (user_id, document_id)
     26VALUES (1, 1)
     27ON CONFLICT (user_id, document_id) DO NOTHING;
     28}}}
     29
     30 5. Системот го презема текстот на документот и податоците на студентот кои се вметнуваат во него.
     31{{{#!sql
     32SELECT d.type, d.body, d.cost,
     33       u.name, u.surname, u."index", u.embg, u.enrollment_year
     34FROM project.documents d
     35CROSS JOIN project.users u
     36WHERE d.id = 1 AND u.id = 1;
     37}}}
     38
     39 6. За уверение за положени испити, системот ги презема и положените предмети, како во [wiki:UseCase006 UC006].
     40
     41 7. Системот го генерира PDF документот и го испраќа на преземање.
     42
     43 8. Студентот подоцна може да ги види сите претходно побарани документи.
     44{{{#!sql
     45SELECT d.type, d.cost
     46FROM project.user_documents ud
     47JOIN project.documents d ON d.id = ud.document_id
     48WHERE ud.user_id = 1
     49ORDER BY d.type;
     50}}}
     51
     52=== Забелешки
     53
     54 * Табелата user_documents е врска M:N меѓу users и documents, со составен примарен клуч (user_id, document_id).
     55 * Цената се чува во documents, па измена на цената важи за сите идни барања.