Два пакета у одного клиента: из какого списывать посещение
У клиента осталось по одному посещению в двух пакетах. Оба подходят для занятия, но один заканчивается раньше. Общий остаток «2» не объясняет, какой пакет будет использован и что останется после записи. Для этого нужны отдельные правила выбора и проверяемая связь с источником списания.

Сначала допустимые пакеты, затем очередь
Не начинайте с сортировки всех покупок клиента. Сначала отберите права, которые действительно можно применить к выбранной услуге: подходящий получатель, тип занятия, локация, период, состояние пакета и достаточное количество свободных единиц. Недопустимый пакет не становится подходящим из-за близкого окончания.
В этом разборе единица — одно одинаковое посещение. Пакеты в минутах, деньгах или с разными коэффициентами требуют собственной модели. Проверку свободного остатка предполагаем выполненной: механизм выдачи, резервирования и расхода разобран в гиде по журналу посещений.
После отбора может остаться один пакет, несколько или ни одного. Правило приоритета нужно именно во втором случае. В третьем требуется понятный результат «подходящего права нет», а не произвольное списание с наиболее похожей покупки.
Разные системы выбирают по-разному
В Bookwhen при нескольких passes первым используется самый старый, а не ближайший к окончанию. Порядок карточек в клиентской записи при этом обратный: новые показаны выше.
В Glofox первым выбирается активное подходящее право с ближайшим истечением. Документация также задаёт последующие уровни приоритета по охвату услуг; для одинаковых условий указан порядок покупки. Одной надписи «автоматическое списание» недостаточно, чтобы восстановить правило.
Эти описания показывают, почему нельзя переносить привычку администратора из одного продукта в другой. Они не доказывают, что один вариант справедлив во всех ситуациях. Для своего процесса зафиксируйте точный порядок, решение при равенстве и допустимость ручного выбора. Объяснение клиенту должно соответствовать фактическому поведению.
Одно посещение оставляет разные права
Исходно оба пакета подходят для занятия. Ниже две альтернативы одного расчёта.
- Куплен
- 01.09.2026
- Действует до
- 30.11.2026
- Куплен
- 01.10.2026
- Действует до
- 31.10.2026
По ранней покупке
Остаётся B: 1
Срок: 31 октября
По ближайшему сроку
Остаётся A: 1
Срок: 30 ноября
20 октября — занятие
Учебный пример. Контрольная дата применимости определяется отдельно. Связь исправления с источником не устанавливает право на продление или возврат денег.
Возьмём оригинальный учебный пример. Пакет A куплен 1 сентября 2026 года и действует до 30 ноября. Пакет B куплен 1 октября и действует до 31 октября. В каждом свободно ровно одно одинаковое посещение. Оба уже активны и подходят для занятия 20 октября; прочие условия одинаковы.
Оформление происходит 18 октября. При правиле «ранняя покупка первой» источником будет A. После использования занятия остаются A: 0, B: 1. При правиле «ближайший срок первым» источником будет B; остатки станут A: 1, B: 0. В обоих случаях расход равен одной единице, общий остаток — одной. Разница скрыта в происхождении оставшегося права.
Для продолжения примера отдельно зададим учебное условие: дата самого занятия должна попадать в период пакета. Тогда для нового занятия 10 ноября оставшийся A подходит, а оставшийся B — нет. Это следствие заданного условия и дат, а не универсальное поведение упомянутых продуктов.
Нельзя из этого расчёта заключить, что клиент обязательно потеряет посещение: он мог бы выбрать октябрьское занятие, а условия могут предусматривать другие варианты. Полезный результат примера уже: одинаковое число оставшихся единиц не означает одинаковый набор доступных будущих услуг.
Покупка, оформление и визит — разные даты
Для каждого типа пакета выясните, когда начинается действие и на какой момент проверяется окончание. Дата покупки может отличаться от активации. Дата оформления записи может быть намного раньше занятия. Не заменяйте эти значения одним полем «дата использования».
В Acuity код применяется до окончания его срока, но назначаемый визит может находиться дальше в будущем в пределах правил открытия записи. Следовательно, подпись со сроком сама по себе не доказывает ограничение по дате визита.
Отдельный тест: оформление 28 октября, занятие 4 ноября, окончание пакета 31 октября. До проверки выбранной системы нельзя записывать единственный «правильный» исход. Сначала утверждается применимое правило, затем проверяется его выполнение. Зафиксируйте также часовой пояс и точную включённость граничного дня; неоднозначную формулировку нужно уточнить до запуска.
Возвращайтесь к исходному пакету
У записи должен сохраняться выбранный пакет и основание выбора на тот момент. Если при исправлении снова запустить текущую очередь, система может найти уже другой пакет: один закончился, появился новый или изменились правила. История исходного расхода от этого не меняется.
В учебной ветви с расходом из B отмена ошибочной операции должна быть связана именно с B. Прибавить единицу к A — другая операция с другими последствиями: у этих пакетов различаются сроки. Совпадение общего остатка не доказывает правильность исправления.
При этом обратная операция и возможность новой записи — отдельные вопросы. Если разбирательство завершилось после окончания исходного пакета, восстановление истории не создаёт автоматически новый срок. Продление, дополнительное право и денежный возврат требуют отдельного основания и решения по применимым условиям. Эта статья не определяет юридическую допустимость истечения или удержания оплаты.
Сделайте выбор проверяемым для следующей смены
Для конкретной записи достаточно короткой цепочки: какие пакеты прошли отбор, какой выбран, по какой версии приоритета, сколько единиц закреплено и с какой операцией связано исправление. Не нужно сохранять полные секретные коды в комментариях; используйте безопасные идентификаторы.
Клиентское объяснение может выглядеть так: «Для занятия 20 октября использовано одно посещение из пакета B. Осталось одно в пакете A; его условия доступны в карточке пакета». Даты и названия должны приходить из конкретной записи. Если клиент выбирает источник сам, перед подтверждением покажите результат его выбора.
Ручное исключение требует автора и причины. Изменение общего приоритета не должно незаметно перераспределять уже закреплённые посещения. Отдельно проверьте перенос: новая дата или услуга способны изменить допустимый набор, поэтому старое объяснение может перестать быть достаточным.
Проверьте выбор на спорных границах
- Два подходящих права. Воспроизведите A/B и сравните выбранный источник с утверждённым порядком. Общего остатка для проверки недостаточно.
- Ранний, но неподходящий. Исключите нужную услугу из B. Близкое окончание не должно позволять списание с него.
- Одинаковые сроки. Задайте равные даты и условия. Результат должен следовать установленному правилу разрешения равенства, а не случайному порядку экрана.
- Будущий визит. Используйте даты 28 октября и 4 ноября. Проверьте именно выбранную контрольную дату.
- Исправление после новой покупки. Добавьте пакет C, затем исправьте старый расход. Связь должна вести к первоначальному источнику.
- Два одновременных запроса. При двух свободных единицах проверьте, что выбор источника и закрепление выполняются согласованно: один пакет не расходуется дважды.
- Смена настройки. Измените приоритет для новых записей. Ранее подтверждённая запись должна оставаться объяснимой по сохранённой версии условий.
Сохраните входные пакеты, даты, ожидаемый источник и фактическую операцию. Проверьте клиентский и административный каналы. В SABSUS наличие такого выбора, сохранение версии и правила исправлений нужно подтвердить в вашей конфигурации. Полезная приёмка заканчивается воспроизводимым объяснением каждой записи.
Источники и продолжение
Источники проверены 17 октября 2026 года. Числовые примеры и иллюстрации учебные.