Changes between Initial Version and Version 1 of UseCase0005


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

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase0005

    v1 v1  
     1= UseCase0005 - Затворање на смена =
     2
     3'''Актер иницијатор:''' Менаџер
     4
     5'''Други актери:''' нема
     6
     7== Опис ==
     8
     9Менаџерот ја затвора тековната смена. Системот ги собира сите нарачки со статус „платена" во тековната смена, го пресметува вкупниот износ и бројот на нарачки, го внесува затворањето на смената и ја означува смената како завршена.
     10
     11== Сценарио ==
     12
     13 1. Менаџерот отвора екранот за затворање на смена.
     14
     15 2. Системот ја прикажува активната смена:
     16{{{
     17SELECT shift_id, user_id, start_time
     18FROM project.shift
     19WHERE end_time IS NULL;
     20}}}
     21
     22 3. Системот ги собира сите платени нарачки во таа смена:
     23{{{
     24SELECT o.order_id, o.created_at, p.amount, p.method
     25FROM project.orders o
     26JOIN project.payment p ON p.order_id = o.order_id
     27WHERE o.status = 'платена'
     28  AND o.created_at >= (SELECT start_time FROM project.shift WHERE end_time IS NULL);
     29}}}
     30
     31 4. Системот го пресметува вкупниот износ и бројот на нарачки:
     32{{{
     33SELECT COUNT(*) AS order_count, COALESCE(SUM(p.amount), 0) AS total
     34FROM project.orders o
     35JOIN project.payment p ON p.order_id = o.order_id
     36WHERE o.status = 'платена'
     37  AND o.created_at >= (SELECT start_time FROM project.shift WHERE end_time IS NULL);
     38}}}
     39
     40 5. Системот го прикажува извештајот на менаџерот за потврда.
     41
     42 6. Менаџерот потврдува.
     43
     44 7. Системот го внесува затворањето на смената:
     45{{{
     46INSERT INTO project.shift_close (closed_by, total, order_count)
     47VALUES (2, 3500.00, 12)
     48RETURNING shift_id, closed_at;
     49}}}
     50
     51 8. Системот ја означува смената како завршена:
     52{{{
     53UPDATE project.shift
     54SET end_time = now()
     55WHERE end_time IS NULL;
     56}}}
     57
     58 9. Системот го запишува настанот:
     59{{{
     60INSERT INTO project.audit_log (user_id, action, entity_name)
     61VALUES (2, 'CLOSE_SHIFT', 'shift_close');
     62}}}
     63
     64 10. Системот прикажува потврда.