FlowPOS · tochka
hi-fi · схема L1 · BPMN

E-12 — Акт списания и HACCP

Процесс Волны 2. Один пул-дорожка Завсклад, гейт решения «Остаток > 0?» и ветка «возврат с признаком „на склад: нет“ → завсклад заводит акт списания» (авто-акта нет, D-59). Граф 1:1 с Mermaid-каноном warehouse/write-off.md. Правила — business-rules §8.

ДисплейFraunces
ИнтерфейсHanken Grotesk
Цифры / кодыJetBrains Mono
1 · Роль · связки · danger-оп Контекст процесса Роль-исполнитель, поводы завести акт (акт заводит человек, D-59) и одна опасная операция. Правила — business-rules §8.
Роль-исполнитель Завсклад — создаёт акт списания, указывает склад/счёт/концепцию, добавляет товары и проводит акт.
Связки Возврат, не вернувшийся на склад (E-04 / E-06) → повод завести акт; заводит его завсклад. Служебное питание — не повод извне, а счёт списания в шапке акта (D-99).
△ Опасная операция Проведение акта (PROVWO): стоимость по ТТК уходит в убыток — необратимо без обратного акта. Повод-вход — возврат с признаком «на склад: нет» или собственное решение завсклада (порча, недостача, HACCP, служебное питание; сам акт заводит и проводит человек (D-59).
Гонка остатка Гейт «Остаток > 0 в этот момент?» ловит race-condition: между добавлением товара и проведением акта позицию успели продать → блок «нечего списывать». При проведении списываются ингредиенты по ТТК → стоимость уходит в убыток. Альтитуда → слой 4/5: транзакционная блокировка остатка, идемпотентность проведения акта, формат акта утилизации HACCP.
2 · Пулы-дорожки Дорожка-исполнитель Один пул канона: роль Завсклад. Тип узла = цвет + метка-kicker + значок-форма (не цветом одним).
Завскладроль-исполнитель
◆ задачи + гейт
S1Создать акт списаниясобытие
H1Указать: склад · счёт списания (стоимость товара → расход) · концепциязадача
H2Добавить товары + количествозадача
GCОстаток > 0 в этот момент?гейт
BLKБлок: нечего списыватьrace — успели продатьблок
PROVПровести актзадача
WOСписать ингредиенты по ТТК→ стоимость в убытокзадача
D1Списание проведенособытие
H0Возврат с признаком «на склад: нет»повод завести акт (D-59)событие
MANОстаток не восстановился →
завсклад заводит акт списанияакт заводит человек, авто-акта нет
задача
3 · BPMN-граф Поток процесса Режим fallback-mermaid (§5/§7): тёплая тема поверх канона. Граф-паритет — узлы/гейт/рёбра 1:1 с write-off.md.
событие задача / шаг гейт (решение) danger-оп / блок sequence flow вход-триггер (HACCP)
%%{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 WH["Завсклад"]
        S1(["Создать акт списания"]) --> H1["Указать: склад · счёт списания
(стоимость товара → расход) · концепция"] H1 --> H2["Добавить товары + количество"] H2 --> GC{"Остаток > 0
в этот момент?"} GC -->|нет| BLK["Блок: нечего списывать
(race — успели продать)"] GC -->|да| PROV["Провести акт"] PROV --> WO["Списать ингредиенты по ТТК
→ стоимость в убыток"] WO --> D1(["Списание проведено"]) H0(["Возврат с признаком «на склад: нет»
(блюдо собрано при отдаче / порча / HACCP)"]) --> MAN["Остаток не восстановился →
завсклад заводит акт списания"] MAN --> H2 end 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 H1,H2,PROV,WO task; class GC gate; class S1,H0,D1 event; class BLK danger; class MAN task; style WH fill:#fbf7ef,stroke:#e2d6c1;
◍ fallback-mermaid Санкционировано design-system §5/§7 для всех L1: гейт + двойной вход в «Провести акт» (обычный поток и HACCP-вход) + danger-ветка делают hand-authored CSS-grid хрупким.
Ветки канона. (1) Возврат, не вернувшийся на склад — обычная ветка, не danger: H0 (признак «на склад: нет» — блюдо собрано при отдаче, порча, HACCP) → MAN завсклад заводит акт списания, далее обычным путём H2GCPROV. Авто-акта нет (D-59). (2) Гонка остатка: гейт GC «нет» → BLK блок «нечего списывать» (позицию успели продать между добавлением и проведением). Проведённое списание уводит стоимость ингредиентов по ТТК в убыток — операция необратима без обратного акта.