| | 1 | = UseCase0006 - Преглед на дневен извештај = |
| | 2 | |
| | 3 | '''Актер иницијатор:''' Менаџер |
| | 4 | |
| | 5 | '''Други актери:''' нема |
| | 6 | |
| | 7 | == Опис == |
| | 8 | |
| | 9 | Менаџерот го прегледува дневниот извештај за продажбата. Системот ги собира сите платени нарачки за избраниот датум, ги групира по метод на плаќање и по категорија, и го прикажува вкупниот износ, бројот на нарачки и просечната вредност. |
| | 10 | |
| | 11 | == Сценарио == |
| | 12 | |
| | 13 | 1. Менаџерот отвора екранот за дневни извештаи. |
| | 14 | |
| | 15 | 2. Системот го прашува датумот (default: денес). |
| | 16 | |
| | 17 | 3. Менаџерот го избира датумот (на пр. 2026-01-12). |
| | 18 | |
| | 19 | 4. Системот го прикажува вкупниот износ и бројот на нарачки за тој ден: |
| | 20 | {{{ |
| | 21 | SELECT COUNT(*) AS order_count, |
| | 22 | COALESCE(SUM(p.amount), 0) AS total_amount, |
| | 23 | ROUND(AVG(p.amount), 2) AS avg_amount |
| | 24 | FROM project.orders o |
| | 25 | JOIN project.payment p ON p.order_id = o.order_id |
| | 26 | WHERE o.status = 'платена' |
| | 27 | AND DATE(o.created_at) = '2026-01-12'; |
| | 28 | }}} |
| | 29 | |
| | 30 | 5. Системот го прикажува износот по метод на плаќање: |
| | 31 | {{{ |
| | 32 | SELECT p.method, COUNT(*) AS count, SUM(p.amount) AS total |
| | 33 | FROM project.payment p |
| | 34 | JOIN project.orders o ON o.order_id = p.order_id |
| | 35 | WHERE o.status = 'платена' |
| | 36 | AND DATE(o.created_at) = '2026-01-12' |
| | 37 | GROUP BY p.method |
| | 38 | ORDER BY total DESC; |
| | 39 | }}} |
| | 40 | |
| | 41 | 6. Системот го прикажува износот по категорија: |
| | 42 | {{{ |
| | 43 | SELECT c.name AS category, |
| | 44 | SUM(oi.quantity) AS items_sold, |
| | 45 | SUM(oi.quantity * oi.unit_price) AS revenue |
| | 46 | FROM project.order_item oi |
| | 47 | JOIN project.product p ON p.product_id = oi.product_id |
| | 48 | JOIN project.category c ON c.category_id = p.category_id |
| | 49 | JOIN project.orders o ON o.order_id = oi.order_id |
| | 50 | WHERE o.status = 'платена' |
| | 51 | AND DATE(o.created_at) = '2026-01-12' |
| | 52 | GROUP BY c.name |
| | 53 | ORDER BY revenue DESC; |
| | 54 | }}} |
| | 55 | |
| | 56 | 7. Системот ги прикажува најпродаваните производи: |
| | 57 | {{{ |
| | 58 | SELECT p.name, SUM(oi.quantity) AS total_qty, |
| | 59 | SUM(oi.quantity * oi.unit_price) AS total_revenue |
| | 60 | FROM project.order_item oi |
| | 61 | JOIN project.product p ON p.product_id = oi.product_id |
| | 62 | JOIN project.orders o ON o.order_id = oi.order_id |
| | 63 | WHERE o.status = 'платена' |
| | 64 | AND DATE(o.created_at) = '2026-01-12' |
| | 65 | GROUP BY p.name |
| | 66 | ORDER BY total_qty DESC |
| | 67 | LIMIT 10; |
| | 68 | }}} |
| | 69 | |
| | 70 | 8. Менаџерот може да избере да го извезе извештајот или да го види детално. |
| | 71 | |
| | 72 | 9. Системот го запишува настанот: |
| | 73 | {{{ |
| | 74 | INSERT INTO project.audit_log (user_id, action, entity_name) |
| | 75 | VALUES (2, 'VIEW_DAILY_REPORT', 'orders'); |
| | 76 | }}} |