Changes between Initial Version and Version 1 of UseCase0003


Ignore:
Timestamp:
09/17/26 01:57:52 (2 weeks ago)
Author:
201178
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase0003

    v1 v1  
     1= UseCase0003 - Додавање на ставка во нарачка =
     2
     3'''Актер иницијатор:''' Келнер
     4
     5'''Други актери:''' нема
     6
     7== Опис ==
     8
     9Келнерот додава производ од менито во постоечка нарачка. Системот проверува дали производот е активен, го одредува следниот редоследен број на ставката, ја внесува ставката со тековната цена и ја намалува залихата на производот.
     10
     11== Сценарио ==
     12
     13 1. Келнерот е на екранот за нарачка (order_id = 8).
     14
     15 2. Системот ги прикажува достапните производи од менито:
     16{{{
     17SELECT p.product_id, p.name, p.price, c.name AS category
     18FROM project.product p
     19JOIN project.category c ON p.category_id = c.category_id
     20WHERE p.active = TRUE
     21ORDER BY c.name, p.name;
     22}}}
     23
     24 3. Келнерот избира производ (на пр. Еспресо) и внесува количина.
     25
     26 4. Системот го одредува следниот редоследен број на ставката:
     27{{{
     28SELECT COALESCE(MAX(item_number), 0) + 1 AS next_item
     29FROM project.order_item
     30WHERE order_id = 8;
     31}}}
     32
     33 5. Системот ја внесува ставката:
     34{{{
     35INSERT INTO project.order_item (order_id, item_number, product_id, quantity, unit_price, status)
     36VALUES (8, 1, 1, 2, 80.00, 'ПОРАЧАНО');
     37}}}
     38
     39 6. Системот ја намалува залихата на производот:
     40{{{
     41INSERT INTO project.inventory (product_id, quantity_change, operation_type)
     42VALUES (1, -2, 'излез');
     43}}}
     44
     45 7. Системот ја прикажува ажурираната листа на ставки:
     46{{{
     47SELECT oi.item_number, p.name, oi.quantity, oi.unit_price,
     48       oi.quantity * oi.unit_price AS subtotal, oi.status
     49FROM project.order_item oi
     50JOIN project.product p ON p.product_id = oi.product_id
     51WHERE oi.order_id = 8
     52ORDER BY oi.item_number;
     53}}}
     54
     55 8. Системот го запишува настанот:
     56{{{
     57INSERT INTO project.audit_log (user_id, action, entity_name)
     58VALUES (3, 'ADD_ORDER_ITEM', 'order_item');
     59}}}