Описание интерфейса связи RK7 и Shelter2 через FarCards.

 

Структурная схема.

 

 

Структура взаимодействия модулей и программ.

RKeeper при оплате на специальную валюту обращается к FarCards, который вызывает подключенную к нему sdmHTTPFarCard.dll.

Последняя dll обращается к ключу защиты и если лицензия найдена (проект 2 модуль 11),

отправляется XML запрос на TCP/IPi сервер - программу HTTPRKtoSH.exe. Этот сервер обращается к ShelterConnect.dll,

которая работает с базой данных Shelter.

  • Используемые версии ПО
  • ​Версия станции и кассового сервера 7.5.7.65
  • Версия FarCards 6.04
  • Важно!!! pds_netk.dll из версии RK7 7.5.3.x
  • ​Shelter версия 2.12.120.2365
  • HTTPRKtoSH от 16.06.2017
  • ShelterConnect.dll от 17.02.2017
  • sdmHTTPFarCard.dll от 10.03.2017

Дистрибутив находится на FTP

 

Настройки RKeeper7.

 

    1. Зайти в меню Сервис - Кассовые станции и устройства. Добавить устройство: PDS Interface#1. (Рис.1)

 

(Рис. 1)

 

  • Параметр PDS Server Name = rkfcsh – имя сервера FarCard, через который будет обеспечиваться связь с системой Shelter.
  • ВНИМАНИЕ! LookupCardByMailAddr = YES, Mail Addr Type Kind = 2
  • Если параметр «Pass All Receipts XML data» установить «YES Always (fail if impossible)», то при закрытии на любую валюту этот заказ будет передаваться в Shelter. Для этого должны быть сделаны соответствующие настройки в ShelterConnect.ini, и в настройках программы.  Не рекомендуемая схема работы.

    2. Зайти в меню Сервис - Интерфейсы. Добавить новый интерфейс. Назовем его INTF Shelter FC (Рис.2)

(Рис. 2)

 

В данном интерфейсе указываем ранее заведенный PDS interface. Код интерфейса необходимо прописать в фале HTTPRKtoSH.ini, в секции :

[SERVER]

RKInterfaceID=6

 

    3. Перейти в меню «Сервис» - «Обработка сигналов устройств» - «MCR алгоритмы» и добавить MCR-алгоритм.

Указываем область «Интерфейс», а так же объект - заведенный ранее интерфейс из п.2. Если указать область «Валюта»,

то при оплате появится ошибка 232: "Не получается напечатать чек: Персональное ограничение для "" = 0.00."

 

(Рис. 3)

 

    4. Далее, необходимо завести валюту, в разделе «Платежные карты» - «На номер FC» - Рис. 4

 

(Рис. 4)

 

 

Важно обратить внимание на заполнение полей :
  • Без сдачи - флаг установлен;
  • Доп. Инфо с клавиатуры - флаг установлен;
  • Автозаполнение - Вся сумма + подтверждение; Формат доп. Инфо - символ R и решетки (########). Символ R является ключевым, для определения номера комнаты
  • Не учитывать в потратах ПДС - флаг должен быть снят;

​Аналогично необходимо настроить закрытие на фолио (создать валюту).

 

Настройки FarCards :

 

FarCards необходимо установить на ПК, к которому физически подключен ключ защиты (для Shelter), а так же убедиться,

что в ключе присутствует соответствующий модуль :

Проект 2, модуль 11 - Интерфейс РК-Шелтер

 

Доработка по отмене проверки лицензии со стороны httpFarCards ведется в задаче : http://tracker.ucs.ru/issues/116728

 

Более подробную информацию по установка FarCards можно найти тут : http://support.ucs.ru/ru/node/6673#header-10

 

(Рис. 5)

 

Пример настройки FARCARDS.INI :

 

[FarServer]

Type = 1

DLL = sdmHTTPFarCard.dll

Gate = 3

log = 30

XMLCP=1251

[LinkDLL] 

1 = RTCP

2 = RNBOpen

3 = pds_netk

[RTcp] 

$Client1 = Премьера

$Server1 = 127.0.0.1

$Port = 2277

[RNBOpen] 

APServer = CS_SERV

[pds_netk] 

NetServerName=rkfcsh2

ininame=netk.ini

DebugMessages=1

[Card System 5] 

Address=127.0.0.1

Port=9191

Log_Level = 10

Log_Count = 5

Qualifier = 2

Images_Path = E:\CS_501\images\

 

netk.ini :

 

[netkern]

TESTMESSAGES=0

protocols=tcpsoc.dll

[TCPSOC]

port=2234

 

HTTPFarCard.ini :

 

[PARAMS]

ClientCode = HOTEL

UserCode = UCS

UserPwd = 12345

LangCode = RU

[SERVER]

Host = 127.0.0.1

Port =2277

[LOG]

FileName=HTTPFarCards_AB.log

Level = 100

DebugLevel = 100

 

FarCards обращается к sdmHTTPFarCard.dll, которая должна находиться в папке с FarCards. sdmHTTPFarCard.dll защищена

ключом защиты UCS Shelter. Этот ключ должен физически находиться на машине, где запущен FarCards. В случае связи с ПО Абонемент

или гостиничной системой Shelter, можно воспользоваться одним ключом, если FarCards запущен на одном сервере с Shelter или Абонемент.

Настройки осуществляются в файле HTTPFarCard.ini. Ниже приведен его пример.

 

HTTPRKtoSH.ini:

 

[SERVER]

Port = 2277

RKInterfaceID=6

AllCheckToHotel = 1

IdentPhysType = 2

Autostart = 1

Autohide =0

[LOG]

FileName = C:\UCS\HTTPtoAB\LOG\HTTPRKtoSH.log

 

Level = 100

DebugLevel =100

 

ByMonthes = 1

ByDays = 1

ByHours = 1

 

HTTPRKtoSH.exe является сервером, который слушает TCP/IP и обрабатывает XML запрос от sdmHTTPFarCard.dll. HTTPRKtoSH.exe

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

Основные настройки осуществляются в файле HTTPRKtoSH.ini

 

ShelterConnect.ini:

 

 

 [Database]

  DBname    =   127.0.0.1/3080:D:\Base\Garbage_Shelter\IBDATA\SHELTER.FDB - имя базы Shelter-а, с указанием полного пути

и имени компьютера, на котором установлен Shelter.

  DBUser   =  ucs - имя пользователя для подключения к базе Shelter-а
  DBPassword = oQKH8n0BFUE= - пароль для подключения к базе Shelter-а
 
[ExternalClient]
  ClientID = 1 - код shelterconnect'a, если используются несколько ShelterConnect.DLL
  IdentPhysType = 2 - Тип устройства. Данный параметр не анализиурется в shelterconnect, а анализируется в HTTPRKtoSH
  ConvertOperationNeed = 1 -  0- не использовать секцию [TranslateOperation], 1- использовать секцию
  ToOEM = 0 (0 - нет конвертирования, 1- конвертирование текстов в/из OEM/Windows (ошибки, комментарии, тексты ... )).

Должен быть 0. При переходе с Rkeeper 6, поменять на 0!

  NeverRestrictTransaction = 0 (0- проверять баланс фолио перед совершением транзакции, 1- не проверять баланс перед совершением транзакции).
  FolioMask = 1 - Фиксированное значение.
  ShowBalance = 1 (1 — при запросе разрешенной суммы оплаты добавлять к имени клиента текущий баланс, 0 - не добавлять).
  ShowBalanceFirst = 1 -  показывать баланс перед именем клиента.
  RoomInfoMode = 3 
  TransSection =0
  ConvertExtIDtoNumber = 1/0 - использование внешенего номера, описание ниже.
 
[log]
  FileName  = ShelterConnect.log
  Level   =  100
  DebugLevel =  100
 
[GarbageCollector]
  Enabled  = 0
  LifeTime = 120
 
[SCRK6]
  AlcoholicOperation =999;
  Messages =SCRK6.eng.msg
 
  UseScreenHeader0 =1
  UseScreenHeader1 =1
  UseScreenSequelCode =1
 
  ShowBalance = 1
  ShowBalanceFirst = 1
  ShowBalanceEverywhere = 1
 
  UseDetails = 1
  UseSuperDetails = 1
 
[TranslateOperation]
     1 = 301
     2 = 301
     3 = 301
     4 = 301
     5 = 301
     6 = 301
     7 = 301
     8 = 301
     9 = 301
     10 = 301
     11 = 301
     16 = 301
     17 = 301
   999 = 301
 
[TranslatePayment]
  1 = 1005,910
  1000632 = 1005,901
  8 = 1005,901
  3 = 1005,901
 
        Для того, чтобы при закрытии на номер, услуга закрывалась на 0-ю, 1-ю, 2-ю и другие секции в shelter, необходимо добавить в shelterconnect.ini секцию [PARAMS]:
[PARAMS]
NoAutoDiscount = 0
Section = 2  - Номер секции, на которую будет происходить закрытие на номер.
UseSection = 1
 
Описание параметра ConvertExtIDtoNumber
    Данный параметр необходимо включать, если в одной базе данных shelter более 2-х гостниц и существует одинаковые номера, а также номера, включающие символы, например, номер 7 и 7в.
      После включения данного параметра в shelterconnect.ini, необходимо в "Номерной фонд" в справочниках  shelter проставить параметр "Внешний номер", после чего на кассе RK, необходимо вводить проставленный номер параметра "Внешний номер".
 
 
 

Разделение услуг БАРА и РЕСТОРАНА

 
 
        Для разделения услуг БАРА и РЕСТОРАНА необходимо использовать две станции RK, одна используется  в баре, а вторая используется в ресторане.
             В Shelter необходимо завести услуги  «Ресторан» с кодом 301 и «Бар» с кодом 302 (Рис. 6).
 
Рис. 6.
 

      Далее необходимо сопоставить код услуг shelter c группами станции RK в shelterconnect.ini FARCARDS (Рис 7).

Рис. 7.
 
                                                      Коды группы станции можно посмотреть в «Станции и Устройства» в менеджерской части RK (Рис. 8, Рис. 9).
 
Рис 8.
 
Рис 9.
 

                                                      После закрытия на номер с каждой из станции на фолио гостя будут отображаться две услуги «Бар» и «Ресторан» (Рис. 10).

Рис 10.

 

Разделение услуг по категории заказа.

 

                        Для корректного отображения услуг необходимо использовать следующие версии приложения и библиотеки: 

                                           - ShelterConnect.dll v_1.8.0.3;

                                           - HttpRKtoSh v_1.4.

                В RK необходимо настроить и завести категории заказа, которые будут выбираться при создании заказа. В нашем случае заведены следующие категории заказа: Бар, Основной и Ресторан.

Рис 11.

                Для закрытия на номер по категории заказа необходимо в shelterconnect.ini добавить параметр ConvertOperationType =0

[ExternalClient]

ConvertOperationType =0 //Если 0, то закрытие на номер происходит по группе станции. Если 1, то по категории заказа

                При значении параметра ConvertOperationType =1 в секции [TranslateOperation] сопоставляем код категории заказа из поля «Код» (Рис 11) с заведенной услугой в shelter

[TranslateOperation]

     1 = 305

     2 = 302

     3 = 307

     4 = 303

     5 = 301

 

                Заведенные услуги в shelter

                Для проверки корректности работы при создании заказа, необходимо выбирать категорию заказа (Рис 12).

Рис 12.

            После заполнения всех полей и закрытия на номер, на фолио гостя отобразится услуга Бар или Ресторана в зависимости от выбранной категории заказа.

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

 

                Разделение услуг БАРА и РЕСТОРАНА

                (Выделение алкоголя. Схема из задачи #173858).

                Для реализации данной схемы неообходимо два экземпляра FARCARDS, которые можно запустить на одном рабочем месте, указав разные порты.

                    Настройка shelterconnect.ini представлена на рисунке 13.

Рис.13

                Настройка PDS Interface настраивается аналогичным образом, как и при закрытии на номер, за исключением параметра «Pass All Receipts XML data». Настроки  представлены на рисунке 14.

Рис. 14

                Сами интерфейсы настраиваются точно также, как и при закрытии на номер

Рис. 15

            Для разделения блюд по разным категориям на БАР и РЕСТОРАН, настроили две классификации блюд в "Отдел ФР" по мануалу https://support.ucs.ru/ru/node/7224 , которые представлены на рисунке 16.

Рис. 16

 

                Далее необходимо завести две валюты и  для каждой выбрать классификацию, которые были созданы раннее (Рисунок 17)

Рис. 17

                Для реализации данного механизма потребуется либо ФР, либо принтеры печати. В нашем случае был использован один принтер печати SEWOO, настройки представлены ниже на рисунке 18.

Рис. 18

                Если не настроить "Назначение принтеров", то при закрытии на номер будет ощибка

 

                Для проверки корректности работы, создается стол или быстрый чек, добавляем блюда из БАРА и РЕСТОРАНА (Рисунок 19)

Рис. 19

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

Рис 20.

                После поочередного закрытия на номер каждой валютой выйдет два чека и на фолио гостя отобразятся две услуги БАР и РЕСТОРАН (Рисунок 21)

Рис 21.

 

                 Закрытие числовой номер или название комнаты в Shelter

               Через FarCards возможно закрывать на символьные номера, например, 3M, Fito и т.д. (Рисунок 22).

Рисунок 22

              Для этого необходимо для валюты "Закрытие на номер" в поле "Формат доп. инфо" ввести маску Raaaa 

Рисунок 23

              После чего, в поле ввода необходимо вводит необходимый номер комнаты, например, Fito.

Рисунок 24

              После ввода номера/названия комнаты появится стандартное окно с информацией о госте и балансе.