wiki:UseCase0005

UseCase0005 - Затворање на смена

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

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

Опис

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

Сценарио

  1. Менаџерот отвора екранот за затворање на смена.
  1. Системот ја прикажува активната смена:
    SELECT shift_id, user_id, start_time
    FROM project.shift
    WHERE end_time IS NULL;
    
  1. Системот ги собира сите платени нарачки во таа смена:
    SELECT o.order_id, o.created_at, p.amount, p.method
    FROM project.orders o
    JOIN project.payment p ON p.order_id = o.order_id
    WHERE o.status = 'платена'
      AND o.created_at >= (SELECT start_time FROM project.shift WHERE end_time IS NULL);
    
  1. Системот го пресметува вкупниот износ и бројот на нарачки:
    SELECT COUNT(*) AS order_count, COALESCE(SUM(p.amount), 0) AS total
    FROM project.orders o
    JOIN project.payment p ON p.order_id = o.order_id
    WHERE o.status = 'платена'
      AND o.created_at >= (SELECT start_time FROM project.shift WHERE end_time IS NULL);
    
  1. Системот го прикажува извештајот на менаџерот за потврда.
  1. Менаџерот потврдува.
  1. Системот го внесува затворањето на смената:
    INSERT INTO project.shift_close (closed_by, total, order_count)
    VALUES (2, 3500.00, 12)
    RETURNING shift_id, closed_at;
    
  1. Системот ја означува смената како завршена:
    UPDATE project.shift
    SET end_time = now()
    WHERE end_time IS NULL;
    
  1. Системот го запишува настанот:
    INSERT INTO project.audit_log (user_id, action, entity_name)
    VALUES (2, 'CLOSE_SHIFT', 'shift_close');
    
  1. Системот прикажува потврда.
Last modified 2 weeks ago Last modified on 09/17/26 01:58:08
Note: See TracWiki for help on using the wiki.