| | 1 | = UseCase0004 - Процесирање на плаќање = |
| | 2 | |
| | 3 | '''Актер иницијатор:''' Келнер |
| | 4 | |
| | 5 | '''Други актери:''' нема |
| | 6 | |
| | 7 | == Опис == |
| | 8 | |
| | 9 | Келнерот го процесира плаќањето на нарачката. Системот ја пресметува вкупната сума, го внесува плаќањето, ја ажурира состојбата на нарачката на „платена", ја ослободува масата и генерира фактура. |
| | 10 | |
| | 11 | == Сценарио == |
| | 12 | |
| | 13 | 1. Келнерот избира нарачка за плаќање (order_id = 8). |
| | 14 | |
| | 15 | 2. Системот ја пресметува вкупната сума: |
| | 16 | {{{ |
| | 17 | SELECT SUM(quantity * unit_price) AS total |
| | 18 | FROM project.order_item |
| | 19 | WHERE order_id = 8; |
| | 20 | }}} |
| | 21 | |
| | 22 | 3. Системот ја прикажува сумата и ги нуди методите на плаќање (кеш, картичка, трансфер). |
| | 23 | |
| | 24 | 4. Келнерот избира метод (на пр. „кеш") и потврдува. |
| | 25 | |
| | 26 | 5. Системот го внесува плаќањето: |
| | 27 | {{{ |
| | 28 | INSERT INTO project.payment (order_id, amount, method) |
| | 29 | VALUES (8, 160.00, 'кеш') |
| | 30 | RETURNING payment_id; |
| | 31 | }}} |
| | 32 | |
| | 33 | 6. Системот генерира фактура: |
| | 34 | {{{ |
| | 35 | INSERT INTO project.invoice (payment_id, invoice_number) |
| | 36 | VALUES (currval('project.payment_payment_id_seq'), 'INV-2026-0008') |
| | 37 | RETURNING invoice_id, invoice_number; |
| | 38 | }}} |
| | 39 | |
| | 40 | 7. Системот ја ажурира состојбата на нарачката: |
| | 41 | {{{ |
| | 42 | UPDATE project.orders |
| | 43 | SET status = 'платена' |
| | 44 | WHERE order_id = 8; |
| | 45 | }}} |
| | 46 | |
| | 47 | 8. Системот ја ослободува масата: |
| | 48 | {{{ |
| | 49 | UPDATE project.restaurant_table |
| | 50 | SET status = 'слободна' |
| | 51 | WHERE table_id = (SELECT table_id FROM project.orders WHERE order_id = 8); |
| | 52 | }}} |
| | 53 | |
| | 54 | 9. Системот го запишува настанот: |
| | 55 | {{{ |
| | 56 | INSERT INTO project.audit_log (user_id, action, entity_name) |
| | 57 | VALUES (3, 'PAY_ORDER', 'payment'); |
| | 58 | }}} |
| | 59 | |
| | 60 | 10. Системот прикажува потврда и ја печати фактурата. |