UseCase0005 - Затворање на смена
Актер иницијатор: Менаџер
Други актери: нема
Опис
Менаџерот ја затвора тековната смена. Системот ги собира сите нарачки со статус „платена" во тековната смена, го пресметува вкупниот износ и бројот на нарачки, го внесува затворањето на смената и ја означува смената како завршена.
Сценарио
- Менаџерот отвора екранот за затворање на смена.
- Системот ја прикажува активната смена:
SELECT shift_id, user_id, start_time FROM project.shift WHERE end_time IS NULL;
- Системот ги собира сите платени нарачки во таа смена:
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);
- Системот го пресметува вкупниот износ и бројот на нарачки:
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);
- Системот го прикажува извештајот на менаџерот за потврда.
- Менаџерот потврдува.
- Системот го внесува затворањето на смената:
INSERT INTO project.shift_close (closed_by, total, order_count) VALUES (2, 3500.00, 12) RETURNING shift_id, closed_at;
- Системот ја означува смената како завршена:
UPDATE project.shift SET end_time = now() WHERE end_time IS NULL;
- Системот го запишува настанот:
INSERT INTO project.audit_log (user_id, action, entity_name) VALUES (2, 'CLOSE_SHIFT', 'shift_close');
- Системот прикажува потврда.
Last modified
2 weeks ago
Last modified on 09/17/26 01:58:08
Note:
See TracWiki
for help on using the wiki.
