wiki:UseCase0006

UseCase0006 - Преглед на дневен извештај

Актер иницијатор: Менаџер

Други актери: нема

Опис

Менаџерот го прегледува дневниот извештај за продажбата. Системот ги собира сите платени нарачки за избраниот датум, ги групира по метод на плаќање и по категорија, и го прикажува вкупниот износ, бројот на нарачки и просечната вредност.

Сценарио

  1. Менаџерот отвора екранот за дневни извештаи.
  1. Системот го прашува датумот (default: денес).
  1. Менаџерот го избира датумот (на пр. 2026-01-12).
  1. Системот го прикажува вкупниот износ и бројот на нарачки за тој ден:
    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';
    
  1. Системот го прикажува износот по метод на плаќање:
    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;
    
  1. Системот го прикажува износот по категорија:
    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;
    
  1. Системот ги прикажува најпродаваните производи:
    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;
    
  1. Менаџерот може да избере да го извезе извештајот или да го види детално.
  1. Системот го запишува настанот:
    INSERT INTO project.audit_log (user_id, action, entity_name)
    VALUES (2, 'VIEW_DAILY_REPORT', 'orders');
    
Last modified 2 weeks ago Last modified on 09/17/26 01:58:19
Note: See TracWiki for help on using the wiki.