Разделы и статьи

Интеграция R_Keeper 7 и Shelter CLOUD

Содержание: 1. Необходимые инструменты. 2. Настройка RK7 Manager. 3. Настройка Farcards. 4. Минимальные действия в FD24. 5. Работа с кассой RK7.

1. Необходимые инструменты.

Для настройки нам потребуется: - ПО R_Keeper 7 Manager (Менеджерская станция). - R_Keeper 7 Cash (Кассовая станция). - Токен отеля в системе Shelter CLOUD. Для выдачи токена необходимо обратиться в техническую поддержку. - Сборка Farcards. Во вложении к статье. - Закрытие на фолио работает ТОЛЬКО В СЛУЧАЕ НАЛИЧИЯ ДЕНЕЖНОГО ДЕПОЗИТА на счете клиента в Shelter CLOUD.

2. Настройка RK7 Manager.

Переходим в менеджерскую станцию R_Keeper 7. Добавим кассе "PDS interface". Для этого необходимо зайти в раздел "Сервис" - "Станции и устройства" и выбрать необходимый кассовый сервер из списка. В разделе устройства нажимаем правой кнопкой и добавляем "PDS interface". Имя данного интерфейса указывается в "farcards.ini" в параметре: "NetServerName=". Подробнее об этом будет указано в разделе "Настройка Farcards". Значение параметра "PDS Server Name" в свойствах "PDS interface" должно соответствовать значению параметра "NetServerName" в "farcards.ini".
Информация на скриншотах 1 и 2.

Скриншот 1.

Скриншот 2.
После этого переходим в раздел "Сервис" - "Интерфейсы". И создаем новый интерфейс. Необходимо заполнить поле "Название", а также в разделе "Файлы библиотек DLL", выставить кассе "PDS Interface", который мы создавали ранее. Информация отображена на скриншоте 3.

Скриншот 3.
Далее заводим валюту для закрытия на номер в Shelter CLOUD. Для этого заходим в раздел "Деньги" - "Валюты". Выбираем необходимый раздел (например "Платежные карты") . Щелкаем правой кнопкой и создаем новую валюту.

Скриншот 4.
Ниже будут представлены параметры, обязательные для заполнения, в свойствах Валюты. Не забываем сохранить изменения. Важно: Для корректного создания валюты, необходимо установить значение "Cуммарно с вычитанием" у параметра "Тип фискальности". Настройка данного параметра доступна только под дилерской учетной записью. Если у вас нет такой учетной записи, рекомендуется обратиться в организацию обслуживающую R_Keeper 7.

Скриншот 5.
Создаем скидку. Для этого заходим в меню "Деньги" - "Скидки и наценки". В существующем или созданном нами разделе, заводим новую скидку.

Скриншот 6.
Параметры скидки будут указаны ниже. Заполняем параметры в разделе "Свойства", оставив параметр "Статус" деактивированным. После чего создаем детализацию скидки в разделе "Детализации". Только после этого устанавливаем параметр "Статус" в положение "Активен" и сохраняем изменения. Смотрите скриншоты ниже:

Скриншот 7.

Скриншот 8.

Скриншот 9.
Далее создаем "MCR Алгоритм". Для этого заходим в меню "Сервис" - "Обработка сигналов устройств" - "MCR алгоритмы". В рабочей области нажимаем правую кнопку мыши и выбираем "Новый MCR алгоритм".
Алгоритм должен иметь следующие параметры:

Скриншот 10.

Скриншот 11.
В раздел "Скрипт" ("Редактор скрипта MCR алгоритма") вставляем нижеуказанный код: 
 function MCR1002154(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;
 
begin
 
  if ('R'=Copy(Parameter, 1, 1)) or ('r'=Copy(Parameter, 1, 1)) or ('К'=Copy(Parameter, 1, 1)) or ('к'=Copy(Parameter, 1, 1)) then
 
   begin
 
      //delete(Parameter,1,1);
 
      Result:=True;
 
   end
 
  else
 
   begin
 
    Result:=False;
 
   end;
  
 end;

Скриншот 12.

Заходим в раздел "Настройки" - "Параметры" - "Параметры работы станции" - "Редактирование заказа" - "Расчёт/Оплата заказа". В параметре "Оплата платежной картой" выставляем значение "Спрашивать".                                                                                 

                                                                                                                              

Скриншот 13.
После выполнения всех вышеуказанных действий, переходим к разделу 3. Настройка Farcards.

Настройка Farcards

Сборка Farcards. Во вложении к статье. В дистрибутиве сборки располагается файл "appsettings.json". В данном файле должны быть следующие параметры: {

"Address": "https://cloud.shelter.ru/rk7/",

"DefDiscountCode": 16,

"Token": "A83B883F-B57C-4FC1-87F6-72CE0058305B",

"TimeoutSecs": 30,

"AllowedPaymentCode": 101

}

Разберем каждый параметр в отдельности:

"Address" - URL адрес личного кабинета Shelter CLOUD с добавлением строчки /rk7/ в конце.

"DefDiscountCode" - Код ранее созданной скидки из R_Keeper7.

"Token" - Выдается по запросу. Прочтите пункт 1.

"TimeoutSecs" - Таймаут в секундах.

"AllowedPaymentCode" - Код ранее созданной валюты из R_Keeper7.

Скриншот 14.
Также следует обратить внимание на файл farcards.ini. Прописываем в него название DLL, отвечающей за работу выгрузки. Ниже отображены параметры:
[FarServer] Type = 1 DLL = frontdesk24ExtDll Gate = 1 XMLCP=1251 [LinkDLL] 1 = pds_netk [pds_netk] NetServerName=FD24 ininame=netk.ini DebugMessages=1 ERRORLOG=pds_netk.stk ErrorLogSize=10485760 Timeout=120000 Файл "frontdesk24ExtDll.dll" должен находиться в корне папки с Farcards. 

Скриншот 15.
Параметр "NetServerName" должен совпадать с названием PDS интерфейса на кассе.

Скриншот 16.
После проверки всех параметров запускаем "Farcards" с параметром /desktop, либо устанавливаем его в виде службы с помощью параметра /install. Для этого необходимо создать ярлык "farcards.exe" и в свойствах ярлыка на вкладке "Ярлык" в поле "Объект" прописать необходимый параметр. Информация на скриншоте:

Скриншот 17.
После проверки параметров сборки запускаем приложение "Farcards". Первый запуск рекомендуется выполнить с параметром /desktop, чтобы проверить нет ли ошибок при подключении библиотеки "frontdesk24ExtDll.dll". В дальнейшем, можно запускать приложение в виде службы. Проверяем, что библиотека успешно подключена:
                                                                                                                                                                                                   
Скриншот 18.

4. Минимальные действия в Shelter CLOUD.

Выполняем поселение в одном из номеров отеля в Shelter CLOUD. Для этого, в новом бронировании, заполняеем минимальный перечень необходимых полей: - "Номер".
-  Ставим чекбокс "Гости заехали".

Скриншот 19.
А также внесим депозит в бронь клиента. Поскольку без депозита интеграция работать не будет, а при попытке закрыть заказ в R-Keeper7 будет возникать ошибка: "Для данной валюты максимальный платеж 0.00".
После ввода всех данных и выбора номера комнаты, нажимаем кнопку "Забронировать". Теперь мы можем внести депозит. В разделе "Платежи" указываем сумму и тип платежа. Нажимаем кнопку "Добавить".

Скриншот 20.

5. Работа с кассой.

Запускаем кассовый сервер (если уже запущен, то нужно перезапустить). Первый запуск рекомендуется сделать с параметром /desktop, чтобы проверить подключен ли интерфейс и не искать это в логе. 
После запуска открываем приложение кассового сервера в трее, выбираем раздел Интерфейсы. Имя нашего интерфейса должно быть в списке:

Скриншот 21.
Запускаем приложение кассы. Авторизуемся. Интеграция работает через разделы "Создание заказа" и "Быстрый чек".

Скриншот 22.
Блюда в заказ мы можем добавить сразу либо потом. Для авторизации гостя и использования его депозита в качестве оплаты, нам необходимо нажать на кнопку "Код с клавиатуры" и ввести номер его комнаты в одном из доступных форматов:
- Русская буква К (что значит Комната) + номер комнаты в Shelter CLOUD(если номер в Shelter CLOUD указан в формате 03, то 0 тоже учитывается). Иными словами если у гостя номер комнаты 03, то вводим К03.
- Английская R (что значит Room) +  номер комнаты в Shelter CLOUD (если номер в Shelter CLOUD указан в формате 03, то 0 тоже учитывается). Если у гостя номер комнаты 04, вводим R04.

Скриншот 23.
Если все настроено корректно, то мы увидим клиентскую карточку.  Здесь мы видим остаток на счете и другие данные.

Скриншот 24.
Заказ можно закрыть двумя способами, они будут отображены на скриншотах ниже. Процесс идентичен закрытию на номер Shelter2. Способ 1
Заказ сформирован. Нажимаем кнопку "Код с клавиатуры".

Скриншот 25.
Вводим номер комнаты гостя.

Скриншот 26.
Нажимаем кнопку оплата картой.

Скриншот 27.
Подтверждаем оплату.

Скриншот 28.
Способ 2:
Не формируем заказ, нажимаем кнопку "Код с клавиатуры".

Скриншот 29.
Вводим номер комнаты гостя и попадаем в клиентскую карточку. После чего, внутри карточке щелкаем по кнопке "R_K" в левом верхнем углу экрана.

Скриншот 30.
Видим, что в заказе проставилась скидка.

Скриншот 31.
Проводим оплату заказа валютой "Закрытие на номер в FD24".

Скриншот 32.
Подтверждаем оплату.

Скриншот 33.
После этого мы видим, что в бронировании гостя в Shelter CLOUD отобразились наши покупки.

Скриншот 34.
Разберем процедуру возврата. Для этого заходим в раздел "Закрытые чеки".

Скриншот 35.
В разделе "Закрытые чеки" отображаются 2 чека, которые были закрыты нами ранее.

Скриншот 36.
Выбираем необходимый и нажимаем "Удалить"

Скриншот 37.
Подтверждаем удаление.

Скриншот 38.
Выбираем списывать ли продукцию с кухни или нет.

Скриншот 39.
Как мы видим, чек успешно отменен.

Скриншот 40.
А в Shelter CLOUD пропали начисления в брони.

Скриншот 41.
Интеграция настроена.

Возможные проблемы и их решение

Кейс 1: Проблема: При закрытии на номер из R_Keeper в Shelter CLOUD, на кассе R_Keeper  получаем ошибку: Некорректный код Карты ПДС. В логе видим ошибку: |Error| Init: After parsing a value an unexpected character was encountered: ". Path 'AllowedPaymentCode', line 7, position 2.

Решение: Проверить файл appsettings.json на наличие ошибок:

   - Значение параметра AllowedPaymentCode должно соответствовать коду валюты в R_Keeeper 7, которая предназначена для закрытия на номер.

   - В синтаксисе файла не должно быть ошибок. В нижеуказанном примере отсутствует запятая после значения параметра.