Проведение оплат: окно добавления оплаты при ошибке эквайринговой операции

При ошибке эквайринговой операции (неверный пин-код, недостаток средств, тайм-аут) окно оплаты закрывалось, а на счёте оставался финдок с доходной транзакцией без оплаты; при повторных попытках создавались лишние коррекции оплаты.

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

Подробнее см. Внесение оплаты.

Администрирование, пользователи: право на удаление гостей с вкладки "Гости"

Добавлено новое право «Удаление гостя из бронирования»: без него кнопка удаления гостя на вкладке «Гости» неактивна. Это необходимо, чтобы предотвратить случайное или несанкционированное удаление и потерю данных, и сохранить целостность информации о проживании.

Чтобы не отключить функционал у действующих пользователей, инициализатор автоматически выдаёт новое право всем, у кого есть право Изменение брони. Право настраивается штатно через роли в модуле администрирования.

WebAPI: расширение для работы сетки комнат и установки тегов комнат и удержания

WebAPI дополнено методами, необходимыми для работы функционала сетки комнат в мобильном приложении. Самые важные функции экрана:

  • Постановка номера на удержание (с комментарием), снятие с удержания;

  • Добавление тегов к комнате, снятие тегов

  • Поиск комнат, просмотр их актуального статуса - теги, уборки, удержание, занятость

СКК МО РФ

Доработана интеграция с СКК:

  • При создании брони в СКК у каждого гостя сразу появляется статус «Заявление принято в СКО», а не «На рассмотрении» на заявку;

  • Причина отказа санатория или гостя передаётся в СКК персонально по каждому гостю, а не теряется;

  • Ошибки ответа orders/update/разбираются по регламенту СКК: часть — игнорируется, часть — логируется и не валит батч, часть — приводит к retry через Hangfire;

  • Если из личного кабинета "СКК МО РФ" приходит от гостя отказ от путёвки, а на брони в Логусе назначена комната, то происходит автоматическое очищение комнаты, а бронь переходит в статус "Лист ожидания", и на неё навешивается тег "SKKANNUL".

API, интеграция с Санаториумом: методы для работы с запланированными начислениями

Для сценария, когда аванс/предоплата за медицинские услуги принимается в Санаториуме, а выручка в Логусе должна отражаться по факту оказания услуги (формирования чека зачёта аванса), в интеграционный контракт добавлены методы работы с запланированными начислениями. При создании начисления его можно зарегистрировать запланированным, далее доступны: изменение плановой даты, проведение, отмена проведения обратно в запланированные (для случаев отмены чека зачёта аванса), а также коррекция проведённых и удаление запланированных транзакций. Поиск транзакций выполняется по UniqueId (точное совпадение) — его необходимо передавать при создании начисления.

Окно оплат: фильтрация платежных кодов 

Добавлена фильтрация платёжных кодов в окне оплаты по применимости кармана: при оплате услуги, привязанной к конкретному карману, в окне выбора остаются только платёжные коды, привязанные к тому же карману (через «Область начисления»), либо коды вообще без ограничений по карманам.
Функционал включается параметром «Фильтровать платёжные коды по применимости кармана» в настройках объекта. Фильтрация по тегам применяется только к платёжным кодам.

В дополнение к фильтрации по карманам в окне оплаты реализована фильтрация платёжных кодов по тегам: автоматически создаётся группа тегов с системным кодом TRNCODE. Это позволяет объектам с большим количеством платёжных инструментов группировать их по назначению (авансы, предоплаты, доп. услуги, архивные коды) и исключить ошибки выбора.

Подробнее см. Фильтрация кодов транзакций в окне оплаты, Фильтрация платежных кодов по применимости кармана и Платёжные транзакции

Подготовка расчета с гостем: анализ и агрегация транзакций в финансовом документе

Появилась возможность распределять авансы по финансовым документам в зависимости от кода налога. Команда «Подготовить расчёт» по умолчанию только группирует транзакции счёта по налоговым ставкам в финансовые документы, не формируя чеки коррекции, не обнуляя переплаты и не перенося авансы между налоговыми группами. Транзакции без НДС разделяются на два финдока: подлежащие БСО и прочие (критерий задаётся конфигурацией); прочие ставки агрегируются в один финдок с настраиваемым типом. Также сохранено поведение с обнулениями и переносами и включается отдельным параметром. Если по ставке нет доходных транзакций, финдок не создаётся, аванс остаётся на счёте; после подготовки расчёта бронь нужно сохранить. 

Мобильное приложение: Раздел «Комнаты»

В мобильном приложении Logus появился новый раздел «Комнаты» — аналог «Сетки комнат» desktop-версии. В разделе отображается список номеров с категорией, расположением, статусом, тегами и признаком удержания, доступны те же фильтры, что и в «Сетке комнат» (тип комнаты, расположение, вид уборки, занятость, состояние, теги), а также счётчик «Всего номеров: X (с фильтрами: Y)». По свайпу карточки номера или через «кебаб-меню» доступны действия «Удержать / Снять удержание» (с комментарием, по аналогии с desktop) и «Изменить теги»; пользователи с правами постановки номера на уборку могут ставить номер на уборку и снимать с неё. Изменения сразу отображаются в мобильном приложении и синхронизируются с desktop-версией: удержанный номер исключается из продажи до снятия удержания во всех разделах. Раздел доступен пользователям с соответствующими правами доступа.

Интеграция с парковочной системой «Парконика»

Реализована автоматизация пропускного режима на парковку. При заселении в парковочную систему передаются номер автомобиля и данные электронных ключей. При изменении номера или выдаче новых ключей информация автоматически обновляется, а при выселении доступ блокируется.

Parkonika: предупреждение о некорректном номере автомобиля

Теперь при вводе некорректного номера автомобиля система не позволяет сохранить бронь или профиль гостя и сразу показывает ошибку непосредственно в поле ввода. Это предотвращает передачу невалидных данных в парковочную систему и сбои синхронизации.

Parkonika: валидация российских регистрационных знаков

Добавлена строгая проверка формата российских государственных регистрационных знаков для различных категорий транспортных средств. Заведомо некорректные номера отсекаются до отправки в парковочную систему, что предотвращает ошибки синхронизации и прерывание выдачи электронных ключей.

Счёт: Применение скидки в размере 100%

Исправлена логика применения полной скидки. Теперь скидка 100% корректно обнуляет начисления, а для уже проведённых транзакций автоматически создаётся корректирующая запись.

AmoCRM: поддержка нескольких воронок продаж

Интеграция теперь корректно работает с несколькими воронками продаж. При обновлении сделки система сохраняет её текущую воронку и применяет соответствующие статусы, что позволяет гибко разделять процессы для разных типов клиентов (например, B2B и B2C).

TravelLine: раздельная настройка выгрузки тарифов для разных каналов

Параметр типа выгрузки тарифов (отельный или санаторный) теперь можно задавать в настройках конкретного внешнего канала продаж. Это позволяет настроить раздельный учёт бронирований и оплат для разных направлений в рамках одной системы.

TravelLine: корректное распределение переплат по разделённым броням

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

Онлайн-эквайринг: поддержка нескольких мерчантов для разных налоговых ставок

Добавлена возможность настроить до трёх независимых мерчантов для приёма авансов с разными налоговыми ставками. В брони отображается таблица авансов по ставкам, а веб-форма оплаты позволяет гостю оплатить каждую часть отдельным платежом, который корректно зачисляется на счёт с нужным кодом операции.

Портал бронирования: прямая загрузка сетки заездов из системы

Портал бронирования теперь получает актуальную сетку заездов и доступные квоты напрямую из системы при каждом запросе. Это обеспечивает единый источник данных и позволяет мгновенно применять изменения в расписании без дополнительных обновлений или ручной синхронизации настроек портала.

Интеграционные сообщения

В интеграционный контракт добавлен объект с полями номер фискального регистратора и номер фискального чека. Это нужно, чтобы при приёме оплат, например из Санаториума, фискальные данные сохранялись в базе к платёжным транзакциям с возможностью последующего экспорта в csv. Если сообщение с тем же UniqueId приходит повторно и основные параметры транзакции совпадают, фискальные данные добавляются к уже существующей транзакции. В интеграционный модуль добавлен тестовый раздел для отправки таких сообщений. 

В структуру интеграционных сообщений добавлены ранее отсутствующие признаки расчёта (включая маркированные и подакцизные товары). Это предотвращает ошибки при обработке и десериализации данных внешними системами.


Исправления и улучшения


СКК МО РФ: отказ гостя от путёвки не отменял бронь
Теперь при отказе гостя от путёвки бронь в системе аннулируется, а статус и причина отказа корректно обрабатываются для конкретного гостя.

TravelLine: игнорирование кода тарифа при разделении брони
Теперь код тарифа из дополнительной секции корректно учитывается при создании разделённых броней.

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

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

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

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

АС ОК: ошибка поселения для разделённой брони при обязательных полях
Теперь обе брони в разделении корректно создаются и заселяются пользователем АС ОК в прошлую дату, даже если поля возраста и пола не указаны.

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

AmoCRM: ошибка при открытии вкладки «Брони» и создании брони
Теперь вкладка «Брони» в сделке открывается корректно, а кнопка создания брони работает штатно.

Счёт: отсутствие названия рабочей станции в детализации оплаты через INPAS
Теперь название рабочей станции корректно отображается в детализации эквайринговой операции.

Онлайн-эквайринг: потеря платежа при настройке нестрогого финансового документа
Теперь при попытке онлайн-оплаты с нестрогим финансовым документом выводится понятное предупреждение о недоступности операции, что предотвращает потерю платежей. Для корректной работы необходимо использовать строгий тип финансового документа.

Печать: ошибка при отправке на принтер форм и отчётов со шрифтом Calibri
Обновление компонента отчётности позволило устранить проблему: печать и сохранение форм теперь выполняются без ошибок и искажений.

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

Уведомления: неполная сумма оплаты в ваучере при разделённой брони
Теперь отправка уведомления об оплате задерживается на короткий интервал, что позволяет системе корректно разнести платёж по всем частям разделённой брони и указать полную сумму в ваучере.

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

Parkonika: создание дублей профилей при изменении номера автомобиля
Теперь при изменении номера автомобиля существующий профиль гостя корректно обновляется, что предотвращает создание дублей.

Фоновая фискализация: ошибка при фискализации возврата аванса
Теперь для финансовых документов, содержащих только оплату и возврат аванса, признак фискализации проставляется корректно без отправки лишнего запроса на фискальный регистратор.

СКК МО РФ: отказ в создании брони из-за ошибки передачи статуса
Теперь пустой статус заказа не передаётся, и брони по заявкам успешно создаются в системе.

MAX-интеграция: сбой обработки старта чат-бота
Теперь событие запуска чат-бота обрабатывается штатно, и гость корректно получает шаблонное сообщение.

ЮKassa: ошибка оплаты по ссылке из-за неверного формата данных чека
Теперь данные чека формируются корректно, и оплата по ссылке успешно проходит.

Группы: отображение транзакций аннулированных броней в прогнозе счёта
Теперь прогноз счёта группы отображает только транзакции активных броней, исключая аннулированные.

Бронь: сбой оплаты и сохранения при досрочном выселении с компанией-плательщиком
Теперь оплата транзакции проживания проходит успешно, и бронь корректно выселяется.

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

Ночной аудит: блокировка предупреждением о разделении счетов для ещё не заехавших броней
Теперь ночной аудит не блокируется предупреждениями для броней, которые ещё не осуществили заезд, что позволяет корректно проставлять статус «Незаезд».

Бронь: дублирование транзакций пакета при изменении тарифа и сроков проживания
Теперь при сокращении сроков и смене тарифа пересчёт пакетов выполняется корректно, исключая дублирование транзакций.

АС ОК: сбой создания разделённой брони и пустой идентификатор
Теперь внешние идентификаторы сохраняются корректно на этапе обработки, а возможные сбои индексации не прерывают весь процесс загрузки, позволяя успешно создавать и разделять брони.

TravelLine: отсутствие заполнения email и телефона при загрузке брони
Теперь контактные данные из загрузки корректно переносятся в соответствующие поля брони.

Фоновая фискализация: игнорирование отключения окончательного расчёта для предоплаты
Теперь настройка отключения окончательного расчёта для предоплаты учитывается, и такие транзакции не отправляются на фискализацию.

Фискализация: некорректная завершающая фискализация при наличии возврата
Теперь при наличии возврата оплата и возврат остаются в первичном статусе фискализации, как и задумано.

TravelLine: некорректная смена тарифа при продлении дат проживания
Теперь при продлении дат проживания на новые сроки корректно сохраняется исходный тариф брони.

Клиент: зависания и высокая нагрузка на процессор из-за антивируса
Теперь канал связи принудительно сбрасывается при нерабочем состоянии, что предотвращает зависания и высокую нагрузку на процессор. Для стабильной работы рекомендуется добавить исполняемый файл клиента в исключения антивируса.

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

АС ОК: сброс комнаты и идентификатора при модификации разделённой брони
Теперь при изменении сроков или типа комнаты в разделённой брони данные корректно обновляются для всех гостей, а лишние задачи на уборку не формируются.

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

Пакеты: некорректное начисление услуг при сдвиге даты заезда
Теперь начисление пакетных услуг корректно пересчитывается от актуальной даты заезда на все дни проживания.

ОТА: игнорирование дополнительных полей из XML при импорте брони
Логика импорта доработана: теперь данные из XML имеют приоритет и корректно сохраняются в дополнительных полях гостей при импорте брони из внешних каналов.

Мастер разделения: сброс данных гостей при сортировке таблицы
Теперь сортировка колонок не приводит к сбросу введённых данных и отвязке профилей гостей.

АС ОК: потеря оплат при выгрузке из-за сбоев или обновления службы
Теперь граница периода выгрузки сдвигается только после успешного завершения, а внедрённый механизм тегов гарантирует, что полностью оплаченные брони будут выгружены даже при сбоях.

Битрикс24: некорректное назначение ответственного в сделке при синхронизации
Теперь поиск пользователя для назначения ответственным выполняется точечно по email, что гарантирует корректное заполнение поля в сделке.

Служба: отказ запуска при отключённом модуле онлайн-эквайринга
Теперь служба корректно запускается и работает независимо от состояния модуля онлайн-эквайринга.

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

Бронь: недоступность переключателя «Показать все доступные номера»
Теперь переключатель отображается и доступен для использования в нужных ситуациях, независимо от наличия выбранной комнаты.

Бронь: отсутствие списка комнат для поселения при неактивном тарифе
Теперь список комнат для выбора и поселения отображается корректно, даже если тариф брони деактивирован.

WebApi: некорректная передача статуса согласия на обработку персональных данных
Теперь значение в ответе API точно соответствует реальному состоянию флага согласия в профиле гостя.

Счёт: некорректное распределение сумм при подготовке расчёта авансов
Функционал подготовки расчёта полностью переработан, теперь баланс счёта и платёжные транзакции в финансовых документах формируются корректно.

TravelLine: отсутствие генерации гостя при импорте разделённой брони
Теперь при импорте разделённой брони все гости, включая детей, корректно генерируются и распределяются согласно данным из загрузки.

Администрирование: ошибка доступа к журналу сервера
Нерабочий раздел удалён из административной панели во избежание ошибок. Для просмотра журналов рекомендуется использовать файлы логов службы напрямую.

Группы: некорректное наследование данных группы при отключённой синхронизации
Теперь при отключённой синхронизации индивидуальная бронь не наследует компанию-плательщика и инструкции автотрансфера из групповой брони.

Услуги: возможность удаления услуги с уже проведённой транзакцией
Теперь система блокирует удаление услуг, если их транзакции уже проведены на счёте, предотвращая расхождения в данных.

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

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

Счёт: некорректное время начисления пакетных транзакций при сдвиге даты заезда
Теперь время начисления первой пакетной транзакции корректно совпадает с временем заезда, обеспечивая правильную работу автотрансфера.

Услуги: невозможность редактирования примечаний добавленной услуги
Теперь поле «Примечания» у добавленной услуги корректно редактируется двойным кликом.

  • No labels