wiki:UseCase0003

UseCase0003 - Додавање на ставка во нарачка

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

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

Опис

Келнерот додава производ од менито во постоечка нарачка. Системот проверува дали производот е активен, го одредува следниот редоследен број на ставката, ја внесува ставката со тековната цена и ја намалува залихата на производот.

Сценарио

  1. Келнерот е на екранот за нарачка (order_id = 8).
  1. Системот ги прикажува достапните производи од менито:
    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;
    
  1. Келнерот избира производ (на пр. Еспресо) и внесува количина.
  1. Системот го одредува следниот редоследен број на ставката:
    SELECT COALESCE(MAX(item_number), 0) + 1 AS next_item
    FROM project.order_item
    WHERE order_id = 8;
    
  1. Системот ја внесува ставката:
    INSERT INTO project.order_item (order_id, item_number, product_id, quantity, unit_price, status)
    VALUES (8, 1, 1, 2, 80.00, 'ПОРАЧАНО');
    
  1. Системот ја намалува залихата на производот:
    INSERT INTO project.inventory (product_id, quantity_change, operation_type)
    VALUES (1, -2, 'излез');
    
  1. Системот ја прикажува ажурираната листа на ставки:
    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;
    
  1. Системот го запишува настанот:
    INSERT INTO project.audit_log (user_id, action, entity_name)
    VALUES (3, 'ADD_ORDER_ITEM', 'order_item');
    
Last modified 2 weeks ago Last modified on 09/17/26 01:57:52
Note: See TracWiki for help on using the wiki.