=== Детален Use Case 2: Обработка на нова продажба === '''Актер:''' Sales Personnel (Продажен персонал) '''Цел:''' Да се изврши продажба на производ на клиент, да се евидентира во базата и да се ажурира залихата. || '''Чекор''' || '''Опис (Дијалог)''' || '''SQL Команда''' || || 1 || '''Актер:''' Го отвора екранот за продажба и го внесува телефонскиот број на клиентот. || `SELECT * FROM customer WHERE phone = '+389 70 123 456';` || || 2 || '''Систем:''' Ги прикажува информациите за клиентот на екранот. || - || || 3 || '''Актер:''' Го внесува производот за продажба (SKU: DELL-24-IPS). || `SELECT product_id, name, unit_price FROM product WHERE sku = 'DELL-24-IPS';` || || 4 || '''Систем:''' Ја проверува залихата на производот во наведениот склад (Warehouse ID: 1). || `SELECT quantity_on_hand FROM warehouse_stock WHERE product_id = 1 AND warehouse_id = 1;` || || 5 || '''Систем:''' Доколку залихата е доволна (има 45 парчиња), го додава производот во кошничка. || - || || 6 || '''Актер:''' Го притиска копчето "Заврши продажба". || - || || 7 || '''Систем:''' Прво внесува запис во табелата `sale`. || `INSERT INTO sale (total_amount, user_id, customer_id, warehouse_id) VALUES (9500.00, 3, 1, 1) RETURNING sale_id;` || || 8 || '''Систем:''' Со вратеното ID го додава производот во табелата `sale_item`. || `INSERT INTO sale_item (sale_id, product_id, quantity, unit_price_at_sale) VALUES (3, 1, 1, 9500.00);` || || 9 || '''Систем:''' Ја намалува залихата во складот. || `UPDATE warehouse_stock SET quantity_on_hand = quantity_on_hand - 1 WHERE warehouse_id = 1 AND product_id = 1;` ||