10. Глоссарий
Организация
| Термин | Описание |
|---|---|
| Корпорация | Верхний уровень иерархии — сеть ресторанов. Все данные изолированы по корпорациям |
| Юрлицо | Юридическое лицо (ООО, ИП) в составе корпорации. Используется в документах: накладных, платежах, актах |
| Подразделение | Физическая или логическая единица внутри юрлица: ресторан, склад, кухня, зал |
| Контрагент | Поставщик или клиент — внешняя организация, с которой ведутся расчёты |
| Учётный день | День, который начинается не в полночь, а позже (например, в 06:00) — чтобы ночные продажи относились к предыдущей дате |
| Блокировка периода | Запрет на создание/изменение документов до определённой даты (защита от правок «задним числом») |
Номенклатура
| Термин | Описание |
|---|---|
| Номенклатура | Любой товар в системе: блюдо, ингредиент или полуфабрикат |
| PRODUCT | Готовый товар для продажи (блюдо, напиток). Пробивается в чеке |
| INGREDIENT | Сырьё. Закупается, хранится на складе, расходуется по техкартам |
| SEMI_FINISHED | Полуфабрикат (заготовка). Имеет свою техкарту и используется как ингредиент в других техкартах |
| Группа номенклатуры | Категория товаров (иерархическая). Пример: «Горячие блюда» → «Мясо» |
| SKU | Артикул — уникальный код товара в корпорации |
| PLU-код | Код для быстрого поиска на кассе |
| Модификатор | Добавка к блюду (сироп к кофе, соус к стейку) |
| КБЖУ | Калорийность, белки, жиры, углеводы на единицу товара |
| Единица измерения | кг, г, л, мл, шт, порция |
| Коэффициент конвертации | Пересчёт между единицами: 1 бутылка = 0.5 л, 1 ящик = 6 л |
Техкарты
| Термин | Описание |
|---|---|
| Техкарта | Рецептура блюда или заготовки: список ингредиентов с массой и потерями |
| Выход партии | Сколько готового продукта получается из одного цикла приготовления |
| Брутто | Масса ингредиента до обработки (с учётом будущих потерь) |
| Нетто | Масса ингредиента после обработки (что попадёт в тарелку) |
| Холодные потери (cold loss) | Процент потерь при подготовке: очистка, нарезка, обвалка |
| Горячие потери (hot loss) | Процент потерь при тепловой обработке: варка, жарка, запекание |
| Себестоимость | Сумма стоимостей всех ингредиентов с учётом потерь, делённая на выход партии |
| Каскадный пересчёт | Автоматический пересчёт себестоимости всех блюд при изменении цены ингредиента или заготовки |
| Версия техкарты | Рецептура версионируется: v1, v2, v3… Активна только одна |
Склад
| Термин | Описание |
|---|---|
| Накладная | Документ прихода товара: от поставщика (INCOMING), возврат (RETURN), перемещение (INTERNAL_TRANSFER) |
| Складской остаток (WarehouseStock) | Текущее количество и себестоимость товара на конкретном складе |
| Складская транзакция (InventoryTransaction) | Запись о движении товара: тип, количество, себестоимость, ссылка на документ |
| FIFO | Метод списания «первый пришёл — первый ушёл». Каждая поставка — отдельная партия |
| Средневзвешенная (AVERAGE_COST) | Метод списания, при котором цена усредняется при каждом поступлении |
| Партия (Batch) | При FIFO — группа товара с одной поставки, со своей себестоимостью |
| Инвентаризация | Сверка фактических остатков с учётными. Результат: излишки или недостачи |
| Акт списания | Документ удаления товара со склада (порча, просрочка, утеря) |
| Акт реализации | Документ ручной продажи (не через POS): оптовые и корпоративные заказы |
| Лимит остатков | Минимальный/максимальный остаток товара на складе для мониторинга |
Ценообразование
| Термин | Описание |
|---|---|
| NomenclaturePrice | Цена продажи товара в конкретном подразделении |
| Приказ об изменении цен (PriceChangeOrder) | Документ массового изменения цен. Черновик → Проведён |
| Маржа | Разница между ценой продажи и себестоимостью |
| Процент маржи | Маржа / Цена × 100%. Показывает рентабельность блюда |
POS и кассовые операции
| Термин | Описание |
|---|---|
| POS-терминал | Кассовый терминал, привязанный к подразделению |
| Кассовая смена | Рабочий период кассира: от открытия до закрытия и приёмки |
| Чек | Документ продажи (SALE) или возврата (RETURN) |
| Сплит-оплата | Оплата одного чека несколькими способами (часть наличными, часть картой) |
| Внесение | Деньги вносятся в кассу (размен) |
| Изъятие | Деньги забираются из кассы (инкассация) |
| Приёмка смены | Проверка итогов смены управляющим: ПРИНЯТА / НЕ ПРИНЯТА / ТРЕБУЕТ ПРОВЕРКИ |
| Начальный баланс | Сумма в кассе на момент открытия смены |
Бухгалтерия
| Термин | Описание |
|---|---|
| План счетов | Иерархия бухгалтерских счетов: активы, пассивы, доходы, расходы |
| Проводка | Финансовая операция: деньги уходят с одного счёта (кредит) на другой (дебет) |
| Двойная запись | Принцип: каждая операция затрагивает два счёта, сумма дебета = сумме кредита |
| Дебет | Счёт, на который поступают средства (получатель) |
| Кредит | Счёт, с которого уходят средства (источник) |
| Платёж | Оплата за документ (накладную, акт услуг). Автоматически создаёт проводку |
| Сторнирование | Отмена проводки: создание обратной проводки с той же суммой |
| ПКО | Приходный кассовый ордер — объединение нескольких платежей в один кассовый документ |
| Акт услуг | Документ учёта услуг (аренда, клининг), на основании которого создаётся платёж |
| Категория учёта | Группировка номенклатуры для бухгалтерии: «Основное меню», «Алкоголь» и т.д. |
Синхронизация
| Термин | Описание |
|---|---|
| Outbox | Паттерн: событие записывается в таблицу outbox_events в одной транзакции с изменением данных |
| Outbox Scheduler | Планировщик, который забирает PENDING события и отправляет в Kafka |
| Kafka | Шина сообщений между офисом и кассой |
| CloudEvents | Стандартный формат событий (specversion, type, source, data) |
| Касса | Облачный микросервис между офисом и POS-терминалами |
| inbound_events | Таблица на кассе — все входящие события с автоинкрементным revision |
| revision | Автоинкрементный номер события на кассе. POS запрашивает «всё с revision > N» |
| version | Версия сущности. При синхронизации: если входящий version ≤ текущего — событие пропускается |
| WebSocket | Канал мгновенной доставки событий от кассы к POS |
| /api/sync | REST-эндпоинт для восстановления данных после офлайна |
| Idempotency-Key | Заголовок для гарантии однократной обработки запросов от POS |
Кадры
| Термин | Описание |
|---|---|
| Сотрудник | Работник ресторана, привязанный к должности и подразделению |
| Должность | Позиция в штатном расписании: повар, бармен, официант, управляющий |
| Явка | Запись табеля: время прихода, время ухода, длительность, заработок |
| Ставка оплаты (PaymentRate) | Условия оплаты сотрудника: почасовая ставка или оклад |
| Почасовая ставка (HOURLY) | Фиксированная оплата за каждый час работы |
| Оклад (SALARY) | Фиксированная сумма в месяц, пересчитывается пропорционально часам |
| Рабочие часы месяца | Количество рабочих дней (Пн-Пт) × 8 часов. Используется при расчёте оклада |
| Просроченная явка (OVERDUE) | Явка, не закрытая в течение 24 часов — закрывается автоматически |
Отчётность
| Термин | Описание |
|---|---|
| RevenueReportEntry | Одна строка отчёта по выручке: позиция × метод оплаты × дата |
| Распределение платежей | Пропорциональное разнесение суммы чека по позициям при сплит-оплате |
| Доля платежа | Отношение суммы платежа к общей сумме всех платежей чека |
Накладные (расчёты)
| Термин | Описание |
|---|---|
| НДС | Налог на добавленную стоимость. Ставка 0–100%, рассчитывается от суммы без НДС |
| Сервисные расходы | Доставка, страховка, таможня — распределяются по товарам пропорционально сумме |
| Переотпуск с переоценкой | Пересчёт сумм накладной при изменении фактического количества |
| Отмена подтверждения | Откат складских остатков при отмене подтверждённой накладной/акта |
Общие понятия
| Термин | Описание |
|---|---|
| Мягкое удаление | Запись помечается как удалённая (isDeleted), но физически остаётся в БД. Можно восстановить |
| Аудит-лог | Запись: кто, когда, какое действие совершил. Для критичных операций |
| Decimal | Точные числа для денежных расчётов (не float). Деньги — 2 знака, количества — 3 знака |
| Черновик → Проведён | Стандартный жизненный цикл документов: редактирование → подтверждение (необратимо) |
| ACL (Anti-Corruption Layer) | Изолированный интерфейс для чтения данных из чужого модуля — без прямой зависимости |
| Доменное событие | Сигнал о произошедшем изменении (например, «сотрудник уволен»). Слушатели реагируют автоматически |
| Автонумерация | Документы получают порядковый номер автоматически, с защитой от дублей через блокировку |
| Планировщик (Scheduler) | Фоновый процесс, выполняющийся по расписанию: outbox (10 сек), явки (1 час), сессии (1 раз/день) |
| Best-effort | Попытка выполнить действие без гарантии: если не получилось — логируем и идём дальше (Kafka, S3) |
| UPSERT | Операция «создай или обнови»: если запись существует — обновить, если нет — создать. Гарантирует идемпотентность |
| Сторнирование | Отмена финансовой операции путём создания обратной проводки (не удаления исходной) |