= UseCase0006 - Преглед на дневен извештај = '''Актер иницијатор:''' Менаџер '''Други актери:''' нема == Опис == Менаџерот го прегледува дневниот извештај за продажбата. Системот ги собира сите платени нарачки за избраниот датум, ги групира по метод на плаќање и по категорија, и го прикажува вкупниот износ, бројот на нарачки и просечната вредност. == Сценарио == 1. Менаџерот отвора екранот за дневни извештаи. 2. Системот го прашува датумот (default: денес). 3. Менаџерот го избира датумот (на пр. 2026-01-12). 4. Системот го прикажува вкупниот износ и бројот на нарачки за тој ден: {{{ SELECT COUNT(*) AS order_count, COALESCE(SUM(p.amount), 0) AS total_amount, ROUND(AVG(p.amount), 2) AS avg_amount FROM project.orders o JOIN project.payment p ON p.order_id = o.order_id WHERE o.status = 'платена' AND DATE(o.created_at) = '2026-01-12'; }}} 5. Системот го прикажува износот по метод на плаќање: {{{ SELECT p.method, COUNT(*) AS count, SUM(p.amount) AS total FROM project.payment p JOIN project.orders o ON o.order_id = p.order_id WHERE o.status = 'платена' AND DATE(o.created_at) = '2026-01-12' GROUP BY p.method ORDER BY total DESC; }}} 6. Системот го прикажува износот по категорија: {{{ SELECT c.name AS category, SUM(oi.quantity) AS items_sold, SUM(oi.quantity * oi.unit_price) AS revenue FROM project.order_item oi JOIN project.product p ON p.product_id = oi.product_id JOIN project.category c ON c.category_id = p.category_id JOIN project.orders o ON o.order_id = oi.order_id WHERE o.status = 'платена' AND DATE(o.created_at) = '2026-01-12' GROUP BY c.name ORDER BY revenue DESC; }}} 7. Системот ги прикажува најпродаваните производи: {{{ SELECT p.name, SUM(oi.quantity) AS total_qty, SUM(oi.quantity * oi.unit_price) AS total_revenue FROM project.order_item oi JOIN project.product p ON p.product_id = oi.product_id JOIN project.orders o ON o.order_id = oi.order_id WHERE o.status = 'платена' AND DATE(o.created_at) = '2026-01-12' GROUP BY p.name ORDER BY total_qty DESC LIMIT 10; }}} 8. Менаџерот може да избере да го извезе извештајот или да го види детално. 9. Системот го запишува настанот: {{{ INSERT INTO project.audit_log (user_id, action, entity_name) VALUES (2, 'VIEW_DAILY_REPORT', 'orders'); }}}