wiki:UseCase0004

Version 1 (modified by 201178, 2 weeks ago) ( diff )

--

UseCase0004 - Процесирање на плаќање

Актер иницијатор: Келнер

Други актери: нема

Опис

Келнерот го процесира плаќањето на нарачката. Системот ја пресметува вкупната сума, го внесува плаќањето, ја ажурира состојбата на нарачката на „платена", ја ослободува масата и генерира фактура.

Сценарио

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