= UseCase0004 Implementation - Процесирање на плаќање = '''Актер иницијатор:''' Келнер '''Други актери:''' нема == Опис == Келнерот го процесира плаќањето на нарачката. Системот ја пресметува вкупната сума, го внесува плаќањето, ја ажурира состојбата на нарачката на „ПЛАТЕНА", ја ослободува масата, го намалува залихот и генерира фактура. == Сценарио == 1. Келнерот избира опција „Наплати" од екранот за нарачка. 2. Системот ја пресметува вкупната сума: {{{ SELECT COALESCE(SUM(quantity * unit_price), 0) FROM order_item WHERE order_id = $1 }}} 3. Системот ја прикажува сумата и ги нуди методите на плаќање (КЕШ, КАРТИЧКА). [[Image(screenshot_4_1.png)]] 4. Келнерот избира метод и потврдува. 5. Системот го внесува плаќањето: {{{ INSERT INTO payment ( order_id, amount, method ) VALUES ( $1, $2, $3 ) RETURNING payment_id }}} 6. Системот ја ажурира состојбата на нарачката: {{{ UPDATE orders SET status = 'ПЛАТЕНА' WHERE order_id = $1 }}} 7. Системот го намалува залихот преку функцијата `update_stock()`. 8. Системот ја ослободува масата: {{{ UPDATE restaurant_table SET status = 'СЛОБОДНА' WHERE table_id = $1 }}} 9. Системот генерира фактура: {{{ INSERT INTO invoice ( payment_id, invoice_number ) VALUES ( $1, $2 ) }}} 10. Системот прикажува потврда. [[Image(screenshot_4_2.png)]] [[Image(screenshot_4_3.png)]]