Всё вокруг одной сущности — записи о том, что было. Работа у клиента, занятие, приём, выступление — устроены они одинаково: место, время, участник, деньги.
Место, время, длительность и клиент — по желанию и в любой момент. Форма, которая требует заполнить всё сразу, не заполняется никогда: человек откладывает её «на вечер», а вечером уже не помнит подробностей.
Выезд, свой кабинет, площадка, онлайн. Это выбор места, а не специальности: один и тот же человек может утром выехать к клиенту, днём принять у себя, а вечером отработать на площадке.
Специалист вспоминает, что делал, а не кому. Запись можно завести без клиента и проставить его потом — или не проставлять вовсе, если работа не про людей.
У записи есть адрес, а координаты можно прислать геометкой из бота — прямо с места. Удобно там, где адреса как такового нет: площадка, объект в поле, новый район без нумерации.
Отдельно заводить прайс не нужно. Каждая записанная работа и каждый материал попадают в справочник вместе с ценой и единицей измерения, а в следующий раз подставляются подсказкой. Написания приводятся к одному виду: «ё» и «е», «3х2.5» и «3×2,5» не плодят дубли.
Материал добавляется снимком чека — позиции разбираются автоматически. Всё, что попадает в деньги, показывается на подтверждение: неверно распознанная сумма уйдёт в счёт клиенту, поэтому молча сохранять распознанное нельзя.
Работы, материалы, время и оплата сводятся сервером с округлением до копеек. Клиент, бот и кабинет видят одну и ту же сумму, а не три похожих.
Время считается по смене состояния записи: «Начать», «Пауза», «Завершить». Отдельной формы учёта времени нет намеренно — её бы не заполняли.
Внутри статусов больше, но исполнитель видит три: новое, в работе, сделано. Различать «согласовано» и «назначено» на объекте не нужно и незачем.
Пакет занятий с остатком: при завершении занятие списывается само. Цена фиксируется на момент покупки — повышение прайса не меняет уже проданное.
Приём или занятие вне абонемента получает свою стоимость, а поступления складываются в журнал, а не в пересчитываемый остаток. Так видно не только «сколько сейчас», но и «откуда взялось».
Отдельный экран отвечает на вопрос «что я сделал». Отбор идёт по дню выполнения, а не по плановой дате: работа, отложенная с прошлой недели и закрытая сегодня, стоит сегодняшним днём. Иначе журнал просто повторял бы календарь.
За месяц, за прошлый месяц, за неделю или за всё время: сколько записей, сколько часов и сколько денег. Ради этих трёх чисел журнал и ведут — остальное к ним прилагается.
Те же итоги по клиентам, по местам, по месяцам или по виду работы. Отсюда видно то, что до журнала решалось ощущениями: какая площадка окупается, сколько принёс постоянный клиент и как меняется загрузка от месяца к месяцу. Строки идут по сумме, чтобы ответ стоял первым.
Показанный период выгружается таблицей и открывается в Excel как есть — без плясок с кодировкой и разделителями.
После «Завершить» бот сам показывает, что сделано за день. Специально такое никто не спрашивает, а увидеть полезно.
Сетка месяца с загрузкой по дням: видно и плотные дни, и провалы. День раскрывается списком записей.
Специалист задаёт, когда работает, а исключения — отпуск, разовый выходной — перекрывают правило. Свободное время считается интервалами: пятичасовое мероприятие занимает пять часов, а не одну отметку в расписании.
О предстоящей записи — заранее, себе и клиенту. Почтовые напоминания мы решили не делать: письмо о завтрашней встрече чаще раздражает, чем помогает.
Список записей на сегодня с кнопками «Начать», «Пауза», «Завершить». Работа пишется строкой — «замена насоса 3500», — а координаты присылаются геометкой. Кабинет для этого открывать не нужно.
Мини-приложение — это не второй интерфейс, а тот же журнал, открытый внутри мессенджера, со входом без пароля. На компьютере остаётся обычный кабинет: разбирать месяц и сводить деньги удобнее на большом экране.
Свободные заявки складываются в общий список, исполнитель берёт их сам, без звонка диспетчеру. Одну заявку не могут взять двое — это исключено на уровне базы, а не проверкой «на глазок».
Наёмный работник заводится без права входа: он не пользуется системой, но его смены, объекты и расчёты нужно вести. Начисления и выплаты пишутся журналом, поэтому историю всегда видно.
Владелец, исполнитель, клиент. Данные разных организаций разделены — и это закрыто тестами, а не обещанием.
Не хранит содержание частных встреч. У приёма психолога или консультанта в журнале есть место, время, имя клиента и оплата — и ничего больше. Заметок о человеке в сервисе нет и не появится: такие сведения не должны лежать в чужой системе.
Не заменяет бухгалтерию. Это рабочий журнал: он отвечает на вопросы «где был», «сколько занял» и «сколько принёс», а не сдаёт отчётность.
Не следит за людьми. Учёт времени нужен, чтобы понимать собственную экономику, а геометка — чтобы не вспоминать адрес. Ни то, ни другое не сделано как контроль.
Площадки, залы и кабинеты, где работа проходит регулярно, заводятся один раз и дальше выбираются из списка. Это не удобство ради удобства: набранный руками адрес разъезжается на разные написания, и сводка «какая площадка окупается» перестаёт складываться. Обязательно только название — «у фонтана» может не иметь ни адреса, ни координат.
Из карточки — ссылкой в вашу карту: на телефоне откроется приложение, на компьютере браузер. Встроенную карту мы не делаем: она требует ключа и постоянной связи с чужим сервисом, а это несоразмерная цена за кнопку «где это».
Подтверждение работ клиентом, напоминания по расписанию, расход на аренду по ставке площадки.