= !UseCase: Додавање нов производ = == Актер == Inventory Manager (Менаџер на залихи) == Цел == Inventory Manager сака да додаде нов производ во системот Stock Master. == Предуслови == * Inventory Manager мора да биде најавен во системот * Мора да постојат категории и добавувачи во системот == Главен тек == * Inventory Manager го отвора Dashboard-от [[Image(product1.png, 800px)]] * Inventory Manager кликнува на "Products" од главното мени * Системот го прикажува екранот "Product Management" со листа на сите производи [[Image(product2.png, 800px)]] * Inventory Manager кликнува на копчето "+ Add New Product" * Системот го прикажува екранот за додавање нов производ [[Image(product3.png, 800px)]] * Inventory Manager ги внесува потребните информации: * Product Name (пр: Wireless Bluetooth Earbuds Pro) * SKU - Stock Keeping Unit (пр: WBP-2024-MK) * Description (пр: Premium noise-cancelling wireless earbuds with 30-hour battery life, IPX7 waterproof rating, and clear voice call quality.) * Category - избира од паѓачко мени (пр: IT Oprema) * Supplier - избира од паѓачко мени (пр: Anhoch PC Market) * Unit Price (MKD) (пр: 2,499.00) * Reorder Level (пр: 20) * Inventory Manager го штиклира полето "Active" за да го активира производот * Inventory Manager кликнува на копчето "Save" * Системот ги валидира податоците (SKU мора да е уникатно) [[Image(product4.png, 800px)]] * Системот го зачувува новиот производ во базата * Системот прикажува порака за успех * Системот го враќа Inventory Manager на листата со производи каде што новиот производ е прикажан [[Image(product5.png, 800px)]] == Алтернативен тек == * Доколку SKU веќе постои, се прикажува грешка: "SKU already exists" * Доколку некое задолжително поле е празно, се прикажува грешка: "Please fill all required fields" * Доколку Inventory Manager кликне "Cancel", се враќа на листата со производи без зачувување == SQL Команди == {{{#!sql -- 1. Преземање на категориите SELECT category_id, name FROM category; -- 2. Преземање на добавувачите SELECT supplier_id, name FROM supplier; -- 3. Проверка дали SKU е уникатно SELECT COUNT(*) FROM product WHERE sku = 'HP-250-G8'; -- 4. Додавање нов производ INSERT INTO product (name, description, sku, unit_price, reorder_level, category_id, supplier_id, is_active) VALUES ('Laptop HP 250 G8', 'Деловен лаптоп со Intel процесор', 'HP-250-G8', 32000.00, 5, 1, 2, true); -- 5. Прикажување на сите производи SELECT p.product_id, p.name, p.sku, p.unit_price, p.reorder_level, c.name as category, s.name as supplier, p.is_active FROM product p LEFT JOIN category c ON p.category_id = c.category_id LEFT JOIN supplier s ON p.supplier_id = s.supplier_id ORDER BY p.product_id DESC; }}}