= UseCase0004 - Процесирање на плаќање = '''Актер иницијатор:''' Келнер '''Други актери:''' нема == Опис == Келнерот го процесира плаќањето на нарачката. Системот ја пресметува вкупната сума, го внесува плаќањето, ја ажурира состојбата на нарачката на „платена", ја ослободува масата и генерира фактура. == Сценарио == 1. Келнерот избира нарачка за плаќање (order_id = 8). 2. Системот ја пресметува вкупната сума: {{{ SELECT SUM(quantity * unit_price) AS total FROM project.order_item WHERE order_id = 8; }}} 3. Системот ја прикажува сумата и ги нуди методите на плаќање (кеш, картичка, трансфер). 4. Келнерот избира метод (на пр. „кеш") и потврдува. 5. Системот го внесува плаќањето: {{{ INSERT INTO project.payment (order_id, amount, method) VALUES (8, 160.00, 'кеш') RETURNING payment_id; }}} 6. Системот генерира фактура: {{{ INSERT INTO project.invoice (payment_id, invoice_number) VALUES (currval('project.payment_payment_id_seq'), 'INV-2026-0008') RETURNING invoice_id, invoice_number; }}} 7. Системот ја ажурира состојбата на нарачката: {{{ UPDATE project.orders SET status = 'платена' WHERE order_id = 8; }}} 8. Системот ја ослободува масата: {{{ UPDATE project.restaurant_table SET status = 'слободна' WHERE table_id = (SELECT table_id FROM project.orders WHERE order_id = 8); }}} 9. Системот го запишува настанот: {{{ INSERT INTO project.audit_log (user_id, action, entity_name) VALUES (3, 'PAY_ORDER', 'payment'); }}} 10. Системот прикажува потврда и ја печати фактурата.