| Version 1 (modified by , 2 weeks ago) ( diff ) |
|---|
UseCase0003 - Додавање на ставка во нарачка
Актер иницијатор: Келнер
Други актери: нема
Опис
Келнерот додава производ од менито во постоечка нарачка. Системот проверува дали производот е активен, го одредува следниот редоследен број на ставката, ја внесува ставката со тековната цена и ја намалува залихата на производот.
Сценарио
- Келнерот е на екранот за нарачка (order_id = 8).
- Системот ги прикажува достапните производи од менито:
SELECT p.product_id, p.name, p.price, c.name AS category FROM project.product p JOIN project.category c ON p.category_id = c.category_id WHERE p.active = TRUE ORDER BY c.name, p.name;
- Келнерот избира производ (на пр. Еспресо) и внесува количина.
- Системот го одредува следниот редоследен број на ставката:
SELECT COALESCE(MAX(item_number), 0) + 1 AS next_item FROM project.order_item WHERE order_id = 8;
- Системот ја внесува ставката:
INSERT INTO project.order_item (order_id, item_number, product_id, quantity, unit_price, status) VALUES (8, 1, 1, 2, 80.00, 'ПОРАЧАНО');
- Системот ја намалува залихата на производот:
INSERT INTO project.inventory (product_id, quantity_change, operation_type) VALUES (1, -2, 'излез');
- Системот ја прикажува ажурираната листа на ставки:
SELECT oi.item_number, p.name, oi.quantity, oi.unit_price, oi.quantity * oi.unit_price AS subtotal, oi.status FROM project.order_item oi JOIN project.product p ON p.product_id = oi.product_id WHERE oi.order_id = 8 ORDER BY oi.item_number;
- Системот го запишува настанот:
INSERT INTO project.audit_log (user_id, action, entity_name) VALUES (3, 'ADD_ORDER_ITEM', 'order_item');
Note:
See TracWiki
for help on using the wiki.
