| Version 1 (modified by , 2 weeks ago) ( diff ) |
|---|
UseCase0004 - Процесирање на плаќање
Актер иницијатор: Келнер
Други актери: нема
Опис
Келнерот го процесира плаќањето на нарачката. Системот ја пресметува вкупната сума, го внесува плаќањето, ја ажурира состојбата на нарачката на „платена", ја ослободува масата и генерира фактура.
Сценарио
- Келнерот избира нарачка за плаќање (order_id = 8).
- Системот ја пресметува вкупната сума:
SELECT SUM(quantity * unit_price) AS total FROM project.order_item WHERE order_id = 8;
- Системот ја прикажува сумата и ги нуди методите на плаќање (кеш, картичка, трансфер).
- Келнерот избира метод (на пр. „кеш") и потврдува.
- Системот го внесува плаќањето:
INSERT INTO project.payment (order_id, amount, method) VALUES (8, 160.00, 'кеш') RETURNING payment_id;
- Системот генерира фактура:
INSERT INTO project.invoice (payment_id, invoice_number) VALUES (currval('project.payment_payment_id_seq'), 'INV-2026-0008') RETURNING invoice_id, invoice_number;
- Системот ја ажурира состојбата на нарачката:
UPDATE project.orders SET status = 'платена' WHERE order_id = 8;
- Системот ја ослободува масата:
UPDATE project.restaurant_table SET status = 'слободна' WHERE table_id = (SELECT table_id FROM project.orders WHERE order_id = 8);
- Системот го запишува настанот:
INSERT INTO project.audit_log (user_id, action, entity_name) VALUES (3, 'PAY_ORDER', 'payment');
- Системот прикажува потврда и ја печати фактурата.
Note:
See TracWiki
for help on using the wiki.
