Настройка выгрузки из ПО Abonement

Настройка выгрузки из Абонемента в 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).

image-1627545269959.png

2. При установке провайдера необходимо выбрать только IBProvider 3.6.

image-1627545329841.png

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 Добавляем данные для выгрузки. Нажимаем на "Добавить":

image-1627545599333.png

5.3 В окне "Экспорт данных" на вкладке "параметры" вводим поля.

Код - уникальный код для данного условия выгрузки. В SH4 не передается.
Наименование - наименование товарной группы в справочнике товаров SH5
Место реализации - Наименование места реализации (порядковый номер) в SH5
Префикс для элементов - Для SH5 не актуально
Префикс - Для SH5 не актуально
Внешний ID - Для SH5 не актуально
Тип экспорта - Для ПО Абонемент используется тип «Услуги»
Доп. опции экспорта -Задает аналитику выгрузки. Предопределенные варианты.
Включен - Если данный флаг установлен, то условие выгрузки активно.
Выгружать место реализации как группу услуг Для SH5 данный флаг должен быть снят.
Версия StoreHouse ставим StoreHouse5

Пример:

image-1627545636559.png

5.4 Переходим во вкладку "Услуги".

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

image-1627545661938.png

5.5 Нажимаем "ОК" и закрываем ExportData.

6. Делаем настройку QushMan.

6.1 Логинимся (по умолчанию: логин: Admin ; нет пароля). Заходим в пункт меню "файл" и нажимаем "Связки с Абонемент".

image-1627545697590.png

6.2 Нажимаем правой кнопкой мыши в левой колонке. Выбираем пункт "Создать". Вводим название, например, Abonement_SH5/

image-1627545723443.png

6.3 На вкладке "Настройки" в подвкладке "Базы данных" настраиваем подключение к базе StoreHouse5 и к Абонементу:

image-1627545756859.png

и нажимаем проверить. Если все успешно - сохраняем.

6.4 Нажимаем обновить и переходим во вкладку "Клубы". Выбираем клуб и нажимаем сохранить.

image-1627545788662.png

6.5 Переходим на вкладку "Места реализации" и выбираем место реализации:

image-1627545816888.png

Сохраняем (на всякий случай)

6.6 Переходим на вкладку "Справочники" нажимаем на троеточие и вводим название группы, которые будет отображаться в SH5:

image-1627545849089.png

Сохраняем.

6.7 На вкладке Автозапуск можно настроить автоматическую выгрузку по желанию:

image-1627545879907.png

7. После того, как все настроено. Переходим во вкладку "Задания" делаем выгрузку без продаж.

image-1627545906759.png

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

image-1627545934925.png

8. Заходим в SH5 и проверяем, что данные по выгрузке появились. Заходим в "Словари -> Товары -> Товары"
На примере наших настроек должна появиться товарная группа (в нашем случае) QushPush.

image-1627545971756.png

Перейдя подпункт "Доп. услуги" увидим список выгруженных услуг:

image-1627546014062.png

Перейдя в "Словари -> Доп. словари > Места реализации" можно увидеть наше место реализации. В нашем случае test:

image-1627546044893.png

9. Теперь пробуем сделать "Выгрузку включая продажи" за определенный период. Например выгрузка с 02.03.2021 по 02.03.2021. (пункты 7, 8 необязательны, но настоятельно рекомендованы).

image-1627546185261.png

После выполнения должна появится строка:

image-1627546207150.png

Если открыть подробности об операции, то должно быть что наподобие этого:

image-1627546234364.png

10. Заходим в SH5 и проверяем, что реализация успешно выгрузилась. Для этого заходим в "Документы -> Заявки".
Настраиваем фильтр для удобства отображения. Выбираем период с 02.03.2021 по 02.03.2021. Добавляем в фильтр "Места реализации", настроенное при выгрузке место. В нашем случае это "test". И смотрим, что у нас получилось.

Должно получиться, например, так:

image-1627546294881.png

Видим, что за 02.03.2021 у нас есть заявка под номером 640, место реализации "test", Общая сумма реализации - 450.

Нажимаем на заявку правой кнопкой мыши и выбираем свойства:

image-1627546354561.png

Открывается окно, где мы видим четыре вкладки "Заголовок", "Товары", "Род. заявка", "Маршруты".
На интересуют только две.

10.1. "Заголовок" - общая информация по заявке.

image-1627546401437.png

10.2. "Товары" где мы можем увидеть подробности о том, какие товары были реализованы за этот период (день).

image-1627546450177.png

Как видно из рисунка, у нас реализовано:
*Услуга "Залог за браслет" в кол-ве 1 шт. общая стоимость - 300.
*Мыло ручной работы в кол-ве 1 шт. Общая стоимость - 150.

**Версия QushMan 1.7.7

Интеграция iiko и Абонемент / Shelter

Описание интеграции iiko и Абонемент / Shelter.

Структурная схема связки выглядит следующим образом:

image-1628232502640.png

Для работы 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.

Используемые версии ПО:

Лицензирование.

Команды для закрытия из iiko защищены ключом, необходимо иметь проект 2 модуль 12 в используемом ключе защиты. До момента доработки плагина от iiko - нужен проект 1 модуль 2.

Необходимые файлы в папке с Connecter.exe.

Используются те же файлы, что и при интеграции с 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.

  1. Выполнить стандартные настройки Connecter.
  2. Connecter Должен быть настроен на БД, в которую будет осуществляться закрытие.
  3. В секции [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

https://docs.shelter.ru/books/ustanovka-i-nastroyka-po-abonement/page/integratsiya-abonement-i-rk7-cherez-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).

image-1630488521850.png

Рис. 1 - Применение скрипта export_to_storehouse5.sql.

- Если все же ошибки при применении скрипта возникли (рис. 2), то рекомендуется скопировать содержимое папки UDF из дистрибутива актуальной версии ПО Абонемент (Fullversion\__SERVER\FireBird_2_5\udf\) в папку с установленным Firebird (например: C:\Program Files (x86)\Shelter\Firebird\udf). После перезапуска Firebird, снова подключаемся к базе и применяем скрипт.image-1630488557469.png

Рис. 2 - Возможная ошибка при выполнении скрипта. 

3. Запуск и настройка Exportdata:

- Распаковываем архив с Exportdata 

- В файле ExportData.ini указываем путь к нашей БД Shelter2 (рис. 3)

image-1630499223464.png

Рис. 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 соответственно. В поле указывается цифра.

image-1630501883181.png

Рис. 4 - Настройки ExportData.

4. Настройка транспорта QUSH.

4.1. В ПО QUSH необходимо создать связку с Shelter2 (файл - Связки с Абонемент - правой кнопкой мыши по левой рабочей области - Создать. (На момент написания статьи нет раздела Связки с Shelter2). (см. рис. 5).

image-1630502318121.png

Рис. 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).

image-1630502962345.png

Рис. 6 - Клубы.

4.4. Переходим на следующий подраздел Места реализации и выбираем необходимые для выгрузки места реализации (рис. 7).

image-1630502994213.png

Рис. 7 - Места реализации.

4.5. В подразделе Справочники, нам необходимо выбрать из списка или создать Группу для товаров клуба (например "Услуги" или "Номерной фонд"(рис. 8)
image-1630503439083.png

Рис. 8 - Справочники.

4.6. В подразделе Автозапуск можно настраивать автоматический запуск импорта, а в подразделе Уведомления настраивать рассылку. Рекомендуем ознакомиться с их функционалом с помощью руководства пользователя SH5: https://docs.rkeeper.ru/sh5/ru/pol-zovatel-skaya-dokumentatsiya.

5. Выгрузка данных.

5.1. Рассмотрим выгрузку данных на конкретном примере, когда необходимо выгрузить справочник услуг и продажи данных услуг:

- Запускаем ExportData, добавляем новую конфигурацию как показано на рис. 9. 

image-1630504547195.png

Рис. 9 - Экспорт услуг.

- Теперь нам необходимо перейти из раздела Параметры в раздел Услуги и указать необходимые услуги, которые мы хотим выгружать (рис. 10)

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

 - В данной интеграции связь сущностей ПО "Shelter2" и ПО SH5 происходит по уникальному идентификатору - guid.

- Для типа экспорта «Услуги» дополнительные опции недоступны.

- Если в данную смену были реализованы отмеченные услуги, то в SH5 будут сформированы заявки, по которым можно создать накладные.

image-1630504777888.png

Рис. 10 - Раздел услуги.

- После добавления услуг обязательно сохраняем изменения по клавише Ок.

- Переходим в модуль QUSH, Создаем связку, указываем пути к базам данных, указываем Клубы и Места реализации, в Справочниках указываем Группу для товаров клуба - Услуги. 

- После этого переходим в раздел Задания, указываем период выгрузки, ставим чекбокс "Включая продажи за период" если хотим выгрузить Заявки (расходный документ - продажи) и нажимаем Запустить (рис. 11).

image-1630505349141.png

Рис. 11 - Запуск экспорта данных. 

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

image-1630505617627.png

Рис. 12 - Детализация задания выгрузки. 

- После выполнения экспорта мы можем зайти в Storehouse 5 и проверить выгруженные данные:

1) На рис. 13 видно, что товары были выгружены успешно.

image-1630506047722.png

Рис. 13 - Товары. 

2) На рис. 14, мы видим выгруженные заявки.

image-1630506177142.png

Рис. 14 - Заявки. 

5.2. Аналогично, но с некоторыми изменениями происходит выгрузка Номерного фонда (информация на рис. 15 - 19):

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

- Если делать выгрузку без доп. опций, то каждый выезд из номера дает кол-во «единица», при этом не важно сколько гостей проживало в номере.

image-1630507409885.png

Рис. 15 - Параметры экспорта.

image-1630507419133.png

Рис. 16 - Типы номеров. 

image-1630507426809.png

Рис. 17 - Параметры выгрузки в QUSH.

image-1630507432916.png

Рис. 18 - Выгрузка товаров и реализаций. 

image-1630507438387.png

Рис. 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)

image-1630508607350.png

Рис. 20 - Skins.ini.