Путь роли по экранам (user-flow). Узлы — экраны S-NN, события и решения; тип кодируется цветом (словарь §5). Внешние системы — пунктиром. Граф 1:1 с Mermaid-каноном cashier-discount-staffmeal.md.
user-flows/cashier-discount-staffmeal.md.
%%{init:{"theme":"base","themeVariables":{"fontFamily":"Hanken Grotesk, ui-sans-serif, sans-serif","fontSize":"14px","lineColor":"#5a4d3d","primaryColor":"#f6e6cd","primaryBorderColor":"#d5842a","primaryTextColor":"#241b12","clusterBkg":"#fbf7ef","clusterBorder":"#d0c1a6","edgeLabelBackground":"#fbf7ef"},"flowchart":{"curve":"basis","nodeSpacing":40,"rankSpacing":52,"htmlLabels":true,"useMaxWidth":false,"padding":16}}}%%
flowchart TD
Start(["Кассир: применить скидку /
служебное питание"]) --> S02["S-02 · Экран заказа"]
S02 --> S06["S-06 · Скидка / спец-цена / Staff Meal"]
S06 --> TYPE{"Тип скидки?"}
TYPE -->|"обычная / акция"| RIGHT{"Есть право на скидку
для этой позиции?"}
RIGHT -->|да| COMBO{"Комбинируется с уже
применённой скидкой?"}
RIGHT -->|нет| AUTH1["Авторизация: карта менеджера"]
AUTH1 --> COMBO
COMBO -->|нет| BLOCK["Вторую скидку добавить нельзя"]
COMBO -->|да| CALC["Применить % / фикс к чеку
(Zero-Floor: итог ≥ 0)"]
TYPE -->|"Staff Meal (служебное питание, 100%)"| AUTH2["Авторизация: прокатка MSR-карты"]
AUTH2 --> SM["Скидка 100% — чек закрывается нефискально
(авто-акт списания → E-12)"]
TYPE -->|"сотрудник 10%"| EMP["Прокатка карты сотрудника —
скидка фискальна"]
BLOCK --> S02
CALC --> S02
SM --> S02
EMP --> S02
classDef screen fill:#e5ecf6,stroke:#5b7bb0,color:#243a5f;
classDef gate fill:#f8e8cf,stroke:#c9791f,color:#7a4a10;
classDef event fill:#dcefe1,stroke:#3c8a5b,color:#1c4a30;
classDef auth fill:#ede7f6,stroke:#7e57c2,color:#4527a0;
classDef stop fill:#f6dcd5,stroke:#bc3f2b,color:#7a241c;
class S02,S06,CALC,SM,EMP screen;
class TYPE,RIGHT,COMBO gate;
class AUTH1,AUTH2 auth;
class BLOCK stop;
class Start event;