Changes between Initial Version and Version 1 of UseCase0006


Ignore:
Timestamp:
09/17/26 01:58:19 (2 weeks ago)
Author:
201178
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase0006

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