Перейти к содержимому

6. Кассовые операции

Что это

Модуль POS управляет кассовыми сменами и чеками. Кассир работает на POS-терминале — открывает смену, пробивает чеки, в конце дня закрывает смену. Управляющий проверяет и принимает итоги.


POS-терминал

Физическое или программное рабочее место кассира, привязанное к подразделению.

Подразделение «Центр»
├── Терминал «Центр-1» (основная касса)
├── Терминал «Центр-2» (бар)
└── Терминал «Центр-3» (доставка)

На одном терминале может быть только одна открытая смена.


Кассовая смена

Жизненный цикл

┌──────────┐ закрытие ┌──────────┐
│ ОТКРЫТА │─────────────►│ ЗАКРЫТА │
│ (OPEN) │ │ (CLOSED) │
└──────────┘ └─────┬────┘
┌────────────┼────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌───────────┐ ┌──────────────┐
│ ПРИНЯТА │ │ ТРЕБУЕТ │ │ НЕ ПРИНЯТА │
│(ACCEPTED)│ │ ПРОВЕРКИ │ │(NOT_ACCEPTED)│
└──────────┘ │(REQUIRES_ │ └──────────────┘
│ CHECK) │
└─────┬─────┘
┌────┴────┐
▼ ▼
┌──────────┐ ┌──────────────┐
│ ПРИНЯТА │ │ НЕ ПРИНЯТА │
└──────────┘ └──────────────┘

Пример смены

┌─────────────────────────────────────────────────────────────────┐
│ КАССОВАЯ СМЕНА #CS-2026-0416-001 │
│ Терминал: Центр-1 │
│ Учётная дата: 16.04.2026 │
│ Кассир: Петров А.В. │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Открытие: 10:00, начальный баланс: 5 000 ₽ │
│ │
│ Итоги за смену: │
│ ┌────────────────────────┬──────────────┐ │
│ │ Показатель │ Сумма │ │
│ ├────────────────────────┼──────────────┤ │
│ │ Чеков продажи │ 47 │ │
│ │ Чеков возврата │ 2 │ │
│ │ Выручка (продажи) │ 98 000 ₽ │ │
│ │ Возвраты │ −2 400 ₽ │ │
│ │ Скидки │ −4 200 ₽ │ │
│ │ Наценки │ +800 ₽ │ │
│ │ Внесения │ +3 000 ₽ │ │
│ │ Изъятия │ −15 000 ₽ │ │
│ │ │ │ │
│ │ Итого в кассе │ 85 200 ₽ │ │
│ └────────────────────────┴──────────────┘ │
│ │
│ Закрытие: 22:00 │
│ Статус: ЗАКРЫТА → ожидает приёмки │
│ │
└─────────────────────────────────────────────────────────────────┘

Чеки

Типы чеков

ТипЧто этоПример
SALE (продажа)Обычная продажа2 латте + 1 стейк
RETURN (возврат)Возврат товараГость вернул блюдо (ссылается на оригинальный чек)

Структура чека

┌─────────────────────────────────────────────────────────────────┐
│ ЧЕК #R-2026-0416-00023 │
│ Тип: ПРОДАЖА │
│ Смена: CS-2026-0416-001 │
│ Кассир: Петров А.В. Официант: Сидорова И.М. │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Позиции: │
│ ┌────────────────────┬─────┬──────────┬─────────┬────────────┐ │
│ │ Блюдо │ Кол.│ Цена │ Скидка │ Итого │ │
│ ├────────────────────┼─────┼──────────┼─────────┼────────────┤ │
│ │ Стейк Рибай │ 2 │ 1 350 ₽ │ 0 ₽ │ 2 700 ₽ │ │
│ │ + Соус перечный │ 2 │ 150 ₽ │ 0 ₽ │ 300 ₽ │ │
│ │ Латте │ 2 │ 380 ₽ │ 0 ₽ │ 760 ₽ │ │
│ │ + Сироп ваниль │ 1 │ 80 ₽ │ 0 ₽ │ 80 ₽ │ │
│ │ Цезарь с курицей │ 1 │ 550 ₽ │ 55 ₽ │ 495 ₽ │ │
│ ├────────────────────┼─────┼──────────┼─────────┼────────────┤ │
│ │ Подитог │ │ 4 335 ₽ │ 55 ₽ │ 4 280 ₽ │ │
│ └────────────────────┴─────┴──────────┴─────────┴────────────┘ │
│ │
│ Оплата (сплит): │
│ ┌─────────────────────┬──────────────┐ │
│ │ Наличные │ 2 000 ₽ │ │
│ │ Банковская карта │ 2 280 ₽ │ │
│ ├─────────────────────┼──────────────┤ │
│ │ Итого оплачено │ 4 280 ₽ │ │
│ └─────────────────────┴──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

Сплит-оплата

Один чек можно оплатить несколькими способами — часть наличными, часть картой.


Внесения и изъятия

Кассовые операции, не связанные с продажей.

ОперацияЧто этоПример
ВнесениеДеньги вносятся в кассуРазмен: привезли мелочь для сдачи (+3 000 ₽)
ИзъятиеДеньги забираются из кассыИнкассация: забрали крупные купюры (−15 000 ₽)
Движение денег в кассе за смену:
10:00 Начальный баланс +5 000 ₽
12:00 Внесение (размен) +3 000 ₽
10:30–22:00 Продажи +98 000 ₽
14:00 Возврат −2 400 ₽
16:00 Изъятие (инкассация) −15 000 ₽
──────────────────────────────────────
22:00 Итого в кассе 88 600 ₽

Каждый тип внесения/изъятия привязан к бухгалтерским счетам — для автоматического создания проводок.


Приёмка смены

После закрытия смены управляющий проверяет итоги.

Процесс

КАССИР УПРАВЛЯЮЩИЙ
│ │
│ 1. Закрывает смену │
│ (статус: CLOSED) │
│ │
│ ─── передаёт данные ─────► │
│ │
│ 2. Проверяет:
│ • Суммы по видам оплат
│ • Наличные в кассе
│ • Чеки возвратов
│ │
│ 3. Решение:
│ ┌─────────┴─────────┐
│ │ │
│ ▼ ▼
│ Всё сошлось? Есть расхождения?
│ │ │
│ ▼ ▼
│ ПРИНЯТА ТРЕБУЕТ ПРОВЕРКИ
│ (ACCEPTED) (REQUIRES_CHECK)
│ │
│ Повторная проверка
│ │
│ ┌────────┴────────┐
│ ▼ ▼
│ ПРИНЯТА НЕ ПРИНЯТА
│ (NOT_ACCEPTED)

Что проверяет управляющий

  • Сумма наличных в кассе совпадает с отчётом
  • Чеки возвратов обоснованы
  • Скидки не превышают допустимые
  • Количество отменённых чеков в норме

Учётная дата смены

Смена, открытая вечером и закрытая после полуночи, относится к учётной дате открытия.

Настройка: начало учётного дня = 06:00
Смена открыта: 15 апреля в 18:00
Смена закрыта: 16 апреля в 02:30
Учётная дата смены: 15 апреля
(потому что 02:30 < 06:00 — ещё «вчера»)

Все чеки этой смены попадают в отчёт за 15 апреля.


Бизнес-правила

ПравилоОписание
Одна открытая смена на терминалНельзя открыть вторую, пока первая не закрыта
Начальный балансУказывается при открытии (сколько денег в кассе)
Чек: минимум 1 позицияПустой чек создать нельзя
Чек: количество > 0Нулевое и отрицательное количество запрещено
Возврат: ссылка на оригиналЧек возврата обязательно ссылается на чек продажи
Скидка не больше ценыСкидка на позицию не может превышать стоимость
Сумма оплаты = итого чекаДолжно быть оплачено ровно столько, сколько начислено