Путь роли по экранам (user-flow). Узлы — экраны S-NN, события и решения; тип кодируется цветом (словарь §5). Внешние системы — пунктиром. Граф 1:1 с Mermaid-каноном cashier-refund.md.
user-flows/cashier-refund.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 --> OPENRET(["Нажать «Возврат / Ticket»"])
OPENRET --> S07["S-07 · Возврат — выбор чека/позиции"]
S07 --> FPD{"ФПД найден и валиден?
(скан QR / номер чека)"}
FPD -->|"нет / без чека"| ESC["Блок на кассе →
эскалация в бухгалтерию"]
FPD -->|да| RIGHT{"Есть право
на возврат?"}
RIGHT -->|да| SHIFT{"Чек из текущей смены?"}
RIGHT -->|нет| AUTH["Авторизация:
прокатка MSR-карты"]
AUTH --> SHIFT
SHIFT -->|"да — текущая смена"| STO["Сторнировать чек / позицию"]
SHIFT -->|"нет — прошлая (закрытая) смена"| GPAY{"Исходная оплата?"}
GPAY -->|"карта / Kaspi QR"| AUM["Авторизация менеджера →
реверс на карту (эквайер) + сторно WebKassa"]
GPAY -->|"наличные"| XBLK["Cross-shift Block: нал запрещён →
безнал (перевод) через бухгалтерию"]
AUM --> D1
XBLK --> ACC["Безнал (перевод) через бухгалтерию"]
STO -. "сторно" .-> WK["WebKassa"]
AUM -. "возврат-чек (протокол — business-rules §5)" .-> WK
WK -. "подтверждение" .-> STO
STO --> SPLIT{"Сплит-возврат?"}
SPLIT -->|да| PRIO["Приоритет — вернуть на карту;
бонусы не трогаем"]
SPLIT -->|нет| PAY["Выдать деньги"]
PRIO --> PAY
PAY --> D1(["Возврат оформлен"])
ACC --> D2(["Возврат оформлен —
вне кассы, через бухгалтерию"])
ESC --> D3(["Возврат вне кассы"])
D1 --> S02
D2 --> S02
D3 --> S02
classDef screen fill:#e5ecf6,stroke:#5b7bb0,color:#243a5f;
classDef ext fill:#f6efe2,stroke:#94866f,color:#5a4d3d,stroke-dasharray:5 3;
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 warn fill:#faedd0,stroke:#d99a2b,color:#7a4d06;
classDef stop fill:#f6dcd5,stroke:#bc3f2b,color:#7a241c;
class S02,S07,STO,PRIO,PAY screen;
class WK ext;
class FPD,RIGHT,SHIFT,SPLIT,GPAY gate;
class AUTH,AUM auth;
class XBLK,ACC warn;
class ESC stop;
class Start,OPENRET,D1,D2,D3 event;