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 | Нулевое и отрицательное количество запрещено |
| Возврат: ссылка на оригинал | Чек возврата обязательно ссылается на чек продажи |
| Скидка не больше цены | Скидка на позицию не может превышать стоимость |
| Сумма оплаты = итого чека | Должно быть оплачено ровно столько, сколько начислено |