Более 20 лет опыта в индустрии

Городской парк, пять аттракционов, сезон с мая по сентябрь. Касса стоит у входа или вовсе в вагончике посреди аллеи, у каруселей — свои люди. Владелец приезжает вечером, забирает деньги и считает их, ни с чем не сверяя, потому что сверять не с чем. Всё, что у него есть, — слово Сотрудника и собственное ощущение, что «сегодня было людно».

Карусель в небольшом парке аттракционов

Это не небрежность. Это следствие того, что в парке продажа и катание — два разных события, разнесённые и во времени, и между людьми. Гость платит в одном месте, катается в другом, и между этими двумя точками нет ничего, что связывало бы их автоматически.

Деньги теряются в двух разных местах — и лечится это по-разному

Первая дыра — на кассе. Гость заплатил, билет не пробили, деньги не дошли. Здесь важно, чтобы каждая продажа оставляла след, который нельзя стереть задним числом.

Вторая дыра — у самого аттракциона. Карусель прокрутилась, а билета не было вовсе: «свои», «на минуточку», «да он же маленький». Прокатную машинку дали «на кружочек» и денег не взяли. Здесь бесполезен любой учёт на кассе — событие произошло мимо неё.

Это две разные задачи, и решать их одним инструментом не выходит. Дальше — про то, чем закрывается каждая.

Почему готовые системы для парков вам не подойдут

Если поискать «автоматизация парка аттракционов», выдача целиком состоит из билетно-пропускных систем. Устроены они везде одинаково: гость получает браслет или карту с чипом, каждый аттракцион оснащается контроллером и бесконтактным считывателем, на входах ставятся турникеты. Контроллер сам разрешает проход или запускает аттракцион, списывая деньги с браслета.

Это работает — для большого крытого парка с одним входом и потоком, который окупает инфраструктуру. Стоимость такие поставщики не публикуют: у всех без исключения на сайте написано, что цена рассчитывается индивидуально, и оставлен телефон. Уже по одному этому понятно, для кого написано.

Но главная причина, по которой это не про городской парк, даже не в деньгах. Такие системы охраняют периметр — вход, проход, зону. У открытого парка периметра нет. Аллея, деревья, четыре стороны света. Перекрывать нечего, и весь смысл турникета исчезает.

Первая половина: билет, который живёт отдельно от посещения

В RentOS для этого есть режим «Билеты». Кассир собирает заказ из того, что просит гость: двое взрослых на колесо, трое детей на карусель. Заказ проводится целиком, одной оплатой, и гость получает короткий номер — такой, который легко назвать вслух.

Внутри заказа каждая позиция — отдельный билет. Три билета на карусель не обязаны быть использованы разом: подошли двое — погасили два, третий остаётся живым. Цены стоят на самом аттракционе, своим набором вариантов: «Взрослый», «Детский», «Льготный», причём нулевая цена тоже допустима, если кого-то пускают бесплатно. Кассир не вводит сумму руками, он выбирает вариант — ошибиться и «случайно» продать дешевле не получится.

Если цены среди сезона поменяются, уже проданные билеты сохранят прежнюю стоимость, и прошлые сверки от этого не поедут.

Сотрудник у карусели видит только своё

Гость называет номер заказа, Сотрудник набирает его и видит состав. У вкладки заказов есть личная настройка — фильтр по аттракциону: «я стою на Карусели». После этого свои билеты идут первыми, чужие приглушены, и человек не разбирается в чужом заказе, чтобы найти в нём свою строчку.

Гашение поштучно, и проверяет его сервер, а не подсказка на экране: погашенный билет второй раз не пройдёт, истёкший — тоже. При желании гашение можно вообще выключить: тогда система просто помнит, что было продано. Это всё ещё полезно — когда гость спорит «я платил, а меня не пускают», по номеру заказа поднимается состав и сумма. Переключается это в любой момент и на деньги не влияет.

Выручка считается по продаже, а не по посещению

При сдаче итогов расчётная выручка — это сумма заказов, проданных с прошлой сдачи, независимо от того, когда билеты погасят. Так и должно быть: билет можно подарить, купить впрок или прийти по нему завтра. Деньги пришли сегодня — значит, сегодня они и должны быть в кассе.

Вторая половина: счётчик, который не наблюдает, а разрешает

Билеты закрывают кассу. Технику они не закрывают: карусель можно прокрутить просто так, а машинку дать покататься мимо всякого учёта.

Здесь работает вторая механика — счётчик на самом аттракционе. У Сотрудника RFID-метка, на аттракционе считыватель. Касание — и происходят сразу три вещи: показание счётчика увеличивается на единицу, подаётся питание и запускается обратный отсчёт. Без касания техника не включится вообще.

Основное применение — прокат: детские электромобили, картинг, квадроциклы. Всё, где гость платит за поездку определённой длительности.

Таймер решает вторую половину задачи

Обратный отсчёт здесь не удобство, а часть контроля. Оплачено десять минут — через десять минут питание снимается, и машинка встаёт сама. Сотруднику не нужно смотреть на часы и не нужно ничего никому объяснять: поездка закончилась не по чьему-то решению, а физически. Заодно исчезает целый класс споров «мы же только сели».

И — что важнее для владельца — исчезает возможность продать десять минут, а откатать пять, положив разницу себе. Длительность задаёт не человек у машинки, а прибор.

Разница с обычным счётчиком принципиальная. Обычный счётчик — свидетель: он фиксирует то, что и так произошло, и на него можно не смотреть. Этот — привратник. Он поездку разрешает и он же её заканчивает, поэтому показание не может отстать от реальности. Оно и есть реальность.

Работает это не только на технике с аккумулятором: там, где нужно, тот же счётчик коммутирует обычную сеть — на батуте или на VR-аттракционе он включает питание ровно так же, как на электромобиле.

При сдаче итогов Сотрудник вносит показание, а система сама считает разницу с прошлым и умножает на цену. Никакого «примерно столько было».

Две половины закрывают разные дыры

Вместе это складывается в замкнутый контур, и стоит проговорить, кто за что отвечает:

Порознь каждая половина дырявая. Счётчик ничего не знает про деньги. Сверка без счётчика верит человеку на слово. Вместе прятать нечего: количество и время зафиксированы железом, деньги — арифметикой.

Когда парку нужны не билеты, а пуски

Билеты нужны не всякому парку, и правило выбора простое — оно про людей, а не про аттракционы:

Тип аттракциона не решает ничего. Одна и та же карусель считается по-разному в зависимости от того, как у вас устроена касса.

Парк редко бывает однородным

В реальном парке рядом стоят вещи, которые считаются по-разному: колесо и карусель — билетами с кассы, прокат электромобилей и картинг — по счётчику, батут — пусками. Это нормально и не требует нескольких разных программ. Каждая зона живёт в своём режиме, а кабинет, касса и вечерняя сводка у них общие.

А кафе, снеки и сувениры — это вообще не режим учёта. Для них есть отдельный модуль «Товары»: каталог с ценами, остатки по точке с ревизией и своя сверка кассы, не привязанная к сдаче итогов по зонам. Продаёт тот же Сотрудник, оплата наличными, безналом или с баланса клиента.

Начать при этом можно вообще без вложений: пока счётчиков нет, Сотрудник отмечает поездки касанием по экрану, и формула расчёта та же самая. Железо усиливает учёт, но ни один режим его не требует — и это, пожалуй, главное отличие от систем, где учёт начинается с монтажа.