Процесс возврата Волны 1. Пул-дорожка Кассир и внешняя система WebKassa (сторно / реверс чека), пять гейтов решений и danger-ветка «возврат без права → авторизация MSR-картой» + Cross-shift Cash Block (нал на кассе запрещён). Граф 1:1 с Mermaid-каноном front/refund.md.
business-rules §5.
%%{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",
"tertiaryColor":"#f6efe2"
},
"flowchart":{"curve":"basis","nodeSpacing":42,"rankSpacing":52,"htmlLabels":true}
}}%%
flowchart TD
subgraph Cash["Кассир"]
S1(["Нажать «Возврат»"]) --> GR{"Есть право
на возврат?"}
GR -->|нет| AU["Авторизация: прокатка MSR-карты"]
AU --> GF{"ФПД валиден?
(скан QR / ввод)"}
GR -->|да| GF
GF -->|"нет / без чека"| ESC["Блок на кассе →
эскалация в бухгалтерию"]
GF -->|да| GS{"Чек из текущей
смены?"}
GS -->|да| STO["Сторнировать чек"]
GS -->|"нет — прошлая смена"| GPAY{"Исходная оплата?"}
GPAY -->|"карта / Kaspi QR"| AUM["Авторизация менеджера →
реверс на карту (эквайер)"]
GPAY -->|"наличные"| XBLK["Cross-shift Block: нал запрещён →
безнал (перевод) через бухгалтерию"]
AUM --> D1
XBLK --> D2
STO --> GSPL{"Сплит-возврат?"}
GSPL -->|да| PRIO["Приоритет — вернуть на карту;
бонусы не трогаем"]
GSPL -->|нет| PAY["Выдать деньги"]
PRIO --> PAY
PAY --> D1(["Возврат оформлен"])
ESC --> D2(["Возврат вне кассы"])
end
subgraph Ext["Внешн. система"]
WK["WebKassa"]
end
STO -. "сторно чека" .-> WK
AUM -. "возврат чека" .-> WK
WK -. "подтверждение" .-> STO
classDef actor fill:#fbf7ef,stroke:#94866f,color:#241b12,stroke-dasharray:5 3;
classDef ext fill:#e5ecf6,stroke:#5b7bb0,color:#243a5f;
classDef gate fill:#f8e8cf,stroke:#c9791f,color:#7a4a10;
classDef event fill:#dcefe1,stroke:#3c8a5b,color:#1c4a30;
classDef task fill:#f6e6cd,stroke:#d5842a,color:#241b12;
classDef danger fill:#f6dcd5,stroke:#bc3f2b,color:#7a241c;
class STO,PRIO,PAY task;
class WK ext;
class GR,GF,GS,GSPL,GPAY gate;
class XBLK,AU,AUM,ESC danger;
class S1,D1,D2 event;
style Cash fill:#fbf7ef,stroke:#e2d6c1;
style Ext fill:#f6efe2,stroke:#d0c1a6;
GR «нет» → AU авторизация прокаткой MSR-карты перед проверкой ФПД. (2) Прошлая смена + оплата картой/Kaspi → AUM авторизация менеджера и реверс на эквайера. (3) Прошлая смена + наличные → XBLK Cross-shift Cash Block: нал на кассе запрещён (ящик привязан к смене), возврат уходит безналом через бухгалтерию. (4) Невалидный ФПД / без чека → ESC блок на кассе и эскалация. Все опасные ветки протоколируются вне обычного flow.