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