Настройка выгрузки из ПО Abonement
- Настройка выгрузки из Абонемента в StoreHouse5 (SH5)
- Интеграция iiko и Абонемент / Shelter
- Интеграция Абонемент и RK7 через Farcards
- Выгрузка из Shelter 2 в SH5
Настройка выгрузки из Абонемента в StoreHouse5 (SH5)
Настройка выгрузки из Абонемента в StoreHouse5.
1. Для утилиты QUSHMan при подключении к базе Абонемента необходимо установить LCPI OLE DB Provider for InterBase [v3] (IBProvider.7z). Данный провайдер ставиться там, где работает служба (сервер) QushSvc:QUSH (Версия QushMan 1.7.7).
Обратите внимание на QushMan.ini. Там прописано подключение к серверу QushSvc (QushSvc порт по умолчанию 8087).
2. При установке провайдера необходимо выбрать только IBProvider 3.6.
3. Закинуть библиотеку gds32.dll в папку C:/Windows/SysWoW64.
4. Подготовить базу данных Абонемента к выгрузке. Необходимо применить скрипт "export_to_storehouse5.sql" на БД. Скрипт находиться в ...\Fullversion\_UTILS\ExportData.
5. Настроить параметры выгрузки с помощью ExportData.
5.1. Настроить конфигурационные файлы shelter.ini; ExportData.ini. В поле dbname - указать путь к базе Абонемента. Пример:
shelter.ini:
[Database]
UseConnectionString=0
UseExportData=1
dbname=81.94.140.196/3080:D:\Base\Garbage\n.kamyshnikova\Vpark2\FITNESS143.FDB
DBUser = ucs
DBPassword = oQKH8n0BFUE=
[log]
Name = shelter.log
Level = 10
DebugLevel = 10
ExportData:
[database]
dbname=81.94.140.196/3080:D:\Base\Garbage\n.kamyshnikova\Vpark2\FITNESS143.FDB
;dbname=127.0.0.1/3080:UCS_TEST
;dbname=127.0.0.1/3080:D:\FITNESS\IBData\FITNESS.FDB
dbuser = ucs
DBPassword = oQKH8n0BFUE=
[Localization]
CurrentLanguage=default
5.2 Добавляем данные для выгрузки. Нажимаем на "Добавить":
5.3 В окне "Экспорт данных" на вкладке "параметры" вводим поля.
Код - уникальный код для данного условия выгрузки. В SH4 не передается.
Наименование - наименование товарной группы в справочнике товаров SH5
Место реализации - Наименование места реализации (порядковый номер) в SH5
Префикс для элементов - Для SH5 не актуально
Префикс - Для SH5 не актуально
Внешний ID - Для SH5 не актуально
Тип экспорта - Для ПО Абонемент используется тип «Услуги»
Доп. опции экспорта -Задает аналитику выгрузки. Предопределенные варианты.
Включен - Если данный флаг установлен, то условие выгрузки активно.
Выгружать место реализации как группу услуг Для SH5 данный флаг должен быть снят.
Версия StoreHouse ставим StoreHouse5
Пример:
5.4 Переходим во вкладку "Услуги".
В левой колонке выбираем группы услуг для выгрузки. В правой ставим галочки какие услуги хотим выгрузить.
Пример:
5.5 Нажимаем "ОК" и закрываем ExportData.
6. Делаем настройку QushMan.
6.1 Логинимся (по умолчанию: логин: Admin ; нет пароля). Заходим в пункт меню "файл" и нажимаем "Связки с Абонемент".
6.2 Нажимаем правой кнопкой мыши в левой колонке. Выбираем пункт "Создать". Вводим название, например, Abonement_SH5/
6.3 На вкладке "Настройки" в подвкладке "Базы данных" настраиваем подключение к базе StoreHouse5 и к Абонементу:
и нажимаем проверить. Если все успешно - сохраняем.
6.4 Нажимаем обновить и переходим во вкладку "Клубы". Выбираем клуб и нажимаем сохранить.
6.5 Переходим на вкладку "Места реализации" и выбираем место реализации:
Сохраняем (на всякий случай)
6.6 Переходим на вкладку "Справочники" нажимаем на троеточие и вводим название группы, которые будет отображаться в SH5:
Сохраняем.
6.7 На вкладке Автозапуск можно настроить автоматическую выгрузку по желанию:
7. После того, как все настроено. Переходим во вкладку "Задания" делаем выгрузку без продаж.
Должна будет появится строка:
8. Заходим в SH5 и проверяем, что данные по выгрузке появились. Заходим в "Словари -> Товары -> Товары"
На примере наших настроек должна появиться товарная группа (в нашем случае) QushPush.
Перейдя подпункт "Доп. услуги" увидим список выгруженных услуг:
Перейдя в "Словари -> Доп. словари > Места реализации" можно увидеть наше место реализации. В нашем случае test:
9. Теперь пробуем сделать "Выгрузку включая продажи" за определенный период. Например выгрузка с 02.03.2021 по 02.03.2021. (пункты 7, 8 необязательны, но настоятельно рекомендованы).
После выполнения должна появится строка:
Если открыть подробности об операции, то должно быть что наподобие этого:
10. Заходим в SH5 и проверяем, что реализация успешно выгрузилась. Для этого заходим в "Документы -> Заявки".
Настраиваем фильтр для удобства отображения. Выбираем период с 02.03.2021 по 02.03.2021. Добавляем в фильтр "Места реализации", настроенное при выгрузке место. В нашем случае это "test". И смотрим, что у нас получилось.
Должно получиться, например, так:
Видим, что за 02.03.2021 у нас есть заявка под номером 640, место реализации "test", Общая сумма реализации - 450.
Нажимаем на заявку правой кнопкой мыши и выбираем свойства:
Открывается окно, где мы видим четыре вкладки "Заголовок", "Товары", "Род. заявка", "Маршруты".
На интересуют только две.
10.1. "Заголовок" - общая информация по заявке.
10.2. "Товары" где мы можем увидеть подробности о том, какие товары были реализованы за этот период (день).
Как видно из рисунка, у нас реализовано:
*Услуга "Залог за браслет" в кол-ве 1 шт. общая стоимость - 300.
*Мыло ручной работы в кол-ве 1 шт. Общая стоимость - 150.
**Версия QushMan 1.7.7
Интеграция iiko и Абонемент / Shelter
Описание интеграции iiko и Абонемент / Shelter.
Структурная схема связки выглядит следующим образом:
Для работы Connecter - установите сервер блокировок Абонемента (службу) и запустите.
В connecter.ini указываете хост и порт сервера блокировок именно Абонемента (1111 - это дефолтный порт лок-сервера Шелтера), у Абонемента, как правило, он другой (1116 или 1119) - проверьте, чтобы порт был открыт (Брандмауэр).
Также в connecter.ini в секции [lock.server] укажите
Project = 2
Module = 12
version=2.3
На ключе защиты Shelter ОБЯЗАТЕЛЬНО должен быть проект 2 модуль 12.
Структура взаимодействия модулей и программ.
iiko при оплате на специальным платежом обращается к Connecter, который обращается к ShelterConnect.dll, которая работает с базой данных Абонемент/Shelter.
Используемые версии ПО:
- Версия ПО Абонемент: 1.134
- Версия Connecter: 1.64
- Версия iiko: 5.5
Лицензирование.
Команды для закрытия из iiko защищены ключом, необходимо иметь проект 2 модуль 12 в используемом ключе защиты. До момента доработки плагина от iiko - нужен проект 1 модуль 2.
Необходимые файлы в папке с Connecter.exe.
- SCRK6530.dll
- ShelterConnect.dll
- ShelterConnect.ini
Используются те же файлы, что и при интеграции с RKeeper 7, приложены к статье (ShelterRK7.rar) и есть с сборке FullVersion Абонемент.
Настройки iiko.
Выполняются специалистами, устанавливающими iiko (https://ru.iiko.help/articles/#!special-iiko/ucsshelter)
Плагин от iiko: http://rapid.iiko.ru/plugins/Smart%20UCSShelter/V5/
Настройки Connecter.
- Выполнить стандартные настройки Connecter.
- Connecter Должен быть настроен на БД, в которую будет осуществляться закрытие.
- В секции [Charset] необходимо установить параметр UseUrlEncode=0.
Настроить секцию [HotelInterface]
[HotelInter face]
HotelInterFaceDllname=D:\connecter\SCRK6530.dll
enabled=1
FolioMask=0
Настройки ShelterConnect.
[Database]
dbname=%Путь до БД Абонемент/Shelter%
DBuser = UCS
DBpassword = oQKH8n0BFUE=
[ExternalClient]
ClientID = 1 - код shelterconnect'a, если используются несколько ShelterConnect.DLL
IdentPhysType = 200 - Тип устройства: 2-магнитные карты, 200-замок,ключ
ConvertOperationNeed = 1 - 0- не использовать секцию [TranslateOperation], 1- использовать секцию
ToOEM = 1
NeverRestrictTransaction = 1 - 0- проверять баланс фолио перед совершением транзакции, 1- не проверять баланс перед совершением транзакции
FolioMask = $04 - Фиксированное значение. Устанавливается UCS. Не трогать!
ShowBalance = 1
ShowBalanceFirst = 1 - 1 — при запросе разрешенной суммы оплаты добавлять к имени клиента текущий баланс, 0 - не добавлять
ShowPermissibleSumAsBalance = 1
[log]
FileName = ShelterConnect.log
Level = 40
DebugLevel = 40
[GarbageCollector]
Enabled = 0
LifeTime = 120
[SCRK6]
UseDetails = 0
AlcoholicOperation =999;
Messages =SCRK6.eng.msg
UseScreenHeader0 =0
UseScreenHeader1 =0
UseScreenSequelCode =0
ShowBalance = 1
ShowBalanceFirst = 1
ShowBalanceEverywhere = 1
UseSuperDetails = 1
RoomInfoMode = 3
[PARAMS]
NoAutoDiscount = 1
Section =0
UseSection =1
[TranslateOperation]
; ЧТО_ПРИХОДИТ_ИЗ_iiko=КОД_УСЛУГИ_В_АБОНЕМЕНТЕ
1=301
[TranslatePayment]
1111 = 70996,НАЛ
Реализованный функционал:
Кейс |
Результат |
Закрытие по номеру ФОЛИО |
После ввода номера фолио в iiko отображается гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио гостя начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
Закрытие на номер по номеру карты гостя |
После ввода номера карты гсотя/считывания карты гостя в iiko отображается гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио гостя начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
Закрытие по номеру карты поселения |
После ввода номера карты поселения/считывания карты поселения в iiko отображается гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио гостя начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
Закрытие по номеру комнаты |
После ввода номера комнаты в iiko отборажается проживающий в ней гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио поселения начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
Закрытие на незаселенный номер |
После ввода номера в iiko отбражается соответствующая ошибка. |
Закрытие на номер комнаты с несколькими проживающими |
После ввода номера комнаты в iiko отборажаетсясписок проживающих в ней гостей. Если проживающие заселены местами и у каждого собственное фолио, то заказ будет закрыт на фолио поселения выбранного гостя, иначе - на общее фолио поселения. |
Закрытие с разными TRANSACTION_ID |
В iiko есть возможность настроить передачу различных TRANSACTION_ID для начисления разных услуг на фолио, например "Бар" и "Кухня". Как настроить необходимо уточнять у специалистов iiko. |
Отмена чека |
При отмене чека создается соответствующая корректирующая транзакция на целевом фолио. |
Закрытие на фолио с недостатком баланса |
При попытке закрыть заказ iiko сообщает об ошибке |
Закрытие со скидкой |
При закрытии чека со скидкой можно увидеть соответствующую информацию (полную стоимость, сумму и название примененной скидки) при просмотре внешнего чека. |
Недочеты, которые будут устранены в ближайшее время: при нехватке средств на фолио, ошибка не отображается в читабельном виде, вместо нее отображается "SCRK6/6.0.1: Ok".
Просмотр внешнего чека (Shelter).
Для просмотра внешнего чека используется rk6check.fr3 (включена в базовую поставку Shelter актуальных версий).
Для корректного отображения содержимого чека iiko необходимо:
1. В ..\Firebird\udf\ скопировать shrk6udf.dll и shrk6udf.ini (эти файлы можно найти в базовой поставке FullVersion актуальных версий)
2. В shrk6udf.ini настроить так:
[heap]
oemtochar=1
[CheckXML]
decodeType=0
3. Перезапустить службы FireBird, выполнить закрытие на номер, проверить результат.
Интеграция Абонемент и RK7 через Farcards
Выгрузка из Shelter 2 в SH5
1. Выгрузка данных в SH5 с помощью QUSH.
Внимание! Для работы выгрузки данных из Shelter2 в SH5 на ключе должен быть прописан Проект 5 Модуль 8.
1.1. Для выгрузки данных из Shelter2 в StoreHouse5 используются утилиты ExportData (из поставки ПО "Абонемент") и QUSH (SH5). Загрузить ПО Абонемент можно здесь:
ftp://ftp.shelter.ru/Abonement/FullVersion/
1.2. Дистрибутив утилиты ExportData и скрипт для базы данных Shelter2 находится в архиве во вложении к статье: ExportData_1_11_0_1_shtr_11.rar.
1.3. Актуальный дистрибутив ПО Storehouse5 можно загрузить здесь:
ftp://ftp.ucs.ru/
2. Функционал выгрузки тестировался на версиях Shelter2 2.12.142.4100 и ExportData 1.11.0.1.
2.1. Для работы с QUSH, на базе Shelter необходимо применить скрипт export_to_storehouse5.sql из поставки утилиты ExportData: export_to_storehouse5.sql :
- Для этого необходимо запустить IBExpert.
- Зарегистрировать нужную БД Shelter2.
- Зайти в меню Tools - Script Executive (Ctrl + F12).
- Выполнить скрипт на базе данных. Скрипт должен выполнится без ошибок (рис. 1).
Рис. 1 - Применение скрипта export_to_storehouse5.sql.
- Если все же ошибки при применении скрипта возникли (рис. 2), то рекомендуется скопировать содержимое папки UDF из дистрибутива актуальной версии ПО Абонемент (Fullversion\__SERVER\FireBird_2_5\udf\) в папку с установленным Firebird (например: C:\Program Files (x86)\Shelter\Firebird\udf). После перезапуска Firebird, снова подключаемся к базе и применяем скрипт.
Рис. 2 - Возможная ошибка при выполнении скрипта.
3. Запуск и настройка Exportdata:
- Распаковываем архив с Exportdata
- В файле ExportData.ini указываем путь к нашей БД Shelter2 (рис. 3)
Рис. 3 - Exportdata.ini.
3.1. Общие настройки.
- Запускаем ExportData.exe, желательно от имени Администратора.
- Для добавления параметров выгрузки, в главном меню программы нажимаем кнопку Добавить.
- Заполняем условия выгрузки. На текущий момент на ExportData 1.11.0.1 актуальны следующие условия:
Код |
уникальный код для данного условия выгрузки. |
Наименование |
Наименование товарной группы в справочнике товаров SH5 |
Место реализации |
Наименование места реализации. В SH5 - Словари - Доп. словари - Места реализации. |
Префикс для элементов |
Для SH5 неактуально |
Префикс |
Для SH5 неактуально |
Внешний ID |
Для SH5 неактуально |
Тип экспорта |
"Услуги"/"Номерной фонд" |
Доп. опции экспорта |
Задает аналитику выгрузки. Предопределенные варианты. |
Включен |
Если данный флаг установлен, то условие выгрузки активно. |
Смещение внешнего ID (для совместимости со старыми версиями) | Для SH5 неактуально |
Выгружать коррекции | Чекбокс по выбору. О коррекциях смотрите в руководстве пользователя SH5: https://docs.rkeeper.ru/sh5/ru/pol-zovatel-skaya-dokumentatsiya |
Версия Storehouse | "Storehouse4"/"Storehouse5" |
Место реализации | Количественный номер Места реализации в Справочнике SH4/SH5. Если в справочнике 2 места реализации, значит первое по списку 1, второе 2 соответственно. В поле указывается цифра. |
Рис. 4 - Настройки ExportData.
4. Настройка транспорта QUSH.
4.1. В ПО QUSH необходимо создать связку с Shelter2 (файл - Связки с Абонемент - правой кнопкой мыши по левой рабочей области - Создать. (На момент написания статьи нет раздела Связки с Shelter2). (см. рис. 5).
Рис. 5 - Соединение с БД.
4.2. Переходим в раздел Настройки и подраздел Базы данных. Указываем данные подключения к базе SH5 и базе Shelter2. Для подключения QUSH к БД ПО Shelter необходим провайдер LCPI OLE DB Provider for InterBase [v3]. Загрузить его можно на ftp.ucs.ru в разделе (/rk7/INSTALL/OTHER/IBProvider/) или во вложении к данной статье: IBProvider_prof_32-64_3[1].6.0.12057.exe.
При нажатии на кнопку Проверить, мы должны получить сообщение о том, что Подключение к серверу выполнено успешно. После этого последовательно нажимаем кнопки Сохранить и Обновить.
4.3. Переходим на следующий подраздел Клубы (Организации) и ставим галочку на чекбоксе с доступной организацией (рис. 6).
Рис. 6 - Клубы.
4.4. Переходим на следующий подраздел Места реализации и выбираем необходимые для выгрузки места реализации (рис. 7).
Рис. 7 - Места реализации.
4.5. В подразделе Справочники, нам необходимо выбрать из списка или создать Группу для товаров клуба (например "Услуги" или "Номерной фонд"(рис. 8)
Рис. 8 - Справочники.
4.6. В подразделе Автозапуск можно настраивать автоматический запуск импорта, а в подразделе Уведомления настраивать рассылку. Рекомендуем ознакомиться с их функционалом с помощью руководства пользователя SH5: https://docs.rkeeper.ru/sh5/ru/pol-zovatel-skaya-dokumentatsiya.
5. Выгрузка данных.
5.1. Рассмотрим выгрузку данных на конкретном примере, когда необходимо выгрузить справочник услуг и продажи данных услуг:
- Запускаем ExportData, добавляем новую конфигурацию как показано на рис. 9.
Рис. 9 - Экспорт услуг.
- Теперь нам необходимо перейти из раздела Параметры в раздел Услуги и указать необходимые услуги, которые мы хотим выгружать (рис. 10)
- Происходит выгрузка услуг оказанных в данном периоде. Используется смена когда услуга была начислена.
- В данной интеграции связь сущностей ПО "Shelter2" и ПО SH5 происходит по уникальному идентификатору - guid.
- Для типа экспорта «Услуги» дополнительные опции недоступны.
- Если в данную смену были реализованы отмеченные услуги, то в SH5 будут сформированы заявки, по которым можно создать накладные.
Рис. 10 - Раздел услуги.
- После добавления услуг обязательно сохраняем изменения по клавише Ок.
- Переходим в модуль QUSH, Создаем связку, указываем пути к базам данных, указываем Клубы и Места реализации, в Справочниках указываем Группу для товаров клуба - Услуги.
- После этого переходим в раздел Задания, указываем период выгрузки, ставим чекбокс "Включая продажи за период" если хотим выгрузить Заявки (расходный документ - продажи) и нажимаем Запустить (рис. 11).
Рис. 11 - Запуск экспорта данных.
- После выполнения экспорта, в поле результат должен быть статус Успешно. Однако иногда результаты бывают со статусом Ошибка. Просмотреть подробную информацию о экспорте можно двойным щелчком по заданию. На рис. 12, мы видим некритичную ошибку при выгрузке данных - Такая заявка уже существует. Она свидетельствует о том, что данный документ уже был выгружен ранее и его повторная загрузка невозможна. Рекомендуем внимательнее изучать детализацию завершенных заданий экспорта.
Рис. 12 - Детализация задания выгрузки.
- После выполнения экспорта мы можем зайти в Storehouse 5 и проверить выгруженные данные:
1) На рис. 13 видно, что товары были выгружены успешно.
Рис. 13 - Товары.
2) На рис. 14, мы видим выгруженные заявки.
Рис. 14 - Заявки.
5.2. Аналогично, но с некоторыми изменениями происходит выгрузка Номерного фонда (информация на рис. 15 - 19):
- Происходит выгрузка выездов из номеров. Данные типы экспорта нужны, например, для списания хозяйственных единиц на уборку номера.
- Если делать выгрузку без доп. опций, то каждый выезд из номера дает кол-во «единица», при этом не важно сколько гостей проживало в номере.
Рис. 15 - Параметры экспорта.
Рис. 16 - Типы номеров.
Рис. 17 - Параметры выгрузки в QUSH.
Рис. 18 - Выгрузка товаров и реализаций.
Рис. 19 - Выгрузка заявок в StoreHouse5.
6. Проблема отображения иконок в приложении ExportData.
6.1. Если вы столкнулись с проблемой, что при входе в ExportData у вас не отображаются иконки, вам нужно сделать следующее:
- Скачать папку skins с ftp.shelter.ru. Он находится в дистрибутиве ПО Абонемент FullVersion и во вложении к данной статье: skins.7z
- Папку skins из архива помещаем в любое удобное место.
- Файл ShelterIB.ini необходимо поместить по пути C:\Windows
- В ShelterIB.ini нужно прописать путь до файла skins.ini, который располагается в ранее разархивированной папке skins (рис. 20)
Рис. 20 - Skins.ini.