Справочник Абонемент

Изменения в ПО "Абонемент" (по версиям)

Версия 138

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

Поддержана общая система онлайн лицензирования;

 

Интеграция с платёжной системой АРРЕХ
Реализована интеграция модуля Абонемент-Онлайн с платёжной системой APPEX;
 
Общие параметры/контроль доступа
Добавлен новый параметр для отображения ID абонемента в контроле присутствия;
 
Работа с физическими лицами
Добавлена верификация клиентов по номеру телефона;
 
Работа с юридическими лицами
Добавлена возможность отображать в чеке данные юридического лица при расчёте фискальными типами платежей;
 
Платные заморозки
Добавлена возможность включать/выключать использование платных заморозок для типа абонемента;
 
Абонемент-Онлайн
Поддержана возможность записываться на групповые мероприятия по разным абонементам: если у клиента есть несколько абонементов, то можно выбрать, в рамках какого производится запись на групповое мероприятие;
 
Кубы
КУБ Баланс открытых фолио: добавлен фильтр по датам.

Версия 137

Общие параметры/услуги и платежи
Поддержана работа с комиссионными товарами согласно законодательству;
 
Интеграция с мобильным приложением Mobifitness
Реализована интеграция с мобильным приложением для клиентов от компании Mobifitness;
 
Частичная оплата абонемента
При частичной оплате абонемента появилась возможность контролировать организацию – собственника;
 
Быстрая продажа/быстрый чек
Изменена логика применения скидок при установленном параметре «Отбрасывать копейки от стоимости чека в быстрой продаже»;
 
Ночной аудит/чеки
Выделены возвраты, 
Изменена логика вывода значения поля «Сумма» при работе с зачётом аванса;
 
Ночной аудит/служебные функции
Изменена логика внесения/извлечения денежных средств: внесение/извлечение денежных средств стало возможным только в открытую кассовую смену;
 
Специалисты
Добавлена проверка количества мест в ресурсе при автоматическом создании групповых мероприятий;
 
Сервис
Поддержаны настройки стилей и внешнего вида; 
 
Комбинированная оплата
Если контролируется ФФД 1.05, то нельзя использовать комбинированную оплату для подарочных сертификатов и для услуг, у которых запрещен частичный возврат;
 
Абонемент-Онлайн/Инфокиоск
Добавлена возможность оплачивать абонементы по графику платежей;
 
Кубы
КУБ Стыковки. Платежи, детализация по услугам: добавлены поля «Кол-во», «Скидка/Наценка»;
КУБ Абонементы: добавлены поля «Телефоны», «Телефон1», «Телефон2»;
КУБ Всё о смене: добавлено поле «Дата смены»;
КУБ Абонемент: изменена сортировка по датам;
КУБ Завершающиеся абонементы: изменена сортировка по датам.

Версия 136

Быстрая продажа/Быстрый чек:
Добавлена новая функция «Выдача идентификатора существующему клиенту при оформлении чека»;
Изменена отрисовка в области «Оплата\Услуги\Абонементы»:
Минимальная высота - 250 px
Максимальная высота - половина высоты всей Быстрой продажи
Изменена отрисовка в области «Платежи»:
Минимальная высота - 170 px
Максимальная высота - 200 px;
 
Справочник абонементов/тарифы:
Добавлена новая функция «Мероприятие, входящее в состав группы, может начинаться/заканчиваться при входе/выходе»;
 
Профиль клиента/раздел «Абонементы клиента»:
Добавлен новый раздел «История платежей за абонемент»;
 
Возврат:
Добавлен новый режим возврата «Возврат денег на депозит»;
 
Интеграция с r_keeper
Поддерживается признак предмета расчёта (ППР), относящийся к позиции чека, пришедшего из r_keeper;
 
Справочник специалистов:
Добавлен новый параметр «Заблокирован» в карточке специалистов;
 
Список клиентов:
Уменьшены компоненты ввода фильтров, чтобы все фильтры поместились на мониторе шириной 1360 px;
 
Работа с таблицами:
Отключена возможность вручную (растягиванием) изменять высоту заголовка;
 
Ночной аудит:
Уменьшены компоненты ввода фильтров, чтобы все фильтры поместились на мониторе шириной 1360 px;
 
Признак способа расчёта (ПСР):
Внесены изменения при формировании ПСР при продаже абонементов;
 
Интеграция со внешней ПДС:
Изменён алгоритм начисления бонусов во внешнюю ПДС;
 
Тарификация:
Изменён расчёт тарификации в определённом кейсе;
 
Интеграция с облачными кассами:
Поддержан облачный сервис Cloud Kassir;
Поддержан облачный сервис Атол Онлайн;
 
Зачёт аванса:
Исправлена ошибка при зачёте аванса, если участвовали фискальные и нефискальные платежи;
 
Комбинированная оплата:
Исправлена ошибка при комбинированной оплате двух абонементов в одном чеке;
 
Ночной аудит/Чеки:
Исправлена некорректная работа фильтра «За период»;
 
Права доступа:
Исправлен алгоритм проверки прав «Доступен список чеков за период» и «Доступен список чеков за смену»;
 
Специалисты:
Исправлена некорректная автоматическая подстановка специалиста, являющегося пользователем, при регистрации доп. услуг, при создании мероприятия, при открытии ресурса в контроле присутствия;
 
Профиль клиента/раздел «Абонементы клиента»:
Исправлен алгоритм подстановки СНО при частичной оплате абонемента;
 
Мероприятия:
Исправлено некорректное отображение информации о фолио при смене гостя в карточке мероприятия;
 
Шахматка мероприятий:
Исправлена утечка памяти (out of memory);
 
КУБы:
КУБ Абонемент: изменён алгоритм отображения данных в поле «Активность»;
КУБ Абонемент: добавлено поле «VIP-код»;
КУБ Всё о смене: добавлено поле «VIP-код»;
КУБ Всё о смене: изменён алгоритм работы фильтра по датам;
КУБ Чеки кассовой смены: переработан с учётом ФФД 1.05;
КУБ Скидки: добавлено поле «Количество»;
КУБ Чеки. Детализация по платежам: изменён алгоритм отображения данных в поле «Ставка НДС»;
КУБ Список гостей: добавлены поля группировок строк «VIP-код клиента»; «Категория клиента»; «Сумма оплат»;
КУБ Стыковки. Услуги, детализация по платежам: изменён алгоритм отображения данных в полях «Клиент», «ФИО»;
Добавлен признак «Итого» в форму параметров КУБов.

 

Версия 135

  Настройки
    Общие параметры
      Подтверждения
        Требовать подтверждения БАР-кода
          Новый параметр "В карточке типа абонемента"
    Услуги и платежи
        Параметр "Разрешить возврат состыкованных услуг" не поддерживается.
    Возврат состыкованных услуг разрешен всегда.
    Новая группа справочников "Форматы фискальных данных (ФФД)"
      Новая таблица-справочник "Признак придмета расчета"
    Пользователи и роли
      Роли пользователей
        Новая группа функций '[ФФД] Форматы фискальных данных'
        Новая функция '[ФФД] Разрешен нефискальный возврат услуг'
 
  Для целей п. Возврат услуги
 
  Новая функция '[ФФД] Разрешена деактивация абонементов'
    Проверяется при ручной деактивации абонемента, если контролируется ФФД
    При попытке деактивации поднимается окно предупреждения "Внимание! Нефискальная деактивация абонемента! Продолжить?"
  Новая функция '[ФФД] Разрешена смена абонемента на более дорогой'
    Проверяется, если контролируется ФФД
    При попытке деактивации поднимается окно предупреждения "Внимание! Нефискальная смена абонемента на более дорогой! Продолжить?"
  Быстрая продажа (Быстрый чек)
    Информационная панель
    Новая проверка возможности оплаты
    Если контролируется ФФД (см. п. "Контролировать ФФД (галочка)"), то нельзя использовать комбинированную оплату для оплаты 
      а) подарочных сертификатов
      б) услуг, у которых запрещен частичный возврат
  Иконка настраивается в skins.ini 
  [buttons32]
  ;Комбинированная оплата запрещена
  ifb_CombopayForbiddenForThisService = CombopayForbiddenForThisService.png
 
  Шахматка мероприятий
  Карточка гостя
    Вкладка "Специалист"
      Новый параметр "Примечание"
  ФФД (форматы фискальных документов)
  ИНН кассира
    В карточке гостя (физического лица) появился параметр ИНН. ИНН передается в драйвер ФР как параметр CASHIERINN
  Место расчета
    В карточке киоска новый параметр "Место расчета".
    Место расчета передается в драйвер ФР как параметр POSPLACE
  Признак предмета расчета (ППР)
    В карточке услуги появился параметр "Признак предмета расчета". Выбирается из списка (см. п. Новая таблица-справочник "Признак придмета расчета")
    Признак предмета расчета передается в драйвер ФР как параметр OperationInfo->FFD_ITEMKIND_CODE на каждую позицию чека
  Признак способа расчета (ПСР)
    Признак способа расчета передается в драйвер ФР как параметр OperationInfo->FFD_PAYMENTKIND_CODE на каждую позицию чека
    FFD_PAYMENTKIND_CODE определяется следующим образом:
      а) Регистрация платежа на фолио
        Если цель - конкретный абонемент (частичная аплата абонемента), то ПСР равен значению параметра "Код ПСР ПРЕДОПЛАТА"
        В противном случае ПСР равен значению параметра "Код ПСР Аванс" 
      б) Продажа абонементов / оплата ранее зарегистрированных абонементов
        ПСР равен значению параметра "Код ПСР ПРЕДОПЛАТА" 
      в) Продажа услуг
        ПСР равен значению параметра "Код ПСР ПОЛНЫЙ РАСЧЕТ" 
      г) Оплата ранее оказанных услуг  
        Если услуга оказана в рамках абонемента, то ПСР равен значению параметра "Код ПСР ПРЕДОПЛАТА"  
        в противном случае ПСР равен значению параметра "Код ПСР ПОЛНЫЙ РАСЧЕТ"
      д)  если ППР услуги входит в список "Коды авансовых ППР (через запятую, если несколько)" , 
        то п. а-г) игнорируются. ПСР равен значению параметра "Код ПСР Аванс"
  Настройки ФФД
    В общих параметрах в разделе "Услуги и платежи" : 
    новая группа параметров "ФФД (форматы фискальных документов)"
    Содержит следующие параметры
  "Контролировать ФФД (галочка)"      (FFD_USE в DEFAULT_VALUES)
    Если установлено, то 
    а) использование платежа для зачета аванса возможно только в тех случаях, когда 
      платеж зарегистрирован как аванс (то есть в чеке отсутствуют услуги и/или абонементы) 
      или платеж произведен оплатами, у которых параметр "ФФД-аванс" (новый параметр в карточке платежа) имеет значения
        - "Аванс"
        или 
        - "Зависит от типа платежа" и тип платежа один из 
                                 "Списывать с ПДС" 
                                 "Бонус" 
                                 "Оплата подарочным сертификатом" 
      Платеж, удовлетворяющий условиям п. а) в дальнейшем будет называться Платеж-Аванс
    б) Автоматические стыковки платежей и услуг НЕ происходят
    в) из пп. а) и б) следует, что Несостыкованную часть платежа, не относящегося к Платеж-Аванс, можно только вернуть
    г) "Зачет аванса" является фискальной операцией. Проводится через ФР и отражается на вкладке "Чеки" ночного аудита
 
Группа параметров "Признак способа расчета (ПСР)"
    Содержит следующие параметры
 Код ПСР "ПРЕДОПЛАТА 100%"    В настоящее время скрыто и не поддерживается в Абонементе   (FFD_PAYMENTKIND_CODE_PRE_PAYMENT_100PERCENT в DEFAULT_VALUES)
 Код ПСР "ПРЕДОПЛАТА"              (FFD_PAYMENTKIND_CODE_PRE_PAYMENT_PART)
 Код ПСР "Аванс"                   (FFD_PAYMENTKIND_CODE_ADVANCES)
 Код ПСР "Полный расчет"           (FFD_PAYMENTKIND_CODE_FULLPAYMENT)
 Код ПСР "ПЕРЕДАЧА В КРЕДИТ"  В настоящее время скрыто и не поддерживается в Абонементе   (FFD_PAYMENTKIND_CODE_PASS_TO_CREDIT)
 Код ПСР "ОПЛАТА КРЕДИТА"     В настоящее время скрыто и не поддерживается в Абонементе   (FFD_PAYMENTKIND_CODE_PAYMENT_OF_CREDIT)
 
Группа параметров "Признак предмета расчета (ППР)"
    Содержит следующие параметры
    Коды авансовых ППР (через запятую, если несколько) (FFD_ITEMKIND_CODES_ADVANCE в DEFAULT_VALUES)
      Код ППР аванса, депозита                           (FFD_ITEMKIND_CODE_DEPOSIT)
 Список клиентов
   Детализация гостя
     Фолио
       Возврат услуги
    Возврат услуги осуществляется через форму, аналогичную возврату платежа.
    При возврате услуги доступна галочка "Нефискальный возврат (Не контролировать стыковки)", если в правах доступна функция '[ФФД] Разрешён нефискальный возврат услуг'
      Цель аванса
      Нельзя выбрать в качестве цели аванса конкретный абонемент, если включен контроль ФФД
 
Исправления
При потере связи с сервером блокировок программа пытается восстановить связь

Версия 134

 Настройки

Типы тарифов

  Карточка типа тарифа

    Параметр "Задержка между посещениями одного ресурса (сек)" переименован в 'Задержка между входами в ресурс (сек)"

    Новый параметр "Задержка между вЫходом и вХодом в ресурс (сек)". Если не 0, то доступ запрещен, если гость пытается осуществить проход до истечения времени задержки.

    Этот параметр относится к посещениям по конкретному тарифу. Этот параметр НЕ ограничивает доступ в рамках других тарифов.

Типы абонементов

    Карточка типа абонементов

      Новый параметр "Бар-код".

      Параметр "Примечание" стал многострочным. Максимальный размер 1024.

 Общие параметры

   Быстрая продажа:

      Новый параметр "Менять плательщика при переключении с одной строки на другую в быстром чеке".

      Новый параметр "При распределении в групповое мероприятие учитывать значение параметра «Максимум клиентов» по тарифу".

      Если НЕ установлено (по умолчанию), то для гостя создается одно мероприятие.

      Если установлено, то для гостя создаётся столько мероприятий, сколько указано «Максимум клиентов» в карточке тарифа, но не меньше одного.

  Услуги и платежи

    Карточка услуги/платежа.

      Новый многострочный параметр "Примечание". Максимальный размер 1024.

      Появились "Свойства" (см. ниже).

      Используются для целей плагинов.

  Свойства объектов

    Карточка "Свойство объекта".

      Параметр "Действует на" расширен значением "Справочник платежей".

      Параметр "Действует на" расширен значением "Справочник услуг".

    Быстрая продажа / Быстрый чек.

      Кнопка "Аналогичный абонемент" доступна как в Быстрой продаже (было ранее), так и в Быстром чеке (новое).

      В Быстрой продаже всегда требуется карта-идентификатор (как и раньше). Предлагается к выбору список абонементов, принадлежащих владельцу карты.

      В Быстром чеке никогда НЕ требуется карта-идентификатор. Предлагается к выбору список абонементов, принадлежащих главному гостю (его данные в окне "О госте").

   Шахматка мероприятий

     ПКМ на мероприятии.

     Новые пункты меню:

      - Закончить.

      - Закончить и перейти на фолио.

      - Закончить и перейти к оплате.

 

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

 

Версия 133

 Настройки

   Справочники.

     В "Типы рассрочек платежей" и "Шаблоны начислений" можно копировать строки содержания.

     Группы абонементов.

       Карточка группы абонементов.

         Добавлен параметр "Цвет". Используется в Быстрой продаже.

     Группы услуг / платежей.

       Карточка группы услуг / платежей.

         Добавлен параметр "Цвет". Используется в Быстрой продаже.

    Общие параметры.

  Вкладка "Гость".

    Регистрационная карточка.

      Новый параметр "Внешняя ПДС является основным источником информации о госте"

    По умолчанию не установлено.

  Вкладка "Оповещения"

    Область уведомлений клиента

    Новая группа параметров "Заканчивающиеся членства"

    Если коды групп НЕ определены, то учитываются только типы абонементов с параметром "Это членство"

    Если определены коды групп, то учитываются только они, а параметр "Это членство" игнорируется

    В области уведомлений клиента появится пиктограмма "У выбранного клиента заканчивается членство"

 Группа параметров "Заканчивающиеся абонементы"

    Если коды групп НЕ определены, то учитываются только типы абонементов БЕЗ параметра "Это членство"

    Если определены коды групп, то учитываются только они, а параметр "Это членство" игнорируется

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

 Типы платежа.

   Карточка типа платежа.

     Новая вкладка "Требуется подтверждение-разрешение для VIP-кода".

     Служит для настройки соответствия VIP-кода гостя и платежа.

     На этой вкладке отображаются все VIP-коды, заведенные в БД.

     Если ни один VIP-код не выбран, значит платеж доступен для всех гостей.

     Если выбраны один/несколько VIP-кодов, значит платеж доступен для гостей с соответствующим VIP-кодом. При оплате потребуется предъявить/прокатать карту гостя для подтверждения.

     Платеж НЕ доступен для гостей с другими VIP-кодами.

  Типы абонементов.

    Карточка типа абонемента.

      Группа "Доступ и тарификация".

      Новый параметр "Вход запрещен, если есть неоплаченные услуги"

      По умолчанию НЕ установлен.

      Если установлен, то при попытке входа рассчитывается сумма НЕ состыкованных услуг (любых: как доп. услуг, так и начисленных в рамках абонемента).

      Если эта сумма превышает лимит кредита, то доступ запрещен.

  Список клиентов

    Если время формирования списка клиентов превышает 5 секунд, то параметр "Макс. кол-во записей" автоматически уменьшается на один уровень:

    если было 1500, станет 100; 100->50; 50->20; 20->10.

  Фильтр

    Новое условие фильтрации "№Счёта". Позволяет осуществить группу гостей, объединенных одним счетом (чеком или пречеком).

  Быстрая продажа/Быстрый чек

    Контролируется соответствие организаций-собственников платежей и услуг. Если соответствия нет, то кнопка "Оплатить" недоступна.

    Появилась информационная панель с иконками и подсказками с причинами невозможности нажать кнопку "Оплатить".

  Проверка правил оплаты в быстрой продаже. Появились иконки.

    Иконка - Не соблюдены условия оплаты.

  Проверка соответствия организаций собственников платежей и услуг.

    Иконка - Организации-собственники платежа и услуги не совпадают.

  Проверка соответствия типа платежа и VIP-кода гостя.

    Иконка - Нельзя использовать платеж для VIP-кода.

 Быстрый поиск услуг, Быстрый поиск абонементов

   В выпадающем списке отображались наименования. Формат отображения изменился. Отображается в виде: Наименование (Код).

 
 

Версия 132

  Настройки

    Услуги и платежи.

      Новый параметр "СНО (Система налогообложения)".

      в России: 0 - общее, 1-УСН доход, 2-УСН доход - расход, 3-ЕНВД, 4-ЕСН, 5-Патент

      По умолчанию - 0.

      Если в быстрой продаже (быстром чеке) есть позиции с разными СНО, то формируются фискальных чеков для каждой группы СНО.

      В одном чеке не может быть услуг с разными СНО!

  Общие параметры.

    Услуги и платежи.

      Новый параметр "Использовать систему налогообложения (СНО)".

    Гость.

      Регистрационная карточка.

        Новый параметр 'Номер телефона должен быть уникальным в "Тел.1" и "Тел.2"'.

  Список клиентов

    Можно настраивать шрифт в полях, в которых отображаются балансы гостя. Используется ПКМ - "Установить шрифт".

    Свойства объектов.

      "Индивидуальное значение".

      Может быть произвольной длины. Раньше было 50 символов.

      Для редактирования используется многострочный редактор.

   

Версии 130, 130_1, 131

  Настройки

  Типы абонементов.

    Карточка типа абонемента.

    Группа "События и начисления".

    Новый параметр "Стыковать платежи абонемента с доп. услугами, совпадающими с базовой".

    Если установлено, то при начислении доп. услуги, совпадающей с базовой

     а) через быстрый чек:

         Услуге автоматически назначается абонемент, в рамках которого она будет начисляться.

         При этом оплата за абонемент будет использоваться в зачете аванса за услугу.

     б) через кнопку "Начислить доп. услугу":

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

    Услуга, у которой при начислении был назначен абонемент (вручную или автоматически), ведет себя и обрабатывается как все услуги, начисленные в рамках абонемента.

  Общие параметры.

  Горячие клавиши.

    Новая горячая клавиша "Добавить гостя". По умолчанию CTRL+SHIFT+G.

  Пользователи и роли.

    Роли пользователей.

      Функции.

        Новая функция "Разрешено изменение действий со сдачей" в группе "Операции с деньгами"\"Наличные".

  Детализация клиента

  Карточка платежа.

    Новый параметр "ПДС-карта". Это номер карты ПДС, с которой будет происходить списание/зачисление.

    По умолчанию подставляется ПИН клиента.

    Если карточка платежа вызывается из быстрой продажи (быстрого чека) при зачете аванса или по кнопке "Внести аванс", то подставляется "ПДС-карта" (если задана).

  Абонементы.

    Автоматическое распределение мероприятий.

      Если установить "Учитывать типы тренировок", то параметры "Продолжительность" и "Клиентов" скрываются.

      Учитываются соответствующие параметры из свойств типа события.

  "Автоматическое распределение обычных мероприятий", "Автоматическое создание абонементов и распределение мероприятий".

      Если установлен "Учитывать типы тренировок", то мероприятие создаётся с выбранным типом события.

  Настройки

  Скидки.

    Содержание скидки и исключения скидки могут распространяться на категории услуги.

  Общие параметры.

    Быстрая продажа.

      Новый параметр 'Разрешена доплата при оплате "По договору"'.

    Гость.

      Новый параметр "Проверять на дубликаты по обязательным полям при регистрации гостя".

  Справочники.

    Группы тарифов.

      Новый параметр "Максимальное количество посещений в сутки по всем тарифам абонемента (0 - не контролировать)".

      Распространяется на те тарифы, у которых установлено "Контролировать количество посещений" и "Контролировать количество посещений в сутки".

  Список клиентов

    Новый столбец "Членство до". В нем отображается дата окончания абонемента-членства. Если их несколько, то отображается максимальная дата окончания.

 Область уведомлений.

    Неактивированные абонементы.

    Реагирует на клик ЛКМ. Откроется список неактивированных абонементов. Неактивированные абонементы можно активировать по ПКМ.

 Добавить клиента.

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

    - Имя;

    - Отчество;

    - Фамилия;

    - Дата Рождения.

    Если гости с такими же параметрами присутствует, то они отображаются в списке.

  Связь с ПДС.

    Выводится сообщение "Нет данных о карте ПДС", если внешняя ПДС недоступна или нет информации по карте - При следующих действиях:

     - Быстрая продажа -> ПДС-карта;

     - Фолио -> Начисление услуги на фолио -> Скидка по ПДС-карте;

     - Фолио -> Зарегистрировать платёж -> ПДС-карта.

   В случае, если поле ПИН в карточке клиента не соответствует PIN-у, полученному из ПДС, программа выдает пользователю предупреждение:

    "Внимание! Предъявленная карта не принадлежит обслуживаемому гостю ФИО. Выполнить списание со счета гостя ФИО_гостя_из_ПДС?".

    Если ПИН гостя не определен, то списание производится без проверки.

    Действует при:

    - регистрации платежа на фолио;

    - оплате в быстрой продаже/быстром чеке. В этом случае предупреждение выдается на каждого гостя в чеке.

  Быстрая продажа.

    Аналогичный абонемент.

      При распределении в доступные группы предлагаются мероприятия, время начала которых находится в пределах +-5 минут от мероприятий существующего абонемента.

    Локализация.

      В карточках поддержана локализация полей с кнопками.

    Детализация клиента.

      Абонементы.

        По ПКМ можно активировать неактивированный абонемент.

  Сценарии обслуживания клиентов.

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

       а) Общие настройки\Быстрая продажа\Выдавать идентификатор новому клиенту при оформлении чека\Абонементы.

          Если выбрано "Не обязательно" или "Обязательно", то открывается новый параметр-галочка "Привязывать абонемент и идентификатор".

       б) Если "Привязывать абонемент и идентификатор" установлен, то:

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

          Если идентификатор ранее уже выдан или ранее привязан к абонементу, то будет выдано предупреждение "Нельзя прикрепить ранее прикрепленный идентификатор!".

       в) Связь абонемента и идентификатора можно посмотреть.

          - в списке идентификаторов. Новая колонка "Привязанные абонементы".

       г) Привязать/отвязать НЕ связанные/связанные абонемент и идентификатор следующим образом:

          В списке идентификаторов по ПКМ новые "Привязать к абонементу" и "Отвязать от абонемента".

       д) Один Идентификатор может быть прикреплен только к одному абонементу.

          При любой попытке прикрепления идентификатора к другому абонементу будет выдано сообщение "Нельзя прикрепить идентификатор к нескольким абонементам".

       е) К одному абонементу может быть привязано несколько идентификаторов.

       ё) Использование связи абонемент-идентификатор.

          В gkhostconnect'e у параметра "Тип идентификатора" будет добавлено значение "Идентификатор клиента с привязанным абонементом".

          Если установлено это значение, то попытка входа будет осуществляться только в рамках прикрепленного абонемента.

* Примечание "Тип идентификатора" - это атрибут устройства контроля доступа. В предложенной схеме доступ через одни устройства можно осуществлять с контролем привязанного абонемента, через другие устройства - без контроля привязанного абонемента.

 

Версия 129

 Настройки

  Общие параметры.

  Быстрая продажа.

    Новый параметр "Сворачивать товарные позиции в чеке". По умолчанию НЕ установлен - на ФР печатается столько позиций абонементов, сколько установлено в поле "Количество"

      Если установлен, то при пробитии чека на ФР каждая позиция печатается одной строкой - Количество в чеке соответствует количеству на ФР.

    Новый параметр "Группировать оплаты". Принимает значения "Группировать" (по умолчанию), "Не группировать".

      Если установлено "Не группировать", то иерархия платежей не отображается, все платежи отображаются на одном (самом верхнем) уровне иерархии.

  Собственники.

  Киоски.

  Карточка киоска.

    Новый параметр "Показывать форму авторизации после снятия Z-отчета". По умолчанию включен.

 Шахматка мероприятий

  Параметры отображения шахматки мероприятий.

    Цвет мероприятий.

    Новое значение в списке - "Цвет специалиста".

 Детализация клиента

  Вкладка «Абонементы».

    Новая колонка "Тип регистрации" со значением "Абонемент-Онлайн", в случае если клиент создан с использованием connecter'а.

  Заморозки.

    Карточка заморозки.

      Отображается информация по использованным платным заморозкам и использованным заморозкам в рамках абонемента.

 Ночной Аудит

  Вкладки "Чеки" и "Нефискальные операции".

  По ПКМ доступен пункт "Создать счет-фактуру". Создается счет-фактура на основе счета (чек, пречека или зачета аванса).

 

Версия 128

Настройки

Общие параметры.

    Вкладка «Быстрая продажа».

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

    В противном случае "Трансфер абонементов на плательщика" не устанавливается.

    Вкладка «Абонементы».

    Новая группа "Заморозки". Включает в себя:

      "Продолжительность технической заморозки-приостановки";

      "Отмена начавшихся заморозок".

    Новый параметр "Правило выбора заморозок". Может принимать следующие значения:

      - "Сначала бесплатные (по умолчанию)";

      - "Сначала заморозки с минимальным остатком".

Типы абонементов

Карточка типа абонемента.

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

    - Не выбирать (учитывается "Дней на активацию");

    - Выбирать режим активации;

    - Активировать ДО выбранной даты;

    - Активировать НА выбранную дату.

Типы тарифов

Карточка типа тарифа.

  Новый параметр "Задержка между посещениями одного ресурса (сек)". В один и тот же ресурс можно войти только после задержки. 0 - задержка не контролируется.

Список клиентов

Детализация клиента.

  Фолио.

  Возврат платежа.

    Появился новый режим возврата платежа - Возврат платежа, услуг и абонементов.

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

 

 

 

Я помогу Вам продать "Абонемент"

Из книги продаж можно получить все необходимые сведения для презентации  продукта "Абонемент" потенциальному клиенту, а именно:

 

- Получить общую информацию по продукту "Абонемент" (тезисно);

- Уточнить информацию по подключаемым модулям и интерфейсам продукта "Абонемент";

- Выявить формат, особенности и потребности заведения заказчика;

- Подобрать базовую конфигурацию презентационного стенда и базовые технологии для определенных типов объектов.

 

Книгу продаж Вы можете найти по ссылке: bookofsales

 

Модули ПО “Абонемент” Краткое описание

Для рабочего места (касса, рецепция)

 
Абонемент-Менеджер ПО
  Основной модуль программы Абонемент. 
  Устанавливается к администратору, на кассу, в отдел продаж, бухгалтерия и т.п.
  Лицензируется по кол-ву одновременно запущенных рабочих мест. 
  Лицензия: 4.1
  Ссылка на описание: https://support.ucs.ru/ru/node/8730
 
Абонемент – Отчеты  ПО
  Данный модуль входит в поставку ПО "Абонемент", отдельно не приобретается.
  Устанавливается к администратору, на кассу, в отдел продаж, бухгалтерия и т.п.
  Служит для формирования отчетности по работе в ПО «Абонемент» (продажи, посещаемость, статистика, популярность услуг и т.д.) 
  Лицензируется по кол-ву одновременно запущенных рабочих мест. 
  Лицензия: 4.3
  Ссылка на описание: https://support.ucs.ru/ru/node/8881 (плоские отчеты),  https://support.ucs.ru/ru/node/9126 (многомерные отчеты)
 
Абонемент - Интерфейс Банковский протокол ПО
  Данный интерфейс устанавливается на кассу, служит для подключения интегрированного банковского терминала к кассе. 
  Для автономного терминала модуль не требуется.  
  Лицензируется по принципу один модуль на объект. Интеграция возможна не со всеми банками (подробнее см. Описание)
  Лицензия: 3.8
  Ссылка на описание: https://support.ucs.ru/ru/node/8960
 
Абонемент - Интерфейс к системе сканирования документов ПО
  Данный модуль служит для распознавания различных видов документов и передачи их реквизитов в ПО "Абонемент" (для ускорения регистрации, автоматизации заполнения карточки клиента).
  Используется программа распознавания документов DocumentReader, разработанная компанией Regula (https://regulaforensics.com/) поставляемая со сканерами документов Regula.
  Протестированы документы: Пасп. РФ (с МЧЗ и без), Загран.п. РФ, ВУ РФ, Пасп. США, Пасп. Беларуси, ВУ Беларуси). Также поддержана интеграция с системой сканирования Cognitive.
  Лицензируется по принципу один сканер – одна лицензия. 
  Лицензия: 4.11
  Ссылка на описание: https://support.ucs.ru/ru/node/9104 (Regula)https://support.ucs.ru/ru/node/8926 (Cognitive)
 
Абонемент - Интерфейс СРМ (ПДС) ПО
  Данный модуль служит для связи с внешними/внутренними системами лояльности либо с системами CRM.
  Основные функцииПоиск гостя, передача потрат, передача бонусного процента от платежа, оплата с депозитного счета ПДС, пополнение депозиного счета.
  Поддерживаемые системы:
  Внутренние: R-Keeper CRM,
  Внешние: UDS Game, мобильное приложение Mobifitness.
  Лицензия: 1.10 для внешних систем (платно), 3.6 для внутренних (бесплатно).
  Ссылка на описание: https://support.ucs.ru/ru/node/9020
 

WEB модули (работающие через Connecter)

 
Абонемент - Онлайн ПО
  WEB-модуль «Абонемент-Онлайн» является дополнительным модулем «Абонемент».
  Он даёт возможность клиенту управлять своими персональными данными, получать информацию о состоянии своего счета.
  Осуществлять покупки абонементов и запись на индивидуальные и групповые тренировки.
  Лицензия: 1.2
  Ссылка на описание: https://support.ucs.ru/ru/node/9199
 
Абонемент - Интерфейс связи с системой платежей Assist (Robokassa)ПО
  Является расширением для Абонемент-Онлайн, служит для интеграции с платежными системами (онлайн платежи).
  Поддержаны: Robokassa, Assist, Сургутнефтегазбанк, Uniteller, Яндекс-Касса.
  Лицензия: 4.5
  Ссылка на описание: https://support.ucs.ru/ru/node/9207
 
Абонемент – Инфо-киоск ПО
  Данный модуль устанавливается на специализированный терминал (оплата поддерживается).
  Применяются типовые конфигурации:
    Фитнес (полноценная работа с абонементами, личным кабинетом, оплатой, мероприятиями с возможностью внесения ограничений),
    Аквапарк (работа в информационном режиме по текущему пребыванию клиента),
    Каток (работа с массовой продажей билетов, для катков и прочих массовых развлекательных учреждений)
  Лицензия: 1.3
  Ссылка на описание: https://support.ucs.ru/ru/node/9193
 
Абонемент – Инфотерминал ПО
  Данный модуль устанавливается на ПК, моноблок и т.п. (оплата не поддерживается)  
  Применяются типовые конфигурации:
    Фитнес (полноценная работа с абонементами, личным кабинетом, оплатой, мероприятиями с возможностью внесения ограничений),
    Аквапарк (работа в информационном режиме по текущему пребыванию клиента),
    Каток (работа с массовой продажей билетов, для катков и прочих массовых развлекательных учреждений)
  Лицензия: 1.4
  Ссылка на описание: https://support.ucs.ru/ru/node/9193
 
Абонемент - Монитор тренера ПО
  Данный модуль является WEB-модулем Абонемент, позволяющим производить контроль работы специалиста.
  Позволяет тренеру контролировать своё расписание, отмечать присутствие клиентов на мероприятиях.
  Начинать и заканчивать групповые и индивидуальные мероприятия в Абонемент, а также регистрировать дополнительные услуги.
  Устанавливается в зале на моноблок.
  Лицензия: 1.5 
  Ссылка на описание: https://support.ucs.ru/ru/node/8966
 
Абонемент - Интерактивный солярий ПО
  Данный модуль позволяет клиенту самостоятельно за несколько минут просмотреть максимально полную и достоверную информацию о доступности ресурсов.
  Выбрать устраивающую его кабинку солярия. Интеграция производится с использованием контроллера UCS.
  Лицензия: 1.6
  Ссылка на описание: https://support.ucs.ru/ru/node/8779
 
Абонемент - Прокат ПО
  Данный WEB-интерфейс используется для автоматизации сервиса проката (велопрокат, прокат лыж, коньков и т.п.)
  Клиент подходит к оператору, оператор выдает карту со штрих-кодом. 
  На стартовой странице есть текущие дата/время, кнопка «Сканировать штрих-код», выведена дополнительная информация (наименование типа абонемента, сколько выдано, сколько всего) 
  Лицензия: 5.2
  Ссылка на описание: В разработке
 
Абонемент - Дисплей покупателя ПО
  Данный WEB модуль предназначен для удобства при обслуживании клиента на кассе.
  При обслуживании клиента на второй дисплей в реальном времени можно передавать информацию. 
  Вывод информации о клиенте: Ф.И.О., баланс, фотография клиента, остаток посещений по абонементам, статус оплаты для абонементов клиента, отображение кол-ва позиций в чеке и их наименований.
  Вывод информации о компании: Наименование, адрес, телефон.
  Лицензия: 1.7
  Ссылка на описание: https://support.ucs.ru/ru/node/9066
 

Дополнительные модули

Абонемент - Интернет и СМС рассылка ПО
  Данный модуль используется для осуществления SMS и E-Mail рассылки (SQL-запросы, шаблоны рассылки, расписание рассылки)
  Лицензия: 4.10 
  Ссылка на описание: https://support.ucs.ru/ru/node/8924
 
Абонемент - Автозапуск мероприятий
  Данный модуль отвечает за работу с мероприятиями в автоматическом режиме (подробнее см. Описание).
  Лицензия: 4.3 
  Ссылка на описание: https://support.ucs.ru/ru/node/9105
 
Абонемент - Инфоплазма ПО
  Программа предназначена для визуализации информации из базы данных (например, поэтажного плана, списка находящихся клиентов и др.).
  Должна быть отображена на отдельном дисплее в удобном для посетителей месте, например в холе заведения.
  Устанавливается на рабочий компьютер администратора, при наличии второго монитора или на отдельный компьютер.
  В случае размещения в зале, за телевизором устанавливаем компьютер типа NetTop. 
  Лицензия: 4.7 
  Ссылка на описание: https://support.ucs.ru/ru/node/8792
 
Абонемент – Интерфейс 1С:Бухгалтерия ПО
  Данный модуль предназначен для загрузки данных из Абонемент или Shelter, представляет собой обработку.
  Программа загружает все наличные и безналичные платежи и реализацию услуг.
  Все типы платежей и реализации услуг переносятся опционально, что позволяет использовать программу совместно с клиент-банком и другими обработками для 1С:Предприятия.
  Может использоватся для выгрузки в файл (для сторонних бухгалтерских систем).
  Лицензия: 4.12 
  Ссылка на описание: https://support.ucs.ru/ru/node/8976
 
Абонемент – Модуль интеграции с R-Keeper
  Данный модуль служит для интергации кассы R-Keeper с ПО Абонемент и Shelter.
  Покушать в баре, а оплатить на ресепшен — нет никаких проблем.
  Модуль позволяет идентифицировать гостя через фитнес браслет или карточку от гостиничного номера.
  Заказ на фолио попадает автоматически в On_line режиме. Возможен поиск гостя в ручном режиме. 
  Модуль работает через систему FarCards и доп DLL
  Лицензия: 2.11 
  Ссылка на описание: https://support.ucs.ru/ru/node/8950
 
Абонемент - Коннектор ПО
  Данный модуль служит внешним API для интеграции с доп. модулями Абонемент или сторонним ПО.
  Программа Connecter - это HTTP-сервер - слушает определенный сокет (пара Хост-Порт) в ожидании команд.
  Сторонняя программа (или браузер) методом POST посылает запрос на выполнение предопределённой функции в программе.
  Connecter понимает, ей ли адресована пришедшая информация или нет.
  Если да, то она выполняет определенные запросы к БД Абонемент через внутренний интерфейс, и результат передает обратно.
  Лицензия: 4.9
  Ссылка на описание: https://support.ucs.ru/ru/node/8974
 
 

Турникеты и проходы

Интерфейс Абонемент-Турникет ПО
  Интерфейс "Абонемент-Турникет" - программный комплекс, позволяющий связать аппаратную часть (турникеты, магнитные замки и другие устройства управляемые с помощью контроллеров UCS) и ПО Абонемент.
  Позволяет контролировать доступ клиентов к тем или иным платным зонам объекта.
  Лицензия: 4.2 (Один модуль на объект независимо от кол-ва турникетов)
  Ссылка на описание: https://support.ucs.ru/ru/node/8953
 
Абонемент- Монитор контролера ПО
  Данный модуль используется для удобства контроля доступа посетителей на объект.
  Обеспечивает контроль доступа посетителей объекта в реальном времени.
  Отображает фото клиента из Абонемент и фото клиента во время прохода (в случае использования совместимой IP-камеры совместно с турникетом).
  Также отображается время прохода и прочая полезная информация. 
  Лицензия: 4.6 
  Ссылка на описание: https://support.ucs.ru/ru/node/8957
 
 

Абонемент Lite

Абонемент-Менеджер LITE Фитнесс ПО
  Данный WEB-модуль предназначен для автоматизации бизнес-процессов небольших спортивных предприятий эконом сегмента.
  Устанавливается при помощи инсталлятора на ПК.
  Лицензия: 5.5  
  Ссылка на описание: https://support.ucs.ru/ru/node/9539
 
Абонемент- Инфо-киоск - Лайт ПО
  WEB-модуль для работы с БД "Абонемент LITE" в режиме Инфотерминала (без оплаты).
  Лицензия: 1.4
  Ссылка на описание: https://support.ucs.ru/ru/node/9193
 

 

Пользовательская документация

Работа организации-собственника в качестве комиссионера в ПО Абонемент.

 

Согласно требованиям закона ФЗ-54 в программе Абонемент, начиная с 137 версии, реализована работа организации-собственника в качестве комиссионера.

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

Выдержка из закона 54-ФЗ

« Комиссионер при реализации товаров комитента обязан применять ККТ и учитывать требования Закона N 54-ФЗ, в частности выдавать покупателю кассовый чек, содержащий все обязательные реквизиты.
При этом для целей внесения в фискальные документы данных о том, что при расчете пользователь осуществляет расчет, являясь комиссионером, предусмотрены дополнительные реквизиты:
- реквизит "признак агента". При осуществлении расчета с покупателем (клиентом) пользователем, являющимся комиссионером, этот реквизит в фискальном документе в печатной форме принимает значение "КОМИССИОНЕР";
- реквизит "признак агента по предмету расчета" (в случае, если предметом расчета выступает товар (работа, услуга) комитента).
Также необходимо заполнять реквизиты "данные поставщика" и "ИНН поставщика", в которых указываются данные комитента (наименование и телефон поставщика, его ИНН).
В кассовом чеке, который покупателю выдает комиссионер при расчете за реализованный товар комитента, указывается система налогообложения комиссионера. Однако в кассовом чеке, выдаваемом при расчете за комиссионный товар, необходимо указывать ставку и сумму НДС в отношении этого товара, принадлежащего комитенту, применяющему общую систему налогообложения.
Обращаем внимание, что каких-либо разъяснений уполномоченных органов по вопросу особенностей применения ККТ и оформления кассовых чеков при осуществлении расчетов комиссионером, нами не обнаружено. Минфин России по вопросам технической реализации расчетов, о применении реквизитов и форматов кассовых чеков, а также о формировании кассовых чеков в зависимости от различных условий рекомендует обращаться в ФНС России.

Кассовый чек (БСО) должен содержать реквизиты, указанные в таблице 19 (п. 24 Приложения 2). При этом из анализа Приказа (пп. "о" п. 3 Приложения 1, таблицы 4, 5, 10, 21, 23 Приложения 2) можно выделить следующие реквизиты, относящиеся к комиссионной торговле:
- реквизит "признак агента", значения которого приведены в таблице 10. В примечании к данной таблице указано, что в кассовом чеке (БСО) соответствующий бит ("5" для комиссионера) реквизита "признак агента" должен указывать, что пользователь осуществляет расчет, являясь соответствующим агентом.
При осуществлении расчета с покупателем (клиентом) пользователем, являющимся комиссионером, этот реквизит в фискальном документе (далее - ФД) в печатной форме принимает значение "КОМИССИОНЕР"*(2);
- реквизит "признак агента по предмету расчета", значения которого приведены в таблице 21. При осуществлении расчета с покупателем (клиентом) пользователем, являющимся комиссионером, указывается "КОМИССИОНЕР";
- реквизит "данные поставщика", значения которого приведены в Таблице 23. В нем указываются данные лица, являющегося комитентом в соответствии с п. 1 ст. 990 ГК РФ, а именно, наименование и телефон поставщика;
- реквизит "ИНН поставщика" (п. 11 Примечаний к Таблице 20).»

Ссылка на полноценную статью -  https://www.garant.ru/consult/nalog/1147366/

Настройка пользовательской части ПО Абонемент

1. Договорная работа

Необходимо завести поставщика (комитента) как Юр. лицо в договорной работе. При заполнении карточки Юр. лица необходимо учитывать заполнение полей «Краткое наименование», «Полное наименование», «ИНН», «Телефон основной», «Тел.1», «Тел.2», данные параметры будут отображаться в чеке фискального регистратора.

Пояснения:

Приоритетными полями в карточке Юр. лица являются:
Телефон поставщика (Приоритет: «Телефон основной», «Тел.1», «Тел.2»);
Наименование поставщика (Приоритет: Краткое наименование», «Полное наименование»);
ИНН поставщика (Приоритет: «ИНН»).

Рис. 1.1.

2. Общие параметры

Настройки → Общие параметры → вкладка «Услуги и платежи» → установить параметр «Использовать данные комитента».

Рис. 2.1. 

3. Карточка услуги

Настройки → Услуги и платежи → Услуги → Карточка услуги → выбираем организацию поставщика (комитента) → устанавливаем параметр «Комиссионный».

Рис.3.1.

! Параметры в карточки услуги «Поставщик (комитен)», «Комиссионный» снановятся доступными для отображения если в общих параметрах установлен парметр «Использовать данные комитента».

4. Пример чека ОФД

Рис. 4.1.

Общие требования к компьютерному обеспечению

Общие требования к компьютерному обеспечению для ПО Абонемент(Shelter).

Сервер

Рекомендуется выделенный сервер. Мощность сервера и кол-во ОЗУ должны выбираться исходя из количества одновременных подключений к серверу. Чем больше рабочих мест в заведении, тем выше необходима мощность сервера. Приведем пример серверного оборудования для среднего объекта с одновременно работающими в программе 10 клиентскими приложениями.

Процессор: Intel® Xeon® Processor E3-1220 v6, оперативная память: 16 Гб. Особое внимание на скорость работы и надёжность дисковой подсистемы. Рекомендуется установка работы дисков в режиме RAID 10 (RAID 0+1), с необходимым количеством свободного места минимум 500 Гб (лучше - больше). Для работы программы свободного места на жестком диске требуется не менее 10 Гб (при установке базы данных на данной машине). Средний объем БД программы составляет до 3 Гб. Размер пустой БД при установке ~ 30 Мб.

Так же рекомендуется уделить внимание надёжности и быстродействию сетевого интерфейса на сервере (и общей инфраструктуры сети в целом).

Для стабильной работы на сервере (или рабочем месте, если используется один и тот же компьютер) должна быть установлена операционная система Windows не ниже седьмой версии.

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

Программа использует сервер баз данных FireBird 2.5. Рекомендуется устанавливать в варианте SuperServer или Classic. По умолчанию FireBird настраивается на TCP\IP порт 3080. Можно установить и настроить на работу FireBird и на другом незанятом порту.  Для обеспечения безопасности на сервере и клиентских рабочих местах, можно запускать любой сетевой экран, «пробросив» все необходимые для работы порты вручную.

Рекомендуется использовать бесперебойные блоки питания (UPS). Для машины, на которой установлена БД программы, наличие UPS обязательно.

Рабочее место

Минимальные требования к рабочему месту среднего фитнес клуба (гостиницы до 100 номеров):

Центральный процессор Intel Core i3 2.4 GHz или AMD эквивалент.

Оперативная память - минимум 4 Gb.

Если данное рабочее место используется как касса быстрой продажи, то рекомендуется установить компьютер с Touch-экраном. Например, вот такой моноблок HP 24-g038ur All-in-One < X0Z57EA#ACB >  (i3 6100U / 8 / 1TbSSHD / DVD-RW / WiFi / BT / Win10 / 23.8") – данная конфигурация является примером и может варьироваться от нужд и средств заказчика.

Сама СУБД FireBird в особых технических изысках не нуждается. Но, как правило, на рабочем месте установлены другое ПО (офисный пакет, браузер, почтовые программы, и т.д.), соответственно, данный компьютер должен иметь необходимое количество оперативной памяти и размер жесткого диска.

Видеокарта и монитор с поддержкой разрешения  минимум 1366х768 (рекомендовано 1920х1080).

Клавиатура, мышь.

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

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

·         На сервере (где установлена БД программы) устанавливается USB ключ – ключ защиты.

·         Программа подразумевает подготовку различной документации (регистрационные карты гостей, печать отчетности, счетов…), соответственно необходимо предусмотреть возможность подключения принтера формата A4. Обычно современные лазерные принтеры подключаются по интерфейсу USB. Возможно использование сетевого принтера.

·         Программа может работать с различной фотоаппаратурой, которая используется для внесения графического изображения клиента в БД. Если предполагается использование не интегрированного устройства, то необходимо предусмотреть наличие аппаратного интерфейса для его подключения.

·         Идентификация гостей может осуществляться с помощью различных информационных идентификаторов (магнитная карта, бесконтактная карта, iButtons…) как правило, данные считыватели подключаются по протоколу RS232, соответственно данный компьютер должен быть оборудован COM портом. Некоторые считыватели подключаются информационным каналом в RS232, а питание получают через PS\2.

·         Подключение фискальных регистраторов. Большинство ФР подключаются к компьютеру по протоколу RS232. При одновременном использовании считывателя и ФР необходимо наличие как минимум 2 СОМ портов. Возможно использование PCI плат расширения.

·         В программе информацию о клиентах (анкетные данные) чаще всего вносятся вручную с использованием клавиатуры. Если подключается внешняя клавиатура к ноутбуку не имеющего PS\2 интерфейс, то клавиатура должна быть USB, а на компьютере должен быть свободный USB порт. Если оператору не удобно использовать Touch Pad ноутбука, то возможно подключить мышь, так же через USB.

·         Программа работает в полноэкранном режиме при разрешении не ниже 1280х1024. Как правило, монитор установленный на стойки администратора спрятан от глаз клиента и соответственно находится на некотором расстоянии от глаз администратора, соответственно для удобства работы диагональ монитора должна быть не менее 19 дюймов.

 

Необходимое количество COM и USB для подключения дополнительных устройств.

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

Требования к компьютерному обеспечению Вашего объекта

 

 

 

Абонемент Менеджер, основной модуль.

Сервер и рабочие места должны быть объединены в Ethernet сеть. Если подключаются фискальные регистраторы, то необходимо уточнить модель и при необходимости оборудовать данные машины COM портами (протокол RS-232). Новые фискальные регистраторы для ФЗ54, как правило работают в эмуляции COM порта и подключаются в USB разъем.

Фискальный регистратор


Фискальный регистратор, как правило, подключается в COM-порт компьютера, если COM-порта нет, то потребуется переходник на USB, который либо идёт в комплекте с ФР, либо приобретается отдельно (например, кабель-адаптер USB AM - COM Port DataLink, TrendNet TU-S9).

Новые фискальные регистраторы для ФЗ54, как правило работают в эмуляции COM порта и подключаются в USB разъем.

Если фискальный регистратор приобретался в компании UCS, То необходимо предварительно подъехать с печатью для получения оборудования на складе.

План подключения фискального регистратора ФЗ54:

1. Приобретается фискальный регистратор, согласованной модели или модернизируется старый.
2. Заказчик самостоятельно регистрирует его в налоговой, возможно через интернет на сайте налоговой.
3. Заключается договор с ОФД.
4. Заказчик самостоятельно настраивает фискальный регистратор для отправки данных на сервер ОФД. Проверяет работу через служебную утилиту Тест драйвера.
5. Инженер отдела технической поддержки Абонемент подключают данное оборудование к программе Абонемент.
 
Пункты 2-4 могут быть выполнены специалистами центра технической поддержки ЦТО при заключении соответствующего договора.
 
Считыватель карт

Считыватель MatrixIII подключается в COM-порт. (Потребуется переходник на COM).

Считыватель Z-2 подключается в USB порт.

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

WEB камера


Подключается внешняя Web-камера (по USB). Можно использовать камеру, интегрированную в ноутбук.

Интеграция с турникетами


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

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

Абонемент

Онлайн


Одна часть модуля устанавливается на сервер на объекте. Должен быть выделен белый внешний статический IP адрес и настроена маршрутизация порта 7779 из внешней сети во внутреннюю сеть объекта. Номер порта может быть изменен IT службой объекта.

Другая часть устанавливается на хостинг провайдера. Требования к хостингу.

- операционная система Linux 2.6; 

- версия Apache 2.2.17;

- версия PHP 5.3;

- возможность использования модулем библиотеки jQuery;

- установленные модули: cUrl, Sessions, Sockets, Xml, SimpleXML, GD, bcmath, mbstring, iconv, DOM, возможность установки дополнительных модулей по требованию.

Оптимально если на сайте провайдера будет создана папка. Наименование и место расположения относительно корня сайта - не принципиально. WEB сервер должен иметь доступ на чтение и запись в эту и все вложенные в нее папки. В компанию-инсталятора требуется предоставить FTP доступ с полными правами на данную папку. А так же URL адрес для работы с ней.

Модуль SMS рассылки


Необходимо заключить договор с провайдером, через который отправляются сообщения.

Провайдеры смс рассылки, поддерживаемые Guest Announcer

На компьютере, с которого отправляются сообщения, должен быть стабильный выход в Интернет.

Выгрузка в 1С бухгалтерию

 


По умолчанию 1С через внешнюю обработку подключается к базе ПО Абонемент. Если 1С и ПО Абонемент находятся в разных подсетях, то выгрузка возможна через промежуточный текстовый файл. Необходимо сообщить, какая конфигурация 1С используется на объекте.

Должно быть установлено:

1С предприятие 7.7 - платформа, Бухгалтерия 4.5 - релиз на этой платформе.

или

1С предприятие 8.1 или 8.2 - платформы 1С. Бухгалтерия предприятия 2.0 - конфигурация,  может запускаться на платформах 8.1, 8.2, 8.3.

Интерфейс связи с системой сканирования (cognitive)


Используется программа распознавания документов ScanifyAPI, разработанная компанией Cognitive Technologies (http://www.cognitive.ru). Сканер формата А5 модель Mini Flatbed USB2.0.

К моменту установки данного модуля, сканеры и ПО Cognitive уже должно быть установлено. Сканеры для распознавания рекомендуется покупать у Cognitive, т. к. они адаптированы для работы с документами.

Платежная система

 


Является дополнением к Абонемент Online. Должен быть заключен договор с одной из систем: Робокасса, Ассист. Или по запросу Заказчика из Onlne бронирования Shelter может быть перенесен Яндекс Кассса.
Установка данного модуля проводится после установленного модуля Абонемент Online

Банковский протокол


Работа с банковским платежным терминалом может быть реализована 2-мя способами. 
1. Автономный. Банковское оборудование не подключается к программе. При оплате картой, кассир сначала снимает деньги на платежном терминале, а потом регистрирует данную оплату в программе. В данной схеме рабобы данный модуль не требуется.
 
2. Совместный. Банковское оборудование подключено к программе. При оплате картой, кассир совершает оплату в нашей программе. Программа по средствам специально протокола команд посылает запрос в банковское программное обеспечение. Оно совершает оплату и возвращает ответ. Если операция успешна, то в нашей программе регистрируется платеж.

ПО "Абонемент" работает:

- Со Сбербанком (см. статью http://support.ucs.ru/ru/node/8903)

- С ГазПромБанком (см. статью http://support.ucs.ru/ru/node/8956)

- С UCSCARDS (см. статью http://support.ucs.ru/ru/node/8970

- С протоколом Arcus2 (см. статью http://support.ucs.ru/ru/node/8973)

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

 

Модуль "Монитор контролера" 

Монитор 15" и выше, процессор Intel Pentium >=1.6Ghz, >=512 Мб ОЗУ, >=1 Гб дискового пространства;

IP-камера AXIS M1011-W для регистрации прохода через турникет (настраивается через утилиту gkHostСonnect).

Рекомендации: т.к. много оборудования будет подключено в USB порты, то необходимо использовать USB хаб. Обратите внимание, что при покупке низкокачественного хаба, могут возникать отключения usb-устройств от ПК при перегрузке самого хаба.

Выбор типа карт для ПО «Абонемент»

 

 

 

Выбор типа карт и основная информация по считывателям

     ПО «Абонемент» может работать с картами Em-Marine, Mifare и iCode. Принципиальной разницы нет, т.к. ПО «Абонемент» работает не с картами, а со считывателями. При выборе типа карт необходимо учитывать, какое дополнительное ПО и/или оборудование будет использоваться (например шкафчики с электронными замками в раздевалках) и есть ли у данных продуктов ограничения по типу карт.
 
     
     Считыватели IronLogic Matrix-III RD-ALL и IronLogic Z-2 могут работать одновременно с обоими типами карт. Matrix-III подключается к ПК по протоколу RS-232 используя последовательный порт с разъемом DB-9, также данный считыватель имеет блок питания, который необходимо подключить к розетке. Считыватель Z-2 подключается по USB в режиме эмуляции COM-порта - для этого необходимо установить драйвера, которые идут в комплекте.

Получение трека карты

     Примеры трека для различных типов карт при использовании данных считывателей:
  • Em-Marine: Em-Marine [11FF]  123,65535
  • Mifare 1k: Mifare[49D0CC19] 208,52249 1K (0004,08)
  • iCode[E00401080A9F2557] 159,09559

EM4100 (EM4102, EM-Marin) - Относятся к классу пассивных RFID карт. Работает в частотном диапазоне 125 КГц. Наиболее распространены Clamshell-карты, ISO 7810-карты, брелки, браслеты.

 

     Конкретный номер трека (рис.1) можно узнать с помощью программ HyperTerminal или Putty, настроив соединение с COM-портом на скорости 9600 (может варьироваться в зависимости от модели считывателя). При установившемся подключении, проведите/приложите карту к считывателю.

(Рис.1 Пример вывода трека)

Настройка TCPCardReader

Для дальнейшей работы с данной последовательностью символов, мы будем использовать утилиту TCPCardReader.exe, которая занимает COM-порт и передаёт данные со считывателя всем остальным утилитам, обращающимся к нему - они не взаимодействуют с портом напрямую, подключаясь по TCP протоколу к TCPCardReader'у и получая от него считанную строку. Подробное описание работы TCPCardReader'а. Схема взаимодействия ПО при получении номера карты отображена на рис.2.

(Рис.2 Схема, иллюстрирующая получение номера карты ПО Абонемент)

Рассмотрим параметры настройки tcpcardreader'а, которые находятся в файле tcpcardreader.ini:

[application]

 

AutoStart = 1

Автоматически стартовать программу после запуска

AutoHide = 1
 

Сворачивать программу после запуска

[setup]

 

COMPORTCOUNT=1
 

Количество подключений к СОМ портам.

[TCP]

PORT=7760

IP=0.0.0.0
 

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

[READER1]

COMPORT=3

COMPORTPARAMS=baud=9600 data=8 parity=N stop=1

Настройки подключения к СОМ-порту. Номер и параметры СОМ-порта.

Prefix=;

 

Строка, которая передаётся клиентам перед первым прочтенным символом. В данном примере добавится символ: «точка с запятой»

Postfix=?

 

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

useDecodeCards=0

= 0 НЕ использовать декодирование decodecards.dll

= 1  использовать декодирование  decodecards.dll

StartTermChars=;

Используется, если useDecodeCards=1
Признак начала трека для декодирования
см.Примеры

FinishTermChars=?#13;#10;#0;

Используется, если useDecodeCards=1
Признак начала трека для декодирования

см.Примеры

[LOG]

level=30

debuglevel=30

 

Уровни логирования. Используются значения от 0 до 30

[TCPCARDREADER]

 

Prefix=;

 

Строка, которая передаётся клиентам перед первым прочтенным символом. В данном примере добавится символ: «точка с запятой»

Postfix=?

 

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

[READER.1.CODEPARAMS.90]

 

Prefix=;BarCode

Postfix=?

Специализированный префикс и постфикс для строк, уже прошедших декодирование после считывателя номер 1 и вернувшейся с кодом Code=90 (параметр Code задаётся в decodecards.ini)

(Табл.1 Параметры TCPCARDREADER.INI)

 

Настройка декодирования

Параметры настройки decodecards на стороне TCPCARDREADER

[general]
usemask=1
TrackResultLog=

[mask]
  ;card_2 = arine[* 
  card_bard=*
  ;card_d = *

[cards.Card_d]
code=2
;CardDecodeType = LAST9
;MaskType=ARRAYOFBYTES
CardDecodeType = MASK
mask=dddddddd*
bitmask=$FFFFFFFF

[cards.card_bard]
code=2


[cards.Card]
code=2

Параметры настройки decodecards на стороне ABONEMENTMANAGER

[cards]
  CardPrefix   =
  StaffCardPrefix        = y
  RegularCardPrefix = z
  PDSCardPrefix   = x
  FirstSignEquallyAsLetterA = 0
[cards.Card]
  CardDecodeType = mask
  mask=hhhhhhhh
  bitmask=$7FFFFFFF
  code=2

[cards.RegularCard]
code=22

[cards.StaffCard]
code=21

[cards.PDSCard]
code=24

Взаимодействие TCPCardReader с ПО "Абонемент"

Необходимо настроить параметры в файле abonementmanager.ini:

[TCPCardReader]

PORT=7760

 

Порт TCPCardReader

HOST=127.0.0.1

Адрес сервера TCPCardReader

UseTCPCardReader=1

Использовать  TCPCardReader

StartChar = ;

Признак начала трека для обращения в Decodecards.dll

StopChars = ? Признак окончания трека  для обращения в Decodecards.dll

(Табл.2 Параметры abonementmanager.ini)

Получение конечного номера происходит с помощью decodecards.dll, подробнее описано в руководстве по decodecards.

Подключение удалённых клиентов

Подключение удаленных клиентов.

Для стабильной работы удалённых подключений необходимо подключение сервера и рабочих станций к сети интернет по выделенной линии. Необходимая пропускная способность канала на сервере минимум 6-10 Мбит/сек, для рабочих станций достаточно 1-2 Мбит/сек.
Время отклика при посылке команды «ping» между удаленным сервером и клиентом составляет до 20 мс. Если возникает необходимость подключения к базе данных через Internet, то следует не только проверить отклик клиент-сервер с помощью команды ping, но также провести трассировку от клиента до сервера с помощью команды trace и обратить внимание на количество хопов (hops) и отклика до них. При большом количестве хопов, большом пинге быстродействие операций открытия-сохранения будет уменьшаться. 
Также необходимо уделить внимание надёжности соединения и исключить потери пакетов при приёме/передаче данных.
 
Возможны 2 режима работы:
 
1. Прямой доступ к базе данных. Клиентская часть программы установлена на рабочий компьютер пользователя. Подключение идет на внешний белый IP адрес сервера. В Firewall настраивается маршрутизация соответствующих TCP\IP портов для подключения к базе данных и прочим служебным программам. Список портов которые нужно открыть предоставляет инженер UCS.
Основной минус — высокие требования к каналу связи. Время отклика не более 20 мс. При этом если канал связи будет занят другими программами, то скорость работы в Абонемент снизится.
 
2. Работа в режиме RDP - Remote Desktop Protocol. Клиентская часть программы установлена непосредственно на сервере. Пользователь подключается на удаленный рабочий стол и там запускает программу. Данная служба работает только на серверных операционных системах. Требуется дополнительная настройка и администрирование со стороны IT служб Заказчика. Требует белый внешний IP.
Плюсы: Если не используется дополнительное оборудование, то работать можно с любого компьютера. Более лояльные требования к каналу связи. Время отклика не более 50мс, а если снизить качество передаваемого изображения, то и еще больше. Простота настройки и администрирования — все выполняется в одном месте на сервере.

Список рекомендуемого оборудования для работы в системе "Абонемент"

Список рекомендуемого оборудования

 

(Рис.1 Считыватель карт Iron Logic Z-2 USB)

Считыватель бесконтактных карт Iron Logic Z-2 USB (эмуляция COM-порта).

Средняя стоимость на Яндекс.Маркет: 4000 Руб.*

 

(Рис.2 Считыватель карт Iron Logic Matrix III)

Считыватель бесконтактных карт  Iron Logic Matrix III RS-232iПри покупке данного  считывателя не в компании UCS, стоит обратить внимание на то, что контактные провода не обжаты и считыватель необходимо монтировать определенным образом в зависимости от используемой схемы работы, что может оказаться очень трудоемким и проблематичным занятием. Рабочая температура от 0 до +40 градусов C, имеет влаго и пыле защитный корпус.   В случае приобретения считывателей в компании UCS, они будут переданы заказчику в доработтаном под его объект виде.

Средняя стоимость на Яндекс.Маркет: 4300 Руб.*

 

(Рис.3 Принтер для печати на пластиковых картах Evolis pm1h0000bs)

Принтер для печати на пластиковых карточках Evolis pm1h0000bs.

Средняя стоимость на Яндекс.Маркет: 115000 Руб.*

(Рис.4 Сканер штрих кодов Metrologic ms 5145 USB)

Сканер штрих кодов Metrologic ms 5145 USB интерфейс USB (с эмуляцией COM-порта).

Средняя стоимость на Яндекс.Маркет4400 Руб.*

(Рис.5 Сканер штрих кодов Datalogic QuickScan Lite QW2100)

Сканер штрих кодов Datalogic QuickScan Lite QW2100 черный сканер штрих-кода с подставкой и кабелем USB.

QuickScan Lite QW2100 - считывает штрих-коды с экранов смартфонов без проблем (проверяли на смартфонах: Apple, Asus, Samsung)

Средняя стоимость на Яндекс.Маркет5800 Руб.*

(Рис.6 Беспроводной сканер Datalogic QuickScan QBT2400)

Беспроводной сканер Datalogic QuickScan QBT2400 с подставкой и кабелем USB.

QuickScan QBT2400 - считывает штрих-коды и QR-коды в том числе и с экранов смартфонов (проверяли на смартфонах: Apple, Asus, Samsung)

Средняя стоимость на Яндекс.Маркет14500 Руб.*

 

(Рис.7 Принтер чеков Posiflex Aura 6900 LAN)

Принтер чеков Posiflex Aura 6900 LAN интерфейс.

Средняя стоимость на Яндекс.Маркет8300 Руб.*

(Рис.8 Термопринтер печати этикеток ZEBRA LP 2824 Plus, Пример напечатанной этикетки с баркодом из ПО "Абонемент")

Термопринтер печати этикеток ZEBRA LP 2824 Plus USB+RS-232 (либо LPTiинтерфейс.

Средняя стоимость на Яндекс.Маркет15000 Руб.*

 

(Рис.9 Камера Defender G-lens 2597 HD720p)

Камера Defender G-lens 2597 HD720p (2 Мп, автофокус, слежение за лицом).

Средняя стоимость на Яндекс.Маркет1500 Руб.*

(Рис.10 Плата расширения Orient XWR-PE2S)

Плата расширения Orient XWT-PE2S (контроллер COM-порта).

Средняя стоимость на Яндекс.Маркет850 Руб.*

(Рис.11 IP-камера AXIS M1011-W)

IP-камера для регистрации прохода через турникет. AXIS M1011-W.

Средняя стоимость на Яндекс.Маркет7950 Руб.*

(Рис.12 Сканер 2-D кодов Zebex Z 3192 RS232)

Сканер двумерных 2D кодов Zebex Z 3192 RS-232 (c блоком питания – можно использовать на рабочем месте администратора).

Средняя стоимость на Яндекс.Маркет23500 Руб.*

(Рис.13 Сканер 2-D кодов Zebex Z 6112 RS232)

Сканер двумерных 2D кодов Zebex Z 6112 RS-232 (с блоком питания – можно установить на турникет и подключить к игровому контроллеру UCS).

Средняя стоимость на Яндекс.Маркет23500 Руб.*

(Рис.14 Сканер двумерных 2D кодов ds7708 2D vertical slot scanner)

Сканер двумерных 2D кодов ds7708 2D vertical slot scanner RS-232 (Подходит для установки на турникет и подключения к игровому контроллеру UCS, протестирован на считывание ШК с экрана мобильного телефона).

Монтажная площадка и уголок для  крепления заказывается отдельно.

Средняя стоимость на Яндекс.Маркет15000 Руб.*

(Рис.15 Сканер магнитных карт с декодером Cipher 1023)

Считыватель магнитных карт Cipher 1023 RS-232. Для подключения к ПК в режиме виртуального COM-порта необходим интерфейсный кабель CipherLab USB Virtual COM(дополнительный) к 1023, 1045 или шнур RS232C-9pin для1023 для работы с COM-интерфейсом напрямую.

SW1: Этот переключатель должен находиться в положении ВКЛ.
SW2: Разрядность данных
ВКЛ - 8 разрядов данных
ВЫКЛ - 7 разрядов данных
SW3 - SW4: Контроль по четности
ВКЛ ВКЛ - Проверка четности выключена
ВЫКЛ ВКЛ - Проверка на четность
ВКЛ ВЫКЛ - Проверки на нечетность
SW5 - SW6: Скорость (битов в секунду).
ВКЛ ВКЛ 38400 битов в секунду.
ВЫКЛ ВКЛ 19200 битов в секунду.
ВКЛ ВЫКЛ 9600 битов в секунду.
ВЫКЛ ВЫКЛ 2400 битов в секунду.
SW7 - SW9: Режим передачи
ВКЛ ВКЛ ВКЛ - Передача данных только на порт А (2 порта)
ВЫКЛ ВКЛ ВКЛ - Передача данных только на порт В (2 порта)
ВКЛ ВЫКЛ ВКЛ - Передача данных одновременно на порты А и В (2 порта)
ВЫКЛ ВЫКЛ ВЫКЛ - Режим подтверждения связи RTS/CTS отключен (1 порт)
ВЫКЛ ВЫКЛ ВКЛ - Готовность данных (1 порт)
ВКЛ ВКЛ ВЫКЛ - Готовность сканера (1 порт)

Рекомендуемое положение переключателей: (1-5: ВКЛ, 6-9: ВЫКЛ).

(Для корректной работы с ПО Абонемент, данные считыватели необходимо перевести в режим "Режим подтверждения связи RTS\CTS отключен")

Средняя стоимость на Яндекс.Маркет7500 Руб.*

 

(Рис.16 Планшетный сканер OpticSlim 550 Plus)

Планшетный сканер Plustek OpticSlim 550 Plus Интерфейс USB (рис. 15). Модель идеально подходит для сканирования паспортов, других документов, удостоверяющих личность, кредитных карточек, водительских прав, медицинских страховок, чеков, фотографий или любых других документов. Совместим с системой распознавания документов Cognitive.

Средняя стоимость на Яндекс.Маркет20500 Руб.*

(Рис.17 - STLab - PCI плата расширения COM)   

Часто возникает необходимость подключать устройства, работающие через RS-232 протокол к компьютерам, которые не имеют COM-портов. Для стационарных компьютеров можно использовать PCI-платы расширения. На Рис.9 и 16 изображены примеры контроллеров, которые можно использовать.

Средняя стоимость на Яндекс.Маркет800 Руб.*

(Рис. 18 - пример кабеля TRENDnet TU-S9)

Переходник TRENDnet TU-S9 (USB на RS-232) изображенный на Рис. 17, можно использовать для ноутбуков. Сначала устанавливаем драйвер, потом подключаем провод в USB.

Средняя стоимость на Яндекс.Маркет800 Руб.*

(Рис. 19 - STLab device U-224)

Переходник STLab device U-224, изображенный на Рис.18 также подходит для использования с ноутбуком. Сначала устанавливаем драйвер, потом подключаем провод в USB.

Средняя стоимость на Яндекс.Маркет800 Руб.*

(Рис.20 - MSI Pro 16 Flex-029RU)

Моноблок MSI Pro 16 Flex-029RU, изображённый на Рис.19 прекрасно подходит для использования в качестве мини-ПК для установки веб-модулей Абонемент, таких, как "Интерактивный Солярий" и "Монитор тренера".

Моноблок имеет тач экран диагональю 15.6'', 2xUSB и 2xСOM входа, поддерживает подключение к интернет и через Wi-Fi, и по проводу, а также имеет достаточную вычислительную мощность для работы с указанными модулями.

Средняя стоимость на Яндекс.Маркет: 29000 Руб.*

(Рис.21 - Activecam AC-2141IR3)

Миниатюрная уличная корпусная 4Mp IP-камера Activecam AC-2141IR3 с ИК-подсветкой и сверхшироким углом обзора. Подходит для использования с  модулем "Монитор контролера"

(Рис.22 - Принтер TT Сitizen CL-S321, Этикетки  Z-Ultimate 3000T White 51х25 мм  (2580 эт., TLP), Красящая лента Смола Zebra 5095 64/74)

1. Принтер TT Сitizen CL-S321 (200dpi, серый, Etherneti, RS232, USB). Легкий в использовании, экономичный принтер, который обеспечивает надежную каждодневную печать. Принтер поддерживает EPL2, что позволяет просто включить его и сразу начать печать из уже установленных приложений. Поддерживает не только Ethernet, но и RS-232 и USB интерфейсы;
 
2. Красящая лента Смола Zebra 5095 64/74;
3. Этикетки  Z-Ultimate 3000T White 51х25 мм  (2580 эт., TLP).
 
Красящая лента и этикетки используются в данной модели принтера совместно, на выходе получаются самоклеющиеся стикеры на смоляной основе (не стираются), что удобно для их нанесения на различные виды инвентаря и т.п.
 
Средняя стоимость на Яндекс.Маркет: 21000 Руб. (стоймость этикеток и красящей ленты: ~3000 Руб. )*

Рис.23 - Считыватель ESMART Reader серии POS  

Считыватель ESMART® Reader серии POS предназначен для систем лояльности розничных сетей. Данный считыватель, разработанный и произведенный в России, идеально подходит для магазинов, ресторанов, клубов и любых предприятий ретейла, где применяются скидочные, накопительные и клубные программы.
 
Считыватель ESMART® Reader серии POS работает с картами и мобильными телефонами по NFC - дальность идентификации до 7 см, с мобильными - по Bluetooth LowEnergy (BLE) - до 10 м. Надежное считывание информации о клиенте по Bluetooth Low Energy позволит идентифицировать вашего клиента еще при входе в магазин и обеспечить оптимальные условия обслуживания. Обеспечивает создание систем лояльности на базе мобильных устройств, эффективен для развития уже существующих бонусных программ.
 
Назначение:
Обеспечение идентификации клиентов с помощью iPhone, Android, идентификаторов ESMART®Доступ и карт на базе чипов NXP MIFARE®
(Считыватель поддерживает несколько популярных технологийMIFARE® CLASSIC, MIFARE® PLUS, MIFARE® DESFIRE, идентификаторы могут содержать в себе транспортные приложения большинства городов РФ, СНГ и мира)
 
Особенности:
 
Размещается в прикассовой зоне в клубах, ресторанах, торговых сетях, развлекательных центрах, на АЗС.
Работает с компьютерами, кассами, POS-терминалами и другими хост устройствами, имеющими USB-порт на ОС Windows, Linux, macOS, Android. Базовый режим работы HID-клавиатура, дополнительно возможна эмуляция COM-порта.

Рис.24 - Компактный двумерный сканер Honeywell HF500  

 
Отличается превосходными рабочими характеристиками, компактным размером и широкими возможностями внедрения.
Новый компактный фотосканер YOUJIE HF500 обеспечивает высокое качество считывания любых линейных и двумерных штрихкодов, а также кодов PDF.
 
Благодаря простой и компактной конструкции модель HF500 идеально подходит для использования в составе различного
оборудования для самообслуживания: в киосках, билетных или торговых автоматах (с контроллерами UCS данная модель совместима при установке значения скорости 9600 бод (у считывателя скорость передачи в COM-порт имеет значение 115200 (по умолчанию) и изменяется с помощью баркода Datalogic Magellan Bioptic Settings))
 
HF500 заключен в эргономичный привлекательный корпус с четкой светодиодной индикацией. Применение
технологии интеллектуальной обработки изображений высокого разрешения гарантирует отличное качество
сканирования штрихкодов и оцифровки изображений.
 
HF500 способен безупречно декодировать штрихкоды даже с сильно отражающей поверхности — например, двумерные
коды с экрана мобильного телефона. Это избавляет пользователей от необходимости приобретать дополнительное
специализированное оборудование.
 
 
Средняя стоимость на Яндекс.Маркет: 8500 Руб *

* - данные "Яндекс.Маркет" по состоянию на Сентябрь 2017 года

Поддерживаемое оборудование для киоска самообслуживания

Купюроприемники

CashCode SM по протоколу CCNET
CashCode GX по протоколу CCNET

Работа с данными купюроприемниками протестирована и гарантирована. Возможна также работа с другими купюроприемниками, работающими по протоколу CCNET, но тестирование с ними не проводилось.

 

Принтеры

Custom VKP-80

Возможно также работа с любым Windows-принтером. ПО Абонемент работает с принтером с помощью стандартных средств системы.

 

Фискальные регистраторы

Казначей ФА в паре с VKP-80

 

Диспенсеры карт

Диспенсер бесконтактных карт Creator CRT-571-ER-BNJ со встроенным считывателем бесконтактных карт с вместимостью до 500 шт.

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

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

(Поддерживает только карты Mifare)

KYT-2244C1 в паре со считывателем IronLogic Z-2

Прим.: считыватель Z-2 приобретается и монтируется на диспенсер карт отдельно, 100% успешное считывание карт не гарантируется.

 

Считыватели банковских карт (карт ридеры) и ПинПад клавиатуры

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

Пример крепления "десктопного" банковского терминала на киоск самообслуживания

 

Пример конфигурации киоска самообслуживания

 

Оборудование, поддержка, которого прекращена

Диспенсеры выдачи сдачи

Puloon ECDM
Puloon LCDM
 

 

Описание поставки Абонемент (FullVesrsion.rar)

 

 

Общая информация

С версии ПО Абонемент 132 корневая директория архива поставки (FullVesrsionVerXXX.rar) содержит в себе следующие каталоги:

 

Наличие в названии нижнего подчёркивания или двух позволяет разделить каталоги по критерию значимости, при стандартной сортировке по имени
  • __SERVER

Данный каталог содержит всё необходимое для развёртывания сервера ПО Абонемент

  • __WORKSTATION
Данный каталог содержит всё необходимое для развёртывания базового рабочего места ПО Абонемент
  • _INTERFACE

Данный каталог содержит все доступные интерфейсы со сторонними системами (ПДС) и оборудованием (ФР, купюроприёмники, банковские терминалы, распознавание документов), подключаемые на рабочих местах

  • _MODULES
Данный каталог содержит основные модули ПО Абонемент (Абонемент-Онлайн, модуль работы с турникетами, модуль email и sms рассылки и т.д.)
  • _UTILS
Данный каталог содержит всевозможные утилиты, предназначенные для расширения функционала или упрощения тех или иных действий 
  • DOCs
Данный каталог содержит имеющуюся документацию, в том числе Руководство пользователя.
  • OTHER
Данный каталог содержит не попавшие в какой-либо из предыдущих каталогов состовляющие поставки
  • version.txt
Актуальный файл версионных изменений

 

 

 

Подробнее про содержание каталогов

__SERVER

Содержание каталога:

FireBird_2_5 Поставка FireBird версии 2.5
IBData Поставка пустой БД, начального скрипта, bat-файлов для резервного копирования и восстановления БД
Licence Поставка ПО для разворачивания сервера блокировок
OS Сторонние утилиты ОС, такие как IBExpert,..., и т.д.
Server Файлы библиотек FireBird UDF и серверный конфигурационный файл
skins Директория файлов пиктограмм
updatesql Директория версионных скриптов обновления БД

 

Подробнее про процедуру развёртывания сервера см. в соответствующем разделе.

 

 

__WORKSTATION

Содержание каталога:

exe Поставка основного модуля рабочего места ПО Абонемент
LIB Поставка необходимых библиотек для работы ПО 
localize

Поставка файла локализации основного модуля и скрипта локализации БД (с русского на английский)

Подробнее про процедуру локализации.

REPORT Поставка модуля отчётов
TcpCardReader Поставка утилиты фонового взаимодействия со считывателями
template Набор шаблонов FastReport (Шаблон договора для договорной работы, шаблон Z-отчёта, и т.д.)

 

Подробнее про процедуру развёртывания рабочего места см. в соответствующем разделе.

 

 

_INTERFACE

Содержание каталога:

HW
Интерфейсы взаимодействия с оборудованием
HW\MoneyAcceptor Интерфейс работы с купюроприёмниками (Используется в connecter для киосков самообслуживания)
HW\POS Интерфейс взаимодействия с фискальными регистраторами (ФР)
HW\POS\DRIVERS Библиотеки взаимодействия c ФР
HW\POS\DRIVERS\OLD Библиотеки старого образца
HW\POS\DRIVERS\URUNPOS Библиотеки универсального драйвера фискального регистратора
HW\POS\Uxml-rpc Утилита для подключения нескольких рабочих мест к одному ФР
HW\runcc Интерфейс с банковскими терминалами работающими через ПО Arcus2
HW\Scan Интерфейсы с системами распознавания документов
HW\Scan\regula Интерфейс с системой распознавания документов Regula
HW\Scan\csrecog Интерфейс с системой распознавания документов Cognitive
HW\Terminal Интерфейс с банковскими терминалами работающими через прочее ПО (подробнее см. в разделе)
Other Прочие интерфейсы (ArchiMed, ISD Metra)
PDS Интерфейсы взаимодействия со внешними ПДС-системами
PDS\GameKeeper Интерфейс к ПДС GameKeeper
PDS\PDS-RK Интерфейс к ПДС Rkeeper
PDS\Rkeeper_CRM Интерфейс к Rkeeper CRM 5
PDS\SH_Cards Внешний интерфейс к Абонемент через FarCards
PDS\urunpds Интерфейс к ПДС UDS Game
UDPPrn Интерфейс взаимодействия с UDP принтерами

 

 

_MODULES

Содержание каталога:

_WEB Поставка веб частей web-модулей Абонемент
AbonementOnline Модули "Абонемент-Онлайн" и "Монитор Тренера" (Веб часть)
Access_Control_Monitor Модуль "Монитор контроллёра"
Connecter Модуль Connecter - основа веб модулей Абонемент
CRMOnline Модуль выгрузки данных в CRM Битрикс 24
eventsservice Модуль автоконтроля мероприятий и EFT списаний
gkhostconnect Модуль "Управления турникетом"
GuestAnnouncer Модуль email и sms рассылки
ImportTo1C Модуль "Выгрузка в 1С"
InfoKiosk Модуль "Инфокиоск" (Веб часть) 
InfoPlazma(Monitor) Модуль "Инфоплазма"
MonitorForClient Модуль "Монитор для покупателя"

 

 

_UTILS

Содержание каталога:

_BAT

Набор .bat - ориентированных утилит, для автоматизации тех или иных действий

(Автоперевод смены, автовывод всех присутствуюющих гостей из ресурсов, и т.д.)

_TURN Утилиты для взаимодействия с оборудованием контроля доступа и релейными блоками
_UPDATE Утилиты необходимые для настройки автообновления клиентов с сервера
anonymizer Утилита для анонимизации БД
developerdll Поставка модуля договорной работы
EFT Утилита для EFT списаний
ExportData Утилита для настройки выгрузки в StoreHouse
ExportTo Утилита для экспорта данных
IbHistory Утилита для настройки логирования действий в БД
ImportAB Утилита для изначального импорта данных в БД
mailcarrier Утилита для автоматической рассылки файлов на email (часть mailreport)
mailreport Сборка утилит для автоформирования отчётов и их автоматической отправки на email
PReport Утилита для автоформирования отчётов (часть mailreport)
ServMonitor Утилита, мониторинга работоспособности модулей и событий на сервере
ServStat Утилита для формирования и передачи данных на сервер статистики
StarterA1 Утилита, контроллирующая запуск прочих утилит

 

 

DOCs

Содержание каталога:

Документация ПО Абонемент.

Названия файлов говорят сами за себя.

За актуальной информацией следите на http://support.ucs.ru/

 

 

OTHER

Содержание каталога:

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

 

 

Предложения изменений:

В связи с исправлениями в работе ПДС, и состоянием на данный момент, требуется RunPDS.dll перед выходом версии переместить в "_INTERFACE\PDS\"

Недостающие статьи:

ExportTo

CRM Битрикс 24

Информация по шаблонам в template

Установка базового блока Абонемент

Основная информация

Установка Абонемента делится на 2 части – серверную и клиентскую. Серверная часть 
устанавливается непосредственно на сервер, где будет располагаться база данных под 
управлением СУБД FireBird 2.5 и ключ лицензии. Следует отметить, что под сервером может 
подразумеваться любой компьютер с соответствующими системными характеристиками. 
Все необходимое программное обеспечение актуальной версии можно скачать с FTP по адресу:
 
 
 
 
 
  

Установка серверной части.

 

 

 

 

 

На данный момент актуальной версией является 129, поэтому папка называется FullVersionVer129. 

Полезные советы:

  • Рекомендуется использовать для бэкапа БД второй имеющийся жесткий диск (уточнить у системного администратора на объекте), внешний жесткий диск или настроить копирование в папку, синхронизирующуюся с облачным хранилищем (см. Приложение 1 и 5)
  • При инсталляции удобно использовать следующую систему создания каталогов: в корне жесткого диска создаём папку (например, "_UCS"), внутри неё, если на объекте ожидается несколько модулей, следует создавать папки модулей соответственно. Если ожидается наличие только одого модуля (например, Абонемент), то можно не создавать отдельную папку, как и в случае, если на одной машине устанавливается и серверная, и клиентская часть. Внутри верхней папки (_UCS) создайте папку "_INSTALL" для размещения используемых архивов, установщиков и тп.
  • Добавить папку _UCS в исключения антивируса. Желательно отключить его на время установки, так как некоторые компоненты драйвера или утилиты могут быть удалены.
  • При инсталляции служб для удобства рекомендуется подписывать в начале их названия/описания "UCS_" для того, чтобы было легче найти их в списке.
  • Рекомендуется запускать службы и утилиты от имени администратора.

Инструкция

1. Создайте папку FITNESS скопируйте в неё папки LIB, Licence, skins из папки \fullVersionver… 

2. Папку LIB (например, C:\_UCS\FITNESS\LIB) нужно добавить в системную переменню переменную PATH - см. пункт 7.

3. Создайте папку IBDATA в папке FITNESS и из \fullVersionver...\Empty скопируйте в неё fitness.fbk (backup пустой базы) и файл ibsh.errors.ru

4. Из папки \fullVersionver…\Server\INI.SERVER скопируйте файл shelter.IB.ini в системный каталог (папка C:\Windows\), предварительно настроив его (может не быть прав на изменение файла в системной папке). Параметры настройки файла:

[General]
Messages = "C:\FITNESS\IBDATA\ibsh.errors.ru"       ;путь до файла ibsh.errors.ru
skins    = "C:\FITNESS\skins\skins.ini"             ;путь до файла skins.ini

Установка Firebird 2.5

!!!ВНИМАНИЕ!!! Для исключения возможности необоснованного роста базы данных и других неиисправностей связанных с работой СУБД, необходимо использовать дистрибутив Firebird 2.5.3 из дистрибутива ПО "Абонемент" ( \fullVersionver...\FireBird_2_5\)

6. Скопируйте содержимое папки \fullVersionver...\FireBird_2_5 в C:\Program Files (x86)\FireBird\FireBird_2_5

7. Папку C:\Program Files (x86)\FireBird\FireBird_2_5\UDF\ добавить в системную переменную PATH. Для этого необходимо:

Зайти в свойства компьютера → Дополнительные параметры системы → Переменные среды → в списке переменных найти «Path» и к ее значению в начале дописать путь до папки (см. Рис. 1)

Рис. 1 - Добавление в переменную Path путей до папок

8. В файле C:\Program Files (x86)\FireBird\FireBird_2_5\Firebird.conf найти параметр RemoteServicePort и указать для него значение 3080

9. Установить службу с помощью bat-файла C:\Program Files (x86)\FireBird\FireBird_2_5\bin\install_super_shelter.bat (выполнять от имени администратора).

10. Проверить, запущена ли служба FireBird. Если нет — запустить её вручную через "Службы" Windows.

11. Добавить пользователя UCS, запустив bat-файл C:\Program Files (x86)\FireBird\FireBird_2_5\bin\addUserUCS.bat

12. Если на машине используется только одна версия Firebird, файл fbclient.dll нужно копировать, копию переименовать в gds32.dll и поместить в папку C:\Windows\System32\

Если версий Firebird несколько, необходимо разместить файл gds32.dll, взятый из необходимой версии Firebird, под .exe-файлами тех программ, которые в словей работе обращаются к БД (например, в папке Abonementmanager данный файл уже имеется изначально).

13. В первый раз программы нужно запустить от имени администратора, иначе необходимо вручную зарегистрировать midas.dll из папки \LIB\ и frDlgDef.dll в папке \Reports\dll\ с помощью следующей команды (прописать в консоли windows, запущенной от имени администратора):

regsvr32 C:\_UCS\FITNESS\LIB\midas.dll
regsvr32 С:\_UCS\FITNESS\REPORTS\DLL\frDlgDef.dll 

Приложение 1 - Настройка bat-файлов.

Сделайте restore базы fitness. Для этого настройте и запустите файл restore_2_5.bat из папки \fullVersionver...\backup\.
 
Важно: На этапе обучения и внедрения ПО всегда храните актуальный backup пустой настроенной базы.

Приложение 2 - Выполнение SQL-скриптов.

Из папки \fullVersionver…\Empty выполните скрипт, устанавливающий текущую дату в базе, Start.sql. После выполнения рекомендуется удалить (или хранить в архиве) файл скрипта, так как его повторное выполнение повредит базу.

Приложение 3 - Управление лицензиями.

Приложение 4 - Отслеживание автоматического запуска приложений.

Приложение 5 - Настройка автоматического резервного копирования.

Установка драйвера ключа защиты и сервера блокировок.

 

 

Установка и настройка производится как правило на машине, являющейся сервером (на котором хранится база данных).

Электронный ключ

В зависимости от типа вашей ОС,  установите драйвер для электронного ключа из папки \FITNESS\Licence\drivers_Guardian_5.50  или  \fullVersionver…\Licence\drivers_Guardian_5.50Х64 . 

Вставьте ключ в USB-порт.

Сервер блокировок

Версия 2.3

ВАЖНО

Абонемент версии 1.127 и выше может работать только с сервером блокировок версии 2.3.18.7 и выше.

В папке FITNESS\Licence\2.3 настройте ServerT1.ini:

[server]
TCPHost = 0.0.0.0
TCPPort = 1111

Остальные секции заполнять не обязательно. Проверьте, что номер порта совпадает с указаным в файле Abonementmanager.ini и Freports.ini. 

Также рекомендуется заполнить параметры:

  KeepAliveTimeOut = 180
  CheckForGracefulDisconnect = 1
Данные параметры отвечают за сброс оборвавшегося подключения занимающего лицензию. Где KeepAliveTimeOut - таймаут для сброса подключения в секундах.
Также для корректной отработки данных параметров, в abonementmanager.ini на всех рабочих местах в секцию [LOCK.SERVER] необходимо добавить строку 
  SEND_KEEP_ALIVE=1

Также сервер блокировок позволяет вести черный список IP-адресов (0 - белый список,1 - черный список), за это отвечает секция [LockServerBlackList] в которой по порядку указываются IP-адреса:

  [LockServerBlackList]   
  127.0.0.1=0
  127.0.1.2=1

Для версий Абонемента ниже 127 в abonementmanager.ini в секции [LOCK.SERVER] нужно указать версию строкой

  version = 2.3

 

Сервер в данной реализации устанавливается в качестве службы с помощью ключа -install. Запускать нужно от имени администратора. Должно появиться сообщение "Служба успешно установлена".

Версия 2.1

В папке FITNESS\Licence\2.1 настройте ServerT1.ini:

[SERVER]
TCPHost = 0.0.0.0
TCPPort = 1111

Проверьте, что номер порта совпадает с указаным в файле Abonementmanager.ini и Freports.ini. 

ServerT1.exe пропишите в автозапуск или воспользуйтесь программой StarterA1.exe ежит в папке \FullVersionVer...\UTILS) (см. Приложение 4 - Отслеживание автоматического запуска приложений с помощью StarterA1).

Запустите ServerT1.exe

В окне Server S-S2 проверьте ключ через кнопку "Key info", затем сверните окно при помощи кнопки "Hide window" (см. Рис. 2):

Рис. 2 - Проверка имеющихся лицензий в ServerT1

Локализация файла с ошибками.

Для того, чтобы изменить или перевести текст ошибок, которые появляются при запуске Abonementmanager в связи с сервером блокировок, необходимо:

-Запустить ярлык servert1.exe с ключами \desktop \SAVELANGUAGE

-В месте хранения exe-файла появится папка \lng\ и файл default.lng

-Поиском по файлу нужно найти строки s20007d05, s20007d06, s20007d14, s20007d1e, s20007d28 и перевести/изменить их.

Управление лицензиями. Работа с ключом защиты Shelter и Абонемент.

 
 

Работа с ключом защиты UCS.

После того, как установлены драйвера для ключа, и ключ вставлен в ПК, запустите файл licence.exe из Абонемент Fullversion\__SERVER\Licence\ или скачайте его тут 
Если всё в порядке, после нажатия кнопки «Получить код сессии» в поле «Код сессии» появится набор символов, по 4, разделенных «-». (см. Рис. 3)
Если код сессии не появился, перед вами пустой не форматированный ключ. Нажмите кнопку Форматирование ключа. Внимание! Убедитесь что в данном компьютере установлен только этот ключ.
Для добавления лицензии: запустить licence.exe, получить "код сессии", сообщить его в московский офис UCS (вместе с информацией о требуемой лицензии) на почтовый ящик shelter-license@ucs.ru и hotel@ucs.ru
В московском офисе  сформируют "код лицензии" - его необходимо ввести в поле «Код для записи» (см. Рис.3).
 
Внимание! Глобусом, расположенным после ID ключа, не пользоваться! 
 
 
Рис.3 - Внешний вид окна Licence.exe
 

Онлайн лицензирование Абонемент через l.ucs.ru

 

С версии Абонемент 138 в сервере блокировок Абонемент поддержана работа с онлайн лицензированием UCS через l.ucs.ru

 

Работа в таком случае происходит только с виртуальным ключом. 

Для перехода на онлайн лицензирование необходимо:

  • Запустить ServerT1 в режиме рабочего стола (с ключом "-desktop"). 
  • Воспользоваться кнопкой "Setting licence online". 
  • В поднявшейся форме, представленной на рис.1, заполнить:
  • CustomerID - код объекта в l.ucs.ru
  • Установить галку "Online"
  • Если виртуальный ключ для объекта был сгенерирован ранее, заполнить DongleID
  • Для автосоздания лицензий на основной модуль можно заполнить - Login (dealer ID), Password, Password lifetime - тогда при запуске нового экземпляра модуля на данном сервере блокировок из доступных мастер лицензий будет автоматически создана новая активная лицензия продолжительностью "Password lifetime" дней
  • Если DongleID не был заполнен, то при нажатии на кнопку ОК, будет сгенерирован новый виртуальный ключ для данного объекта в l.ucs.ru

Для возвращения в режим работы с физическим ключом, достаточно просто снять галку "Online" в меню "Setting licence online".

Рис.1 Окно настройки сервера блокировок на работу в режиме онлайн лицензии

Далее работа производится как и с остальными продуктами компании UCS.

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

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

 


 

!!!ВАЖНО!!!

Работа сервера блокировок в режиме онлайн лицензии без связи с l.ucs.ru возможна только в первые 72 часа с последнего сеанса связи. После этого, все модули прекратят работу. После 36 часов отсутствия связи, сервер блокировок начинает рассылать предупреждение, аналогичное предупреждению об окончании лицензии в ближайшие 14 дней. Внешний вид предупреждений представлен на рис.2-3.

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

Сервер блокировок запрашивает обновление лицензии с l.ucs.ru не чаще чем раз в 10 минут. Соответственно, после добавления новой активной лицензии на l.ucs.ru, на сервере блокировок она появится в течении 10 минут.

Рис.2 Предупреждение при запуске программы

Рис.3 Постоянное предупреждение в программе

 

ВложениеРазмер
ucs_soglashenie_onlayn_licenziya.doc652.5 КБ

Настройка автоматического резервного копирования.

 

 

Необходимость настройки автоматического резервного копирования продиктована множеством причин и является обязательным элементом работы с БД. При установке ПО, необходимо заключить с клиентом соглашение  о резервном копировании БД, которое оставляет дальнейшую ответственность за резервное копирование на заказчике (приложено к данной статье).

Чтобы настроить автоматический backup БД, необходимо создать Простую Задачу в Планировщике Задач Windows (Task Scheduler).

Триггер: ежедневно. Повторять каждый день или чаще/реже - по договорённости с заказчиком. Обычно бэкап делается в ночное время (никто не работает с базой, в ней сохранены все изменения за день). Установите галочку "

Действие: запустить программу. Указываем путь до bat-файла _backup.bat, который находится в директории \FITNESS\IBDATA\ - подробнее см. Приложение 1. Настройка bat-файлов.

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

Рекомендуемой опцией резервного копирования является настройка копирования на внешний диск / диск удаленной машины / облачное хранилище данных (например Yandex Disk). Для этого необходимо установить Яндекс (или Google) Диск на локальную машину, настроить папку синхронизации и установить копирование архива бэкапа базы в эту папку, таким образом она будет синхронизироваться с облачным хранилищем, значительно уменьшая вероятность потери данных, необходимых для восстановления БД.

ВложениеРазмер
ucs_soglashenie_storon_o_rezervnom_kopirovanii.doc628.5 КБ

Настройка bat-файлов копирования базы данных

 

 

Настройка bat-файлов на примерах

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

 1 _backup_2_5.bat - создание копии базы (.fdb -> .fbk)

set EXE_gbak="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\gbak.exe"  ;путь до файла gbak.exe в папке, куда устанавливался FireBird
set EXE_rar="D:\_2_Base\_FB25\Rar.exe"                                    ;путь до файла запуска архиватора winRar

set FDB="127.0.0.1/3080:D:\_2_Base\_FB25\fitness.FDB"                     ;путь до рабочей базы
set FBK="D:\_2_Base\_FB25\autobackup\fitness.FBK"                         ;путь до файла, в который будет делаться бэкап (все папки должны быть уже созданы)
set RAR="D:\_2_Base\_FB25\autobackup\FITNESS.RAR"                         ;путь до файла с архивом бэкапа (все папки должны быть уже созданы)

if exist %FBK% del %FBK%                                                  ;удаляем предыдущий бэкап, если он имеется
%EXE_gbak%  -user "ucs" -password "ucs"   -b  %FDB% %FBK%                 ;делаем бэкап
%EXE_rar%   a -ep -ag %RAR%  %FBK%                                        ;создаём архив

 2 _restore_2_5.bat - Восстановление базы из бэкапа (.fbk -> .fdb)

Обратите внимание, что при использовании файла _restore.bat он не перезаписывает конечный файл с БД, а дополняет его, поэтому перед использованием запуском данного bat-файла нужно переименовать, переместить (рекомендуется внутри папки IBDATA создать папку OLD, куда и помещать предыдущие восстановленные из бэкапа базы), либо удалить уже имеющуюся БД с таким именем. 

set EXE_gbak="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\gbak.exe"
set EXE_rar="D:\_2_Base\_FB25\Rar.exe"

set FDB="127.0.0.1/3080:D:\_2_Base\_FB25\FITNESS_TEST.FDB"
set FBK="D:\_2_Base\_FB25\autobackup\FITNESS.FBK"

set resout=resultrestore.txt
set charset=win1251

if exist %resout% del %resout%
%EXE_gbak% -c -k -p 8192 %FBK% %FDB% -user ucs -password ucs -v -y %resout%

3 _backup_2_5_EX.bat - создание архива базы в случае её повреждения.

Стоит отдельно обозначить данный вариант создания архива БД, так как он будет работать в том случае, если невозможно сделать бекап поврежденной БД обычным методом (_backup.bat)

set EXE_Gbak="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\gbak.exe"
set EXE_Rar="c:\Program Files\WinRAR\Rar.exe"

set server=127.0.0.1/3080
set FDB_Dir=D:\FITNESS\_IBDATA
set FDB_Name=FITNESS

set FBK_Dir=%FDB_Dir%\autobackup
set FDB_Path=%FDB_Dir%\%FDB_Name%.FDB
set FDB="%server%:%FDB_Path%"
set FBK="%FBK_Dir%\%FDB_Name%.FBK"
set FBK_RAR="%FBK_Dir%\%FDB_Name%.RAR"
set FDB_ER="%FBK_Dir%\%FDB_Name%_ERROR.FDB"
set FDB_ER_RAR="%FBK_Dir%\%FDB_Name%_ERROR.RAR"

if exist %FBK% del %FBK%
%EXE_Gbak% -user "ucs" -password "ucs"  -b  %FDB% %FBK%
%EXE_Rar% a -ep -ag %FBK_RAR%  %FBK%

if exist %FDB_ER% del %FDB_ER% 
if not exist %FBK%  copy %FDB_Path% %FDB_ER% 
if exist %FDB_ER%  %EXE_Rar% a -ep -ag %FDB_ER_RAR% %FDB_ER%

4  restore_1_5_to_2_5.bat - используется для миграции с FireBird 1.5 на Firebird B 2.5

set backup=" C:\fitness\IBDATA\Empty\fitness.FBK"	             
set dbname="127.0.0.1/3080:C:\fitness\ IBDATA \fitness.FDB" 
set resout=resultrestore.txt
if exist %resout% del %resout%
"C:\Program Files\Firebird\FireBird_2_5\bin\gbak.exe" -c -k -p 8192 %backup% %dbname% -FIX_FSS_DATA win1251 -FIX_FSS_METADATA win1251 -user ucs -password ucs -v -y %resout%

;set backup – локальный путь к файлу fitness.FBK – backup базы;
;set dbname – путь до новой базы, начиная с IP-адреса (имени) сервера, если используем Firebird 2.5 не забываем указывать порт .

IBExpert. Регистрация базы и запуск SQL-скриптов.

 

IBExpert. Регистрация базы.

1. Рассмотрим подробнее выполнение скриптов в программе IBExpert. Вход в  программу осуществляется путем запуска файла \fullVersionver…\OS\IBEXPERT\IBExpert.exe - следует скопировать его в папку "_UCS\UTILS\" для будущего использования клиентом.

2. Зарегистрировать базу (если она ещё не зарегистрирована). Для этого необходимо: нажать кнопку  Register Database (в разделе Database), ввести необходимые параметры подключения (см. рис.1) (Remote - IP-адрес машины, 127.0.0.1 - для локальной машины, используемый порт - 3080), выбрать  кодировку Win1251, установить логин UCS и пароль ucs для базы, выбрать версию Firebird (для всех актуальных установок используется версия 2.5). Указать путь до файла gds32.dll, который по умолчанию находится в папке с установленной версией Firebird в каталоге binРекомендуется для Alias'а (отображаемого названия) использовать WORK - для рабочей базы и TEST - для тестовой.

    

(Рис.1 - Заполненные регистрационные данные базы)

2. Создать подключение к ещё одной базе можно простым методом - Клонировать Регистрационные Данные (Clone Registration Info) - нажав правой кнопкой на БД в списке Database Explorer (см. рис. 2 - пункт 1). Подключиться к базе данных, дважды кликнув по ней в списке либо выбрав соответствующий пункт из выпадающего меню (см. рис. 2 - пункт 2).

(Рис.2 - Клонирование данных базы и Подключение)

Выполнение скрипта.

3. Зайти в меню  Tools\Script Executive (Ctrl+F12), открыть  sql файл, содержащий нужный скрипт, установить галочку (checkbox) "Use current connect" (данная функция будет активна, если выполнено хотя бы одно подключение).

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

CONNECT '127.0.0.1/3080:c:\FITNESS\IBDATA\FITNESS.FDB' USER 'UCS' PASSWORD 'ucs';

4. Нажать кнопку  Run Script (F9). Скрипт должен выполнится без ошибок. Выполните его на рабочей (пустой) и на тестовой базе.

5. При обновлении базы данных программы abonementmanager, скрипты выполняются в возрастающем порядке (например, при переходе со 117 на 119 версию - сперва выполнить скрипт 118, а потом 119). Перед любыми обновлениями необходимо всё проверить на копии базы. Копия базы делается только через bat-файлы backup/restore.

6. После обновления, необходимо сделать backup-restore базы. 

 

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

*по аналогии, выполняется любой другой скрипт

 
Рис.3. Заходим в программу IBExpert (FullVersionVer129/OS/IBEXPERT/ibexpert.exe), нажимаем на кнопку "Register database".
 
 
Рис.4. Прописываем путь к БД "Абонемент" (см. Регистрация базы).
 

Рис.5. Нажимаем кнопку "Connect ot Database" (1) затем нажимаем кнопку"Script Executive" (2).

Рис.6. В открывшемся окне ставим галку "Use current connect", далее нажимаем "Script"->"Run from file..."  и в открывшемся окне выбираем наш скрипт (например: Translate_DB_to_English.sql) и нажимаем кнопку "Открыть".

Рис.7. Выполнится скрипт, после чего появится информационное сообщение о его успешном выполнении.

После выполнения перечисленных выше действий - закрываем IBExpert.

 

Установка ПО Абонемент на Red OS

Версии ПО, на которых производилось тестирование

  • Red OS 7.1
  • Red Database 2.6.0
  • wine-etersoft 2.1.4
  • Абонемент 1.136
 

Установка wine

В первую очередь необходимо приобрести Wine-etersoft и заказать сборку для CentOS 7 на сайте разработчика: https://etersoft.ru/ (доступна пробная 30-дневная версия).
Загрузив файлы на ПК, необходимо выполнить установку:
sudo yum localinstall /home/abonement/W@E32/*.rpm
Более актуальная и подробная информация по установке:
https://winehq.org.ru/WINE@Etersoft/Enterprise#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_WINE.40Etersoft
https://winehq.org.ru/WINE@Etersoft/X86_64#CentOS
При использовании Wine Etersoft под Red OS 7 необходимо ориентироваться на документацию, касающуюся CentOS 7.
 
После установки wine-etersoft необходимо установить библиотеку Libpng:
sudo yum install libpng15.so.15
 
Далее выполнить следующую команду:
winetricks mdac28
 
В домашней папке пользователя (/home/%username%/) появится ссылка wine_c. Для программ, запускаемых под вайн это будет корень диска "C:\".
 

Установка RED Database

Необходимо скачать дистрибутив RED Database. В папку udf скопировать библиотеки из аналогичной папки под FireBird. Путь до папки добавить в переменную PATH (см. особенности установки)
Установка службы СУБД:
  • wine cmd (запустится консоль под wine-ом)
  • cd %путь до папки bin, от диска C:%
  • Далее команды анлогичны Windows:
    • instsvc install -auto -superserver -n UCSRDBServer
 
Запуск службы:
instsvc -start -n UCSRDBServer
 

Проброс COM-портов в wine

Для начала необходимо открыть доступ для рбаоты с портом. Ниже указан пример команды, которая разрешает полный доступ всем пользователям:
sudo chmod 777 /dev/ttyS0
 
После чего необходимо, собственно, создать ссылку на данное устройство:
ln -s /dev/ttyS0 ~/.wine/dosdevices/com1
Где ttys0 - устройство в системе Red OS, а com1 - COM-порт, который будет использоваться wine.
 
Использование ключей защиты.
http://winehq.org.ru/WINE@Etersoft/Enterprise#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.B9_.D0.B7.D0.B0.D1.89.D0.B8.D1.82.D1.8B
http://winehq.org.ru/WINE@Etersoft/Enterprise#.D0.9A.D0.BB.D1.8E.D1.87.D0.B8_GUARDANT_.28.D0.90.D0.BA.D1.82.D0.B8.D0.B2.29
 

Особенности установки ПО под wine

Для того, чтобы заполнить переменную PATH под wine необходимо:
  • запустить редактор реестра: wine regedit
  • найти ключ HKEY_CURRENT_USER/Environment
  • изменить (при отсуствии - создайте) переменную PATH, добавив туда необходимые пути.
 
Для того, чтобы зарегистрировать библиотеку необходимо выполнить следующую команду:
wine regsvr32 %путь до библиотеки%

 

 

ВАЖНО: полноценного и/или нагрузочного тестирования данной конфигурации не проводилось.

Установка клиентской части.

Установка клиентской части программы AbonementManager

Действия производятся на компьютере, который будет являться рабочим местом. Обратите внимание, что количество рабочих мест ограничено количеством купленных лицензий. Машина, являющаяся сервером, одновременно может являться рабочим местом.
 
1. Создайте папку FITNESS и скопируйте в неё папки LIB, EXE , Report из  папки \fullVersionver…
2. В системную переменную PATH  добавьте путь до папки  LIB (например, C:\FITNESS\LIB). (см. Рис. 1)
3. Пропишите в файле abonementmanager.ini, находящийся в папке \FITNESS\EXE, путь до используемой базы данных:
[database]
dbname = сервер/3080:C:\FITNESS\IBDATA\fitness.FDB                  ;где сервер – это имя или ip адрес компьютера, где установлена серверная часть, например 127.0.0.1/3080:C:\FITNESS\IBDATA\FITNESS.FDB
4. Укажите в файле abonementmanager.ini путь до машины, где запущен сервер блокировок (ServerT1.exe) в секции [LOCK.SERVER]. Проверьте, что номер порта совпадает с указаным в файле LockServer.ini.
[LOCK.SERVER]
  TCPHost = 127.0.0.1 
  TCPPort = 1111
5. Если используется считыватель карт (TcpCardReader), проверьте, что в файле abonementmanager.ini указано значение "1" в строке UseTCPCardReader=1.
В секции [HARDWARE.READER] Параметр "COMPORT" поставьте равным несуществующему порту, например, "99".
 
6.  В abonementmanager.ini в секции [Defaults] есть возможность настроить WEB-камеру (например, для получения изображений клиентов и сохранения их в карточке клиента):
 
usecamera=0 - использовать WEB-камеру. По умолчанию 0 - не использовать.
usecamera=1 - при открытии карточки клиента будет видно на экране изображение с камеры. Кнопка "Фотографировать" в карточке клиента сделает снимок с камеры и сохранит его как фотографию клиента.
DefaultCameraName=Eye 312  - Название WEB-камеры (из списка устройств Windows).
 
7. Проверьте наличие файла gds32.dll в папке \FITNESS\EXE (или С:\FITNESS\LIB\). Если файл отсутствует, скопируйте fbClient.dll из папки \fullVersionver…\FireBird_2_5\bin в одну из этих папок и переименуйте новый файл в gds32.dll.
 

8. В первый раз программы нужно запустить от имени администратора, иначе необходимо вручную зарегистрировать midas.dll из папки \LIB\ и frDlgDef.dll в папке \Reports\dll\ с помощью следующей команды (прописать в консоли windows, запущенной от имени администратора):

regsvr32 С:\_FITNESS\LIB\frDlgDef.dll ;подставьте необходимый путь и имя библиотеки
9. Создайте на рабочем столе ярлыки для Abonementmanager.exe и FReports.exe.

Подключение фискальных регистраторов

Список поддерживаемых фискальных регистраторов:

Поддерживаемые драйвером старого образца:

"Старые" модели (не online):

  1. АТОЛ:
  • FPrint 22k (ПТК)
  • FPrint 55k (ПТК)
  • FPrint 77k (ПТК)
  • FPrint 5200K 
  • FPrint 03k
  • FPrint 02k 
  • FPrint 11 ПТК
  • АТОЛ 30Ф
  1. ШТРИХ:
  • Retail-01K (01Ф)
  • ФР-К 
  • ФР-Ф 
  • ПТК 
  • мини
  1. AMC100F
  2. DATECS FP3530t
  3. ПРИМ
  4. Старт 200К

"Новые" ФР (ФЗ-54 Online-касса):

  • Retail-01K (Ритейл-01Ф) протокол Штриха (#93237)
  • FPrint-22ПТК (#93598)
  • АТОЛ 55Ф (FPrint55k (ПТК))
  • АТОЛ 30Ф *
  • АТОЛ 77Ф (он же FPrint-77ПТК)

* - АТОЛ работает по протоколу 2.4. Отправка данных по данному протоколу так же возможна, но требует специальных настроек со стороны ЦТО или Заказчика. В случае проблем можно обращаться в тех поддержку АТОЛ.

 

ФР поддерживаемые универсальным драйвером:

  1. АТОЛ:
  • FPrint 22k (ПТК)
  • Атол 22Ф
  • Атол 30Ф
  • FPrint 55k (ПТК)
  • Атол 55Ф
  • FPrint 77k (ПТК)
  • Атол 77Ф
  • FPrint 5200K 
  • FPrint 03k
  • FPrint 02k 
  • FPrint 11 ПТК
  1. ШТРИХ:
  • Retail-01K (01Ф)
  • ФР-К 
  • ФР-Ф 
  • ПТК 
  • мини
  • ...
  • РР-02Ф
  • «MSTAR-TK»
  • и прочие ФР, работающие по протоколу штриха

       ФР ПРИМ 08-Ф

       ФР СПАРК 115-Ф

       ФР DATECS DP 25

Технические требования.

Машина, к которой производится подключение, должна иметь COM-порт (Serial-порт \ серийный порт \ RS-232), либо установленные драйвера для имитации такого подключения через USB. Для подключения двух и более фискальных регистраторов (ФР) машина быть оборудована необходимым количеством COM-портов. В случае отсутствия необходимого количества COM портов можно использовать переходники PCI на RS-232 и USB на RS-232 (см. Рекомендуемые переходники USB на RS-232 и PCI на RS-232.doc)


ВАЖНО!
В Абонемент, каждое рабочее место, на котором регистрируются платежи должно быть настроено как отдельный киоск. Особенно в случае, если к данному рабочему месту подключён ФР.
 
В противном случае велика вероятность получить ошибку вида:
lock conflict on no wait transaction
deadlock
update conflicts with concurrent update
concurrent transaction number is 71234666
At procedure 'SP_BILL_CREATE' line: 101, col:41
 
Данная ошибка может возникать, в случае, если 2 или более рабочих места настроены на работу как один киоск Абонемент. В таком случае, при одновременном открытии чека на данных рабочих местах возникнет ошибка.

В настоящий момент ПО «Abonementmanager» гарантирует поддержку фискальных регистраторов «Штрих» (в т.ч. Retail-01K), «Прим» (в т.ч. «Старт 200К»), «Меркурий», «Атол» (FPrint), "Мария", "Спарк" и некоторые другие. Самые последние версии драйвера для работы с ПО Абонемент находятся в сборке Fullversion последней версии, в папке /exe/. Для уточнения, поддерживается ли Ваш ФР в случае, если его нет в нижеприведённом списке, обратитесь в техническую поддержку.

  ; FiscReg = SPARK     
  ; FiscReg = MARIA301  
  ; FiscReg = GEG 
  ; FiscReg = MERCURY
  ; FiscReg = SHTRIHM   ; АТОЛ FPrint 22k (ПТК), 55k (ПТК), 5200K, 03k, 02k, 11 ПТК
  ; FiscReg = SHTRIHM-FZ54 ; АТОЛ (онлайн 54ФЗ) 22Ф, 55Ф, 77Ф.
  ; FiscReg = SHTRIHMA  ; ШТРИХ, Retail-01K, ФР-К, ФР-Ф, ПТК, мини
  ; FiscReg = AMC100F
  ; FiscReg = DATECFP3530
  ; FiscReg = AZIMUTH   ; ПРИМ , Старт 200К

Структурная схема взаимодействия ФР и ПО Абонемент.

(Рис.1 - Структурная схема взаимодействия ФР и ПО абонемент.)

Пояснение: sdmXX.dll - драйвер для определенного фискального регистратора, где ХХ - имя определенного ФР (например: sdmShtrihMA11.dll, sdmSPARK617TF.dll, sdmShtrihM21.dll (sdmShtrihM21Old.dll) или sdmShtrihM21FZ54.dll)

Пример: ShtrihMA11 (Штрих Retail-01K / ФР-К / ФР-Ф / ПТК / мини) 

Внимание! Эмуляция порта не поддерживается для моделей "ПТК".

Фискальный регистратор подключается в СОМ-порт или другой порт с эмуляцией серийного порта. Настройки COM-порта можно узнать в программе «Тест Драйвера», данная программа находится на диске в комплекте оборудования:

 

На рабочем месте (компьютере, к которому физически подключен ФР) необходимо убедиться в наличии файлов sdmShtrihMA11.dll ShtrihMA11.RUS.Msg (файл ошибок) в папке ..\exe\. Файл shelter.hw.ini, находящийся в этой же папке, должен быть настроен следующим образом:

[BOOT]
  shtrih = sdmShtrihMA11.dll

[hardware]
   FiscReg = SHTRIHMA
[FiscReg.ShtrihMA]
; ФР Штрих.
; Подставляем параметры из Теста Драйвера
  COMPORT = 5
  COMPORTPARAMS=baud=4800 parity=n data=8 stop=1 rts=on dtr=on

  ; Печать отчета по секциям перед X,Z-отчетами
  PrintSectionReport = 0
  ; Если в чеке иероглифы - попробовать поменять значение (0/1)  
  ToOEM      = 1
  MaxLine    = 24
  PassWord   = 30
  SEPassword = 0
  MsgFile    = ShtrihMA11.RUS.Msg
  MsgSection = Errors

Настройка ФР Штрих для работы по секциям.

Через программу Тест драйвера FR подключиться к фискальному регистратору, зайти в Настройки свойств / Таблицы / Тип и режим кассы. далее в зависимотсти от модели Штриха или в 35 поле Сокращенный отчет с гашением установить 0, или в 30 поле Тип суточного отчета установить 1. Эту операцию можно сделать независимо закрыта или открыта смены фискального регистратора. После такой настройки, перед стандартным Z отчетом будет печататься отчет по секциям и отчет по налогам.

Проверить что в настройках shelter.hw.ini параметр  PrintSectionReport = 0. Этот параметр отвечает за печать отчета на секциям в нефискальном режиме средствами драйвера. Для программного обеспечения Абонемент не рекомендуется к использованию.

 

 

Пример: ShtrihM21 (Атол FPrint 22k (ПТК) / 55k (ПТК) / 5200K / 03k / 02k / 11 ПТК / 30Ф) 

Фискальный регистратор подключается в СОМ-порт или другой порт с эмуляцией серийного порта.

Настройки COM-порта можно узнать в настройках драйвера (можно взять с официального саита Атол):

 

Из поля "Найденные устройства" подставляем данные в Shelter.hw.ini:

[BOOT]
  atol = sdmShtrihM21.dll

[hardware]
   FiscReg = SHTRIHM

[FiscReg.SHTRIHM]
; ФР АТОЛ (FPrint 22k, FPrint55k, FPrint 5200K)
; Версия. Обычно 22, Если не заводится - попробовать поставить 21  
  Version = 22
; Подставляем параметры из Теста Драйвера
  COMPORT = 6
  COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on
; Если в чеке иероглифы - попробовать поменять значение (0/1)
  ToOEM      = 1
  MaxLine    = 24
  PassWord   = 30
  SEPassword = 0
  MsgFile    = ShtrihM21.RUS.msg
  MsgSection = Errors 

Пример: ShtrihM21FZ54 (АТОЛ (онлайн 54ФЗ) 22Ф/ 55Ф (FPrint55k (ПТК))/ 77Ф (FPrint-77ПТК)) 

В настройках Абонемента нужно уснять флаг Пробивать нулевой чек. Приводит к появлению ошибок при открытии фискальной смены Access Violation ... in module "user32.dll".

Фискальный регистратор подключается в СОМ-порт или другой порт с эмуляцией серийного порта.

Настройки COM-порта можно узнать в настройках драйвера (можно взять с официального саита Атол, рекоммеднуемая версия не ниже 9.9.1), аналогично предыдущему примеру. Также необходимо перевести ФР в протокол АТОЛ 2.4. согласно инструкции.

Из поля "Найденные устройства" подставляем данные в Shelter.hw.ini:

[BOOT]
  atol54fz = sdmShtrihM21FZ54.dll

[hardware]
   FiscReg = SHTRIHM-FZ54

[FiscReg.SHTRIHM-FZ54]
; ФР АТОЛ (онлайн 54ФЗ) 22Ф, 55Ф, 77Ф.

; Версия. Обычно 22, Если не заводится - попробовать поставить 21  
  Version = 22
; Подставляем параметры из Теста Драйвера
  COMPORT = 6
  COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on
; Если в чеке иероглифы - попробовать поменять значение (0/1)
  ToOEM      = 1
  MaxLine    = 24
  PassWord   = 30
  SEPassword = 0
  MsgFile    = ShtrihM21.RUS.msg
  MsgSection = Errors 

; - через какое количества чеков вывести сообщение ОФД
;CountCheckForShowStatusOFD = 5
;- не будет выводится информация о непереданных чеках
;CountCheckForShowStatusOFD = 0

; Использовать таблицу кассиров для печати на чеках. (В тестовом режиме, к использованиюю не рекомендуется)
; Таблица кассиров настраивается самостоятельно, ограничение на кол-во кассиров 28
; Код кассира в Абонементе (к сожалению - пока логин) = пароль в таблице кассиров в ФР Атол
; isUseCasherPwdTable = 0
 

Пример: PRIM («Старт 200К»).

Аналогично предыдущему примеру, необходимо подключить ФР и с помощью прилагающегося драйвера узнать параметры подключения устройства, после чего изменить файл shelter.hw.ini. Обратите внимание, что в секциях [Boot] и [hardware] должна быть только одна строка, а остальные необходимо закомментировать. 

[BOOT]
  Prim= %exepath%\sdmAzimuth.dll

[hardware]
   FiscReg = AZIMUTH

[FiscReg.AZIMUTH]
  ; ФР Прим (ПРИМ-08ТК; СТАРТ 200К)
  ; Подставляем параметры подключения
  COMPORT = 1
  COMPORTPARAMS=baud=9600 parity=e data=8 stop=1
  
  ; Если в чеке иероглифы - попробовать поменять значение (0/1)
  ToOEM   = 0

  MsgFile    = Prim08TK.msg
  MsgSection = Errors

Переход на ФФД 1.0.5 с 01.01.2019 и НДС 20%

 

ФФД 1.0.5

 

В связи с переходом (01.01.2019г) на ФФД 1.05 в фискальных документах (чеках) появляются следующие новые реквизиты:

Для всего чека:

ИНН кассира (обязателен для определённых видов организаций);

Место расчёта (если не было указано при регистрации ККТ);

Для позиций чека:

Признак предмета расчёта

  • Товар
  • Услуга
  • Платёж
  • и т.д.

Признак способа расчёта

  • Полный расчёт – при передаче товара (оказании услуги)
  • Аванс – при отложенной передаче товара (оказании услуги), принятии платежа
  • и др.

Также, параллельно с окончанием работы ФФД 1.0, и, следовательно, переходом на ФФД 1.05 происходит переход ставки НДС с 18% на НДС 20%

 

Абонемент версии  ≤ 134

Абонемент может работать на версиях < 135 c фискальными регистраторами, использующими ФФД 1.05

Но не управляет указанными выше реквизитами. Данные реквизиты остаются в значениях по умолчанию:

ИНН кассира – не заполняется;

Место расчёта – заполняется при фискализации;

Для позиций чека:

Признак предмета расчёта – подставляется значение по умолчанию - ТОВАР;

Признак способа расчёта – подставляется значение по умолчанию – Полный расчёт.

 

Абонемент версии  ≥ 135

В Абонемент с версии 135 поддержана работа с новыми реквизитами, введёнными в ФФД 1.05 . То есть появляется возможность заполнения реквизитов «ИНН кассира», «Признак предмета расчёта», а также использование «Признак способа расчёта» согласно настройкам.

ИНН кассира – заполняется в карточке клиента кассира, передаётся на ФР;

Место расчёта – заполняется при фискализации, не передаётся из программы; (Т.к. часть фискальных регистраторов не позволяют оставить поле незаполненным при фискализации)

Для позиций чека:

Признак предмета расчёта – заполняется в карточке услуги в справочнике услуг, передаётся на ФР;

Признак способа расчёта – подставляется автоматически согласно проводимой операции, передаётся на ФР.

Для назначения ППР в карточке услуги разработан плагин, позволяющий устанавливать значения ППР для групп услуг

 

Плагин "Назначение ППР в справочнике услуг"

Для настройки плагина необходимо в файле .\exe\frf\frf.ini прописать:

  [PLUGINS_MAIN]
  plgSetOfdPPR=Установить ППР

Разместить файлы:

  .\exe\DLL\getDlgFromREP.dll

  .\exe\frf\plgSetOfdPPR.ini

  .\exe\frf\plgSetOfdPPR.fr3

 

Расположение плагина

Доп функции - > Плагины - >  Установить ППР (Рис. 1)

Рис. 1

 

Группы услуг - >  Выбрать группы услуг, для которых необходимо изменить значение ППР (Рис. 2)

Рис. 2

 

Значение ППР - > Из справочника выбрать необходимое значение Признака Предмета Расчёта (Рис. 3)

Рис. 3

 

Пример

Для Группы услуг «Бар» и подгруппы услуг «Расходные товары» необходимо установить значение ППР — Товар.

Выбираю необходимые группы услуг, значение параметра ППР - > Выполнить.

Для выбранных групп услуг значение параметра ППР изменяется

 

 

Переход на НДС 20%

 

ФР

Производители ФР Спарк, Штрих и Атол уже реализовали прошивки для автоматического изменения налоговой ставки при открытии первой смены 01.01.2019г.

Переход на новые значения ставки в ней реализован следующим образом: заранее в настройках ФР задается дата изменения налога (для Спарк 115-Ф, для  Атол и Штрих - предопределено 01.01.2019г). При открытии смены указанного числа ставка налога автоматически меняется.

Таким образом, дополнительных операций с перенастройкой ФР в Shelter / Абонемент делать не потребуется.

 

Абонемент

В связи с тем, что "Федеральным законом № 303-ФЗ не предусмотрено какого-либо переходного периода", 01.01.2019 для перехода на НДС 20% потребуется: 
1. Зайти в Настройки \ Справочники \ Налоги \ НДС. 
Изменить карточку налога: Код (при необходимости), Наименование (при необходимости), Ставка (обязательно).

Рис.4

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

Важно! Услуги реализуемые по абонементам с датой «начала действия» до 01.01.2019, начисляются по изначальной цене с измененной ставкой в пользу НДС на основании федерального закона "О внесении изменений в отдельные законодательные акты Российской Федерации о налогах и сборах" от 03.08.2018 №303-ФЗ

 

На данный момент реализовано следующее решение, для автоматической замены ставки НДС:

  • На БД применяется скрипт xx_vat_20.sql

В результате:

1. При появлении смены ночного аудита датированной 01.01.2019 проверяет наличие налога в справочнике с кодом «TAX18» и ставкой =18. 

2. В случае наличия такого налога:

2.1. Изменяется наименование налога на «НДС 20% (бывш. Наименоваине)»;

2.2. Изменяется величина ставки с «18%» на «20%».

2.3. Последующее начисление услуг со ссылкой на ставку «НДС 20% (бывш. Наименоваине)» происходит по величине «20%».

 

В случае, если требуется изменить ставку после 01.01.2019, а скрипт не был применён заранее

  • можно поправить справочник НДС в ручном режиме

ИЛИ

  • Применить по порядку xx_vat_20.sql и xx_late_vat_20.sql   Тогда, в момент применения xx_late_vat_20.sql произойдёт изменение справочника как указано выше для случая автоматического применения 01.01.2019

 

При тестировании 135 версии, ошибки в интерфейсе программы в связи с автоматической сменой ставки - не выявлены.

Результат тестирования отчётов: проверялись отчеты выделяющие сумму и ставку НДС.

1. Работают верно:

1.1. Отчет по реализации услуг за период. форма отчета ad_ServisePeriod.fr3

1.2. Отчет по реализации услуг за период. форма отчета ad_ServisePeriod2.fr3

1.3. Отчет по услугам

2. Работают верно после применения процедур (SPR_CHECK_PARSING_COMBOPAY.sql, SPR_PAYMENTS_INFO.sql)

2.1. Чеки кассовой смены

2.2. Куб. Чеки кассовой смены

2.3. Куб. Чеки кассовой смены. Детализация по платежам.

3.  Работают не верно

3.1. Отчет по реализации услуг за период.  Ставка рассчитывается в момент построения отчета. Данный отчет будет доработан.

 

 

Моменты, вызывающие вопросы:

Момент 1.

Оплатили бронь гостиницы/услугу/абонемент с НДС 18%, а потом оказалось необходимым вернуть предоплату, но уже в период действия НДС 20%

В ПО Shelter / Абонемент возврат будет произведён с фискальной налоговой ставкой 20%, поскольку ставка НДС 18% перестаёт существовать.

Момент 2.

Если оплата услуги будет производиться 2-мя частями – предоплата с НДС 18% и окончательный расчет при НДС 20%?

Если в ПО Shelter / Абонемент оказанная услуга уже начислена фолио со старым налогом (до 1.1.2019) и установлен параметр "использовать налоговую схему", (В большенстве случаев эта галочка не стоит. и поэтому ставка НДС в базе Абонемент не выделяется), а оплата этой оказанной услуги будет осуществляться в новом периоде (после 1.1.2019), то у данной услуги в программе Shelter / Абонемент расчет налога произойдет по старой налоговой ставке. А в фискальном чеке уже будет указан налог по новой ставке.

Для исключения такой возможности можно предложить 2 варианта решения:

1) не иметь неоплаченных услуг к 1.1. 2019

2) скриптом пересчитать сумму налога у неоплаченных услуг. Заказчики, находящиеся на договоре ТП смогут получить необходимые консультации в ТП Shelter / Абонемент.

 

ВложениеРазмер
20_vat.rar747 байтов

Универсальный драйвер ФР (УДФР) в Абонемент

 

 

Принятые сокращения

ФР -- фискальный регистратор.

УДФР -- универсальный драйвер фискального регистратора.

Введение

Универсальный драйвер фискального регистратора (ФР) позволяет использовать интерфейс взаимодействия Абонемент с драйверами ФР нижнего уровня поставляемыми R-keeper. Таким образом, позволяя объединить усилия и минимизировать количество ошибок, при разработке драйверов.

!!!ВАЖНО!!!
При подключении фискального регистратора необходимо использовать не urunpos.ini (fr.ini) из поставки, содержащий все возможные параметры, а основывать конфигурационный файл на приведенном примере для конкретного ФР.

Список поддерживаемых ФР аналогичен R-keeper 7.

 

На данный момент протестирована корректность работы следующих семейств ФР:

ФР АТОЛ54 работающие согласно 54 ФЗ

ФР АТОЛ не поддерживающие 54 ФЗ

ФР ШТРИХ поддерживающие 54 ФЗ

ФР ШТРИХ не поддерживающие 54 ФЗ

ФР СПАРК (115-Ф) поддерживающий 54 ФЗ

ФР ПРИМ (08-Ф) поддерживающий 54 ФЗ

ФР DATECS DP 25

 

Настройка

Для того, чтобы использовать универсальный драйвер ФР, необходимо:

1.      Подложить URunPos.dll (вер. не ниже 2.0.0.210)URunPos.ini и BarCodeGen.dll  в папку exe абонемента. (файлы можно найти в поставке Абонемент версии 134 и выше, по пути: *\_INTERFACE\POS\)

2.      В abonementmanager.ini прописать, в секции [Pos]:

RunPosDllName=URunPos.dll

3.      Скопировать соответствующие используемому ФР dll и init.xml (файл параметров драйвера) из _INTERFACE\POS\DRIVERS\RK_FiscReg

4.      В URunPos.ini внести в поля «DriverName»  и «ParamXMLFile» имена файла dll и параметров драйвера ФР.

5.      Настроить init.xml для подключённого ФР.

6.      Изменить остальные настройки URunPos.ini, если требуется.

 

Также с версии URunPos.dll 2.0.0.230 и выше поддержан следующий метод подключения:
Файл urunpos.ini содержит строки:

	[MERGE]
	fr=fr.ini
	fr2=fr2.ini

В таком случае, настройки УДФР описанные в статье прописываются в указанных fr.ini и fr2.ini.

При таком подключении фискальным регистратором по умолчанию будет являться первый незакомментированный параметр в секции [MERGE] urunpos.ini.

В случае использования нескольких ФР на одном рабочем месте, в соответствующий параметр киоска вносится fr или fr2, соответственно. (Названия парметров и файлов могут быть произвольными и приведены как пример)

 


ВАЖНО!
В Абонемент, каждое рабочее место, на котором регистрируются платежи должно быть настроено как отдельный киоск. Особенно в случае, если к данному рабочему месту подключён ФР.
 
В противном случае велика вероятность получить ошибку вида:
lock conflict on no wait transaction
deadlock
update conflicts with concurrent update
concurrent transaction number is 71234666
At procedure 'SP_BILL_CREATE' line: 101, col:41
 
Данная ошибка может возникать, в случае, если 2 или более рабочих места настроены на работу как один киоск Абонемент. В таком случае, при одновременном открытии чека на данных рабочих местах возникнет ошибка.

ВАЖНО!

При обновлении Абонемент на версию 130 и выше, необходимо также обновить и драйвера фискальных регистраторов на актуальные. Иначе, информационное уведомление о количествах и сроках неотправленных в ОФД документов, будет всегда выводиться с некорректными данными как на рисунке выше.


ВАЖНО!

"Ошибка ФР: Исчерпан ресурс хранения ФН" означает, что в ФН присутствуют фискальные документы не отправленные в ОФД более 30 суток. В связи с чем ФН не позволяет производить регистрацию новых фискальных документов. Требуется обеспечить связь ФР с ОФД. Работа с ФР будет разблокирована, после отправки данных документов.


 

Примеры настроек драйвера для различных ФР:

АТОЛ 54 ФЗ (22Ф, 77Ф, 55Ф, 25Ф, Fprint 22 ПТК, …)

Для работы с ФР АТОЛ, требуется чтобы следующие файлы были перенесены в папку ехе:

URunPos.dll (вер. не ниже 2.0.0.230)URunPos.ini, BarCodeGen.dll, fpAtol54.dll (вер. 7.13.81.0 и выше) и соответствующий init.xml

 

Также требуется перевести ФР в протокол АТОЛ 2.4. согласно инструкции.

 

Настройки файлов конфигурации:

URunPos.ini

[Main]
;Драйвер ФР R_keeper
DriverName = fpAtol54.dll
;ХМL настроек драйвера ФР R_keeper
ParamXMLFile = init.xml

;Номер документа (-1 = брать из ФР)
DocNumber =-1

;Текст заголовка
TextHeader =

;Код налога по умолчанию
TaxIndexDef = 4

;Корректировка номера последнего документа +- LastDocNumberAdjustment
LastDocNumberAdjustment = 0

;Добавлять скидки на каждую позицию
AddItemDiscount = 0

;Номер ящика (для Атол - должен быть = 1)
CashDrawerNumber = 1
;Открывать ящик после оплаты
OpenCashDrawerAfterEndFiscal = 1

;Пауза перед отправкой данных на печать (мс)
FRSleep = 10

;Показывать предупреждение если данные не отправлены в ОФД определённое количество дней
OFDWarningDays = 15

;Штриховой код, за секцию отвечает BarCodeGen.dll
[Barcode]
;ширина минимального элемента в точках для Type?QRCode
Width = 2
;высота в точках
Height = 100
;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode"
Type = Code-39
;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom"
;для Type?QRCode
TextPosition = Bottom
;Уровень коррекции "7%"|"15%"|"25%"|"30%"
;необязательный, начиная с 12 версии, только для Type=QRCode
CorrectionLevel = 15%

init.xml

<xmlConfig>
  <parameters>  
    <loglevel>3</loglevel><!--Параметры логирования-->
    <logrotatesize>1</logrotatesize><!--Параметры логирования-->
    <logrotatecount>1</logrotatecount><!--Параметры логирования-->
    <logdestination>1</logdestination><!--Параметры логирования-->
    <msglanguage>ENG</msglanguage><!--Язык сообщений-->
    <portname>COM1</portname><!--Название COM-порта для подключения-->
    <portconfiguration>baud=9600</portconfiguration><!--Скорость сообщения по COM-порту-->
    <cashierpassword>28</cashierpassword><!--Пароль использумого кассира в ФР-->
    <adminpassword>29</adminpassword><!--Пароль администратора в ФР-->
    <sysadminpassw>30</sysadminpassw><!--Пароль сис.администратора в ФР-->
    <invertdraweropened>0</invertdraweropened><!--Инвертировать сигнал открытия денежного ящика-->
    <communicatpassw>0</communicatpassw><!--Пароль доступа ФР-->
    <usesectionas>Direct</usesectionas><!--Что использовать в качестве id налога-->
    <paperwidth>0</paperwidth><!--Ширина бумаги (в символах). 0 - запрашивать у ФР. Если печать идёт не на всю ширину, нужно задать жёстко (например 40 для широкой ленты)-->
    <ofdstatusunsendwarningtime>86400</ofdstatusunsendwarningtime><!--Время с первого неотправленного документа в ОФД до выведения предупреждающего сообщения (в секундах) (0 - никогда)-->
    <ofdstatusunsenderrortime>1296000</ofdstatusunsenderrortime><!--Время с первого неотправленного документа в ОФД до выведения сообщения об ошибке (в секундах) (0 - никогда)-->
  </parameters>
</xmlConfig>

 

В общем случае требуется только ввести данные для подключения к ФР:

    <portname>COM1</portname><!--Название COM-порта для подключения-->
    <portconfiguration>baud=9600</portconfiguration><!--Скорость сообщения по COM-порту-->

 

 

Примечание. Работа с налогами в ФР АТОЛ

Cм. соответствующую статью

 

Изменения в связи с ФФД 1.05

Для корректной работы с ФФД 1.05 и функционалом привнесённым в 135 версии Абонемент требуется:

Обновить URunPos.dll до версии 2.1.0.5, fpAtol54.dll до версии 7.47.162.0

На тестовом ФР Атол 22-Ф тип оплаты "Аванс (Предоплатой)" имел код 3, что соответствует значению по умолчанию:

CardSum2TypeIndex = 3

Поэтому изменений в настройках не требуется.

 

ШТРИХ 54 ФЗ ( Штрих М-02Ф, Ритейл 01Ф, РР-02Ф, «MSTAR-TK», …)

Для работы с ФР Штрих, требуется чтобы следующие файлы были перенесены в папку ехе:

URunPos.dll (вер. не ниже 2.0.0.230)URunPos.iniBarCodeGen.dll, fpShtr54.dll (вер. не ниже v.7.32.33.0) и соответствующий init.xml

 

В последнее время, после обновления ФР семейства ШТРИХ-М, стала часто встречаться ошибка вида (в логах драйвера нижнего уровня fpShtr54.dll):

[ERR] FR error: Ошибка 09h: ФП - Некорректная длина команды

Появление указанной ошибки в логе работы драйвера нижнего уровня сигнализирует о наличии несовместимости версии ФН и используемой СНО.

По данным вопросам заказчикам необходимо обращаться в ЦТОс которым у них заключен договор для выявления причины установки несовместимой версии ФН.

 

Настройки файлов конфигурации:

 

URunPos.ini

[Main]
;Драйвер ФР R_keeper
DriverName = fpShtr54.dll
;ХМL настроек драйвера ФР R_keeper
ParamXMLFile = init.xml

;Номер документа (-1 = брать из ФР)
DocNumber =-1

;Текст заголовка
TextHeader =

;Код налога по умолчанию
TaxIndexDef = 4

;Корректировка номера последнего документа +- LastDocNumberAdjustment
LastDocNumberAdjustment = 0

;Добавлять скидки на каждую позицию
AddItemDiscount = 0

;Номер ящика (для Штрих - должен быть = 0)
CashDrawerNumber = 0
;Открывать ящик после оплаты
OpenCashDrawerAfterEndFiscal = 1

;Пауза перед отправкой данных на печать (мс) для штрихов до 54 ФЗ
;(иначе неправильно происходит печать нефискальных документов --
;особенность драйвера нижнего уровня)
FRSleep = 100

;Показывать предупреждение если данные не отправлены в ОФД определённое количество дней
OFDWarningDays = 15

; Оплата - АВАНС = 14
CardSum2TypeIndex = 14

;Штриховой код, за секцию отвечает BarCodeGen.dll
[Barcode]
;ширина минимального элемента в точках для Type?QRCode
Width = 2
;высота в точках
Height = 100
;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode"
Type = Code-39
;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom"
;для Type?QRCode
TextPosition = Bottom
;Уровень коррекции "7%"|"15%"|"25%"|"30%"
;необязательный, начиная с 12 версии, только для Type=QRCode
CorrectionLevel = 15%

 

 

ВАЖНО

Для ФР Штрих обязательно необходимо установить параметр:


;Код налога по умолчанию
TaxIndexDef = 4 (либо "2","3","4", но не "0" - значение вне диапазона)

Иначе, в случае, если код налога для услуги или платежа оставлен в значении по умолчанию =0, возникнет ошибка ФР, мешающая работе в программе;

Не касается кассовой секции.

 

init.xml

<xmlConfig>
    <Parameters>
        <LogLevel>3</LogLevel><!--Параметры логирования-->
        <LogRotateSize>1</LogRotateSize><!--Параметры логирования-->
        <LogRotateCount>1</LogRotateCount><!--Параметры логирования-->
        <MsgLanguage>RUS</MsgLanguage><!--Язык сообщений ФР-->
        <Protocol>0</Protocol><!--Используемый протокол: 0 = old (стандартный), 1 = alternative (протокол ККТ 2.0)-->  
       <PhysicLayer>0</PhysicLayer><!--Communivate via COM port = 0, Communivate via TCP/IP (Ethernet / WiFi) = 1-->  
       <COMnum>1</COMnum><!--Номер СОМ-порта, в случае работы по СОМ-порту-->  
       <COMbaud>115200</COMbaud><!--Скорость СОМ, в случае работы по СОМ-порту--->  
       <TCPaddress>192.168.1.100</TCPaddress><!--Адрес ФР, в случае работы по ТСР-->  
       <TCPport>12345</TCPport><!--Порт для связи с ФР, в случае работы по ТСР-->  
       <PasswOperat>1</PasswOperat><!--Пароль для действий кассира-->  
       <PasswAdmin>30</PasswAdmin><!--Пароль для действий администратора-->  
       <PassBefCut>5</PassBefCut><!--Количество пустых строк перед отрезкой-->  
       <DoubleWFont>4</DoubleWFont><!--Параметры шрифтов-->  
       <DoubleHFont>1</DoubleHFont><!--Параметры шрифтов-->  
       <LineLength>40</LineLength><!--Длина строки для нефискальной информации-->  
       <BoldLineLength>0</BoldLineLength><!--Длина строки полужирным шрифтом для нефискальной информации (в Абонемент не используется)-->  
       <OFDStatusUnsendWarningTime>86400</OFDStatusUnsendWarningTime><!--Время с первого неотправленного документа в ОФД до выведения предупреждающего сообщения (в секундах) (0 - никогда)-->  
       <OFDStatusUnsendErrorTime>1296000</OFDStatusUnsendErrorTime><!--Время с первого неотправленного документа в ОФД до выведения сообщения об ошибке (в секундах) (0 - никогда)-->  
   </Parameters>
</xmlConfig>

 

Примечание. Работа с налогами в ФР ШТРИХ

Для ФР ШТРИХ поддержана произвольная установка налога для услуги независимо от секции. (Подробнее про коды налогов см. соответствующую статью)

Т.е. обе настройки: "Код налога ФР" и "Кассовая секция" независимы и имеют силу для любой услуги и платежа.

 

Изменения в связи с ФФД 1.05

Для корректной работы с ФФД 1.05 и функционалом привнесённым в 135 версии Абонемент требуется:

Обновить URunPos.dll до версии 2.1.0.5, fpShtr54.dll до версии 7.47.86.0

На тестовом ФР Ритейл-01Ф тип оплаты "Аванс (Предоплатой)" имел код 14, что не соответствует значению по умолчанию.

Соответственно, в fr.ini в секции [Main] необходимо прописать:

CardSum2TypeIndex = 14

 

 

ККТ Спарк 115-Ф

Для работы с ФР Спарк 115-Ф, требуется чтобы следующие файлы были перенесены в папку ехе:

URunPos.dll (вер. не ниже 2.0.0.230)URunPos.iniBarCodeGen.dll, fpSpark54.dll  и соответствующий init.xml

Помимо этого, на компьютере должна быть настроена и запушена утилита SparkSrv. (Данная утилита позволяет по одному интерфейсу отправлять данные в ОФД из ФР и общаться с ФР из ПО).

Настройки файлов конфигурации:

 

URunPos.ini

[Main]
;Драйвер ФР R_keeper
DriverName = fpSpark54.dll
;ХМL настроек драйвера ФР R_keeper
ParamXMLFile = init.xml

;Номер документа, -1 - брать из ФР
DocNumber = -1

;Текст заголовка чека (!!! оставить пустым для СПАРК)
TextHeader =
;Печатать логотип в чеке (!!! не печатать для СПАРК - возникает ошибка при попытке печати чека возврата прихода "Нев. команда регистрации аннулирования [200]")
IsPrintLogo=0

;Код налога по умолчанию
TaxIndexDef = 0
;Коды налогов
;0 = НДС НЕ ОБЛ.
;1 = НДС 18/118
;2 = НДС 10/110
;3 = НДС 0
;4 = НДС 18 - не работает с Абонемент
;5 = НДС 10 - не работает с Абонемент

;Добавлять скидки на каждую позицию
AddItemDiscount = 0

;Номер ящика
CashDrawerNumber = 0
;Открывать ящик после оплаты
OpenCashDrawerAfterEndFiscal = 1

;Показывать предупреждение если данные не отправлены в ОФД определённое количество дней
OFDWarningDays = 15

;Коды типов оплат:
;Оплата =8 - наличные
CashSumTypeIndex = 8
;Оплата =1 Электронные
CardSum1TypeIndex = 1
;Оплата =5 АВАНС
CardSum2TypeIndex = 5

;Оплата =7 - "запрещено"

;Пауза перед отправкой данных на печать (мс) для штрихов до 54 ФЗ
FRSleep = 10

;Штриховой код, за секцию отвечает BarCodeGen.dll
[Barcode]
;ширина минимального элемента в точках для Type?QRCode
Width = 2
;высота в точках
Height = 100
;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode"
Type = Code-39
;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom"
;для Type?QRCode
TextPosition = Bottom
;Уровень коррекции "7%"|"15%"|"25%"|"30%"
;необязательный, начиная с 12 версии, только для Type=QRCode
CorrectionLevel = 15%

 

ВАЖНО

Обратите внимание на следующее:

;Код налога по умолчанию
TaxIndexDef = 0

;Коды налогов
;0 = НДС НЕ ОБЛ.
;1 = НДС 18/118
;2 = НДС 10/110
;3 = НДС 0
;4 = НДС 18 - не работает с Абонемент
;5 = НДС 10 - не работает с Абонемент

В случае ФР Спарк 115-Ф, на котором производилось тестирование, налоги были установлены указанным образом. Необходимо это учитывать, при заполнении карточек услуг и платежей.

Также необходимо обратить внимание на следующее:

;Коды типов оплат:
;Оплата =8 Наличные
;Оплата =1 Электронные
;Оплата =2 карта-2
;Оплата =3 карта-3
;Оплата =4 карта-4
;Оплата =5 ТАР
;Оплата =6 ЧЕК
;Оплата =7 - "запрещено"

На тестируемом ФР код платежа «Наличные» был равен 8, соответственно, а «Электронные» равный 1. В таком случае, необходимо установить:

CashSumTypeIndex = 8
CardSum1TypeIndex = 1

init.xml

<?xml version="1.0" encoding="utf-8"?>  
<xmlConfig>  
  <Parameters>  
    <LogLevel>5</LogLevel><!--Параметры логирования-->  
    <LogRotateSize>1</LogRotateSize><!--Параметры логирования-->  
    <LogRotateCount>5</LogRotateCount><!--Параметры логирования-->  
    <MsgLanguage>ENG</MsgLanguage><!—Язык сообщений ФР-->  
    <PasswKKT>111111</PasswKKT><!—Пароль доступа ФР-->  
    <PasswCachier>11111</PasswCachier><!—Пароль кассира-->  
    <TCPaddress>127.0.0.1</TCPaddress><!—Сетевой адрес, на котором запущена SparkServ -->  
    <TCPport>7200</TCPport><!—Порт на котором запущена SparkServ-->  
    <PhysicalLayer>TCP</PhysicalLayer><!—Параметр не имеет силы-->  
    <COMnum>9</COMnum><!—Параметр не имеет силы-->  
    <COMspeed>57600</COMspeed><!—Параметр не имеет силы-->  
    <OFDStatusUnsendWarningTime>0</OFDStatusUnsendWarningTime><!--Время с первого неотправленного документа в ОФД до выведения предупреждающего сообщения (в секундах) (0 - никогда)-->  
    <OFDStatusUnsendErrorTime>2592000</OFDStatusUnsendErrorTime><!--Время с первого неотправленного документа в ОФД до выведения сообщения об ошибке (в секундах) (0 - никогда)-->  
  </Parameters>  
</xmlConfig>  
 

Примечание. Работа с налогами и секциями в ФР СПАРК

ФР Спарк 115-Ф позволяет установку произвольного налога для каждой позиции чека. (Подробнее про коды налогов см. соответствующую статью)

Кассовые секции не используются.

Примечание. Работа на одном ФР СПАРК  с нескольких рабочих мест

За счёт использования утилиты SparkSrv появляется возможность использовать один ФР Спарк с другого рабочего места, путём подключения к утилите по соответствующему адресу и порту.

Примечание. ФР СПАРК и нулевой чек

ФР СПАРК не позволяет пробитие нулевого чека. Необходимо отключить пробитие нулевого чека на всех киосках, к которым подключаются ФР СПАРК.

ВАЖНО

В ФР СПАРК ошибка "Ошибка ФР 54: Запрещено по программируемому флагу №5" означает, что флаг доступных к возврату типов платежей для данного платежа снят.

 

Изменения в связи с ФФД 1.05

Для корректной работы с ФФД 1.05 и функционалом привнесённым в 135 версии Абонемент требуется:

Обновить URunPos.dll до версии 2.1.0.5, fpSpark54.dll до версии 7.46.42.0

На тестовом ФР СПАРК 115-Ф тип оплаты "Аванс (Предоплатой)" имел код 5, что не соответствует значению по умолчанию.

Соответственно, в fr.ini в секции [Main] необходимо прописать:

CardSum2TypeIndex = 5

 

ККТ ПРИМ 08-Ф

Корректная работа ФР ПРИМ 08-Ф с Абонемент протестирована на версии Абонемент 1.129, и версии URunPos.dll (2.0.0.230).

Для работы с ФР ПРИМ 08-Ф, требуется чтобы следующие файлы были перенесены в папку ехе:
URunPos.dll (вер. не ниже 2.0.0.230), URunPos.ini, BarCodeGen.dll, fpRUS_PRIM08F.dll (вер. не ниже v.7.33.21.0)  и соответствующий init.xml и fr.ini (согласно новому способу подключения)
Настройки файлов конфигурации:

 

prim.ini  (бывший urunpos.ini)

[Main]
;Драйвер ФР R_keeper
DriverName = fpRUS_PRIM08F.dll
;ХМL настроек драйвера ФР R_keeper
ParamXMLFile = init.xml

;Номер документа (-1 = брать из ФР)
DocNumber = -1

;Текст заголовка чека
TextHeader =
;Код налога по умолчанию
TaxIndexDef = 0
;Коды налогов
;0 = Без НДС
;1 = НДС 0%
;2 = НДС 10/110%
;3 = НДС 18/118%
;4 = НДС 10%
;5 = НДС 18%

;Добавлять скидки на каждую позицию
AddItemDiscount = 0

;Показывать предупреждение если данные не отправлены в ОФД определённое количество дней
OFDWarningDays = 15

;Коды типов оплат:
;Оплата =0 - наличные
CashSumTypeIndex = 0
;Оплата =1 Электронные
CardSum1TypeIndex = 1

;Пауза перед отправкой данных на печать (мс) для штрихов до 54 ФЗ
FRSleep = 10

;Штриховой код, за секцию отвечает BarCodeGen.dll
[Barcode]
;ширина минимального элемента в точках для Type?QRCode
Width = 2
;высота в точках
Height = 100
;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode"
Type = Code-39
;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom"
;для Type?QRCode
TextPosition = Bottom
;Уровень коррекции "7%"|"15%"|"25%"|"30%"
;необязательный, начиная с 12 версии, только для Type=QRCode
CorrectionLevel = 15%

ВАЖНО

Обратите внимание на следующие отрывки:

;Код налога по умолчанию
TaxIndexDef = 0
;Коды налогов
;0 = Без НДС
;1 = НДС 0%
;2 = НДС 10/110%
;3 = НДС 18/118%
;4 = НДС 10%
;5 = НДС 18%

В случае ФР ПРИМ 08-Ф, на котором производилось тестирование, налоги были установлены указанным образом. Необходимо это учитывать, при заполнении карточек услуг и платежей.

Также необходимо обратить внимание на следующий отрывок:

;Коды типов оплат:
;Оплата =0 - наличные
CashSumTypeIndex = 0
;Оплата =1 Электронные
CardSum1TypeIndex = 1

На тестируемом ФР код платежа «Наличные» был равен 0, а код платежа «Электронные» был равным 1. В таком случае, для корректной работы, необходимо установить CashSumTypeIndex и CardSum1TypeIndex как указано.

 

init.xml

<DriverParameters>
 <Parameter Name="LogLevel" IntegerValue="5" Desctiption="Log level: 0 - error only, ..., 5 - all"/>
 <Parameter Name="MsgLanguage" StringValue="RUS" Desctiption="Language of messages, the string matches with the extension of the localisation file, for example: ENG, RUS etc"/>
 
 <Parameter Name="COMnum" IntegerValue="1" Desctiption="COM-port number, 1..255" />
 <Parameter Name="BaudRate" IntegerValue="9600" Desctiption="COMport baudrate: 9600, 19200, 38400, 57600 or 115200"/>
 
 <Parameter Name="Password" StringValue="AERF" Desctiption="Password for sending" />
 <Parameter Name="DrawerInv" IntegerValue="0" Desctiption="Is inverted signal from drawer opened state: 0 - No, 1 - Yes" />
 
 <Parameter Name="OFDunSendErr" IntegerValue="86400" Desctiption="OFD unsending hours for error, 0 - not implemented" />
 <Parameter Name="OFDunSendWrn" IntegerValue="0" Desctiption="OFD unsending hours for warning, 0 - not implemented" />
 
 <UseFnSerial>0</UseFnSerial>
</DriverParameters>

 

Примечание. Работа с налогами и секциями в ФР ПРИМ

ФР ПРИМ 08-Ф позволяет установку произвольного налога для каждой позиции чека. (Подробнее про коды налогов см. соответствующую статью)
Кассовые секции не используются.

 

Примечание. ФР ПРИМ и нулевой чек

ФР ПРИМ не позволяет пробитие нулевого чека. Необходимо отключить пробитие нулевого чека на всех киосках, к которым подключаются ФР ПРИМ.

 

 

DATECS DP 25

Для работы с ФР Datecs DP 25, требуется чтобы следующие файлы были перенесены в папку ехе:

URunPos.dll (вер. не ниже 2.0.0.184)URunPos.iniBarCodeGen.dll, fpROU_DP25.dll и соответствующий init.xml

Настройки файлов конфигурации:

URunPos.ini

[Main]
;Драйвер ФР R_keeper
DriverName = fpROU_DP25.dll
;ХМL настроек драйвера ФР R_keeper
ParamXMLFile = init.xml
;ИНН
INN = 1234567890
;Номер документа
DocNumber = 1
;Имя продавца
Seller = Seller
;Код объекта
ObjCode = 0
;Название объекта
ObjName = Abonement
;ID оператора (кассира)
OperatorId = 0
;Код оператора (кассира)
OperatorCode = 0
;Имя оператора (кассира)
OperatorName = Abonement
;ID станции (кассы)
StationId = 0
;Код станции (кассы)
StationCode = 0
;Название станции (кассы)
StationName = Abonement
;Текст заголовка
TextHeader = 
;Код налога по умолчанию
TaxIndexDef = 0
;Пауза перед отправкой данных на печать (мс)
FRSleep = 10
;Тип оплаты
CashSumText = Cash
CardSum1Text = Card
CardSum2Text = Card_2
CardSum3Text = Card_3
CardSum4Text = Card_4
;Коды типов оплат:
;Оплата наличными
CashSumTypeIndex = 0
;Оплата картой 1
CardSum1TypeIndex = 1
;Оплата картой 2
CardSum2TypeIndex = 2
;Оплата картой 3
CardSum3TypeIndex = 3
;Оплата картой 4
CardSum4TypeIndex = 4

;Штриховой код
[Barcode]
;ширина минимального элемента в точках для Type?QRCode
Width = 2
;высота в точках
Height = 100
;Тип = "EAN-13"|"Code-39"|"Code-128"|"QRCode"
Type = Code-39
;Позиция текста "No"|"Top"|"Bottom"|"Top&Bottom"
;для Type?QRCode
TextPosition = Bottom
;Уровень коррекции "7%"|"15%"|"25%"|"30%"
;необязательный, начиная с 12 версии, только для Type=QRCode
CorrectionLevel = 15%

 

ВАЖНО

Для ФР Datecs обязательно необходимо установить параметр:

;Код налога по умолчанию
TaxIndexDef = 0

Так как в ФР код первого налога  = 0;

Также необходимо присутствие следующей секции:

;Коды типов оплат:
;Оплата наличными
CashSumTypeIndex = 0
;Оплата картой 1
CardSum1TypeIndex = 1
;Оплата картой 2
CardSum2TypeIndex = 2
;Оплата картой 3
CardSum3TypeIndex = 3
;Оплата картой 4
CardSum4TypeIndex = 4

Поскольку коды типов оплат в ФР Datecs также как и коды налогов начинаются с  =0.

Также стоит установить следующие параметры (передаваемые названия типов оплаты):

;Тип оплаты
CashSumText = Cash
CardSum1Text = Card
…

Иначе передаются значения по умолчанию в неподдерживаемой аппаратом кириллице.

init.xml

<DriverParameters>  
    <Parameter Name="LogLevel" IntegerValue="5" Desctiption="Log level: 0 - error only, ..., 5 - all"/><!--Параметры логирования-->  
    <Parameter Name="MsgLanguage" StringValue="ENG" Desctiption="Language of messages, the string matches with the extension of the localisation file, for example: ENG, RUS etc"/><!—Язык сообщений ФР-->  
    <Parameter Name="COMnum" IntegerValue="11" Desctiption="COM-port number, 1..255" /><!--Номер СОМ-порта -->  
    <Parameter Name="BaudRate" IntegerValue="0" Desctiption="COMport baudrate: 0 - auto, 1200, 2400, 4800, 9600, 19200, 38400, 57600 or 115200"/><!—Скорость сообщения по СОМ-порту -->  
    <Parameter Name="OperCode" IntegerValue="1" Desctiption="Operator code: 1..16" /><!--Код кассира-->  
    <Parameter Name="OperPassword" StringValue="1" Desctiption="Operator password" /><!--Пароль кассира-->  
</DriverParameters>  

 

Примечание

Тестирование ФР Datecs DP 25 производилось сотрудником дилеров - Bogdan Romascu из «UCS-Romania».

 

TO DO: Больше примеров

 

Работа УДФР с денежными ящиками

С версии 2.0.0.201 urunpos.dll доступны параметры в urunpos.ini: CashDrawerNumber = 0 - Номер денежного ящика (как правило, 0 - ящик по умолчанию), OpenCashDrawerAfterEndFiscal = 1 - открывать ящик по команде из Абонемент (1 - открывать всегда, 0 - открывать только по кнопке "Открыть денежный ящик").

Работает независимо от версии Абонемента: открытие ящика при оплате наличными, при снятии Х и Z-отчёта.

С версии Абонемента 128 доступна кнопка в ночном аудите, для открытия денежного ящика по запросу - "Открыть денежный ящик".

 

Работа УДФР с передачей пользователя Абонемент в качестве кассира в чек

С версии 128 Абонемента поддержана передача пользователя Абонемент в качестве кассира в фискальный документ для всех доступных кассовых операций.

 

Работа с двумя и более фискальными регистраторами, подключёнными к 1 рабочему месту

Для работы с двумя ФР на 1 рабочем месте, требуется:

Наличие в папке ехе Абонемента файлов: URunPos.dll, URunPos.ini и BarCodeGen.dll, а также dll соответствующих подключённым ФР.

Настройки универсального драйвера для каждого ФР задаются в отдельных ini файлах (например: atol1.ini и shtrih2.ini), аналогичным настройкам приведённым в данной статье.

В URunPos.ini  в таком случае, будет иметь следуюющее содержание:

[MERGE]
atol=atol1.ini
shtrih=shtrih2.ini

Соответственно в atol1.ini и в shtrih2.ini , как минимум параметры ParamXMLFile  должны различаться, т.е. необходимо наличие 2 файлов (например init_1.xml и init_2.xml), где будут указаны настройки соединения с конкретными ФР.

В настройках соответствующих киосков в настройках в Абонементе необходимо в поле «название устройства в ini файле» прописать названия параметров прописанных в urunpos.ini (В данном примере это - atol и shtrih)

 

Работа с одним фискальным регистратором на нескольких рабочих местах

 

Решение для работы с нескольких рабочих мест Абонемент на 1 ФР, поддерживаемом универсальным драйвером, описано  в отдельной статье.

 

Также, способ подключения ФР Спарк 115-Ф позволяет использовать 1 ФР на нескольких рабочих местах, без использования вышеобозначенного решения. (См. раздел СПАРК 115-Ф)

 

Печать логотипа в фискальных и нефискальных документах

С версии URunPos.dll  2.0.1.17 поддержана принудительная печать логотипа в фискальных и нефискальных документах распечатываемых из Абонемент.

Для этого требуется загрузить изображение в память ФР. 

Прописать следующие параметры в секции [Main] файла конфигурации (fr.ini):

[Main]
; Печатать логотип в фискальных документах
IsPrintLogo = 1
; Печатать логотип в нефискальных документах
IsUnfiscalPrintLogo = 1
; Идентификатор логотипа в ФР
LogoName = 1

Применимость к фискальным регистраторам:

Спарк 115-Ф - Не применимо. Графика загружается только в клише ФР и печатается для всех документов независимо от команды.

Атол (22-Ф) - изображение загружается через утилиту теста драйвера в меню программирование. Указываемое в ini файле LogoName = ID картинки в тесте драйвера -1.

Штрих 54ФЗ (Ритейл-01Ф) - изображение загружается через тест драйвера. Указываемое в ini файле LogoName = <номер первой строки для печати>-<номер последней строки для печати> (Например "LogoName = 1-200" - напечатать первые 200 строк изображения загруженного в фр).

С другими семействами ФР не тестировалось.

 

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

Если ФР подключён через универсальный драйвер, то:

Помимо проверки shelter.hw.ini на незакомментированность соответствующих виртуальному фискальнику строк,

также требуется закомментировать строку

RunPosDllName=URunPos.dll

В секции [Pos] в abonementmanager.ini

 

В случае универсального драйвера в shelter.hw.ini изменения вносится вообще не должны.

Т.е. в идеальном случае, на новых объектах изначально работающих на универсальном драйвере будет достаточно править 1 строку в abonementmanager.ini.

 

Тестирование драйвера ФР

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

План тестирования: 

  1. Изъятие (с копейками и без). 
  2. Печать штрихового кода. 
  3. Z-отчет. 
  4. Возврат (с копейками и без). 
  5. Продажа, используя безналичную оплату (с копейками и без) (печать слипа в двух копиях) интеграция со Сбербанком (в качестве названий услуг/товаров использовать еще и символы: ",',<,>/,\) (продажа со скидкой и без: AddItemDiscount = 1/0) (с отправкой чека по e-mail и СМС и без). 
  6. Закрытие смены. 
  7. Открытие смены. 
  8. Печать нулевого чека. 
  9. Продажа, используя наличную оплату (с копейками и без, со сдачей и без) (в качестве названий услуг/товаров использовать еще и символы: ",',<,>/,\) (продажа со скидкой и без: AddItemDiscount = 1/0) (с отправкой чека по e-mail и СМС и без). 
  10. Продажа, используя комбинированную оплату (с копейками и без) (в качестве названий услуг/товаров использовать еще и символы: ",',<,>/,\) (продажа со скидкой и без: AddItemDiscount = 1/0) (с отправкой чека по e-mail и СМС и без). 
  11. Х-отчет. 
  12. Печать текстовой информации (использовать еще и символы: ",',<,>/,\). 
  13. Внесение (с копейками и без). 
  14. Печать на разных ФР. (Если к 1 рабочему месту подключены 2 или более ФР). 

CloudKassir (CloudPayments)

 

Зачем

В связи с ФЗ 54 при использовании онлайн модулей и мобильных приложений возникает законный вопрос - как быть с онлайн платежами? Кто и как должен формировать фискальный чек? Как предоставить чек покупателю?

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

Для онлайн приложений, не все процессинговые системы предлагают фискализацию.

Для подобных случаев были созданы различные предложения для облачной фискализации - когда фискальный регистратор находится в датацентре и работает через веб-интерфейс 24/7 на различных заказчиков. Такие как Атол-Онлайн и CloudKassir (CloudPayments).

 

Как

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

Рис.1 Схема работы при интеграции с облачным решением для фискализации

То есть, при проведении платежа через Абонемент Онлайн/мобильное приложение, платёж проводится в два этапа:

1. Мобильное приложение/Абонемент Онлайн перенаправляет клиента в процессинг, где он производит платёж, информация о платеже возвращается в модуль.

2. Модуль отправляет запрос на регистрацию платежа в Абонемент через API (Connecter). Для завершения регистрации платежа, API запросит формирование чека для данной операции у облачного ФР. Только после успешной фискализации платёж (чек) будет зарегистрирован в Абонемент.

 

Версии используемые при тестировании 

  • Абонемент  - 1.136
  • Connecter -  1.66.0.39
  • URunPos.dll - 2.2.0.4
  • fpCloudPayments.dll - 1.4.0.4

 

Как настраивается

//here lies copy paste from URunPos node

Данное решение настраивается через универсальный драйвер.

Для этого в connecter.ini необходимо в секцию [pos] добавить строку:

RunPosDllName=Urunpos.dll

 

Следующие файлы должны быть в папке с Connecter:

URunPos.dll (вер. не ниже 2.2.0.4), URunPos.ini, fpCloudPayments.dll (вер. не ниже v.1.4.0.4) и urunpos_frxml_CloudPayments.xml

 

Настройки файлов конфигурации:

URunPos.ini (fr.ini или urunpos_CloudPayments.ini) 

[Main]
;Драйвер ФР R_keeper
DriverName = fpCloudPayments.dll
;ХМL настроек драйвера ФР R_keeper
ParamXMLFile = urunpos_frxml_CloudPayments.xml

;Код налога по умолчанию 
TaxIndexDef=6 
;Налоги передаваемые в чек 
;Налог с кодом 1 
RateValue1 =0 
;Налог с кодом 2 
RateValue2 =1000 
;Налог с кодом 3 
RateValue3 =2000 
;Налог с кодом 4 
RateValue4 =11000 
;Налог с кодом 5 
RateValue5 =12000 
;Налог с кодом 6 
RateValue6 =-1 

DocNumber = -1

Где ставки налогов могут принимать предопределённые значения из следующего списка:

RateValue= Передаваемый налог
0 НДС 0%
1000 НДС 10%
2000 НДС 20%
11000 НДС 10/110%
12000 НДС 20/120%
-1 Без НДС

 

Данная гибкость настройки позволяет настроить для онлайн фискализатора ставки налогов так же, как и в реальных фискальных регистраторах, используемых на объекте. Например, в приведённом выше примере ini файла, налоги установлены так же, как и в фискальных регистраторах Атол. Подробнее про работу универсального драйвера с налоговыми ставками можно узнать в статье.

 

init.xml

<xmlConfig ProtocolVersion="46">
   <Parameters>
                <Company_INN>5544338819</Company_INN><!--ИНН компании, предоставленный в CloudKassir-->
                <API_URL>https://api.cloudpayments.ru/kkt/</API_URL><!--Адрес API CloudKassir-->
                <API_Login>pk_5acd6950f73ffe9d9f41eb6ad6fca</API_Login><!--API логин-->
                <API_Password>ohJnB2JNBgUwgNq7q0BOdA44Brbp7hQn07isSCfiYk8=</API_Password><!--Зашифрованный пароль API (заполняется автоматически)-->
                <DurationWaitProcessed>300</DurationWaitProcessed><!--Время ожидания подтверждения фискализации после успешного принятия команды CloudKassir`ом (в секундах)-->
                <NewPassword>exDDtrop4</NewPassword><!--Установить новый пароль (автоматически зашифруется при запуске connecter)-->
   </Parameters>
</xmlConfig>

 

Все данные заполняемые в xml могут быть получены в CloudKassir (CloudPayments).

Регистрация чека, в зависимости от нагруженности могут варьироваться от 1-2 секунд до 2-3 минут, в связи с чем значение параметра DurationWaitProcessed рекомендуется устанавливать не менее 300.

 

ВАЖНО!!!

Для решений облачной фискализации наличие email или телефона клиента в чеке является обязательным, соответственно, должны быть установлены параметры "Общие параметры" - "Услуги и платежи" - "ФР может отправлять чеки на Email / через SMS". Соответствуюющие поля клиента должны быть заполнены.

 

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

Интеграция защищёна лицензионным ключом Проект 1 модуль 8. Подробнее про лицензирование

Атол-Онлайн

 

 

Зачем

В связи с ФЗ 54 при использовании онлайн модулей и мобильных приложений возникает законный вопрос - как быть с онлайн платежами? Кто и как должен формировать фискальный чек? Как предоставить чек покупателю?

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

Для онлайн приложений, не все процессинговые системы предлагают фискализацию.

Для подобных случаев были созданы различные предложения для облачной фискализации - когда фискальный регистратор находится в датацентре и работает через веб-интерфейс 24/7 на различных заказчиков. Такие как Атол-Онлайн и CloudKassir.

 

Как

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

Рис.1 Схема работы при интеграции с облачным решением для фискализации

То есть, при проведении платежа через Абонемент Онлайн/мобильное приложение, платёж проводится в два этапа:

1. Мобильное приложение/Абонемент Онлайн перенаправляет клиента в процессинг, где он производит платёж, информация о платеже возвращается в модуль.

2. Модуль отправляет запрос на регистрацию платежа в Абонемент через API (Connecter). Для завершения регистрации платежа, API запросит формирование чека для данной операции у облачного ФР. Только после успешной фискализации платёж (чек) будет зарегистрирован в Абонемент.

 

Версии используемые при тестировании 

  • Абонемент  - 1.136
  • Connecter -  1.66.0.39
  • URunPos.dll - 2.2.0.4
  • fpCloudAtol.dll - 1.3.0.10

 

Как настраивается

//here lies copy paste from URunPos node

Данное решение настраивается через универсальный драйвер.

Для этого в connecter.ini необходимо в секцию [pos] добавить строку:

RunPosDllName=Urunpos.dll

 

Следующие файлы должны быть в папке с Connecter:

URunPos.dll (вер. не ниже 2.2.0.4)URunPos.inifpCloudAtol.dll (вер. не ниже v.1.3.0.10) и urunpos_frxml_CloudAtol.xml

 

Настройки файлов конфигурации:

URunPos.ini (fr.ini или urunpos_CloudAtol.ini) 

[Main]
;Драйвер ФР R_keeper
DriverName = fpCloudAtol.dll
;ХМL настроек драйвера ФР R_keeper
ParamXMLFile = urunpos_frxml_CloudAtol.xml

;Код налога по умолчанию
TaxIndexDef=6

;Налоги передаваемые в чек
;Налог с кодом 1
RateValue1 =0
;Налог с кодом 2
RateValue2 =1000
;Налог с кодом 3
RateValue3 =2000
;Налог с кодом 4
RateValue4 =11000
;Налог с кодом 5
RateValue5 =12000
;Налог с кодом 6
RateValue6 =-1

DocNumber = -1

Где ставки налогов могут принимать предопределённые значения из следующего списка:

RateValue= Передаваемый налог
0 НДС 0%
1000 НДС 10%
2000 НДС 20%
11000 НДС 10/110%
12000 НДС 20/120%
-1 Без НДС

 

Данная гибкость настройки позволяет настроить для онлайн фискализатора ставки налогов так же, как и в реальных фискальных регистраторах, используемых на объекте. Например, в приведённом выше примере ini файла, налоги установлены так же, как и в фискальных регистраторах Атол. Подробнее про работу универсального драйвера с налоговыми ставками можно узнать в статье.

 

init.xml

<xmlConfig ProtocolVersion="46">
   <Parameters>
                <Company_INN>5544338819</Company_INN><!--ИНН компании, предоставленный в Атол-Онлайн-->
                <API_URL>https://online.atol.ru/possystem/v4/</API_URL><!--Адрес API Атол-Онлайн-->
                <API_GROUP>fit-club_4181</API_GROUP><!--API идентификатор компании в Атол-Онлайн-->
                <API_Login>fit-club</API_Login><!--API логин-->
                <API_Password>sbwby81V1DjS8oPeOLklKw==</API_Password><!--Зашифрованный пароль API (заполняется автоматически)-->
                <DurationWaitProcessed>300</DurationWaitProcessed><!--Время ожидания подтверждения фискализации после успешного принятия команды Атолом (в секундах)-->
                <NewPassword>exDDtrop4</NewPassword><!--Установить новый пароль (автоматически зашифруется при запуске connecter)-->
                <Company_PaymentAddress>https://fit-club.ru</Company_PaymentAddress><!--Адрес расчёта, предоставленный в Атол-Онлайн-->
   </Parameters>
</xmlConfig>

 

Все данные заполняемые в xml могут быть получены в Атол-Онлайн.

Регистрация чека, в зависимости от нагруженности могут варьироваться от 1-2 секунд до 2-3 минут, в связи с чем значение параметра DurationWaitProcessed рекомендуется устанавливать не менее 300.

ВАЖНО!!!

Для решений облачной фискализации наличие email или телефона клиента в чеке является обязательным, соответственно, должны быть установлены параметры "Общие параметры" - "Услуги и платежи" - "ФР может отправлять чеки на Email / через SMS". Соответствуюющие поля клиента должны быть заполнены.

 

 

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

Интеграция защищёна лицензионным ключом Проект 5 модуль 1. Подробнее про лицензирование

ВАЖНО!!!

Для решений облачной фискализации наличие email или телефона клиента в чеке является обязательным, соответственно, должны быть установлены параметры "Общие параметры" - "Услуги и платежи" - "ФР может отправлять чеки на Email / через SMS". Соответствуюющие поля клиента должны быть заполнены.

Интеграция Абонемент с онлайн-кассами ФЗ-54

Всего есть 3 протокола для ФЗ 54:
Штрих - поддерживаем
АТОЛ - поддерживаем
СПАРК - НЕ работает. Поддержка в Абонемент появится только когда будет поддержан универсальный драйвер ФР.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
В 125 версии Абонемент исправлена критическая ошибка. При оплате платежными картами не поднималась форма "Оплата". В 124 отправка работала только для Наличных платежей.
 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
В связи с изменениями в законодательстве проводятся доработки программного обеспечения и реализуется поддержка нового оборудования.
По состоянию на 30.01.2017 программное обеспечение Абонемент версия 124 поддерживает ряд наиболее распространённых ККМ, реализующих возможности нового закона:
  • Атол 22 (FPrint-22ПТК)
  • Атол 55Ф (он же FPrint-55ПТК)
  • Атол 77Ф (он же FPrint-77ПТК)
  • АТОЛ 30Ф (работает по протоколу АТОЛ 2.4, но не отправляет данные в ОФД - невозможно использовать, пока нами не будет поддержан протокол 3.0)
  • Retail-01K доработанный (Ритейл-01Ф) протокол Штриха
По мере добавления поддержки других ККМ данный список будет расширяться. Для клиентов ПО Абонемент миграция на новую систему регистрации платежей реализована максимально прозрачно, за короткие сроки и без существенных изменений в логике работы с программой и ККТ.
Нашими специалистами осуществляется мониторинг требований законодательства о применении ККТ, и проводятся оперативные доработки в случае изменений порядка работы программ с ККМ и ОФД.
 
В 124 версии уже доработано:
  • Добавлена поддержка новых моделей ФР, отвечающих требованиям 54-ФЗ
  • Доработан алгоритм формирования фискальных документов, реализующий требования 54-ФЗ
  • Появилась возможность указывать в ПО Абонемент телефон\e-mail покупателя, на который средствами ОФД должен быть отправлен электронный чек, добавлены настройки, отвечающие за включение режима работы ПО Абонемент в соответсвии с требованиями 54-ФЗ. Настройки / Общие параметры / услуги и платежи /  ФР может отправлять чеки по E-Mail (SMS).
  • Реализована и протестированна отправка в ОФД телефона\e-mail покупателя при использовании следующих функций: продажа с оплатой наличными,  возврат продажи. При возврате оплаты  по чеку, в котором был указан телефон\e-mail покупателя, отправка на указанные покупателем данные электронной копии чека о возврате производится автоматически, без необходимости повторно вносить эту информацию.
  • В 124 версии добавлен sdmShtrihMA11_54FZ.dlll для работы с Retail-01K (штрих)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
В 123 версии Абонемент появились следующие возможности:
  • Разработан алгоритм формирования фискальных документов, реализующий требования 54-ФЗ
  • Добавлена поддержка новых моделей ФР, отвечающих требованиям 54-ФЗ
  • Началась разработка и тестирование функции отправки чека на телефон\e-mail покупателя.
Более подробно по подключению в данной статье
 
Для подключения АТОЛ, необходимо войти в сервисный режим и сделать следующее:
  • Настроить для ФР канал обмена "USB"
  • Настроить на ФР протокол 2.4

Физическое подключение ФР к ПК:

  • Атол FPrint-22ПТК -  Пользователь может выбрать наиболее удобный способ подключения к персональному компьютеру (через RS-232C, USB-порт или Ethernet), а выход в интернет может быть обеспечен с помощью Ethernet, Wi-Fi, 2G, 3G (Wi-FI, 2G и 3G модули продаются дополнительно). Для подключения через COM-порт компьютер должен иметь оный, либо же должна быть приобретена дополнительная плата с выводом такого разъёма. 
  • Атол FPrint-55ПТК - по умолчанию настроен на работу через RS-232 (СОМ-порт), но можно изменить режим на подключение через usb.
  • ШТРИХ Ретейл 01К - подключаем через СОМ порт как обычно,  провод ETHERNET включаем в ПК или в роутер/свитч. Через драйвер  (внутри таблицы)  настраиваем IP-адрес принтера или он может получить адрес через DHCP. USB подключение можно использовать вместо провода ethernet , видится как сетевая карта и обязательно задаем статический IP-адреc. Необходимо избежать дублирования ip-адресов и подсетей .

Подключение АТОЛ Fprint55-ПТК

Для подключения ФР АТОЛ FPRINT-55ПТК и совместимости с нашим драйвером для работы с ФЗ-54 - sdmShtrihM21.dll (минимальная версия - 1.4.0.1) (sdmShtrihM21FZ54.dll - с версии 1.5.0.1), необходимо, используя сервисный режим, произвести следующие настройки Фискального Регистратора: канал обмена - USB, протокол обмена - Атол 2.4  

Начиная с версии тест драйвера 9.9.1, появилась возможность менять протокол обмена не используя сервисное меню, через Параметры ККТ  - Протокол обмена.

Выдержка из инструкции АТОЛ

"Сервисный режим предназначен для настройки подключения изделия по одному из поддерживаемых ККТ интерфейсов (RS-232 или USB), выбора протокола обмена и для включения либо выключения автоотрезчика. Для входа в сервисный режим нужно включить ККТ с нажатой кнопкой промотки ЧЛ, дождаться четвёртого звукового сигнала (для Атол 22Ф дождаться 5-го звукового сигнала) и отпустить кнопку промотки ЧЛ. ККТ войдёт в сервисный режим и выведет на печать документ, в котором представлен перечень возможных действий: выход из сервисного режима, выбор канала обмена, управление работой автоотрезчика и выбор протокола обмена. После этого ККТ ожидает выбора действия, который осуществляется путём нажатия на кнопку промотки ЧЛ – один, два, три или четыре раза (в зависимости от выбора) и отпускания её. При нажатии кнопки промотки ККТ воспроизводит звуковой сигнал. Возможные действия описаны ниже (см. рисунок)"

Подключение Retail-01K (Ритейл-01Ф) для связи с ОФД

Данная статья актуальна только для Retail-01K (Ритейл-01Ф)

 

Есть 3 основных варианта интерфейса для подключения ФР к ОФД:

  • Wi-Fi
  • Ethernet
  • USB (RNDIS-режим)

Перед покупкой\проведением доработки ККТ необходимо провести изучение торгового объекта заказчика и согласовать с ним вариант вида связи с ОФД.

Далее нужно получить электронную подпись (ЭЦП), подключить кассовый аппарат к ОФД и зарегистрировать кассовый аппарат в ФНС. Электронная подпись нужна для регистрации кассового аппарата в ФНС. ЭЦП можно получить в удостоверяющим центре, аккредитованным Минкомсвязи.
 
Чтобы подключится к ОФД, нужно заключить с ним договор на обработку фискальных данных. Узнать актуальный список авторизованных ОФД можно на сайте ФНС, к примеру - Москва. К этому моменту, соответственно, нужно получить ЭЦП, подготовить кассу и кассовое ПО нового образца, организовать канал связи для ККТ.
 
 
Зарегистрировать онлайн-кассу можно не выходя из магазина, онлайн. Это преимущество, которое дает новое законодательство. Заявленный срок регистрации – 1 день. Для регистрации новых касс НЕ требуется личное присутствие в ФНС и НЕ требуется договор с ЦТО и, соответственно, его представитель для регистрации также не требуется. 
Для регистрации нужно:
 
  1. В личном кабинете налогоплательщика (на сайте ФНС) отправить запрос на регистрацию ККТ, подписанный ЭЦП (или КЭП, что одно и тоже)
  2. ФНС сверяет данные о ККТ и фискальном накопителе с реестром и, если все в порядке, регистрирует ККТ
  3. Регистрационный номер передается в фискальный накопитель, который, в свою очередь, отправляет в ФНС отчет о фискализации.
  4. После этого ФНС «выдает» карточку регистрации, которую можно «получить» в личном кабинете на сайте ФНС.

Для того, чтобы регистрация ККТ прошла успешно, она должна быть полностью настроена для связи с ОФД и подключена к интернету. Рассмотрим настройку ККТ на примере RR-01Ф.

Независимо от способа связи с ОФД, в настройках ККТ нужно заранее указать адрес и порт ОФД:

После чего переходим к настройке канала связи.

Настройка ККТ для передачи данных. Подключение по USB (протокол RNDIS)

Передача данных с использованием протокола RNDIS осуществляется при физическом подключении через USB. Для того, чтобы ККТ работала и передавала данные на сервер ОФД с использованием протокола RNDIS в таблице №21 «Сетевые интерфейсы», в поле №9 "RNDIS" необходимо установить значение «1» ( по умолчанию значение: «0»). Для того, что бы настройки вступили в силу ККТ нужно перезагрузить. Значения таблицы приведены на рисунке.
 
 
После того, как в системе появится адаптер RNDIS нужно проверить, установлены ли драйверы для него. На некоторых системах, например Windows Embedded, эти драйвера автоматически не устанавливаются. Нужно скачать драйвера в сети Internet и установить.
 
По умолчанию ККТ имеет статический IP адрес. Все сетевые адреса находятся в таблице №16 "Сетевой адрес". Значения таблицы приведены на рисунке. Поле №1 "Static ip" задает статический (значение «1») или динамический (значение «0») IP адрес. Также необходимо в таблице ККТ задать адрес основного DNS сервера. Адрес сервера ОФД может быть задан в виде URL, поэтому нужна настройка DNS сервера.

Адаптер RNDIS в операционной системе можно настроить так, как показано на рисунке.

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

Для подключения к ККТ используя драйвер ФР можно использовать параметры, приведенные на рисунке.

Примечание

Ип-адреса адаптеров в случае RNDIS-интерфейса должны полностью различаться, иначе связь с ФР по сети через Тестдрайвер есть, а данные в ОФД не отправляются. Т.е. если в локальной сети, предоставляющей интернет, используется адресное простарнство 192.168.*.*, то адрес ФР необходимо выставить к примеру 172.31.*.*

Настройка ККТ для передачи данных. Подключение по Wi-Fi

Если устройство модернизации (или ККТ) оборудовано модулем Wi-Fi, то в таблице №21 «Сетевые интерфейсы», поле №5 «Наличие Wi-Fi» по умолчанию будет запрограммировано значение «1». 

Для организации обмена данными с сервером ОФД с использованием интерфейса Wi-Fi нужно запрограммировать поля №№6-8 таблицы №21 следующим образом:
- В поле №6 «Использовать Wi-Fi» введите значение «1» (включить использование Wi-Fi);
- В поле №7 «Wifi ssid» введите имя точки доступа, посредством которой будет производиться передача фискальных данных;
- В поле №8 «Wifi passphrase» введите пароль для подключения к выбранной точке доступа. 
В завершение настроек ККТ следует настроить таблицу №22 «Сетевой адрес WiFi». В данном случае предусмотрено два режима работы:
- с использованием DHCP, когда IP-адрес присваивается автоматически из списка свободных IP-адресов;
- с использованием статического IP-адреса, когда параметры сетевого подключения к Wi-Fi вводятся в ручную.

Значение поля №2 «Статус dhcp» равное «10» говорит о том, что IP-адрес присвоен.

 

Настройка ККТ для передачи данных. Подключение по Ethernet

Для передачи данных с использованием Ethernet необходимо подключить ККТ к локальной сети предприятия. Далее следует проверить таблицу №21 «Сетевые интерфейсы». При необходимости привести их в соответствии с рисунком.

В завершение настроек ККТ следует настроить таблицу №16 «Сетевой адрес». В данном случае предусмотрено два режима работы:
- с использованием DHCP, когда IP-адрес присваивается автоматически из списка свободных IP-адресов (рис. 1);
- с использованием статического IP-адреса, когда параметры сетевого подключения вводятся в ручную (рис. 2).

Значение поля №2 «Статус dhcp» равное «10» говорит о том, что IP-адрес присвоен.

Подключение 1 ФР на несколько рабочих мест через УДФР

 

 

Данный способ позволяет использовать 1 фискальный регистратор (далее ФР) на нескольких рабочих местах Абонемент.

Общая схема работы представлена на рис.1.

Рис.1 Общая схема работы связки

 

Сборку можно найти с версии 129 Абонемента  по адресу \FullversionVerххх\HW\Uxml-rpc\ , где находятся 3 папки: Server, Client, UCS.
Папки Server и Client устанавливается на компьютере, к которому физически подключен ФР.
Папка UCS настраивается на компьютерах, где запускается ПО Абонемент.

 

Содержимое папок

Server:

 
sxrServerProxy.exe Приложение – сервер сообщения
sxrsrv.ini  Файл настроек сервера сообщения

Client:


 

sxrFRClient2.exe Приложение – клиент сообщения с ФР
sxrfrClient.ini Файл настроек клиента
URunPosRemote.dll  Библиотека-посредник для подключения универсального драйвера

UCS:


 

sdmTcpRpcFiscReg.dll             Библиотека связи с сервером сообщения (старого образца)
TcprpcFR.ini Файл настроек связи

 

Серверная часть

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

Рекомендуется разворачивать на том же ПК, к которому подключён ФР, для упрощения обслуживания связки.

 

Настройки sxrsrv.ini:

[SERVER]
  ;Порт, по которому будет происходить сообщение
  Port =7790
  ;Автоматически стартовать при запуске
  Autostart = 1
  ;Автоматически скрывать в трей при запуске
  Autohide = 1

 

Клиент ФР

Данная часть разворачивается непосредственно на ПК, к которому подключён ФР.

Приложение отвечает за работу с ФР, передавая команды, приходящие с рабочих мест.

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

В поставку утилиты не входит универсальный драйвер. Требуется настроить УДФР в папке Client так же как под клиентом Абонемент, добавив все необходимые файлы.

В URunPos.ini (или fr.ini, в зависимости от настройки) необходимо добавить:

[database]
; Адрес БД Абонемент
      dbname=127.0.0.1/3080:D:\_UCS\_FITNESS\IBDATA\FITNESS.FDB
      dbuser = ucs
      DBPassword = oQKH8n0BFUE=

[Main]
; Для корректной обработки ошибок при отсутствии ошибок
NoErrors = Empty

В противном случае, будут наблюдаться ошибки при снятии X- и Z-отчётов.

 

Настройки sxrfrClient.ini:

[SERVER]
  ;IP адрес сервера, где запущен sxrServerProxy
  Host = 127.0.0.1
  ;Порт общения с сервером sxrServerProxy
  Port = 7790
  ;Код данного клиента ФР (должен быть уникальным)
  ClientName = UCS_FR

  ;Адрес библиотеки-посредника
  DLL = C:\_UCS\_FITNESS\xml-rpc2\Client\URunPosRemote.dll

  ;Спрятать в трей при запуске
  AutoHide = 1
  ;Автозапуск сервера при открытии приложения
  AutoStart = 1

;Параметры логирования
[log]
  log.level=10
  log.debuglevel=10
  name=.\log\client.log
  ByMonthes=1
  ByDays=1
  BYHOURS=1

 

Настройки ПО Абонемент

На рабочих местах используется драйвер старого образца для удалённого ФР.

Т.е. Используется старая библиотека RunPos.dll к которой подключается sdmTcpRpcFiscReg.dll.

Для этого требуется скопировать содержимое папки UCS в папку exe на рабочем месте.

Для этого требуется чтобы runpos.ini имел следующий вид:

[MERGE]
HW = TcprpcFR.ini

[log]
level=10
debuglevel=10

Настройки TcprpcFR.ini

[BOOT]
;Подключаемая DLL
FiscReg = %exepath%\sdmTcpRpcFiscReg.dll

[HARDWARE]
    FiscReg = TcpRpcFR 

;Секция настроек подключения к клиентскому приложению
[FiscReg.TcpRpcFR] 
  ;IP адрес сервера, где запущен sxrServerProxy
   Host  = 127.0.0.1 
  ;Порт общения с сервером sxrServerProxy
   Port  = 7790 
  ;Идентификационное имя данного рабочего места (должно быть уникально)
   ClientName = Client_UCS_1
  ;Код клиента, к которому производится подключение
   ProxyFRClient = UCS_FR

Подключение 2-х и более фискальных регистраторов

 

 

 

 

Данная инструкция применяется в случае установки 2-х и более фискальных регистраторов для 2-х и более юридических лиц. Данная инструкция неактуальна для 1-го юридического лица и является продолжением статьи "Подключение фискального регистратора", которая содержит всю основную информацию по данному вопросу.

Пример: подключение 3-х устройств (2 устройства Штрих-ФР-К + 1 устройство ПРИМ 08ТК).

Продажа производиться от 3-х юридических лиц  (Орг1, Орг2, Орг3) на одном рабочем месте.

(Рис.1 Схема подключения нескольких ФР к разным Юр. лицам)

В директории ..\exe\ проверьте наличие следующих файлов: shelter.hw.ini. Для Прим: Prim08TK.msg, sdmAzimuth.dll, AZIMUTH.DLL. Для Штрих: sdmShtrihMA11.dll, ShtrihMA11.RUS.Msg

Узнав параметры подключения используемых фискальных регистраторов, настраиваем shelter.hw.ini.

SHTRIHMA, AZIMUTH – формат записи должно быть неизменен, этот параметр жестко связан с исполняемыми DLL
FiscReg1…3 – Это внутренние названия фискальных регистраторов, которые будут использованы при настройке Abonementmanager

Пример настройки файла shelter.hw.ini

[BOOT]
  DLL_LOAD3= sdmShtrihMA11.dll
  DLL_LOAD4= sdmAzimuth.dll  

 [hardware]
  FiscReg1 = SHTRIHMA
  FiscReg2 = SHTRIHMA
  FiscReg3 = AZIMUTH

;------------------------------------------------------------------------------------------------------------ShtrihMA1
[FiscReg1.SHTRIHMA]
; Печать отчета по секциям перед X,Z-отчетами
  PrintSectionReport = 1
  COMPORT = 1
  COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on
  ToOEM      = 1
  MaxLine    = 24
  PassWord   = 30
  SEPassword = 0
  MsgFile    = ShtrihMA11.RUS.Msg
  MsgSection = Errors

;------------------------------------------------------------------------------------------------------------ShtrihMA2
[FiscReg2.SHTRIHMA]
; Печать отчета по секциям перед X,Z-отчетами
  PrintSectionReport = 1
  COMPORT =2
  COMPORTPARAMS=baud=19200 parity=n data=8 stop=1 rts=on dtr=on
  ToOEM      = 1
  MaxLine    = 24
  PassWord   = 30
  SEPassword = 0
  MsgFile    = ShtrihMA11.RUS.Msg
  MsgSection = Errors

;------------------------------------------------------------------------------------------------------------AZIMUTH3
[FiscReg3.AZIMUTH]
  COMPORT = 3
  COMPORTPARAMS=baud=9600 parity=e data=8 stop=1
  ToOEM   = 0
  MsgFile    = Prim08TK.msg
  MsgSection = Errors

Настройка ПО «Abonementmanager»

Обратимся к рисунку 2. В программе нажимаем кнопку "Настройки" (1), внутри - вкладка "Параметры" --> "Общие параметры" (2). Двойной клик по нужной организации (3), во всплывающем окне - вкладка "Услуги и платежи" - ставим галочку "Работать с несколькими юр.лицами (фискальные регистаторы)" (4)

(Рис.2 Включение опции в ПО Абонемент)

Теперь необходимо создать Юридические лица и киоски к ним. Возвращаемся в "Общие параметры". В разделе "Собственники" нажимаем кнопку "Добавить"  на панели меню (либо правой кнопкой нажимаем в пустое место раздела - "Добавить"). Создаём юр.лица и добавляем их в список двойным кликом. Для каждого юр.лица добавляем киоски, указываем название устройства, описанное в ini-файле (FiscReg1, FiscReg2, FiscReg3), и имя компьютера, к которому подсоединены фискальные регистраторы.

Также необходимо:

  1. Завести нужное кол-во организаций-собственников;
  2. Определить для организаций-собственников киоски;
  3. Настроить услуги. В карточке услуги определить организацию-собственника;

 

Виртуальный ФР в Абонемент

Для того, чтобы Абонемент обращался к виртуалному фискальному регистратору, требуется:

 

Проверить наличие RunPos.dll, sdmVirtFiscReg.dll из поставки в папке \exe\

 

shelter.hw.ini должен быть заполнен следующим образом (данные строки должны быть единственными незакомментированными):

[BOOT]
  VirtFisc = sdmVirtFiscReg.dll

[hardware]
   FiscReg = VirtFiscReg

[FiscReg.VirtFiscReg]
  MsgFile = FiscReg.rus.msg 
  MsgSection = Errors
  ProhibitAll = 0

 

С версии Абонемент 127, также требуется проверить остутствие или закомментировать в abonementmanager.ini строку, если использовался универсальный драйвер ФР:

;RunPosDllName=URunPos.dll

 

При данных настройках, Абонемент будет обращаться к виртуальному ФР.

Печать кассира на ФР АТОЛ

 
В новых драйверах внедрили данную функцию, но с некоторыми ограничениями. (С версии драйверов: sdmShtrihM21Old.dll (1.5.0.1), sdmShtrihM21FZ54.dll (1.5.0.1) от 12.04.2017 и последующих) (Планируются к поставке с версии 1.126 Абонемента)
В связи с этим, требуется дополнительная настройка.
 
 
Для настройки корректного внесения кассиров в чеки, требуется:
 
1. Чтобы в Абонементе логины кассиров имели значения строго от 1 до 28 (иначе на данный момент не реализуемо).
 
2. В соответствии с тем, как кассиры настроены в Абонементе, добавить кассиров в таблицу кассиров в ФР.  Для этого:
 
    2.1. Для этого понадобится ПО от Атола "Драйверы_торгового_оборудования_9_9_2" (от 22.05.2017, версии ниже некорректно работают с таблицей кассиров и не работают с новыми ФР настроенными на протокол 2.4)
 
    2.2. После распаковки, необходимо запустить nt-x86-mingw\fptr_t.exe (Тест драйвера). В нём через кнопку "Свойства" в правой панели, настроить подключение к ФР.
 
   
 
    2.3. Подключаться можно в обоих протоколах (АТОЛ 2 и АТОЛ 3), в зависимости от того, на какой, в данный момент, настроен ФР. (Для работы в ПО Абонемент ФР должен быть в режиме связи по АТОЛ 2.4)
 
    2.4. Далее, в свойствах, после установки связи с ФР, нажмите кнопку "Параметры ККТ".
 
   
 
    2.5. Во всплывшем окне найдите секцию "Кассиры". В данной секции пропишите кассиров в поля, не изменяя пароли, в соответствии с их логинами (от 1 до 28) в Абонементе.
   Не изменяйте кассиров 29 и 30.
 
   
 
    2.6. После завершения изменения таблицы, закрывайте окно по кнопке "ОК".
 
 
3. В shelter.hw.ini в секцию данного ФР требуется добавить
 
  isUseCasherPwdTable = 1

 

Пример:

[FiscReg.SHTRIHM]

  Version = 22
  COMPORT = 1
  COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on
  ; Если в чяеке иероглифы - попробовать поменять значение (0/1)
  ToOEM      = 1
  MaxLine    = 24
  PassWord   = 30
  SEPassword = 0
  MsgFile    = ShtrihM21.RUS.msg
  MsgSection = Errors


  ;использовать таблицу кассиров для печати на чеках.
  ;Таблица кассиров настраивается самостоятельно, ограничение на кол-во кассиров 28,
  ;Код кассира в Абонементе = пароль в таблице кассиров в фискальниках Атол
  isUseCasherPwdTable = 1

;--------------------------------------------------------
[FiscReg.SHTRIHM-FZ54]
  Version = 22
  COMPORT = 7
  COMPORTPARAMS=baud=115200 parity=n data=8 stop=1 rts=on dtr=on

  ToOEM      = 1
  MaxLine    = 24
  PassWord   = 30
  SEPassword = 0
  MsgFile    = ShtrihM21.RUS.msg
  MsgSection = Errors

  isUseCasherPwdTable = 1
;--------------------------------------------------------
 
 
После завершения данной настройки, на чеках в качестве кассира будет печататься строка, указанная в таблице, в строке соответствующей логину пользователя, если логин имеет числовое значение от 1 до 28.
Иначе на чеке будет печататься СИС.Администратор.
 
Например:

Работа Абонемент с налоговыми ставками, кассовыми секциями и СНО с различными ФР

 

При работе Абонемент с фискальными регистраторами, для каждой пробитой в чеке позиции передаются (помимо стоимости и наименования) два параметра – код налога в ФР и код кассовой секции. (Параметры «Код налога ФР» и «Кассовая секция» услуги в справочнике услуг).

В общем случае, эти два параметра могут быть установлены независимо друг от друга.

В зависимости от протокола работы (семейства), ФР могут использовать оба эти параметра или только 1.

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

 

Параметр TaxIndexDef УДФР

Данный параметр используется в следующем случае:

Если в ФР не имеет налога с кодом 0. В таком случае, все услуги, у которых параметр "Код налога ФР" оставлен в значении по умолчанию (т.е. 0) будут при пробитии на ФР вызывать ошибку - неверный налог.

Чтобы избежать данной ситуации используется параметр TaxIndexDef - значение на которое подменяется код налога, если для услуги он оставлен в значении по умолчанию = 0. 

Установка данного параметра также позволяет не перенастраивать все заведённые услуги, если на объекте используется только 1 значение налога. В таком случае параметр TaxIndexDef устанавливается в значение равное коду этого налога.

 

Работа с несколькими СНО

С версии 1.132 Абонемент в карточке услуги появился новый параметр - "СНО (Система налогооблажения)".

Данный параметр устанавливает, СНО который будет указан в чеке, для данной услуги.

СНО - параметр чека, что означает, что в одном чеке не могут быть позиции попадающие под разные СНО.

Таким образом, если в списке продаваемых услуг будут услуги с разными СНО, то будут распечатаны несколько чеков, с услугами сгрупиррованными по СНО.

Подробнее про особенности настройки ФР (для которых известно) для работы с несколькими СНО приведены ниже.

 

Работа с налогами и секциями в ФР ШТРИХ 54 ФЗ

Для ФР ШТРИХ поддержана произвольная установка налога для услуги независимо от секции.

Т.е. настройки: "Код налога ФР" и "Кассовая секция", независимы и имеют силу для любой услуги и платежа.

Для ФР Штрих, налоги по умолчанию имеют следующие коды:

1 (А) – НДС 18%, 2 (Б) - НДС 10%, 3 (В) - НДС 0%, 4 (Г) - Без налога.

;Коды налогов
;1 = НДС 18%
;2 = НДС 10%
;3 = НДС 0%
;4 = Без налога 

Также следует отметить, что количество секций ограничено и равно 16. Если установить секцию вне диапазона, при попытки пробития  чека с такой позицией выйдет ошибка ФР и чек не будет зарегистрирован.

 

Работа с налогами и секциями в ФР АТОЛ 54 ФЗ

Для ФР АТОЛ поддержана произвольная установка налога для услуги.

При установленном параметре в init.xml, следующим образом: <usesectionas>Direct</usesectionas> или <usesectionas>Auto</usesectionas>, оба параметра - "код налога ФР" и "кассовая секция" независимы и имеют силу. (С версии драйвера fpAtol54.dll v.7.39.153.0)

 Direct - id налогов не изменяются и передаются в ФР как в карточке услуги.

 Auto - id налогов изменяются и передаются в ФР так, чтобы для вызывающего ПО (Абонемент) id налогов были как в версиях прошивки ФР до появления ФФД 1.05, когда были изменены id налогов (см.ниже).

 

Иначе налоги используются в зависимости от используемой секции. (Настройка привязки налогов к конкретным секциям настраивается в ФР, в таблице "Секции")

В какую именно секцию зачислять ту или иную услугу, определяется или параметром "кассовая секция" (по умолчанию), или параметром "код налога ФР", в зависимости от настроек подключения.

 

В случае если параметр установлен как: <usesectionas>Department</usesectionas>, то налоги привязываются в зависимости от используемой секции. (Настройка привязки налогов к конкретным секциям настраивается в ФР, в таблице "Секции")

В какую именно секцию зачислять ту или иную услугу, определяется или параметром  "кассовая секция". Параметр "Код налога ФР" не используется.

 

Если в параметр установлен как: <usesectionas>TaxRateIndex</usesectionas>, то налоги привязываюются в зависимости от используемой секции.

В какую именно секцию зачислять ту или иную услугу, определяется или параметром  "код налога ФР". Параметр "кассовая секция" не используется.

 

Для АТОЛ 22Ф на котором производилось основная часть тестирования - секция по умолчанию - 01, налог по умолчанию для секции 01 = НДС 0%, 02 = НДС 10%, 03 = НДС 18%, 04 = Без НДС.

;Коды налогов 
;01 = НДС 0%
;02 = НДС 10%
;03 = НДС 18%
;04 = Без НДС

Также следует отметить, что количество секций ограничено и равно 16. Если установить секцию вне этого диапазона, при попытки пробития чека выйдет ошибка ФР и чек не будет зарегистрирован.

 

На прошивках устанавливаемых с начала 2018 года изменился порядок налогов в ФР АТОЛ

!!!Обязательно ознакомьтесь с информацией, приведённой в задаче 150489 касательно версий fpAtol54.dll v.7.39.153.0 и выше.

 

На прошивках, устанавливаемых в связи с повсеместным переходом на ФФД 1.05 таблица налогов изменена на следующую:

;Коды налогов (коды секций к которым прикреплены налоги)
;01 = НДС 0%
;02 = НДС 10%
;03 = НДС 18%
;04 = НДС 10/110
;05 = НДС 18/118
;06 = Без НДС

Если использовался один из изменивших id налогов, то необюходимо произвести соответствующие изменения в TaxIndexDef и/или "Код налога ФР"

 

Работа с несколькими СНО

В ФР АТОЛ для корректной работы с несколькими СНО требуется:

В параметрах ККТ через тест драйвера, в секции "Налоговые ставки" установить только одну галку "Использовать **** СНО". Причём какую именно - не принципиально, поскольку СНО будет определяться настройками в Абонемент.

Только в таком случае ФР будет регистрировать чеки на СНО передаваемое ПО Абонемент.

В противном случае, ФР будет возвращать расширенную ошибку "103h Некорректная СНО", даже если эта конкретная СНО в ФР разрешена, но разрешено настройками более одной СНО.

Рис.1 Ошибка при некорректной настройке ФР

 

 

Работа с налогами и секциями в ФР СПАРК

ФР Спарк 115-Ф позволяет установку произвольного налога для каждой позиции чека.

ФР не поддерживает кассовые секции, соответственно параметр «кассовая секция» не используется.

Для ФР СПАРК, на котором производилось тестирование, коды налогов имели следующую привязку:

;Коды налогов
;0 = НДС НЕ ОБЛ.
;1 = НДС 18%
;2 = НДС 10%
;3 = НДС 0%

 

Работа с налогами и секциями в ФР ПРИМ 08-Ф

 

ФР ПРИМ 08-Ф позволяет установку произвольного налога для каждой позиции чека.

ФР не поддерживает кассовые секции, соответственно параметр «кассовая секция» не используется.

Для ФР ПРИМ, на котором производилось тестирование, коды налогов имели следующую привязку:

;Коды налогов
;0 = БЕЗ НДС
;1 = НДС 0%
;2 = НДС 10/110%
;3 = НДС 18/118%
;4 = НДС 10%
;5 = НДС 18%

Подключение считывателя к Абонемент

 

Абонемент. Подключение HID-устройства (считывателя) с использованием утилиты TcpCardReader 

Начиная с версии 1.27.0.1 утилиты TcpCardReader добавлена поддержка HID-устройств.

Поставка включает в себя следующий набор файлов:

tcpcardreader.exe
decodecards.dll
KeyScan.dll
KeyScan.ini

Содержание файла KeyScan.ini:

[buffer]
; минимальное количество символов в коде, полученном от сканера
MinBufferSize=6
; Таймаут в миллисекундах между символами, приходящими со сканера
CharInterval=50
 
Для использования глобального хука на клавиатуру (использования HID-устройства) необходимо в секции [READER] файла конфигурации tcpcardreader.ini прописать isKBReader=1.
 
ВНИМАНИЕ!!! При этом библиотеки KeyScan.dll и decodecards.dll могут блокироваться антивирусами, ввиду чего необходимо будет добавить исключения и т.п. в их настройки.

Абонемент. Подключение считывателя через COM-порт (RS232) или с использованием утилиты TcpCardReader 

1. Расположение файлов

При настройке взаимодействия ПО "Абонемент" и утилиты TcpCardReader следует обратить внимание на то, что библиотека decodecards.dll используется и в ПО "Абонемент" и в утилите TcpCardReader и настраивается отдельно для Абонемента и для tcpcardreader.

Ниже указаны пути к файлам учавствующим в настройке взаимодействия утилиты TcpCardReader и ПО "Абонемент"

\_UCS\_FITNESS\TcpCardReader

\_UCS\_FITNESS\exe\

TcpCardReader.exe 
TcpCardReader.ini
Decodecards.dll
Decodecards.ini

Abonementmanager.exe
Abonementmanager.ini
Decodecards.dll
Decodecards.ini

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

(Рис.1 Схема получения номера карты)

1.1. Описание файла конфигурации tcpcardreader.ini утилиты TcpCardReader 


AutoStart = 1                                                                             Автоматически стартовать программу после запуска
AutoHide = 1                                                                             Сворачивать программу после запуска
[setup]
COMPORTCOUNT=1                                                               Количество подключений к СОМ портам.
[TCP]
PORT=7760
IP=0.0.0.0                                                                                 TCP порт и адрес сетевого интерфейса, к которому будет производиться подключение клиентов
[READER1]
COMPORT=3
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1      Настройки первого подключения к сом порту. Номер и параметры СОМ порта.
Prefix=;                                                                                      Строка, которая передаётся клиентам перед первым прочтенным символом. В данном примере добавится символ: «точка с запятой»
Postfix=?                                                                                   Строка, которая передаётся клиентам после последнего прочтенного символа. В данном примере добавится символ: «Вопросительный знак»
useDecodeCards=0                                                                  0 - не использовать декодирование decodecards.dll,  1 - использовать декодирование  decodecards.dll
StartTermChars=;                                                                      Используется, если useDecodeCards=1 Признак начала трека для декодирования
FinishTermChars=?#13;#10;#0;                                                Используется, если useDecodeCards=1 Признак конца трека для декодирования
[LOG]
level=30
debuglevel=30                                                                           Уровни логирования. Используются значения от 0 до 30
[TCPCARDREADER]
Prefix=;                                                                                      Строка, которая передаётся клиентам перед первым прочтенным символом. В данном примере «точка с запятой»  появится перед треком карты (что служит указателем начала для decodecards.dll)
Postfix=?                                                                                   Строка, которая передаётся клиентам после последнего прочтенного символа. В данном примере  «Вопросительный знак» появится после трека карты (что служит указателем конца для decodecards.dll)
[READER.1.CODEPARAMS.90]
Prefix=; BarCode
Postfix=?                                                                                   Специализированный префикс и постфикс для карт после декодирования для  считывателя 1 и  код карт Code=90

2. Подключение считывателя карт с использованием утилиты "TCPCardReader"

В этом случае мы можем подключить любое количество считывателей и использовать в различных конфигурациях ПО "Абонемент". Утилита "TcpCardReader" слушает COM-порт и передает полученную из него информацию в указанный TCP-порт для последующей рассылки TCP-клиентам.  При этом важно правильным образом сконфигурировать decodecards.ini на стороне ПО "Абонемент" и на стороне TcpCardReader, чтобы в ПО "Абонемент" передавался корректный трек для привязки к клиенту в качестве идентификатора.

2.1. Пример конфигурирования для карт типа Mifare:

(Рис.2 Получение трека карты)

В Putty при считывании карты получили трек (Рис.2) приводим его к виду: 454786863  (1B1B7F2F):


В случае использования карт типа Mifare используется преобразование из шестнадцатиричного формата в десятичный (из HEX в DEC), а именно: первоначально в треке присутствует число в шестнадцатиричном формате - "1B1B7F2F", которое в десятичном формате имеет вид - "454786863" (данное преобразование можно произвести в калькуляторе MS Windows в режиме "Программист"). Программно данное преобразование реализуется через теги usemask=1 и mask=hhhhhhhh файла decodecards.ini.

 
Параметры настройки tcpcardreader.ini на стороне утилиты TCPCARDREADER:
[application]
AutoStart = 1
AutoHide = 0
[TCP]
PORT=7760
IP=0.0.0.0
[READER1]
COMPORT=1
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?
;Использовать decodecards.dll
useDecodeCards=1
StartTermChars=i
FinishTermChars=?#13;#10;#0;
 
Параметры настройки decodecards.ini на стороне ПО "Абонемент":
[cards]
CardPrefix   =
StaffCardPrefix        = y
RegularCardPrefix = z
PDSCardPrefix   = x
FirstSignEquallyAsLetterA = 0
[cards.Card]
CardDecodeType = mask
mask=hhhhhhhh
bitmask=$7FFFFFFF
code=2
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24

После чего, прикладываем карту к считывателю и проверяем лог работы библиотеки преобразования  "decodecards.log" в папке "C:\...\TcpCardReader\LOG\":

DD.MM.YYYY hh:mm:ss 025835372 1B98> CALL extractcardnoexp_int64: track=fare[1B1B7F2F]  (0004,09) 127,06939 ; term0= , term1= 
DD.MM.YYYY hh:mm:ss 025835387 1B98> CALL extractcardnoex: track=fare[1B1B7F2F]  (0004,09) 127,06939 ; term0= , term1= 
DD.MM.YYYY hh:mm:ss 025835387 1B98> UseMask2: UseMask=1
DD.MM.YYYY hh:mm:ss 025835387 1B98> CALL extractcardnoex2: track=fare[1B1B7F2F]  (0004,09) 127,06939 ; term0= , term1= 
DD.MM.YYYY hh:mm:ss 025835387 1B98> EXIT extractcardnoex2: result=454786863 , cardcode=2 , ExtractWithoutPrefix2=1B1B7F2F]  (0004,09) 127,06939, ci=card2 
DD.MM.YYYY hh:mm:ss 025835387 1B98> EXIT extractcardnoexp_int64: result=454786863 , cardcode=2 
 
 При считывании в окне TcpCardReader.exe видим следующий результат (см. Рис. 3):
 
(Рис.3 Рассылка через TCP-порт полученного номера карты)
 
Параметры настройки abonementmanager.ini на стороне ПО "Абонемент":
[TCPCardReader]
PORT=7760
HOST=127.0.0.1
;Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=1
StartTermChars=;
FinishTermChars=?#13;#10;#0;
 
Параметры настройки decodecards.ini на стороне ПО "Абонемент":
[cards]
CardPrefix   =
StaffCardPrefix        = y
RegularCardPrefix = z
PDSCardPrefix   = x
FirstSignEquallyAsLetterA = 0
[cards.Card]
code=2
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24

В этом случае в ПО "Абонемент" будет передан номер карты (см. Рис.4)454786863

(Рис.4 Таблица "Идентификаторы" в ПО "Абонемент") 

 

2.2. Пример конфигурирования для карт типа Em-Marine:

(Рис.5 Получение трека карты в Putty.exe )

В Putty при считывании карты получили трек следующего вида: "Em-Marine[1900] 242,12358", приводим его к виду "24212358" с помощью файла decodecards.ini и tcpcardreader.ini (выделены учавствующие в преобразовании блоки):

Параметры настройки tcpcardreader.ini на стороне утилиты TcpCardReader:

[application]
AutoStart = 1
AutoHide = 0
[TCP]
PORT=7760
IP=0.0.0.0
[READER1]
COMPORT=6
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?
;Использовать decodecards.dll
useDecodeCards=1
StartTermChars=i
FinishTermChars=?#13;#10;#0;
;Файл логирования треков
TrackLogFile=
ConvertTrackLog=0
IncludeTypeStartTermChar=0
IncludeStartTermChar=0
NeedCheckAndReopenCom=1
 
Параметры настройки decodecards.ini на стороне утилиты TcpCardReader: 
[general]
usemask=1
[mask]
card = ne*   
[cards.Card]
ExcludedPrefix=ne[
code=2
CardDecodeType = MASK
mask=****dddddddd
DecodeTypeEx = 0
 
После чего, считываем магнитную карту и проверяем лог работы библиотеки преобразования  "decodecards.log" в папке "C:\...\TcpCardReader\LOG\":
 
 004708780 151C> CALL extractcardnoex2: track=ne[1900] 242,12358 ; term0= , term1= 
 004708796 151C> EXIT extractcardnoex2: result=24212358 , cardcode=2 , ExtractWithoutPrefix2=1900] 242,12358, ci=card
 
И видим при считывании в окне TcpCardReader.exe следующий результат (см. Рис.6):

(Рис.6 Рассылка через TCP-порт полученного номера карты)

Параметры настройки abonementmanager.ini на стороне ПО "Абонемент":

[TCPCardReader]
PORT=7760
HOST=127.0.0.1
;Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=1
StartTermChars=;
FinishTermChars=?#13;#10;#0;
 
Параметры настройки decodecards.ini на стороне ПО "Абонемент":
[cards]
CardPrefix   =
StaffCardPrefix        = y
RegularCardPrefix = z
PDSCardPrefix   = x
FirstSignEquallyAsLetterA = 0
[cards.Card]
CardDecodeType = mask
mask=dddddddddddddd
code=2
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24

В этом случае в ПО "Абонемент" будет передан номер карты: 24212358.

 

3. Подключение считывателя карт напрямую через COM-порт

В этом случае можно подключить только 1 считыватель который будет занимать COM порт в монопольном режиме. Подключаем считыватель карт, устанавливаем драйвера, в Диспетчере устройств MS Windows мониторим какой порт занят считывателем и указываем его в Putty, после чего проверяем требуемые виды карт на считывателе и смотрим входные данные (треки) в Putty. На основании полученных треков настраиваем decodecards.ini и abonementmanager.ini для передачи преобразованного трека со считывателя в ПО "Абонемент".

3.1. Пример конфигурирования для карт типа MIFARE и Em-Marine

Подносим карту к считывателю, получаем в Putty на COM-порт трек следующего вида:
 
(Рис.7 Получение трека карты в Putty.exe )

Параметры настройки abonementmanager.ini на стороне ПО "Абонемент":

[TCPCardReader]
PORT=7760
HOST=127.0.0.1
;Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=0
StartTermChars=i
FinishTermChars=?#13;#10;#0;
[HARDWARE.READER]
COMPORT = 1
COMPORTPARAMS=baud=9600 parity=n data=8 stop=1
;Если UseTCPCardReader=1, то секция не используется
StartTermChars=i
FinishTermChars=?#13;#10;#0;

Параметры настройки decodecards.ini на стороне ПО "Абонемент":

[general]
usemask=1
TrackResultLog=
[mask]
card = ne*
card2 = fare* 
[cards.Card]
ExcludedPrefix=ne[
code=2
CardDecodeType = MASK
mask=****dddddddd
[cards.Card2]
ExcludedPrefix=fare[
code=2
CardDecodeType = MASK
mask=hhhhhhhh 
 
Запускаем ПО "Абонемент" и прикладываем карту к считывателю, после чего получаем номер карты: 454786863 (для наглядности можно иницировать операцию прикрепления идентификатора к клиенту (см. Рис. 8)):
 
(Рис.8 Прикрепление идентификатора к клиенту в ПО "Абонемент" )

 

Для проверки корректности преобразования смотрим лог-файлы ПО "Абонемент".

В лог-файле библиотеки декодирования decodecards.dll (\...\exe\LOG\[YYYY-MM].log\decodecards'YYYY-MM-DD=HH.logищем записи следующего вида:

DD.MM.YYYY   006115441 1154> CALL extractcardnoexp_int64: track=fare[1B1B7F2F]  (0004,09) 127,06939 ; term0= , term1= 
DD.MM.YYYY   006115441 1154> CALL extractcardnoex: track=fare[1B1B7F2F]  (0004,09) 127,06939 ; term0= , term1= 
DD.MM.YYYY   006115441 1154> UseMask2: UseMask=1
DD.MM.YYYY   006115441 1154> CALL extractcardnoex2: track=fare[1B1B7F2F]  (0004,09) 127,06939 ; term0= , term1= 
DD.MM.YYYY   006115441 1154> EXIT extractcardnoex2: result=454786863 , cardcode=2 , ExtractWithoutPrefix2=1B1B7F2F]  (0004,09) 127,06939, ci=card2 
DD.MM.YYYY   006115441 1154> EXIT extractcardnoexp_int64: result=454786863 , cardcode=2 
 

В лог-файле ПО "Абонемент" (\...\exe\LOG\[YYYY-MM].log\abonementmanager'YYYY-MM-DD=HH.log) ищем записи следующего вида:

DD.MM.YYYY hh:mm:ss 006639589 1154> TMSCReaderThread.Execute :: Success=OK; track2=fare[1B1B7F2F]  (0004,09) 127,06939
DD.MM.YYYY hh:mm:ss 006639589 1154> TMSCReaderThread.Execute Synchronize(threadsyncfunc):: Success=OK; track2=fare[1B1B7F2F]  (0004,09) 127,06939; CardCode=454786863, LastCardCode=454786863
DD.MM.YYYY hh:mm:ss 006639589 10AC> TDM.MakeQuery SQLTEXT=select gi.guest  from guest_identifiers gi  where gi.strvalue=:intvalue and gi.physicaltype=:physicaltype and gi.enabled=1 and gi.folio>0 
DD.MM.YYYY hh:mm:ss 006639589 10AC> TDM.GetFirstValue Parameters: [0]=454786863 , [1]=2
DD.MM.YYYY hh:mm:ss 006639589 10AC> TDM.GetFirstValue RESULT=1005
DD.MM.YYYY hh:mm:ss 006639589 10AC> RunPDS_GetMessage CALL: CardNo=454786863

4. Настройка входа (идентификации) в ПО "Абонемент" с использованием карты сотрудника

Заходим в "Настройки"->"Пользователи"->Выбираем нужного сотрудника и нажимаем кнопку "Прикрепить идентификатор" (см.Рис 9):

(Рис.9 Прикрепление идентификатора к пользователю в ПО "Абонемент" )

Появится окно прикрепления идентификатора, соответственно прикладываем карту сотрудника к считывателю (см. Рис 10,11):

(Рис.10 Прикрепление идентификатора)

(Рис.11 Прикрепление идентификатора)

После прикрепления идентификатора, сотрудник сможет производить вход (идентификацию) в ПО "Абонемент" с использованием своей карты (не вводя логин и пароль).

Подключение Считывателя штрих-кодов к Абонементу

Подключение Считывателя штрих-кодов к Абонементу

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

Если HyperTerminal выдает последовательность  `9785318001000#

  9785318001000 - реальный номер

  ` и # Старт и стоп символы выдаваемые считывателем

 

Настройка  TcpCardReader.ini

[READER1]           Устройство считывания штрих кодов
COMPORT=1 Порт, к которому подключен
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 Характеристики устройства.
Prefix=;BarCode         Префикс идентификатор.
Postfix=? Постфикс
useDecodeCards=0 DecodeCards не используеться
 
 
Настройка abonementmanager.ini
 
[TCPCardReader]  
StartTermChars=;  
FinishTermChars=#13;#10;#35; #35 Это символ #
BarCodePrefix=BarCode Префикс штрих кодов (Prefix в TcpCardReader.ini). Только буквы латинского алфавита и цифры
PrefixMaskForProhibitDecode = BarCode* Маска штрих кодов

 

Рис. 1 Прикрепление БАР кода

 

При быстрой продаже, просканировав товар, он отобразиться в списке:

 

Рис. 2 Продажа товара или услуги

Подключение считывателя ESMART Reader к ПО "Абонемент". Настройка совместной работы считывателей ESMART и IronLogic (Z-2/Matrix-III)

Подключение считывателя ESMART Reader к ПО "Абонемент". Настройка совместной работы считывателей ESMART и IronLogic (Z-2/Matrix-III)

Рис.1 Внешний вид считывателя ESMART Reader
 
Подключаем считыватели, устанавливаем драйвера и открываем COM-порты через PuTTy
 
Рис.2 Треки полученные со считывателей 
 
На считыватель Esmart Reader (в режиме эмуляции COM-порта) пришел трек: 04614912234F80, в свою очередь на считыватель IronLogic Z-2 USB RD-ALL трек той же карты передается в виде: Mifare[12234F80046149] 004,24905  (0144,08).
Видим, что 04614912234F80 получается из 12234F80046149 путем перемены местами 8 начальных и 6 конечных симоволов. Для такой перестановки в утилите decodecards (с версии 1.28) существует параметр "DecodeTypeEx=4".
Произведем настройку TCPCardReader (с использованием утилиты decodecards) таким образом, чтобы идентификаторы прикрепленные с помощью считывателя Esmart Reader совпадали с идентификаторами прикрепленными на IronLogic Z-2 (IronLogic Matrix-III), такая настройка может потребоваться, например, в случае использования на объекте турникетов (на них, как правило, устанавливаются считыватели Matrix-III) и т.п.
 

Настройка на стороне утилиты TCPCardReader (__WORKSTATION/TcpCardReader/)

В утилите TCPCardReader настраиваем 2 считывателя, утилиту decodecards не используем (useDecodeCards=0)
 
Фрагмент файла tcpcardreader.ini:
 
[READER1]
isKBReader=0
COMPORT=25
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?
;Использовать decodecards.dll
useDecodeCards=0
StartTermChars=#10;
FinishTermChars=#13;

[READER2]
COMPORT=19
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?
PrefixAfterFirstSymbol=0
;Использовать decodecards.dll
useDecodeCards=0
StartTermChars=;
FinishTermChars=?#13;#10;#0;
NeedCheckAndReopenCom=1

Настройка на стороне ПО "Абонемент" (__WORKSTATION/exe/)

В ПО "Абонемент", утилита decodecards используется по умолчанию для обработки треков поступающих из TcpCardReader либо через при подключении считывателя напрямую. 
 
Фрагмент файла abonementmanager.ini:
 
[TCPCardReader]
PORT=7760
HOST=127.0.0.1
; Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=1
StartTermChars=;
FinishTermChars=?#13;#10;#0;
 
Фрагмент файла decodecards.ini:
 
[general]
usemask=1
TrackResultLog=

[mask]
card3 = Em-Marine*
card2 = Mifare* 
card = *

[cards.Card]
code=2
CardDecodeType = MASK
mask=hhhhhhhhhhhhhh

[cards.Card2]
ExcludedPrefix=Mifare[
code=2
CardDecodeType = MASK
mask=hhhhhhhhhhhhhh
DecodeTypeEx=4

[cards.Card3]
ExcludedPrefix=Em-Marine[
code=2
CardDecodeType = MASK
mask=****dddddddd

 

Настройка на стороне rKeeper для совпадения получаемых номеров с настройками выше для ПО "Абонемент"

 

Рис.3 Пример настроек устройства в rKeeper7,

в случае работы считывателя в режиме COM

Рис.4 Пример настроек устройства в rKeeper7,

в случае работы считывателя в режиме клавиатуры

 

Примеры настроек устройства в rKeeper7 приведены на рис.3-4

Пример кода и настроек MCR-алгоритма:

Код алгоритма, соответствующий декодированию, описанному выше для Абонемент:

 

function MCR1000689(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;
var
track,trn:string;
begin
  if (DeviceIdent<>951)
  then  Result := False
  else
  begin
     track:=Parameter;
     trn:=Copy(track,7,8)+Copy(track,1,6);
     Parameter:=int64tostr(strtoint64('$'+trn));
     result:=true;
  end;
end;

Рис.6 Пример настроек MCR-алгоритма

 

Считыватель карт em-marine GP20

Reader GP20

Рис.1 Внешний вид считывателя GP 20 с распаянным разъёмом RS232

Данный считыватель характеризуется повышенной дальностью считывания бесконтактных карт Em-Marine (до 20 см, согласно документации).

Такой считыватель можно устанавливать под специальные панели турникетов с подсветкой, через которые не считываются или плохо считываются карты считывателями типа Matrix III RD-ALL. (Например как на турникетах PerCo TTR-08A, TTD-08A)

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

 

Подключение

Считыватель поставляется без каких-либо разъёмов, для большей гибкости подключения. Соответственно, подключение необходимо производить самостоятельно.

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

Serial ASCII (RS232)
Red Power +V
Black Ground 0v
Green Tx Data
Yellow No connection

Т.е. 

Красный - положительный контакт блока питания 
Чёрный  - земля блока питания, а также контакт GND RS232
Зелёный - контакт TX RS232
Желтый  - изолирован

Остальные также должны быть изолированы.

Как подключить считыватель в дополнительный порт контроллера UCS (RJ12) можно узнать в соответствующей статье.

 

Декодирование

Данный считыватель возвращает не чистый трек карты Em-Marine, как считыватели Z2, а возвращает только её преобразованный номер. Пример:

Z2  -  Em-Marine[0500] 185,05453
GP 20  -  0500B9154D

Соответственно, номер карты в обоих случаях будет 18505453

 

С декодированием в gkhostconnect настроенным как:

[cards.Card]
 CardDecodeType = MASK
 MASK=****hhhhhh
 DecodeTypeEx=3
 code=2
Будет работать аналогично тому как работает следующий для Z2 на рабочем месте:
[cards.Card]
 CardDecodeType = LAST8
 code=2

 

 

Абонемент_Lite Фитнес

Сравнительная характеристика функций ПО Абонемент и ПО Абонемент_Lite Фитнес

 

Сравнительная характеристика функций ПО Абонемент и ПО Абонемент_Lite Фитнес

Функционал Абонемент Абонемент_Lite Фитнес
Ведение клиентской базы данных да да
Справочник услуг да да
Справочник абонементов с учетом количества посещений да да
Справочник абонементов с типом «Членство» да да
Справочник абонементов с учетом тарификации да нет
Заморозка абонементов с типом «Членство» да да
Заморозка абонементов без типа «Членство» да нет
Платные заморозки да нет
Расписание действия абонементов да да
Расписание продаж абонементов да нет
Рассрочка платежей за абонемент да нет
Полная оплата абонементов и услуг да да
Регистрация абонементов и услуг без оплаты да нет
Возвраты да да
Депозитная система да да
Работа с подарочными сертификатами да нет
Система скидок да нет
Быстрая продажа да нет
Работа с идентификаторами да да
Деактивация абонементов да да
Редактирование периода действия абонементов да да
Групповые абонементы да нет
Бронирование мероприятий да нет
Отметка посещений в рамках членства да да
Списание персональных тренировок с выбором специалиста да да
Расчет вознаграждения специалистов да нет
Выдача проката да нет
Медицинская карта да нет
Работа с сопровождающими да нет
Шаблоны договоров да да
Отчетность да да
Sms и email рассылка да да
Кассовые функции (X-отчет, Z-отчет, Сверка итогов и т.д.) да да
Настройка функционала для ролей пользователей да нет
Подключение ФР и банковского терминала да да
Подключение считывателей да да
Подключение устройств для контроля доступа (турникеты, калитки, замки и т.д.) да нет
Договорная работа да нет

 

 

Техническая сторона

Абонемент_Lite Фитнес

Рис.1 Внешний вид Абонемент_Lite Фитнес

 
Для пользователя - это веб интерфейс к API Абонемент имеющий лёгкий лаконичный интерфейс содержащий основной функционал необходимый для небольших клубов, представленный на рис.1 (Пользовательская документация доступна по ссылке)
 
Для инженера - это сборка серверной части Абонемент (может ссылаться на другое рабочее место), модуля Connecter, веб-сервера и веб-скриптов. Принципиальная схема взаимодействия модулей Абонемент Lite представлена на рис.2
 

Рис.2 - Принципиальная схема взаимодействия составных частей Абонемент Lite

 

Рис.3 - Выработка лицензии для Абонемент Lite

Установка

Данная документация актуальна для версии Абонемент Lite 1.1 (инсталлятор v1.136.8 от 08.04.2019, соответствует версии 1.136 Абонемент от 4.04.2019).
 
Абонемент Lite поставляется вместе с инсталлятором.
Таким образом, установка Абонемент Lite сводится к последовательному нажатию на кнопку далее с промежуточным выбором требуемых вариантов параметров установки.
Пример процесса установки основного рабочего места с параметрами по умолчанию показан на анимации 1.
 
 
Установка дополнительного рабочего места происходит таким же образом. Но при выборе опции установки "дополнительное рабочее место", не будет установлена серверная часть абонемент (СУБД, сервер блокировок, модуль рассылки).
Также, при установке дополнительного рабочего места Вам обязательно потребуется установить путь к основному рабочему месту - поля "Хост" этапа "Основные параметры". Можно использовать как IP-адрес, так и имя компьютера.
 
 
 
 
 
ВАЖНО!
Установщик не создаёт правила для входящих подключений брендмауэра/антивирусного ПО. В случае подключения второго и последующих рабочих мест, правила на основном рабочем месте должен настроить инженер/системный администратор.

Анимация 1 - Процесс установки Абонемент Lite

 

При установке создаётся структура каталогов в выбранном при установке каталоге, показанная на рис.3. Она аналогична структуре каталогов поставки полной версии Абонемент. (Подробнее про состав поставки)

Рис.3 Структура каталогов установленных инсталлятором

 
 
 
 

Настройка 

 
Настройка оборудования или адресов и портов основного рабочего места в Абонемент Lite происходит с помощью веб конфигуратора, доступного в веб интерфейсе.
При первичном входе в программу используйте учетную запись пользователя с полным доступом логин 1, пароль 1. Добавить новых пользователей можно в Справочнике пользователей.
 
Страница конфигуратора доступна в боковом меню основной страницы модуля, показанного на рис.4, по кнопке "Настройки" -> "Оборудование".

Рис.4 Боковое меню Абонемент Lite

В конфигураторе доступны следующие опции:
 
1.Путь к серверу блокировок Абонемент;
 
2.Путь к БД Абонемент;
 
3.Тип и данные подключения к фискальному регистратору
 
4.Тип используемого банковского терминала;
(требуется соответствующая лицензия 3-8)
 
5.Тип и данные подключения к считывателю;
 
6.Настройки провайдера SMS рассылки.
(требуется соответствующая лицензия 4-10)
 
 
Пример страницы конфигуратора приведён на рис.5
 
 
 
Конфигуратор изменяет настройки Connecter, TCPCardReader и подключаемых к ним библиотек в автоматическом режиме.
 
ВАЖНО!
К моменту настройки всё планируемое к использованию оборудование должно быть подключено и готово к использованию.
 
 
 
 
 
Ручная настройка
Настройку также можно производить вручную, аналогично тому как данные моменты настраиваются для основного модуля Абонемент (Connecter), TCPCardReader и GuestAnnouncer2.
 
ВАЖНО!
Конфигуратор перезапишет все изменения внесённые вручную, если будет запущен после внесения изменений.

Рис.5 - Внешний вид веб-конфигуратора

 
 

Примечания

Работа нескольких рабочих мест с одним основным Установщик не создаёт правила для входящих подключений брендмауэра/антивирусного ПО. В случае подключения второго и последующих рабочих мест, правила на основном рабочем месте должен настроить инженер/системный администратор.
При использовании веб-конфигуратора К моменту настройки всё планируемое к использованию оборудование должно быть подключено и готово к использованию.
При ручной настройке модулей Конфигуратор перезапишет все изменения внесённые вручную, если будет запущен после внесения изменений.
При установке установщиком (v1.136.8 от 08.04.2019) Не удаётся установить службы GA2, если он был выбран при установке (поднимается соответствующая ошибка (отсутствие ibuser.dll)). Требуется установить вручную после перезагрузки.
   

 

Модули

Интеграция ПО Абонемент с мобильным приложением Mobifitness.

Описание

Реализована интеграция системы Абонемент с мобильным приложением компании Mobifitness, которая обеспечивает эффективное ведение бизнес-процессов и улучшает взаимодействие заказчика с их клиентами. Mobifitness - это сервис, благодаря которому каждый фитнес клуб может позволить себе индивидуальное мобильное приложение для IOS и Android, которое полностью брендируется под фирменный стиль клуба и является бесплатным для его посетителей. Сайт https://mobifitness.ru/

Основными возможностями данного решения являются

  • Cамостоятельная регистрация клиента в мобильном приложении
  • Покупка клубного членства или персональной тренировки
  • Запись на индивидуальные и групповые занятия
  • Работа с личным кабинетом
  • Применении заморозки
  • Информация о тренерах и описание тренировок

Технические требования

  • ПО Абонемент версии 136 или выше
  • Статический белый IP-адрес, наличие технического специалиста для настройки проброса отдельного порта API во внешнюю сеть
  • Приобретённая лицензия на модуль Connecter 1.1.
  • Заключенный договор с одним из доступных провайдеров облачной фискализации (для выполнения требований ФЗ 54 в случае, если со стороны мобильного приложения фискализация оплаты не производится)

Установка

Для доступа к БД Абонемент мобильного приложения используется API connecter из поставки Абонемент.

Утилита является посредником между запросами приложения и БД Абонемент, используя соответствующий протокол.

Настройка Connecter производится через connecter.ini, где указываются:

PrivateKey - секретный ключ, его необходимо будет предоставить Mobifitness;

UseUrlEncode = 0

DBConnectCount - количество создаваемых подключений к БД - максимальное количество одновременно обрабатываемых запросов, при недостаточном количестве - при высокой нагрузке клиентов на веб модуль не все запросы смогут быть обработаны, при большом количестве - утилита будет долго инициализироваться и займёт большое количество ресурсов для одновременной работы всех подключений. (Значение по умолчанию - 16, достаточно для не слишком большого наплыва клиентов до 500 в час);

BindingPort - порт, на который будут приниматься запросы от мобильного приложения, должен быть проброшен для доступа извне;

BindingIp - локальный IP на котором будет занят BindingPort, должен быть проброшен для доступа извне приложением;

ListenQueue - длина очереди для обработки запросов;

Настройка на БД Абонемент происходит как и в прочих модулях, в настройке на сервер блокировок дополнительно необходимо указать Project = 1,  Module = 1,

Для использования онлайн-оплаты через приложение, следует настроить дополнительный киоск, на котором всегда будет открыта смена. Прописать в секцию [defaults] в connecter.ini параметр StdKioskCode.

Необходимо завести тип платежа для оплат из мобильного приложения, код платежа необходимо будет передать в Mobifitness.

Если со стороны мобильного приложения фискализация оплаты не производится, то для выполнения требований 54ФЗ, необходимо настроить одно из решений облачной фискализации под Connecter. (Для решений облачной фискализации наличие email или телефона клиента в чеке является обязательным, соответственно, должны быть установлены параметры "Общие параметры" - "Услуги и платежи" - "ФР может отправлять чеки на Email / через SMS")

Настройка пользовательской части

 

1. Общие параметры

 
В мобильном приложении авторизация клиента происходит с помощью номера телефона, который подтягивается из карточки клиента в ПО Абонемент из поля "Тел.1".
В общих параметрах в разделе «Гость» → «Регистрационная карточка» необходимо выставить флаг «Номер телефона должен быть уникальным в Тел.1. и Тел.2».

Рис.1.1.

2. Платеж для мобильного приложения

Для проведения платежных транзакций в мобильном приложении в ПО Абонемент необходимо завести новый фискальный платеж. Код платежа необходимо сообщить разработчикам мобильного приложения.

Рис. 2.1.

3. Киоск

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

Рис.3.1

4. Инструкторы

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

Рис.4.1.

В приложении выглядит таким образом:

Рис.4.2.

Информация о тренере подтягивается из поля «Примечание» из карточки специалиста. Фото выводится из персональных данных из карточки клиента.

Рис.4.3.

В приложении выглядит таким образом:

Рис.4.4.

5.  Запись на персональную тренировку

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

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

Пример: В прайс-листе заведены позиции

- Разовая персональная тренировка 1000р

- Блок персональных тренировок (5 шт.) 4500р

- Разовая персональная тренировка в бассейне 900р

- Блок персональных тренировок в бассейне (5 шт.) 4000р

В ПО «Абонемент» в справочниках в «Категории ресурсов» выполняются следующие настройки:

Рис. 5.1.

При настройке типов абонементов в карточке типа абонемента необходимо выставлять флаг «доступен для интернет-бронирования». В карточке тарифа выбирается тот тип ресурса, который соответствует месту проведения мероприятия.

Рис. 5.2.

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

Здесь в скором вреимени появится screen.

6. Расписание групповых программ

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

Рис. 6.1.

На вкладке «Специалисты» с помощью функции «Автоматическое создание групповых мероприятий» необходимо завести сетку групповых программ на период. При распределении обязательно нужно выбирать «Тип события».

Рис.6.2.

Рис. 6.3.

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

Рис. 6.4.

7. Запись на групповое занятие

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

Важно! При настройке абонементов, которые позволят посещать групповые занятия, следует учесть следующий момент: групповые мероприятия могут быть как бесплатными (доступными в рамках членства), так и платными (доступными в рамках доп. абонемента). Запись на мероприятия происходит на основании доступного ресурса в действующем абонементе клиента. Соответственно, в одном ресурсе могут проводиться и платные, и бесплатные мероприятия. Поэтому если у клиента есть членство, которое позволяет записываться на бесплатные мероприятия в определенном ресурсе, то без дополнительных настроек не получится запретить запись на платное мероприятие в этом же ресурсе. Чтобы ограничить возможность клиента записываться в платное мероприятие, не имея при этом соответствующего абонемента, необходимо настроить связку типов событий и тарифов с помощью свойств объектов.

В справочнике «Свойства объектов» следует добавить новое свойство, которое распространяется на тариф и тип события с двумя значениями.

Рис. 7.1.

Далее в каждом тарифе и типе события необходимо выставить соответствующее свойство объекта.

Рис. 7.2.

Рис. 7 .3.

8.   Клубные членства

Для того чтобы абонемент был доступен для покупки в мобильном приложении, в карточке типа абонемента должен быть выставлен флаг «Доступен для интернет бронирования».

Рис. 8.1.

 

Модуль "Монитор Контролера"

 

________________________________________________________________________________________________________________________________________________________________________________________________

                                                                                               Модуль "Монитор контролера"

________________________________________________________________________________________________________________________________________________________________________________________________

Модуль "Монитор Контролера" используется для удобства контроля доступа посетителей на объект.

IP-камера (к использованию рекомендуется камера AXIS M1011-W (http://support.ucs.ru/ru/node/8757), настраивается в утилите GkHostConnect) установленная на устройстве контроля доступа, в момент прохода фотографирует клиента и передает изображение в модуль "Монитор контролера" (в модуле также отображается фото клиента из БД "Абонемент").

Дистрибутив модуля "Монитор контролера" содержится в базовой поставке ПО "Абонемент": "FullVersionVerXXX\UTILS\Access_Control_Monitor".

Модуль защищен лицензионным ключом: Проект 4 - Модуль 6 (http://support.ucs.ru/ru/node/8922)

!!!Модуль работает с сервером блокировок версии 2.3!!!
!!!Модуль "Монитор контролера" работает с версией gkhostconnect 1.42 и выше!!!

 

Рис.1 Внешний вид интерфейса модуля "Монитор контролера"
 
 
 
Рис.2 Фотография запущенного на ноутбуке (15") модуля "Монитор контролера" 
 
1. Наименование отображаемых полей
 
"Дата-время" Дата и время сообщения 
"ФИО"

Фамилия, Имя, Отчетство клиента из БД "Абонемент"

"Трек" Трек полученный с устройства
"№Карты" Номер карты клиента 
"Сообщение" Сообщение полученное от устройства
"Тип сообщения" Тип сообщения
"Ресурс" Наименование соответствующего ресурса
"№Клиента" Номер клиента из БД "Абонемент"
"Баланс" Баланс клиента из БД "Абонемент"
"Тариф" Тариф из БД "Абонемент"
"Абонемент" Абонемент клиента
"Катег. наим." Наименование категории клиента
"Катег. код" Код категории клиента
"VIP-код" VIP-код клиента, раскрашивается соотв. цветом
"Device" Устройство, от которого пришло сообщение
"Relay" Контроллер, от которого пришло сообщение
 
2. Переключатель "Показывать состояние устройств". Он имеет смысл для проверки состояния соляриев и им подобных одноместных устройств.
По умолчанию отключено - состояние устройств не отображается.
 
Если устройство прохода оборудовано IP-камерой и она подключена, то можно отобразить фотографию с устройства.
Эта камера подключается в локальную сеть сетевым проводом или по Wi-Fi, у нее есть IP адрес и к ней можно обратиться через браузер по URL.
Она всегда включена, в момент прохода ПО "GKHostConnect" делает снимок из потока и передает фотографию в модуль "Монитор контролера".
 
3. Фильтры
 
Выпадающий список "За". Он уточняет условия выбора записей, выбираются только те, которые попадают в интервал:
 - "За последний час" (*)
 - "За последние сутки"
 - "За последние 7 дней"
 - "За последние 30 дней"
 - "За весь период"
___________________________________________________________________________
* - По умолчанию - "За последний час". Чем меньше интервал, тем быстрее отображение
 
Вкладки "Ресурсы" и "Контроллеры"
В фильтрации участвуют условия из той вкладки, которая активна.
В этих вкладках не может быть более чем 50 ресурсов и 50 контроллеров
В файле "Access_Control_Monitor.ini" в секции [filter] параметры
"HostControllersIP" = IP-адреса контроллеров через ";" (3-й и 4-й байты IP-адресов контроллеров).
 
Пример: HostControllersIP=0.77;51.51;32.01;
 
 "DefaultFilterType" - тип фильтрации по умолчанию
 "DefaultFilterType" = 0 - Используется вкладка "Ресурсы"
 "DefaultFilterType" = 1 - Используется вкладка "Контроллеры"
  Если в файле "Access_Control_Monitor.ini" в секции [filter] параметр   "numbers" пустой, то в фильтр добавляются только 50 ресурсов.
 
Системные требования указаны в статье: http://support.ucs.ru/ru/node/8751
 
Пример конфигурационного файла:
[TCPCardReader]
UseTCPCardReader=1

[LOCK.SERVER]
TCPHOST = 127.0.0.1
TCPPort = 1119

[database]
dbname=127.0.0.1/3080:D:\_IBDATA\FITNESS.FDB
dbuser = ucs
DBPassword = oQKH8n0BFUE=

[filter]
numbers=пляж
HostControllersIP=0.77;51.51;32.01;
DefaultFilterType = 0
; DefaultFilterType = 0 - numbers
; DefaultFilterType = 1 - HostControllersIP

[Localization]
CurrentLanguage=default

 

Интеграция ПО «Абонемент» c R-Keeper CRM

 

 

 

 

 

Интеграция ПО «Абонемент» с R-Keeper CRM 

Версии используемого ПО

 R-Keeper CRM 5  Версия 5.9.5.3
 R-Keeper CRM 7  Версия 7.12.7.2
 ПО "Абонемент"  Версия 1.134
 amPDS_CS.dll  Версия 1.7.0.0

Реализуемые функции

Действие в Абонемент

 Результат

 1. В списке гостей проводим карточкой гостя CRM. Поиск гостя.

Если гость в Абонемент с таким PIN не найден, то происходит добавление гостя. Передается фамилия, имя, отчество, дата рождения и текущий код скидки.

Если гость с таким PIN есть, то открывается карточка гостя.

 2. В быстрой продаже нажали на кнопку «ПДС карта»

Произошел запрос в CRM, к заказу применилась скидка, но гость в Абонемент создался обезличенный - *

 3. Передача потрат

Потраты передаются на счет потрат со всех платежей, кроме "Списание с ПДС". Флаг «Бонусы накапливаются во внешней ПДС» значения не имеет.

 4. Передача бонусного процента от платежа

При установленном флаге «Бонусы накапливаются во внешней ПДС» - на депозитный счет зачисляется бонусный процент. Работает для всех типов платежей, включая Списывать с ПДС.

 5. Оплата с депозитного счета ПДС

Оплата любых услуг деньгами с депозитного счета. Списание происходит только с одного депозитного счета.

 6. Пополнение депозиного счета

Заводится специальная услуга «Пополнение PDS» и платеж «Пополнение PDS» фискального (нефискального) типа. В карточке платежа бонусный процент равен 100. Происходит пополнение депозитного счета в CRM. В Абонементе на фолио фиксируется пара услуга и платеж.

Конфигурация

С версии Абонемент 134 поставка необходимого для интеграции находится по пути FullVersionVer134\_INTERFACE\PDS\PDS-CS\ 

В поставку входят amPDS_CS.dll и amPDS_CS.ini

Для подключения к Абонемент, необходимо скопировать данные файлы в папку exe, а также в abonementmanager.ini заполнить секцию [PDS] следующим образом:

[PDS]
RunPDSDllName=amPDS_CS.dll
isMultiPay=1

Далее необходимо заполнить amPDS_CS.ini следующим образом:

[DLL.PDS-CS]
;дисконтная карта может передаваться другому человеку
DefKindCard = 0

GlobalKey = ; вводим уникальный лицензионный глобальный ключ (за ним обращаться в Лицензионный отдел UCS) (*)

LoginUser = Администратор 
LoginPsw = 1

Host = 172.22.3.172 ;адрес компьютера, на котором запущен сервер авторизации карт
Port = 9191 ;порт, который слушает сервер авторизации карт

TerminalID = 13 ;код классификатора ПО

;Код типа счета - деньги, плюс бонусы
PaymentAccountTypeID = 00001

;Код типа счета – потраты, все потраченные в Абонементе деньги 
ServiceAccountTypeID = 00004

;Код типа счета – скидка
DiscountAccountTypeID = 00002  

;Код контакта Телефон 1
Phone1TypeCode=35

;Код контакта Телефон 2
Phone2TypeCode=55

;Код контакта Email
EmailTypeCode=12

* - в R-Keeper CRM 5: короткий ключ, в R-Keeper CRM 7: не требуется.

Все вышеперечисленные типы кодов должны совпадать с типами кодов в R-Keeper CRM.

Передача содержимого чека из Абонемент в CRM

С версий amPDS_CS.dll 1.11.0.2 и Абонемент 1.136 доступна передача содержимого чека в CRM, для возможности последующей настройки акций ориентирующихся на состав чека.

В силу того что в CRM все "Коды" являются строго целочисленными полями, необходимо и в Абонемент привести поле "Код" к целочисленному виду, иначе чеки не будут отправлены в CRM, для предотвращения внутренних ошибок CRM.

Если нет возможности в БД привести коды всех используемых услуг, групп услуг, абонементов, групп абонементов и платежей к целочисленному виду, то можно воспользоваться функционалом подмены кодов, используя следующие секции amPDS_CS.ini

[TranslateCodes.Code]
; Код услуги/абонемента/платежа = код блюда для CRM
@12=12100
USL14=14000
VISA=999
MCARD=998

[TranslateCodes.CategCode]
; Код группы услуг/абонементов = код категории меню для CRM
ONL=775
БАР=777
ЗАЛ=776

Таким образом, даже при не целочисленном коде в Абонемент чек будет успешно передан, с подменой кода согласно настройке.

Если абонемент не принадлежит ни в одной группе, чек также не будет передан. 

Если код группы не целочисленный и для него не настроена подмена, но все остальные условия выполнены, чек будет передан, но группа будет передана с кодом 0.

Рис.1 Пример переданного содержимого чека в CRM7

 

Настройка ПО "Абонемент"

После проверки и настройки файлов, запускаем  ПО «Абонемент».
 
Прежде всего устанавливаем флаг, указывающий, что бонусы у нас будут накапливаться во внешней ПДС. 
 
Настройки - > Общие параметры -> Двойной клик на названии объекта -> Закладка “Скидки”
 
 
Рис.2 Установка флага
 

Создание платежа "Списывать с PDS"

«Настройки-->Услуги и платежи-->Платежи -->Безналичный расчет»
 
Добавляем новую карточку платежа и указываем типа платежа «Списывать с ПДС». Пример – на рисунке 3:
 
 
Рис. 3 Пример настройки новой карточки платежа 

Создание скидки “Скидка PDS”

Создаём новую группу скидок. Например, с кодом PDS и наименованием “Скидка PDS”.
Для вышеуказанной группы создаём состав. 
 
ВНИМАНИЕ!  Необходимо ПРАВИЛЬНО указать КОД.  Его местонахождение описано на рис.5 и рис.6 (всё это находится в R-Keeper CRM)
 
Для созданного состава указываем содержание скидки. Для примера выбираем услугу “Бар” и определяем для неё скидку в 10%. 
 
Рис.4 Добавление группы скидок, её состав и содержание
 
Для определения кода скидки (или заведение его), необходимо зайти в R-Keeper CRM и найти нужный тип счетов (в нашем случае это – 00002, который соответствует DiscountAccountTypeID в PDS_CS.ini )
 
 
Рис.5   Типы счетов в R-Keeper CRM
 
На рисунке видно, что у этого типа счёта – схема “1”. Ищем эту схему и определяем “Код внешний”, который равен 13. Его и используем для указания в “Шаге втором” на рис.3 
 

Рис.6 Схемы в R-Keeper CRM

Создание платежа и услуги “Пополнение PDS” (фискальное и нефискальное)

Помимо списания, можно также производить пополнение счета в R-Keeper CRM.
Для заведения соответствующей услуги отметим флаг «Разрешить начисление услуг с нулевой стоимостью» на вкладке:
 
Настройки - > Общие параметры -> Двойной клик на названии объекта -> Вкладка “Услуги и платежи”
 
 
Рис.7 Вкладка «Услуги и платежи», «Разрешить начисление услуг с нулевой стоимостью»
 
Далее идем в пункт  Настройки - > Платежи и в группе «Наличный расчет» создаем платеж «Пополнение PDS», также установим бонусный процент в размере 100% (для однозначности) и ставим флаг «Фискальный тип».
 
 
Рис.8 Создание платежа «Пополнение PDS»
 
Также создадим (для использования в определенной схеме работы) нефискальный платеж «Нефискальное пополнение PDS» (при использовании данного вида платежа - чек на ФР печататься не будет):
 
 
Рис.9 Создание платежа «Нефискальное пополнение PDS»
 
Далее идем в пункт  Настройки - > Услуги и создаем одноименную услугу «Пополнение PDS» с нулевой стоимостью.
 
 
Рис.10 Создание услуги «Пополнение PDS»

 

Работа в ПО "Абонемент" (в связке с R-Keeper CRM)

Рассмотрим поэтапно несколько случаев использования карты ПДС R-Keeper CRM.
Клиент заведён в R-Keeper CRM, но его нет в Абонементе.
Заходим в “Быструю продажу” и делаем поиск:
 
 
Рис.11 Поиск клиента по карте
 
ПО «Абонемент» не отобразил данные, поэтому заходим в “Список клиентов” и добавляем клиента (и переходим к ситуации, когда есть клиент и в ПО "Абонемент", и в R-Keeper CRM): 
 
 
Рис.12 Добавление информации по клиенту из R-Keeper CRM 
 
Клиента в ПО «Абонемент» мы добавили (из CRM в ПО "Абонемент" передается следующий набор данных: Фамилия, Имя, Отчество, Дата рождения и текущий Код скидки), теперь проверяем и определяем, какая скидка ему положена в R-Keeper CRM. Для этого возвращаемся в “Быструю продажу” и нажимаем на “Поиск по карте” и получаем №ФОЛИО, №Клиента, ФИО. После этого нажимаем на троеточие возле параметра “Скидка по ПДС карте” (на Рис.12 отмечено зелёным кружком) и получаем номер ПДС карты, заведённой в R-Keeper CRM и скидку по этой карте.
 
 
Рис.13. Определение фолио клиента и скидки
 
После этого добавляем услугу (обратите внимание, за пример взята услуга, на которую была заведена скидка – см. рис.4). Затем Вы можете выбрать разные способы оплат, в том числе и списание со счёта R-Keeper CRM.
 
 
Рис.14 Оплата услуг
 
Открываем  Фолио ->Быстрый чек, нажимаем «ПДС-карта», прикладываем карту, выбираем созданную нами услугу «Услуги и товары»->«Пополнение PDS» и в зависимости от размера депозита, вводим его значение и нажимаем кнопку «Цена» (в примере это 1000).
 
 
Рис.15 Реализация услуги «Пополнение PDS»
 
Далее выбираем Тип оплаты: Оплата -> Наличный расчет -> Пополнение PDS и нажимаем кнопку «Оплатить»:
 
 
Рис.16 Продажа с использованием соответствующего типа оплаты
 
 
Рис.17 Окно оплаты
 
После чего, видим в R-Keeper CRM зачиление на счет в размере 1000:
 
 
Рис.18 R-Keeper CRM
 
 
 
 

Конфигурация (устаревшее)

Сначала необходимо настроить и запустить утилиту TcpCardReader в соответствии с имеющимися картами и считывателями.
Далее, необходимо проверить наличие в директории ПО «Абонемент» (например: “C:\_UCS\_FITNESS\exe\” ) следующих файлов:
 
Рис.18 Список файлов для связи с R-Keeper CRM 
 
При написании статьи использовались следующие версии библиотек и ПО "Абонемент":
 
Пример runpds.ini:
[MERGE]
pdscs=PDS_CS.ini
Пример PDS_CS.ini:
[BOOT]
PDS = %exepath%\sdmPDS_CS.dll

[DLL]
PDS = PDS-CS

[DLL.PDS-CS]
;дисконтная карта может передаваться другому человеку
DefKindCard = 0

GlobalKey = ; вводим уникальный лицензионный глобальный ключ (за ним обращаться в Лицензионный отдел UCS) (*)

LoginUser = Администратор 
LoginPsw = 1

Host = 172.22.3.172 ;адрес компьютера, на котором запущен сервер авторизации карт
Port = 9191 ;порт, который слушает сервер авторизации карт

TerminalID = 13 ;код классификатора ПО

;Код типа счета - деньги, плюс бонусы
PaymentAccountTypeID = 00001

;Код типа счета – потраты, все потраченные в Абонементе деньги 
ServiceAccountTypeID = 00004

;Код типа счета – скидка
DiscountAccountTypeID = 00002

* - в R-Keeper CRM 5: короткий ключ, в R-Keeper CRM 7: не требуется.

Все вышеперечисленные типы кодов должны совпадать с типами кодов в R-Keeper CRM.

 

В данном примере используем карты вида "778=12345678=Номер карты"

Пример decodecards.ini:
[general]
usemask=1
TrackResultLog=

[mask]
card2= 778=12345678=*

[cards]
CardPrefix   = 778=12345678=

[cards.Card2]
ExcludedPrefix=778=12345678=
code=2

[cards.RegularCard]
code=22

[cards.StaffCard]
code=21

[cards.PDSCard]
code=24

Интеграция ПО «Абонемент» с ПДС ISD

 

 

 

 

Интеграция ПО «Абонемент» с ПДС ISD 

Версии используемого ПО

 ПО "Абонемент"  Версия 1.138
 amPDS_FC.dll  Версия 1.10.0.5

 

Взаимодействие систем происходит через посредника - утилиту FarCards.

Со стороны ПДС ISD, к FarCards подключается библиотека интеграции специалистами ISD.

Со стороны Абонемент, к FarCards подключаются рабочие места по протоколу RTCP (должен быть настроен в FarCards).

 

Версии ПДС ISD, FarCards и библиотеки интеграции известны специалистам ISD, настраивающим интеграцию.

 

Реализуемые функции

Действие в Абонемент

 Результат

 1. В списке гостей проводим карточкой ПДС ISD. Поиск гостя.

Если гость в Абонемент с таким PIN не найден, то происходит добавление гостя. Передается ФИО и текущий код скидки.

Если гость с таким PIN есть, то открывается карточка гостя.

 2. В быстрой продаже нажали на кнопку «ПДС карта»

Произошел запрос в ПДС ISD, отображены данные о ПДС карте: ФИО, сумма доступных к списанию жетонов, полученный код скидки, к заказу автоматически применилась скидка.

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

 3. Передача потрат

Потраты передаются на счет потрат со всех платежей, кроме "Списание с ПДС". Флаг «Бонусы накапливаются во внешней ПДС» значения не имеет.

 4. Оплата со счета жетонов ПДС ISD 

Оплата любых услуг жетонами ПДС ISD. .

 5. Передача суммы скидки

При оплате любой услуги любым типом платежа, при установленном параметре "Карта ПДС", будет передана сумма скидки применённой к позициям чека.

Вместе с информацией о потраченных средствах, будет передано содержимое чека.

 

Конфигурация

С версии Абонемент 137 поставка необходимого для интеграции находится по пути FullVersionVer137\_INTERFACE\PDS\PDS-FC\ 

В поставку входят amPDS_FC.dll и amPDS_FC.ini

Также для отображения данных из ПДС в формате приведённом в статье, необходимо добавить PDS_auto_ISD.frf и PDS_auto_ISD.ini из архива приложенного к данной статье в папку exe/frf.

Для подключения к Абонемент, необходимо скопировать данные файлы в папку exe, а также в abonementmanager.ini заполнить секцию [PDS] следующим образом:

[PDS]
RunPDSDllName=amPDS_FC.dll

QuickSale_PdsCardInfo_Report=PDS_auto_ISD

Далее необходимо заполнить amPDS_FC.ini следующим образом:

[DLL.PDS-FC]
; Тип настроек интеграции (не изменять)
 ProtocolType=2 
 ; Адрес и порт на котором доступен FarCards по протоколу RTCP, настроенный на ПДС ISD
  Host = 192.168.56.105:2025

 ; ID Кассы, для значения 2 в ПДС ISD будет отображаться как 'RC2'
 UnitID = 2

 ; Передавать содержимое чека (0 - не передавать, 1 - передавать, если возможно)
 IsSendCheck=1

 ; Передавать номер оригинального чека для чеков возврата (для корректного сторнирования в ПДС)
 IsFindRootInvoiceForReturn=1

 ; Указатель, что суммы передаются в копейках
 MoneyDivisor=100

 ; Правила трансляции операций (не изменять!)
[DLL.PDS-FC.TranslateKind]
 0=-1
-0=1
 1=2
-1=5
 2=7
-2=-7
 3=8
-3=-8

 ; Правила трансляции счетов (не изменять!)
[DLL.PDS-FC.TranslateSum]
RESTSUM=0
DISCOUNTSUM=4
BONUSSUM=3
SPENTSUM=2


Передача содержимого чека из Абонемент в ПДС ISD

С версий amPDS_FC.dll 1.10.0.5 и Абонемент 1.138 доступна передача содержимого чека в ПДС ISD. Пример отображения содержимого чека, в отчёте ПДС ISD можно увидеть на рис.1

Рис.1 Отображение содержимого чека в отчёте ПДС ISD

В силу того что в протоколе FarCards все "Коды" являются строго целочисленными полями, необходимо и в Абонемент привести поле "Код" к целочисленному виду, иначе чеки не будут отправлены в в FarCrads, для предотвращения внутренних ошибок ПДС.

Если нет возможности в БД привести коды всех используемых услуг, групп услуг, абонементов, групп абонементов и платежей к целочисленному виду, то можно воспользоваться функционалом подмены кодов, используя следующие секции amPDS_FC.ini

[TranslateCodes.Code]
; Код услуги/абонемента/платежа аналогично коду блюда RK7
@12=12100
USL14=14000
VISA=999
MCARD=998

[TranslateCodes.CategCode]
; Код группы услуг/абонементов аналогично коду категории меню RK7
ONL=775
БАР=777
ЗАЛ=776

Таким образом, даже при не целочисленном коде в Абонемент чек будет успешно передан, с подменой кода согласно настройке.

Если абонемент не принадлежит ни в одной группе, чек также не будет передан. 

Если код группы не целочисленный и для него не настроена подмена, но все остальные условия выполнены, чек будет передан, но группа будет передана с кодом 0.

 

Настройка ПО "Абонемент"

После проверки и настройки файлов, запускаем  ПО «Абонемент».
 
Прежде всего устанавливаем флаг, указывающий, что бонусы у нас будут накапливаться во внешней ПДС. 
 
Настройки - > Общие параметры -> Двойной клик на названии объекта -> Закладка “Скидки”
 
 
Рис. 2 Установка флага
 
 

Создание платежа "Списывать с PDS"

«Настройки-->Услуги и платежи-->Платежи -->Безналичный расчет»
 
Добавляем новую карточку платежа и указываем типа платежа «Списывать с ПДС». Пример – на рисунке 3:
 
 
Рис. 3 Пример настройки новой карточки платежа 
 

Создание скидки “Скидка PDS”

Создаём новую группу скидок. Например, с кодом PDS и наименованием “Скидка PDS”.
Для вышеуказанной группы создаём состав. 
 
ВНИМАНИЕ!  Необходимо ПРАВИЛЬНО указать КОД.  (коды скидок необходимо использовать те же, что заведены в ПДС ISD)
 
Для созданного состава указываем содержание скидки. Для примера выбираем услугу “Бар” и определяем для неё скидку в 10%. 
 
 
Рис.3  Добавление группы скидок, её состав и содержание
 
 

Работа в ПО "Абонемент" (в связке с ПДС ISD)

Рассмотрим поэтапно несколько случаев использования карты ПДС ISD.
Клиент заведён в ПДС ISD, но его нет в Абонементе.
Заходим в “Быструю продажу” и делаем поиск:
 
 

Рис.4 Поиск клиента по карте

 
 
ПО «Абонемент» не отобразил данные, поэтому заходим в “Список клиентов” и добавляем клиента (и переходим к ситуации, когда есть клиент и в ПО "Абонемент", и в ПДС ISD): 
 
 
Рис.5 Добавление информации по клиенту из ПДС ISD 
 
 
Клиента в ПО «Абонемент» мы добавили, теперь проверяем и определяем, какая скидка ему положена согласно ПДС ISD. Для этого возвращаемся в “Быструю продажу” и нажимаем на “Поиск по карте” и получаем №ФОЛИО, №Клиента, ФИО. После этого нажимаем на кнопку "i"  и получаем данные полученные от ПДС ISD по карте, с помощью которой был создан клиент.
 
  
 
Рис.6. Кнопка информации по ПДС карте и окно информации
 
Клиента в Абонемент можно и не создавать. Достаточно в быстрой продаже используя кнопку троеточие в графе ПДС-карта, считать карту. В таком случае, вся необходимая информация в ПДС будет передана, но гость будет создан без привязки к данной ПДС-карте.
 
После этого добавляем услугу (обратите внимание, за пример взята услуга, на которую была заведена скидка – см. рис.4). Затем Вы можете выбрать разные способы оплат, в том числе и списание жетонов со счёта ПДС ISD.
 
 
Рис.7 Оплата услуг
 
 
 
Как Выглядят транзакции переданные из Абонемент в отчёте по движению карты ПДС ISD можно посмотреть на рис.8.

Рис.8 Отчёт ПДС ISD по движению карты

 

ВложениеРазмер
Печатная форма информации по карте3.05 КБ

Интеграция ПО «Абонемент» с ПДС UDS Game

 

 

 

 

 

 

Интеграция ПО «Абонемент» с ПДС UDS Game 

Данный модуль защищён ключом и является платным. Подробнее про лицензирование

Версии используемого ПО

 ПО "Абонемент"  Версия 1.135
amPDS_UDSGame.dll  Версия 1.2.0.8

Реализуемые функции

Работа с данной ПДС в Абонемент напрямую зависит от режима работы магазина, настроенной в UDS Game.

Доступны две опции: "Начислять cashback" и "Применять скидку к счету".

 

Возможности

Начисление cashback по коду из мобильного приложения UDS Game

В интерфейсе быстрой продажи/быстрого чека перед оплатой необходимо осуществить поиск по ПДС-карте (см. рис. 1.1).
                      Рис.1.1
 
 
                                                                        Рис.1.2
 
 

Если рабочее сотрудника оборудовано сканером для считывания QR кодов, то необходимо считать QR код, который формируется в приложении UDS Game на вкладке «скидка» (см. рис. 1.3). Если сканер отсутствует, то необходимо выставить галку «ручной вод номера карты» и в появившемся поле вручную вбить шестизначный код (см. рис.1.4) и нажать «ок».

                          Рис.1.3

 

                                                                        Рис.1.4

После нажатия на кнопку «ок» из UDS Game подтягивается информация о клиенте (ФИО, текущий процент cashback, текущее количество баллов ), которую можно посмотреть по кнопке «i» в поле с номером карты (см. рис.1.5 - 1.6).

                          Рис.1.5
 
 
                                                 Рис.1.6
 
После оплаты данного чека сумма покупки будет передана в UDS Game и также будет начислен cashback согласно правилам магазина.
 
 

Начисление cashback по номеру телефона

В интерфейсе быстрой продажи/быстрого чека перед оплатой необходимо осуществить поиск по ПДС-карте (см. рис. 1.1) и выставить галку «ручной вод номера карты». В появившемся поле необходимо вбить номер телефона в международном формате (Для России – «79991112233»)(см. рис. 2.1.)

                                                                         Рис.2.1

 

Информация о клиенте в данном случае будет недоступна (см. Рис.2.2)

                                                  Рис.2.2

После оплаты данного чека сумма покупки будет передана в UDS Game и также будет начислен cashback согласно правилам магазина.

 

Оплата баллами UDS Game

Оплату баллами можно произвести только с использованием кода UDS Game. После выбора позиций в чеке необходимо на вкладке «оплата» в разделе «безналичный расчет» выбрать тип платежа «Баллами UDS Game» (см. рис.3.1).

                                                                                                    Рис.3.1

При выборе данного способа оплаты поднимается окно для ввода кода UDS Game. Доступная сумма баллов для оплаты ограничивается балансом клиента в UDS Game и также максимальным процентом для списания.

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

 

Применение скидки к чеку

В настройках магазина UDS Game должен быть выставлен способ предоставления скидки - применять скидку по счету. В ПО «Абонемент» действия пользователя аналогичны действиям, описанным в пункте 1. Начисление cashback по коду из мобильного приложения UDS Game.

После оплаты чека сумма покупки будет передана в UDS Game для увеличения суммы потрат клиента.

 

Настройка

Для корректной работы в папке exe должны быть следующие файлы: amPDS_UDSGame.dllamPDS_UdsGame.ini. (Файлы можно найти в поставке 135 версии по пути  \_INTERFACE\PDS\PDS-UdsGame)
А также необходимо настроить следующие ini файлы:
 
 
Пример amPDS_UdsGame.ini:
 
[DLL.PDS-UdsGame]
;API-ключ из кабинета магазина в UDS Game
key_api = QyhBYml-NXMjQEMxXXFOQGNtTm1PcF5KTyR1VUd6RHVHLWVVN22WY4BOMXFrVzppe1g=
DefaultDiscountCode = UDSG

 

Добавить секцию в abonementmanager.ini:

...
[PDS]
RunPDSDllName=amPDS_UdsGame.dll

 

 

Настройка ПО "Абонемент"

После проверки и настройки файлов, запускаем  ПО «Абонемент».
 
Прежде всего устанавливаем флаг, указывающий, что бонусы у нас будут накапливаться во внешней ПДС. 
 
Настройки - > Общие параметры -> Двойной клик на названии объекта -> Закладка “Скидки”
 
 
Рис.4 Установка флага

 

 

Создание платежа "Баллами UDS Game"

«Настройки-->Услуги и платежи-->Платежи -->Безналичный расчет»
 
Добавляем новую карточку платежа и указываем типа платежа «Списывать с ПДС». Пример – на рисунке 5:
 
 
 
Рис. 5 Пример настройки новой карточки платежа 

 

Важно! Если магазин в UDS Game работает в режиме скидки, а не cashback, данный платёж будет отрабатывать некорректно.

 

Создание скидки “Скидка UDS Game”

Создаём новую скидку, с кодом, указанным в udsgame.ini - по умолчанию - "UDSG"
Для вышеуказанной скидки создаём содержание, величина скидки может быть установлена любая, и будет переопределена при получении информации от UDS Game.
 

Рис.6 Добавление скидки

Рис.7 Пример содержания скидки

Важно! Если в чеке будут также применены и другие скидки, информация о транзакции в UDS Game будет распознана не совсем корректно.

(Если на часть позиций скидка не распространилась, то информация будет передана только по позициям, на которые скидка распространяется)

Для считывания QR кода из приложения на кассе, требуется наличие подходящего считывателя 2D кодов, пример подходящего оборудования можно найти в статье.

 

 

 

Настройка (устаревшее)

Для корректной работы в папке exe должны быть следующие файлы: URunPDS.dll, runpds.iniudsgame.dll, udsgame.ini. (Файлы можно найти в поставке 132 версии по пути  \_INTERFACE\PDS\urunpds)
 
Пример runpds.ini:
[LOCK.SERVER]
;Параметры сервера блокировок
TCPHost=192.168.1.1
TCPPort=1119
[Main]
ClientDLL = udsgame.dll

 

Пример udsgame.ini:
[Main]
;API-ключ из кабинета магазина в UDS Game
key_api = QyhBYml-NXMjQEMxXXFOQGNtTm1PcF5KTyR1VUd6RHVHLWVVN22WY4BOMXFrVzppe1g=
;Код применяемой скидки
DefaultDiscountCode = UDSG
;Передавать id кассира, в качестве внешнего идентификатора в UDS Game (с версии Абонемент 133, udsgame.dll версии 1.0.1.55)
enableSendCasher=1

Добавить секцию в abonementmanager.ini:

...
[PDS]
RunPDSDllName=URunPDS.dll

 

Обновления

Абонемент 133

Добавлена возможность передавать кассира в UDS Game

В качестве "внешнего идентификатора" в UDS Game передаётся id пользователя, зарегистрировавшего транзакцию

(Можно посмотреть в настройках -> пользователи)

 

Выгрузка реализации из Абонемент в StoreHouse

Модуль выгрузки из Абонемент в StoreHouse5

 

 

 

Выгрузка данных в SH5 с помощью QUSH

Для выгрузки данных из Абонемент в StoreHouse5 используются утилиты ExportData (Абонемент) и QUSH (SH5). Данный функционал доступен на версиях ПО Абонемент от 130 и выше.

Утилиту ExportData можно найти в поставке Абонемент в папке FullversionVerxxx\util\ExportData\

 

Настройка условий выгрузки.

В файле ExportData.ini указать путь БД Абонемент.
В программе ExportData.exe добавляются условия выгрузки. См. рис.1.

 

Код

уникальный код для данного условия выгрузки. В SH4 не передается.

Наименование

Наименование товарной группы в справочнике товаров SH5

Место реализации

Наименование места реализации См. рис 3

Префикс для элементов

Для SH5 не актуально

Префикс

Для SH5 не актуально

Внешний ID

Для SH5 не актуально

Тип экспорта

Для ПО Абонемент используется тип «Услуги»

Доп. опции экспорта

Задает аналитику выгрузки. Предопределенные варианты.

Включен

Если данный флаг установлен, то условие выгрузки активно.

Выгружать место реализации как группу услуг Для SH5 данный флаг должен быть снят.

 

 

Рис.1

 

Рис.3

Рис.4

 

Тип экспорта «Услуги».

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

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

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

После экспорта данных в SH5, номенклатура и группы услуг ПО Абонемент будут ипортированы в SH5 (рис.6.), корневую группу товаров необходимо выбрать в настройках модуля QUSH на вкладке Справочники. (Рис.7.)

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

Рис.6

Рис.7

Рис.8

 

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

 

В ПО QUSH необходимо создать связку с Абонемент (файл->Связки с "Абонемент"->правая кнопка мыши->создать).
В настройках необходимо выбрать товарную группу на вкладке "Справочники" (рис.8) и настроить связь с БД SH5 и БД Абонемент (рис.9). Прим.: Для подключения QUSH к БД ПО Абонемент необходим провайдер LCPI OLE DB Provider for InterBase [v3] (можно скачать в интернете или взять на нашем ftp в папке /rk7/INSTALL/OTHER/IBProvider/).

 

Рис.9

 

Модуль выгрузки из Абонемент в StoreHouse4(SH4)

 

Для выгрузки данных из Абонемент(Shelter) в StoreHouse4 используются утилиты ExportData (Абонемент) и ImportRK (StoreHouse4).

 

Утилиту ExportData можно найти в поставке Абонемент в папке FullversionVerxxx\util\ExportData\

 

Состав поставки утилиты:

ExportData.exe и ExportData.ini – программа для настройки условий выгрузки.
SHTR.dll и Shelter.ini – копируется с заменой в папку с ImportRK.exe и обеспечивает импорт из БД Абонемент(Shelter).

 

Настройка условий выгрузки.

В файле ExportData.ini указать путь БД Абонемент(Shelter).
В программе ExportData.exe добавляются условия выгрузки. См. рис.1.

 

Код

уникальный код для данного условия выгрузки. В SH4 не передается.

Наименование

Наименование товарной группы в справочнике товаров SH4. Данная товарная группа будет aвтоматически добавлена в группу «Меню ресторана». (Рис 2). Будет создано «Место реализации» с таким названием. См. рис 3

Место реализации

Код места реализации См. рис 3

Префикс для элементов

Префикс для кодов товаров. См.рис 2

Префикс

Префикс группы товаров см.рис 4

Внешний ID

Номер группы товаров. Объединение Префикса и Внешнего ID даст код группы.

ВНИМАНИЕ! Важно чтобы данный ID не пересекался с другими Внешними ID.

Тип экспорта

Возможны 3 варианта: «Услуги», «Номерной фонд», «Номерной фонд и корпуса».

Доп. опции экспорта

Задает аналитику выгрузки. Предопределенные варианты.

Выгружать коррекции Технически есть возможность выгружать коррекции и ПО Абонемент. НО! Мы этого сознательно не делаем и делать не рекомендуем. Причина этого в разной специфики работы ПО Абонемент и ПО SH4. В ПО Абонемент реализация и коррекция могут быть сделаны в совершенно разные смены и даты. Таким образом если в ПО Абонемент пройдет реализация услуги А в дату Д1, а коррекция пройдет датой Д2, но реализации услуги А за дату Д2 не будет, то за дату Д2 реализация выгрузится с отрицательным количеством, что приведет к некорректной работе SH4. Мы рекомендуем не выгружать коррекции из ПО Абонемент в ПО SH4, а пользоваться отчетами и воздействовать на документы расхода в ручном режиме в SH4. Дополнительным мотиватором действовать именно так служит фак, что коррекции могут быть как с отменой списания, так и без, например: гость покупает кофе/чай/бутылку воды, отпивает и жалуется, что напиток горький/соленый/испорчен. Гостю возвращают деньги и услугу, но по факту списание прошло и товар отгружен.

Включен

Если данный флаг установлен, то условие выгрузки активно.

Рис.1

 

Рис.2

 

Рис.3

Рис.4

 

 

Тип экспорта «Услуги».

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

При настройке важно учитывать, что Внешний ID не должен пересекаться с Внешним ID у групп услуг. На рис.5. максимальный внешний ID у групп выгружаемых услуг 101, а Внешний ID - 1000.

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

Рис.5

После экспорта данных в SH4, создана группа верхнего уровня «Реализация услуг» в которой дерево товаров такой же структуры, как и в Абонемент(Shelter). (Рис.6.)

Если в данную смену были реализованы отмеченные услуги, то в StoreHouse4 будет сформирован документ расхода.(рис.7.) 

Рис.6

Рис.7

 

Тип экспорта «Номерной фонд», «Номерной фонд и корпуса».

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

Если делать выгрузку без доп. опций, то каждый выезд из номера дает кол-во «единица», при этом не важно сколько гостей проживало в номере. Если включена доп. опция «Учитывать гостей в заезде». Если она включена, то будет анализироваться кол-во уникальных гостей, проживавших в этом номере. Уникальными считаются гости, на которого заведена регистрационная карта гостя. См. рис 8. При выселении данной заявки в выгрузку попадет кол-во 2. Доп. место учитываться не будет.

Рис.8

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

Рис.9

После успешного экспорта данных в SH4 появится товарная группа, список товаров и документы расхода. См. рис.9

Рис.10

 

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

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

 

В файле Shelter.ini указать путь к базе Абонемент(Shelter). Установить параметры

UseConnectionString=0
UseExportData=1

Запустить ImportRK.exe и выбрать флаг «Меню ресторана» Рис 11. Установить период и нажать Импорт.

Рис.11

ВАЖНО!

Если у группы «Меню ресторана» нет флага, то нужно зайти в настройки импорта и прописать пути к любым папкам. См. рис.12.

Рис.12

 

Выгрузка по киоскам как по отдельным местам реализации

 

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

Данное решение, позволяет разделить выгрузки по киоскам заведённым в Абонемент, и назначить им различные места реализации в StoreHouse.

Для этого, настраивается правила экспорта в  ExportData. Устанавливаются места реализации для данных правил. (Список выгружаемых услуг, в таком случае, может пересекаться)

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

group by 1,2,3,4,5

Необходимо добавить следующий текст:

and IIF(sn(CREATORADDR)>0, CREATORADDR, (select sn(creatoraddr) from folio_contents fc2 where fc2.id=fc.creatorref))=%ID_киоска%

где, %ID_киоска% заменить на ID киоска в Абонемент, реализация через который будет выгружаться в рамках данного правила на данное место реализации в StoreHouse. (Пример подобной настройки приведён на рис.13)

После чего нажать на кнопку "Пересохранить SQL: Реализация"

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

Рис.13

ВАЖНО!!!

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

Механизм мониторинга работоспособности утилит ServMonitor

Механизм мониторинга работоспособности утилит

Описание: 
Данный механизм позволяет отслеживать состояние работы утилит установленных на сервере и позволяет в реальном времени получать e-mail оповещения о их выходе из строя.
В поставке ПО "Абонемент" данная утилита находится в каталоге (начиная с версии 1.133): \FullVersion\UTILS\ServMonitor\
 
Рис.1 Интерфейс утилиты Сервер Монитор
 
Перечень настроек:
 
1. Название файла настроек "ServMonitor.ini"
1.1 Секция [general]
 
Program       = ServMonitor  - название программы
ObjectAddress = Москва       - город
ObjectName    = WorkYYY     - Название объекта  
ObjectPhone   =  
 
1.1.1 Тема письма формируется из сочетаняи параметров "Program\ObjectName"
 
1.2 Секция [database]
 
dbname=127.0.0.1/3080:D:\_WORK\ConnectFB\BD\FITNESS.FDB - путь до базы данных для выполнения SQL запросов
 
1.3 Секция [TIMER]
 
TimerInterval=5000 - интервал проверки
Enabled=1          - "1" - включить  проверку, "0" - отключить проверку    
 
1.4 Секция [SMTP]
 
Host=smtp.yandex.ru  - хост
Port=465             - порт     
 
Username=yyyyy@yandex.ru - адрес от которого отправлять письма
Password=zzzzz           - пароль от адреса 
isPasswordCrypt=1        - "1" - пароль зашифрован через интерфейс программы, "0" - пароль не зашифрован
AddressesTo=v.abrarov@ucs.ru - адрес куда отправлять письма в случае ошибки, можно через запятую.
 
1.5 Секция [Telegram]
 
enabled=0                                              - отправлять ошибки в телеграм бот
token = 472502165:AAEVnd5dcck4ykGHf0ktdqB4GLYojA6TFnI  - бот телеграмма
token_hash=14300a6778d1859ca7f6b71d2009f66e            - код шифрования бота 
Key=123                                                - ключ администратора для парольных операций
LastMsgId=240                                          - последнее обработанное сообщение телеграмма
 
1.6 Секция [TelegramChatList]
 
364979523=1   - список id пользователей, которым необходимо отсылать телеграм сообщения.
 
2. Название файла параметров обработки "ServMonitorData.ini"
 
2.1 Категории монитора:   
 
TCP: Проверка TCP порта по принципу "TELNET". Попытка подключения к порту 5 сек.
HOST - это "Хост", на котором проверяется порт. Локальный: 127.0.0.1
PORT - это "TCP  порт" проверяемый на хосте
SQL: Запрос к базе. Результат запроса Error, ErrorText. Если необходимо что-то отправить, то Error = 1. (Для работы запроса необходимо заполнить секцию database параметр dbname - Пусть до базы данных) 
SQLTEXT - тест SQL запроса 
   
INI: проверка значения в INI файле. 
FileName - путь до ini файла  
Section  - секция файла
Field    - поля
WaitValue- ожидаемое значение
   
APP: проверка запущен ли процесс
FileName - путь до запущенного exe файла    
   
FINDTEXTINFILE: Поиск текста в файле
FINDTEXT - искомый текст
FILEDIR - папка в которой производится поиск. Включая все вложенные каталоги.
MASK - windows маска для поиска файла. По умолчанию *.*
CHARSET_ENCODING - Если "UTF-16", то указывается эта кодировка. В других случаях пусто.
 
Особенности: 
  Данный тип отсылается сообщения с учетом записи в логе.
  Если запись появилась и сообщение отправлено, то следующее сообщение оправится только после появления новой искомой записи.
 
3. Шаблоны отправки "TEMPLATE_TIMER"
 
 Name              - Название. Краткое описание
 Work_HourFrom     - Фильтр по часам. Анализировать с...  По умолчанию "0"
 Work_HourTo       - Фильтр по часам. Анализировать до...  По умолчанию "23"
 Work_DayMonthFrom - Фильтр по дням месяца. Анализировать с...  По умолчанию "1"
 Work_DayMonthTo   - Фильтр по дням месяца. Анализировать до... По умолчанию "31"
 Send_Wait_Success_Min        - ожижать востановления. по умолчанию 0 мин.
 Send_Wait_From_Last_Send_Min - ждать до отправки повторного сообщения. по умолчанию 60 мин.
 
4. После анализа каждой секции фиксируется результат
 
Last_Error - результат анализа
   "0"   - нет ошибок
   ">0"  - есть ошибки
   "-1"  - секция не анализируется. Enabled=0
   "-2"  - секция не анализируется. Согласно фильтрам дат и дней.
   "-10" - технический сбой
Last_ErrorText - текст ошибки    
Last_Success   - Дата и время последней успешной проверки
Last_Send      - Дата и время последней успешной отправки письма
   
5. Добавлена возможность зашифровать пароль
  "Настройки" - "Остановить монитор" - "Зашифровать SMTP пароль"
  
6. Добавлена возможность в интерфейсте усправлять настройками секций
 
1) Реализована возможность запуска как служба
[AppService]
DisplayName = UCS_ServMonitor
ServiceName = UCS_ServMonitor
Description    = Служба монитора процессов UCS приложений
 
2) Запуск с ключами 
-INSTALL   Установка
-UNINSTALL Удаление

Модуль "Управления турникетом"

Описание контроллера

Описание

Контроллер - это техническое устройство для управления оборудованием.

Контроллер имеет:

  • Два реле, контакты которых рассчитаны на коммутацию тока до 3 А и 30 В постоянного тока.
  • Четыре логических ввода. 
    При подключении необходимо соблюдать полярность входных напряжений.
    Напряжение логического нуля должно быть не более 1 В.  Напряжение логической единицы не более 30 В.
  • интерфейс RS232C, для подключения считывателя
  • интерфейс RS232C (RJ12 ), для подключения второго считывателя через переходник
  • интерфейс UART (RJ45), подключения платы расширения
  • интерфейс для управления жидкокристаллическим дисплеем
  • интерфейс Ethernet, для обмена данными с персональным компьютером.
Питание котроллера 12V 0.3А.

Внешний вид и размеры

Контроллер Блок питания

                 

 

 

Контроллер со снятой верхней крышкой

 

 

Контроллер схематически отображены разъемы

Функциональное назначение проводов и разъемов

Основной логический провод

Таблица 1
============ ===== =================================== ==============================================
Питание +12V Питание +12В / 0.3А Питание контроллера
GND Питание +12В / 0.3А
Реле №1 НР 1 Нормально разомкнутый РЕЛЕ1 Провода для формирования разрешающего
сигнала на ВХОД
СК 1 Средний контакт РЕЛЕ1
НЗ 1 Нормально замкнутый контакт РЕЛЕ1
Реле №2 НР 2 Нормально разомкнутый РЕЛЕ2 Провода для формирования разрешающего
сигнала на ВЫХОД
СК 2 Средний контакт РЕЛЕ2
НЗ 2 Нормальный замкнутый РЕЛЕ2
Логический 1 D1+ Вывод "+" логического 1 Провода, фиксирующие факт прохода на "ВХОД".
Работают совместно  с "Логический 2"
D1- Вывод "-" логического 1
Логический 2 D2+ Вывод "+" логического 2 Провода, фиксирующие факт прохода на "ВЫХОД".
Работают совместно  с "Логический 1"
D2- Вывод "-" логического 2
Логический 3 D3+ Вывод "+" логического 3 Не используются в Абонемент
D3- Вывод "-" логического 3
Логический 4 D4+ Вывод "+" логического 4 Не используются в Абонемент
D4- Вывод "-" логического 4

 

Интерфейс UART

Выведен на восьми контактную телефонную розетку типа TJ4-8P8C.
Таблица №2
Изображение Номер разъема
TJ4-8P8C
Назначение вывода
----------------------------------- ------------------------ ------------------------------------------------------------------------------------
1 Вход данных считывателя
2 Общий
3 Выход данных на считыватель
4 Общий
5 +5V
6 Общий
7 +5V
8 Общий

 

Интерфейс RS232C

Выведен на шести-контактную телефонную розетку типа TJ4-6P6C.
С этой розеткой применяется вилка TP-6P6C

Таблица №3
Изображение Номер разъема
TJ4-6P6C
Назначение вывода
------------------------------------- ---------------------- -----------------------------------------------------------------------------------
1 +5V
2 CTS
3 Общий
4 DTR
5 RxD контроллера
6 TxD контроллера

....

Требования к турникетам

Программный комплекс «Абонемент» работает с турникетами PERCo и их аналогами.

Общие технические требования к турникету

  1. Напряжение вход/выход 5-24В
  2. 2 импульсных или потенциальных входа управления.
  3. 2 импульсных выхода. По одному на направление. Один на вход и один на выход.
      Если турникет не сообщает направление прохода, то один импульсный выход.
 

Варианты подключения в зависимости от количества контроллеров и считывателей

  А) Если на один турникет установлен 1 считыватель, подключенный к 1-му контроллеру, то гости и для входа и для выхода прикладывают карточку к одному и тому же считывателю. 
       Рассмотрим случай, когда одновременно с двух сторон к турникету подошли два гостя, соответственно, кто первым провел по считывателю, тот и проходит.
       Данный вариант не рекомендуется к применению, т.к. в этом случае не возможно осуществлять групповой вход/выход (первый человек прикладывает карту и для остальной группы отсутствует возможность прохода, т.к. карту необходимо будет прикладывать на выход и т.д.); 
  Б) Если использовать 2 считывателя (один на вход, другой на выход) то необходимо устанавливать 2 контроллера.
       При одновременном прикладывании идентификаторов к считывателям, гости должны по сигнальной индикации турникета разобраться, кто же из них был первым и куда нужно крутить турникет.
       Рекомендуется к использованию, т.к. есть возможность использовать групповой вход/выход (в данном случае, после того как карту приложил первый член группы, вся остальная группа проходит по этой же карте).
Как правило, внутри турникета помещается только один контроллер. Соответственно, если используется 2 контроллера, то их нужно размещать удаленно от самого турникета.
При выборе турникета, следует обратить внимание на его производителя.
Например, у турникетов PERCo и Praktika оба контроллера можно разместить в "ногу" турникета, а при использовании турникетов Ростов Дон, в силу конструктивных особенностей, контроллеры разместить будет негде и возникнет необходимость его размещения удаленно от турникета.  
 
 
ВНИМАНИЕ! РЕКОМЕНДОВАНО ЧТОБЫ КОЛИЧЕСТВО СЧИТЫВАТЕЛЕЙ БЫЛО РАВНО КОЛЛИЧЕСТВУ КОНТРОЛЛЕРОВ. НА ОДИН СЧИТЫВАТЕЛЬ – ОДИН КОНТРОЛЛЕР. НА ОДИН КОНТРОЛЛЕР – ТОЛЬКО ОДИН СЧИТЫВАТЕЛЬ.
(В некоторых вариантах применения, например при использовнии считывателей с магнитной полосой или штрих-кодом совместно с бесконтактными - к одному контроллеру можно подключить несколько считывателей)
 

Требования к установке турникетов 

  1. В «ногу» турникета должен быть подведен провод для питания турникета от блока питания. Для PERCo-TTR-07.1 или Praktika T-01 это БП 12В 8,5А. К месту установки БП нужно подвести питание 220В;
  2. К месту монтажа контроллеров необходимо провести питание 12В. В случае установки контроллеров в «ногу» турникета, питание 12В снимается с турникета. 
      Дополнительных блоков питания не требуется (PERCo-TTR-07.1 или Praktika T-01 контроллеры возможно убрать в ногу турникета);
  3. К контроллерам управления должна быть подведена Ethernet сеть предприятия. 4 пары па один контроллер;
  4. При подключении блока ручного управления турникета, от места его установки, в «ногу» турникета должен быть подведен провод UTP5 (8 жил);
  5. Рекомендуется сделать резервную подводку кабеля UTP5. Может пригодиться, например, при установке какой-нибудь дополнительной кнопки или для резерва;
  6. К контролеру подключается считыватель. Как правило, считыватель монтируется на сам турникет, а питание берется с контроллера или турникета.
      Если это не так, то между планируемым местом установки контроллера и считывателя, так же должен быть проложен UTP кабель. 4 пары на один считыватель (3 жилы информационные RS232, 2 жилы питание 12В или 5В в зависимости от считывателя).  Рекомендуемое расстояние между контроллером и считывателем не более 9 метров;
  7. Необходимо обеспечить заземление турникета.
 
 
 

Работа с контроллерами - Турникеты

Работа с контроллерами (турникеты)

Турнике́т —  устройство, предназначенное для ограничения прохода людей в случае, когда необходима проверка права входа и выхода для каждого проходящего. Основная задача турникета — создать физическую преграду перед человеком, до его авторизации, которая может осуществляться с помощью механизмов или электронных устройств, или до принятия решения сотрудником, отвечающим за пропуск на территорию. Турникет относится к классу систем контроля и управления доступом (СКУД).

 


 

Краткое описание работы  ПО UCS c турникетом

 

1)      Гость (сотрудник) подходит с идентификатором к турникету

2)      Считывается информация через считыватель и посылается в контроллер

3)      Контроллер посылает информацию на сервер по TCP/IP

4)      На сервере программа GKHOST слушает диапазон адресов контроллеров (172.31.х.х) и считывает информацию по карте. И отправляет информацию в программу GKHostConnect

5)      Программа GKHostConnect

    a)      извлекает из последовательности реальный номер карты

    b)      Обращается в базу «Разрешен ли проход»

    c)      В случае ответа «Проход разрешен» подает команду турникету «Откройся»

    d)      В этот момент турникет открывается на проход, и ожидает прохода в течении 5 секунд (заводские настройки)

    e)      В случае удачного прохода , турникет посылает команду «Я провернулся, гость прошел»

    f)       С этого момента начинается тарификация (в случае прохода гостя). В случае прохода сотрудника, фиксируется лишь факт прохода


 

Общая схема использования турникета, котнроллеров, считывателей, и ПО абонемент

Осуществлять настройку ПО необходимо согласно инструкции "Работа с контроллерами".

 


 

 

Допустимые схемы работы

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

 

 

1. Турникет работает только на вход.

Необходим 1 контроллер и 1 считыватель.

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

либо в ситуации, когда в контроле выхода нет необходимости,

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

2. Турникет работает только на выход.

Необходим 1 контроллер и 1 считыватель.

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

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

3. Турникет используется на вход и выход.

Необходимо 2 контроллера и 2 считывателя.

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

4. Турникет используется в паре с картоприёмником.

Необходимо 2 контроллера и 2 считывателя.

Один контроллер с одним считывателем устанавливается в турникет на вход, один контроллер и один считыватель устанавливается в картоприёмник.

Вариация предыдущей схемы, в которой выход осуществляется после опускания карты в картоприёмник и верификации клиента, как допущенного к выходу.

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

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

Необходимо 3 контроллера и 3 считывателя.

Два контроллера с двумя считывателями устанавливаются в турникет, один контроллер с одним считывателем устанавливается в картоприёмник.

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

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


 

 

 

Общая схема подключения контроллера к турникету

Доступные выводы контроллеров и их назначение 

Более подробное описание контроллеров UCS можно найти в соответствующей статье.

Питание +12V Питание +12В / 0.3А Питание контроллера
GND Питание +12В / 0.3А
Реле №1 НР 1 Нормально разомкнутый РЕЛЕ1 Провода для формирования разрешающего
сигнала на ВХОД
СК 1 Средний контакт РЕЛЕ1
НЗ 1 Нормально замкнутый контакт РЕЛЕ1
Реле №2 НР 2 Нормально разомкнутый РЕЛЕ2 Провода для формирования разрешающего
сигнала на ВЫХОД
СК 2 Средний контакт РЕЛЕ2
НЗ 2 Нормальный замкнутый РЕЛЕ2
Логический 1 D1+ Вывод "+" логического 1 Провода, фиксирующие факт прохода на "ВХОД".
Работают совместно  с "Логический 2"
D1- Вывод "-" логического 1
Логический 2 D2+ Вывод "+" логического 2 Провода, фиксирующие факт прохода на "ВЫХОД".
Работают совместно  с "Логический 1"
D2- Вывод "-" логического 2
Логический 3 D3+ Вывод "+" логического 3 Не используются в Абонемент
D3- Вывод "-" логического 3
Логический 4 D4+ Вывод "+" логического 4 Не используются в Абонемент
D4- Вывод "-" логического 4
 

 

Таким образом, для подключения контроллера к турникету требуется:
  1. Определить управляющий вход на плате турникета разрешающий проход в нужную сторону. Определить требуемый режим работы с данным входом: нормально разомкнутый импульсный, или нормально замкнутый потенциальный.
  2. Определить выход нормальнозамкнутого контакта реле, возвращающего факт прохода в данную сторону, на плате турникета. (Если турникет способен возвращать факт прохода)
  3. Применить прошивку контроллера, соответствующую определённой ранее ситуации. Нормально разомкнутый импульсный случай пункта 1 - gk3_trn_3_0_0_19_9600x2_hex.fw , нормально замкнутый потенциальный случай пункта 1 - gk3_trn_3_0_0_50_progdelay_hex.fw.
  4. Подключить контакты следующим образом, в зависимости от направления прохода и требуемого режима работы с входом на разрешение прохода:

Вход. Импульсный случай

Контакты контроллера

Подключать к

 НР1

 Управляющий вход платы турникета – разрешение прохода

 СК1

 Земля

 НЗ1

 Не используется

 НР2

 Не используется

 СК2

 Не используется

 НЗ2

 Не используется

 D1+

 +12В

 D1-

 Сигнальный выход платы турникета – факт прохода

 D2+

 Не используется

 D2-

 Не используется

Выход. Импульсный случай

Контакты контроллера

Подключать к

 НР1

 Не используется

 СК1

 Не используется

 НЗ1

 Не используется

 НР2

 Управляющий вход платы турникета – разрешение прохода

 СК2

 Земля

 НЗ2

 Не используется

 D1+

 Не используется

 D1-

 Не используется

 D2+

  +12В

 D2-

 Сигнальный выход платы турникета – факт прохода

Вход. Потенциальный случай

Контакты контроллера

Подключать к

 НР1

  Не используется

 СК1

 Земля

 НЗ1

 Управляющий вход платы турникета – разрешение прохода

 НР2

 Не используется

 СК2

 Не используется

 НЗ2

 Не используется

 D1+

  +12В

 D1-

 Сигнальный выход платы турникета – факт прохода

 D2+

 Не используется

 D2-

 Не используется

Выход. Потенциальный случай

Контакты контроллера

Подключать к

 НР1

 Не используется

 СК1

 Не используется

 НЗ1

 Не используется

 НР2

 Не используется

 СК2

 Земля

 НЗ2

 Управляющий вход платы турникета – разрешение прохода

 D1+

 Не используется

 D1-

 Не используется

 D2+

  +12В

 D2-

 Сигнальный выход платы турникета – факт прохода

 

Подключённый одним из представленных образов контроллер остаётся только добавить в gkhostconnect, указав параметры работы с ним. (см.Интерфейс "Абонемент-Турникет" GKhostconnect)

 

Перечень инструкций по подключению определённых турникетов

Данный раздел ещё не завершён.

Подключение контроллеров к турникету типа PERCo-TTR-04.1 (TTR-07.1)

Подключение контроллеров к турникету типа PRACTIKA T-01

Подключение контроллера к группе картоприёмник-турникет (PRACTICA K-01 и PRACTIKA T-01)

Подключение к турникету PERCO TTR-04

Подключение двух контроллеров UCS к турникету типа PERCo-TTR-04.1 (TTR-07.1)

Общая схема подключения, в случае работы на вход и на выход и использования двух контроллеров:

Рис.1 Принципиальная схема подключения контроллеров UCS к турникету типа PERCo-TTR-04.1 (TTR-07.1)


 

Отдельно: Вход, по направлению A

Рис.2 Cхема подключения контроллера и таблица подключения контактов для случая: вход в сторону А.

 

Рис.3 Фотография реального подключения на вход в сторону А.


 

Отдельно: Выход, по направлению В

Рис.4 Cхема подключения контроллера и таблица подключения контактов для случая: выход в сторону В.

 

Рис.5 Фотография реального подключения на выход в сторону В.

 

Подключение двух ИК к турникету типа PRACTIKA T-01

Подключение двух контроллеров UCS к турникету типа PRACTIKA T-01

 

Общая схема подключения, в случае работы на вход и на выход и использования двух контроллеров:

Рис.1 Принципиальная схема подключения контроллеров UCS к турникету типа PRACTIKA T-01

 


 

 

Сводная таблица подключения контактов

 

Рис.2 Таблица подключения контактов на вход в сторону 1

Рис.3 Таблица подключения контактов на выход в сторону 2

 

В таблицах не отражены обязательные перемычки на турникете между: GND (Power) и GND (Access Control system), а также между: GND (16 разъём) и Com (PassOk1) и Com (PassOk2).

Подключение двух ИК к турникету типа Smartec ST-TS100

Подключение двух контроллеров UCS к турникету типа Smartec ST-TS100

 

Общая схема подключения, в случае работы на вход и на выход и использования двух контроллеров:

Рис.1 Принципиальная схема подключения контроллеров UCS к турникету типа Smartec ST-TS100

 

 

Используется прошивка gk3_trn_3_0_0_50_progdelay_hex.fw

В gkhostConnect в настройках контроллеров необходимо указать:

Команда для входа: 05

Команда для выхода: 06


 

 

Сводная таблица подключения контактов

Турникет Контроллеры
K1 НР1  (Контроллер 1)
GND СК1  (Контроллер 1)
K2 НР2  (Контроллер 2)
GND СК2  (Контроллер 2)
   
NO1 D1-   (Контроллер 1)
COM1 GND Блока Питания
NO2 D2-  (Контроллер 2)
COM2 GND Блока Питания
 
Блок питания  
+12 B D1+   (Контроллер 1)
D2+   (Контроллер 2)
+12V    (Контроллер 1+2)
GND GND    (Контроллер 1+2)

 

В таблице не отражено подключения питания на турникет.

Статья подготовлена по документации на турникет, по запросу. Реального подключения сотрудниками UCS не производилось.

Работа с контроллерами

 

Утилиты взаимодействующие с контроллерами

Таблица №1
=============== ======================== ===========================================================
Название

утилиты
Расположение Описание
gk3Host ..\GKHOST Утилита являющаяся посредником между оборудованием и утилитами принимающими решение о проходе
gk3Tools  ..\GKHOST\GK_TOOLS Утилита отправляет воздейтвующиена контроллер команды.
Смена IP  адреса и заливка прошивки
gk3NetMonitor    ..\GKHOST\GK_TOOLS Утилита отображающия список контроллеров в локальной сети

Подключение и настройка

1. Соединяем контроллер со слаботочной сетью (Ethernet) с помощью патч корда по категории В (б/о,о,б/з,с,б/с,з,б/к,к) один конец в разъем Ethernet на контроллере, второй в сетевой свитч
2. Допустим ip адрес компьютера 172.31.32.100
3. Для проверки видимости контроллера, запускаем программу gk3NetMonitor.exe
    В открывшемся окне нажимаем кнопку START. В результате программа должна показать IP адрес контроллеров.
    Данная программа анализирует видимость контроллеров в диапазоне 172.31.X.X 
    Пример: 172.31.32.1  - это и есть адрес нашего контроллера
4. Дальнейшие работы необходимо произвести в утилите gk3Tools.exe

Пример настройки GK3Tools.ini

[log] 
   Name  = gk3Tools.log
   level = 127
   debugLevel =  127 
   stampKind = 4145 
   ByMonthes=0 
   ByDays=0 
   ByHours=0 

[telnet] 
   port = 5556 

[gk3] 
  port = 18252

  ip = 172.31.32.100   
  net = 172.31.0.0

  mask = 255.255.0.0 
  autostart = 1
  autohide = 0
 

Подключение к контроллеру

Все контроллеры в базовой поставке имеют IP адрес 172.31.32.1 
Если контроллеров больше 1 необходимо для каждого контроллера прописывать свой IP адрес. 

Изменение параметров контроллера происходит в программе gk3tools.exe

 

1) Выключить питание контроллера
2) Запускаем программу gk3Tools.exe
     Если сетевая карта сети недоступна или не подключена, то программа выдаст ошибку подключения.
3) Нажмите «START» (порт подключения: 18 252).
     Если при этом возникла ошибка значит программа не может подключиться к локальной сетевой карте по IP адресу,
     указанному в gk3Tools.ini проверте так же параметры mask, net, ip.

[gk3] 
  ip = 172.31.32.100
4) Если ошибок нет, то далее нажимем «SET» (Подключение  к контроллеру с ip: 172.31.32.1 его последние буквы ip адреса (32.1) в 16-й системе счисления это 2001)
     Если IP адрес уже изменен, то необходимо ввести измененный IP адрес (например: 172.31.32.14).
     В этот момент в поле «LOG» НЕ должно появиться строчка "connected with host 172.31.32.1". Так как фактически контроллер не подключен к питанию.
 
5) Включаем питание контроллера
     В этот момент должна появиться строчка "connected with host 172.31.32.1".

6)  Нажимаем «Обновить» (зеленые стрелочки)  
      После этого появится текущий IP адрес контроллера 172.31.32.1

Смена IP адреса контроллера

1) Необходимо выполнить все пункты раздела "Подключение к контроллеру"

2) IP адрес по умолчанию 172.31.32.1 поле GK-adress 2001  (это число 32.1 в 16-й системе считсления) .
     Если необходимо установить IP адрес 172.31.32.14, то GK-adress = 200E (это число 31.14 в 16-й системе считсления) .
     Указываем в поле GK-adress значение 200E
     Нажимаем на «пустую кнопку» после поля GK-adress
     Должен сформироваться IP адрес в поле IP-address
 
3) Нажимаем кнопку «Сохранить»
4) Нажимаем кнопку «Restart» и «Restart AppFW» 
     Необходимо добиться, что бы появилась строчка Disconnected with host.
     
Если строчка не появилась, то повторяем пункт 4, через 10 секунд.

5) Смотрим в gk3NetMonitor.exe существующие ip адреса контроллеров. 

       Если там IP не поменялся, то повторяем операцию смены IP  заново.
 
6) Закрываем программу gk3Tools.exe

Смена прошивки контроллера

1) Необходимо выполнить все пункты раздела "Подключение к контроллеру"
2) Перейти на вкладку "Uploading"
3) Выбрать прошивку, нажав на кнопку "..." (Описание предназначений прошивок см. Таблица №2)
Таблица №2
Название файла прошивки Описание прошивки
gk3_trn_3_0_0_1.fw Турникетная прошивка под PERCO с контролем факта прохода
gk3_gate_3_0_0_11_type1.fw Прошивка гейта Ethernet-RS485
gk3Game.3_0_0_13.fw Старая игровая прошивка (не пишет события на дисплее)
gk3Game.3_0_0_17.fw Старая игровая прошивка (пишет события на дисплее)
gk3_gk_3_0_0_19_star.fw Принтерная прошивка со STAR протоколом
gk3_gk_3_0_0_20_escpos.fw Принтерная прошивка с ESC/POS протоколом
gk3_gk_3_0_0_22_nomotor.fw Прошивка со счетчиком тикетов (без контроля статуса мотора, на одном датчике). Подключение к входу D1: +12v от счетчика к D+; GND от счетчика к D-
gk3_gk_3_0_0_25_teater.fw Прошивка для ticket eater ("тикет итер")
gk3_gk_3_0_0_26_mon.fw Стандартная игровая прошивка с поддержкой мониторинга
gk3_gk_3_0_0_27_ld.fw Прошивка с задержками. Чтобы включить реле на 10 мин, надо послать команду:
< HHDD TOKEN A1 16.6 минут=192
10 минут=160
5 минут=112
70 секунд=32
gk3_gk_3_0_0_30_macip.fw
 
Стандартная игровая прошивка с поддержкой мониторинга и формированием IP по MAC адресу контроллера
gk3_trn_3_0_0_3_com2.fw прошивка на использование com2 (обычная читалка работать не будет)
gk3_trn_3_0_0_4_9600x2.fw прошивка на использование com2 (обычная читалка работать будет паралельно, читалки не различаются)
gk3_trn_3_0_0_19_9600x2_hex.fw прошивка на использование com2 (обычная читалка работать будет паралельно, читалки не различаются), возвращает HEX коды считанных символов
gk3_trn_3_0_0_19_19200x2_hex.fw прошивка на использование com2 (обычная читалка работать будет паралельно, читалки не различаются), возвращает HEX коды считанных символов. Для этой прошивки скорость считывателя должна быть 19200

 

   

3) Нажимаем кнопку «Upload»
     После этого прошивка должна загрузиться в контроллер. И как результат успешного выполнения должно быть сообщение DONE вместо INIT

4) Нажимаем кнопку «Restart» и «Restart AppFW» 

     Необходимо добиться, что бы появилась строчка Disconnected with host.
     
Если строчка не появилась, то повторяем пункт 4, через 10 секунд.
 
5) Закрываем программу gk3Tools.exe

Двери, замки, шлагбаум

Данный раздел посвящен автоматизации электромагнитных замков.

Отличие калитки от турникета

Концептуальными отличиями калитки являются:
  • Открывается и не контролирует количество прошедших клиентов.
  • Не может применяется для тарифицируемых зон.
  • Применяется в качестве формирования преграды для клиентов. В случае прохода человека за кем-либо ещё, это можно интерпретировать как умышленное проникновение на подконтрольный объект.
  • Крайне неудобно использовать для группы клиентов, потому что для каждого клиента калитка должна открыться и закрыться: это снижает пропускную способность, а в случае неправильного использования - искажает статистику.
Концептуальные отличия турникета (рекомендуем):
  • Турникет - это устройство, позволяющее однозначно интерпретировать проход каждого клиента.
  • Применяется для формирования преграды в тарифицируемую зону.
  • Формирует правильную статистику.
  • Позволяет быстро обслуживать группы клиентов.

Требования к электромагнитным замкам.

Требование к электромагнитным замкам.
1. По умолчанию без напряжения питания замок ОТКРЫТ. Работает по размыканию.
2. Напряжение питания 12В Ток не более 1А
3. Открытие двери осуществляется через считывание карты и срабатывание контроллера. Контроллер устанавливается на расстоянии не более 5м от двери и считывателя (в случае двери обычно под потолком). К контроллеру подводится локальная Ethernet сеть предприятия (провод UTP5) И питание 12В 0.3А. От места монтажа контроллера до считывателя также обычно прокладывается провод UTP5 (считыватель к контроллеру подключается по протоколу RS232).
4. Выход через кнопку. Кнопка разрывает электрическую цепь питания замка.
 
Подбор оборудования для установки на обычную дверь средних размеров.
Электромагнитный замок J2000-Lock-MG280
J2000-Lock-MG280 Электромагнитный замок. Напряжение питания 12VDC Ток 380mA Сила удержания 280KG Вес 1,1kg -40 ° С ~ +55 ° Размеры эл. магнита 250*42*25мм 
 
или
 
Электромагнитный замок J2000-Lock-MG180
J2000-Lock-MG180 Электромагнитный замок. Напряжение питания 12VDC Ток 300mA. Сила удержания 180KG Вес 0,6кг Диапазон рабочих температур -40 ° С ~ +55 °. Размер: 170х35х21мм.
 
Уголок для крепления замка в дверной проем
 J2000-Lock-LB-280 L образный уголок для замка J2000-Lock-MG280 
 
Доводчик без фиксации в открытом состоянии J2000-SKD-JC85*
 J2000-SKD-JC85 Дверной доводчик, цвет серебро (для дверей массой до 85 кг), максимальное открывание 180 градусов. Регулировка скорости закрывания и довода. Рычаг в комплекте.
 
Блок питания для замка (контроллера и считывателя)
БП АТ-12/15 Блок питания 12В до1,5 А, стабилизированный, на базе импульсного преобразователя, защита от к-з и перегрузки, Uвх=100-240В, 127х76х60мм От  данного БП питается замок, контроллер и считыватель. 
 
Кнопка на выход
Вариант 1  
SOCA SI-20 (или другая серии SI). Врезная инфракрасная кнопка выхода с подсветкой. Нержавеющая сталь, влагостойкий корпус. Встроенная плата задержки.

 

Время после срабатывания кнопки, на которое открывается дверь настраивается на кнопке.

Вариант 2

 
JSB-Kn-24. Кнопка накладная. Максимальное коммутируемое напряжение 36В. Максимальный коммутируемый ток 2А. 

 

Дверь открыта, пока держат кнопку.

 
 
Также потребуется контроллер и считыватель.
 

Работа с магнитными дверями (шлагбаумом)

 

Работа с магнитными дверями

 

Данный пример предназначен для дверей, которые не имеют своих контроллеров

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

Особенности работы со шлагбаумом.

 

Схема подключения шлагбаума и логика работы в целом аналогична работе с электромагнитным замком. В случае работы шлагбаума через сторонние контроллеры необходимо произвести дополнительный анализ. Шлагбаум/сторонний контроллер должен работать в импульсном режиме на контроллере UCS использовать турникетную прошивку и контакты НР1+СК1.

 
Для подключения конторллера UCS к шлагбаумам, требуется чтобы были соблюдены следующие условия:
  1. Управляющее оборудование шлагбаума должно иметь возможность подключения сторонней системы, приём импульсного сигнала разрешения однократного проезда.
  2. Контроллеры монтируются непосредственно в месте подключения к управляющему оборудованию шлагбаума.
  3. Считыватели бесконтактных карт RS232 (как правило Matrix III RD-ALL) монтируются согласно требованиям считывателя и стандарта. 
       Подведение электропитания для считывателя и канала связи c контроллером по RS232 можно осуществить путём наращивания данных выходов считывателя витой парой.
       Согласно стандартам RS232 - допустимая длина подобного соединения - 10м.
  4. Для питания контроллера (и считывателя, в случае Matrix III RD-ALL) требуется подведение питания 12В в место установки контроллера. Возможно использовать питание управляющего оборудования шлагбаума, если вольтаж соттветствует.
  5. В место установки контроллера должен быть проведён сетевой кабель, для подключения к общей компьютерной сети объекта. 

Логические схемы работы контроллеров с замками

Схемы работы контроллеров с замками

Схема №1.

Задача –  открытие двери.

Необходимо (на каждую дверь): 1 контроллер, 1 считывающее устройство, 1 кнопка.

 

Схема №2.

Задача 1: открытие двери

Необходимо (на каждую дверь): 1 контроллер, 1 считывающее устройство, 1 кнопка.

 

Задача 2: необходимо знать, какие сотрудники пришли на работу (в комплекс).

Необходимо:  На входе в общедоступном месте установить

       А) 1 контроллера, 1 считывающее устройство

            (виртуальный ресурс РАБОТА, 1-ый раз приложил карту – ВХОД,
            2-ой раз приложил карту – ВЫХОД)

       Б) 2 контроллера , 2 считывающих устройства
           + разработка специализированного отчета

          (виртуальный ресурс РАБОТА, приложил карту к 1-ому считывателю – ВХОД (не важно сколько раз прикладывать карту, считается первый раз в этот день); приложил карту ко 2-му считывателю – ВЫХОД (не важно сколько раз приложил карту, считается последний раз в этот день)).

Если прикладываний не было – сотрудник на работу не приходил/не уходил.

 

Схема №3.

Задача – открытие двери + необходимо знать какие сотрудники, через какие двери проходили. (Учитываться так же будет первое прикладывание карты к одному считывателю и последнее прикладывание ко второму считывателю в этот день)

 

Необходимо (на каждую дверь): 2 контроллера, 2 считывающих устройства,
1 кнопка (требования пожарной безопасности)

+разработка специализированного отчета.

 

Интерфейс "Абонемент-Турникет" GKhostconnect

 

Интерфейс "Абонемент-Турникет" - программный комплекс, позволяющий связать аппаратную часть (турникеты, магнитные замки и другие устройства управляемые с помощью контроллеров UCS) и ПО Абонемент, позволяя контролировать доступ клиентов к тем или иным платным зонам объекта.

 

Информация в данной статье актуальна для версий: gkHost.exe - 3.2.0.1 и gkhostconnect.exe - 1.88.0.6 , доступных в версии Абонемент 1.128 в папках \FullVersionVer128\GKHOST\ и \FullVersionVer128\gkhostconnect\ соответственно.

Введение

Комплекс состоит из 2х составляющих:

gkHost - отвечает за сообщение с контроллерами UCS;

gkhostconnect - отвечает за связь с БД Абонемент и исполнение установленной логики контроля доступа к указанным ресурсам.

 

Данные составляющие могут быть разнесены на разные машины. Связь между ними осуществляется в рамках протокола TCP-IP.

Но, как правило, удобно их держать в рамках основного сервера Абонемент.

 

gkHost

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

Программа не имеет графического интерфейса.

Настройки:

gkHost.ini

[log]
;Настройки логирования
  Name = gk3Host.log
  level = 10
  debugLevel = 10
  ByMonthes=1
  ByDays=1
  ByHours=1

[log.protocol]
;Настройки логирования сообщения с контроллерами
  Name  = gk3Host.protocol.log
  level = 10
  debugLevel = 10
  stampKind = 4145
  ByMonthes=1
  ByDays=1
  ByHours=1

[telnet]
;Порт используемый для связи с gkhostconnect
  port = 5556

[gk3]
;Представлены настройки подходящие, для контроллеров настроенных по умолчанию
;IP-адрес, на котором будет работать сервер протокола GK3 - должен совпадать с IP-адресом машины в подсети контроллеров UCS
  ip = 172.31.32.100
;PORT -- порт протокола GK3 
  port = 18251
;NET -- сеть протокола GK3
  net = 172.31.0.0
;MASK -- маска сети протокола GK3
  mask = 255.255.0.0
Для установки процесса службой Windows, достаточно просто запустить прилагаемый install_gkh.bat  от имени администратора.
 
 

gkhostconnect

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

Основные настройки в файле gkhostconnect.ini:

[AppService]
;Настройки службы создаваемой при запуске с ключом -install
;Имя сервиса
DisplayName = UCS Служба GKHOSTConnect
;Внутреннее имя сервиса (одно слово. Только латинские символы и цифры. Начинается с буквы)
ServiceName = UCSGKHOSTConnect
Description = Служба-интерфейс контроля доступа UCSGKHOSTConnect

[Application]
;Скрывать приложение автоматически, если запущено не службой
    AutoHide=0

[log]
;Настройки логирования
name=.\log\gkhostconnect.log
level=30
debuglevel=30
ByMonthes=1
ByDays=1
BYHOURS=1

[LOCK.SERVER]
;настройки на сервер блокировок Абонемент
TCPHOST = 127.0.0.1
TCPPort = 1111

[database]
;Настройки на БД Абонемент
dbname=127.0.0.1/3080:C:\_UCS\_FITNESS\IBDATA\fitness.FDB
dbuser = ucs
DBPassword = oQKH8n0BFUE=

[devices]
;Настройки применяемые для всех устройств
;Тарификацию начинаем после того как турникет провернулся: 
при CheckTurnDirect=0 - считается, что турникет провернулся в ту сторону, в которую была дана команда.  
при CheckTurnDirect=1 - (по умолчанию) дополнительный контроль. Тарификация начинается , только если от турникета получено сообщение, что он провернулся в ту сторону, в которую была дана команда.  
CheckTurnDirect=1
;Время ожидания прохода в секундах (должно быть больше, чем время ожидания в настройках турникета)
TurniquetTimeOut=10
;Обрабатывать все символы в приходящих с контроллеров треках
ToProcessAllCharsInCard=1
; Не обрабатывать следующие треки (CF = 'No Card')
NoProcessedCardsNo=CF

[gkhost]
;настройка связи с gkHost
host=127.0.0.1
port=5556
local=0

ProtocolType=0
CanSendData=1
 
Остальные секции данного ini файла специфические и требуют контроля только при использовании специфического оборудования, и описаны в статьях посвящённых данному оборудованию.
При настройке базового функционала, изменять данные секции не требуется.
 
Для запуска программы в режиме графического интерфейса, запускать её требуется с ключом -desktop.
Для установки программы в качестве службы Windows, требуется запустить её с ключом -install от имени администратора.
 

Основное окно программы:

Рис.1 Основное окно программы gkhostconnect 
 
Как видно на рис.1, основное окно программы содержит 3 основных вкладки:
GKHOST - настройки взаимодействия с gkHost;
Устройства контроля доступа - настройки взаимодействия с контроллерами UCS;
Печатные формы - печатные формы, отрабатывающие при различных событиях.
 
Также внизу окна отображается состояние связи с БД Абонемент и связи с gkHost (Пиктограмма лампочки в строке состояния: лампочка горит - связь установлена, лампочка погашена - связь не установлена).
 

Вкладка GKHOST:

Рис.2 Вкладка GKHOST основного окна gkhostconnect
 
На рис.2 представлена вкладка GKHOST. На данной вкладке, по умолчанию, настроек производить не требуется, если был корректно настроен gkhostconnect.ini 
 

Вкладка Устройства контроля доступа:

Рис.3 Вкладка Устройства контроля доступа
 
 
Вкладка Устройства контроля доступа представлена на рис.3. На данной вкладке происходит основной этап настройки gkhostconnect на конкретные контроллеры и логики контроля доступа к конкретным ресурсам в Абонемент.
Как видно на рис.3:
В левой части окна находится таблица со всеми ресурсами заведёнными в Абонемент;
В центральной части окна находится таблица со всеми контроллерами, которыми будет управлять gkhostconnect;
В правой части окна находятся свойства выбранного контроллера.
 
Соответственно, для внесения нового контроллера в список, требуется:
  • Выбрать ресурс к которому будет привязан данный контроллер в левой части окна.
  • Нажать кнопку "+" в центральной части окна.
  • Далее произвести настройку свойств добавленного контроллера в правой части окна.
  • Сохранить внесённые изменения кнопкой "" или кнопкой "Сохранить".

 

Основные свойства контроллера:

  • device,relay - предпоследняя и последняя цифра IP-адреса контроллера в десятичном формате. (например device=32 и relay=20, для IP=172.31.32.20);
  • Тип устройства - указывает, какое устройство подключено к контроллеру;
  • Направление прохода - направление прохода контроллируемое данным контроллером;
  • Кого пускать - самоговорящее название свойства;
  • Проход группы - разрешён ли групповой проход для одного клиента, если есть таким образом настроенные абонементы.
Из остальных свойств отметим также следующие:
  • Генерировать событие при разрешённом доступе - устанавливается в случае, если устройство подключённое к контроллеру не возвращает факт прохода. В таком случае, проход будет считаться осуществлённым в момент разрешения прохода и человек будет введён в ресурс, независимо от того, прошёл ли он;
  • Команда для входа, Команда для выхода, Команда для входа/выхода - комманды посылаемые на контроллер, для выполнния соответствующих действий. Определяются прошивкой контроллера. (Значения по умолчанию - для импульсного разрешения прохода для прошивки gk3_trn_3_0_0_19_9600x2_hex).
 
Все остальные свойства имеют говорящие названия, и настраиваются согласно схеме обслуживания клиентов.
 

Важно! Декодирование треков карт

Для декодирования треков приходящих со считывателей, подключённых к контроллерам, gkhostconnect использует decodecards.dll, настраиваемый через decodecards.ini .
Так как треки приходящие с контроллеров часто не совпадают в точности с треками получамыми со считывателей на рабочих местах, требуется дополнительно поризвести тестирование и настройку декодирования.
Соответственно, использовать decodecards.ini настроенный под Абонемент или TCPCardReader не получится - декодированные треки будут отличаться от заведённых в Абонемент, и gkhostconnect не сможет найти клиента в БД.

 

Подключение картоприёмника к турникету типа PRACTIKA T-01

 

Подключение картоприёмника к турникету типа PRACTIKA T-01

 

 

                                                    Рис.1 Картоприемник Praktika K-01

 

Схема подключения картоприёмника Praktika K-01 к турникету Praktika T-01:

Рис.2 Принципиальная схема подключения контроллера UCS к группе картоприёмник-турникет

 

На принципиальной схеме (рис.2) представлено подключение использующее следующую логику обслуживания:

Гость опускает карту в картоприёмник, где установлен считыватель, подключённый к контроллеру UCS. Контроллер передаёт номер карты на сервер. Сервер разрешает выход данного человека и передаёт команду на контроллер. Картоприёмник получает команду разрешения приёма карты. После удачного приёма карты, картоприёмник разрешает проворот турникета. Контроллер и картоприёмник получают подтверждение факта прохода гостя.

Важная информация: в качестве считывателя использовался СРЧ-125 (считывает ТОЛЬКО Em-Marine карты). Попытки смонтировать Matrix так, чтобы он стабильно считывал карты не увенчались успехом.

Контроль доступа с помощью биометрии используя ПО PocketKey

В gkhostconnect версии 1.86.0.5 и новее появилась возможность интеграции с ПО PocketKey для контроля биометрии, а именно распознавания лица клиента.

Данный функционал защищается ключом, т.е. для работы необходимо дополнительно к модулю "Интерфейс-турникет" приобрести модуль для работы с биометрией.

1. Типовая логика обслуживания клиента.

  • Клиента регистрируют в системе Абонемент
  • Клиенту в системе Абонемент прикрепляется идентификтаор (бесконтактная карта Mifare)
  • Происходит обучение системы распознавания лицу данного клиента (см п.4)
  • Клиент проходит к турникету на вход и прикладывает карту к считывателю
  • Трек с карты передается в gkhostconnect для анализа доступа
  • В случае разрешенного доступа gkhostconnect Отправляет в систему распознавания id клиента и происходит сверка фото в БД системы распознавания и фото с камеры на турникете
  • В случае совпадения лица турникет открывается на вход
  • При выходе контроль биометрии не осуществляется

2. Установка и настройка

Установку и настройку ПО для распознавания и сохранения биометрических данных устанавливается на компьютер заказчика специалистами PocketKey

В gkhostconnect.ini необходимо в секции [gkhost] прописать следующие настройки:

[gkhost]
host=172.22.3.241
port=8075
local=0
CanSendData=1
ProtocolType = 3

Где:

  • host, port - адрес и порт, на котором работает ПО PocketKey
  • ProtocolType=3 - указывает, что необходимо работать с биометрией

При заведении новых устройств контроля доступа, соответствующих турникетам и картоприёмникам в gkhostconnect требуется в качестве адреса устройства (параметры device, relay) указать id турникета в ПО PoketKey, которые храняться в файле daemon\gataccess_cnf.inc в массиве 'def_terminals'.

В остальном настройка утройств в gkhostconnect схожа с описанной в этой статье.

3. Необходимое оборудование и ПО

  • Модуль "Интерфейс-турникет" + контроль биометрии
  • ПО PocketKey для распознавания.
  • Считыватель бесконтактных карт на рецепции (например IronLogic Z-2 USB)
  • Камера для "обучения" системы на рабочем месте.
  • Турникет (тестирование проходило с турникетом Praktika, совместимые модели необходимо уточнять у PocketKey)
  • Контроллеры со встроенными считывателями PocketKey: по два на турникет.
  • Камера для распознования при входе (модели необходимо уточнять у PocketKey)

 

4. Обучение системы распознавание

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

 

В верхнем меню выбрать "Автообучение" и нажать кнопку "Начать обучение"

После окончания обучения появится форма, в которой необходимо ввести ФИО клиента и ключ. В качестве ключа необходимо ввести id клиента из БД Абонемент.

 

5. Внешний вид стенда (турникет + считыватели PocketKey

Настройка управления турникетами с помощью контроллеров Gantner из ПО Абонемент.

 

 

Настройка управления турникетами с помощью контроллеров Gantner из ПО Абонемент.

Дистрибутив данного модуля доступен для скачивания на дилерском FTP в папке /Abonement/Interface/GantnerConnectSrv.rar

1. Установка ПО Gantner

Необходимо установить:

  • GAT-Direct.Connect, выбираем complete install
  • GAT-ConfigManager, выбираем complete install

Запускаем GAT Direct.Connect Configurator, убеждаемся что служба работает и порт доступен.

 

 

На вкладке Adapters можем изменить порт и пароль, остальные параметры оставляем по умолчанию:

 

Далее запускаем GAT Configuration manager и создаем новый проект, сохраняем и нажимаем Scan Devices. Выбираем все найденные девайсы и нажимаем “ok”.

В настройках девайсов необходимо настроить:

  • Параметры сети (секция Ethernet). Можно настроить статику, либо получать настройки по DHCP.
  • В секции Fingerprint параметр Mode Verification необходимо выбрать Data on Card (если используется верификация по отпечаткам пальцев)
  • Необходимо прописать Site Key (предоставляется поставщиком Gantner)
  • Для терминал считывания и записи на вкладке General необхохимо установить флаг Emergancy Mode.

 

2. Настройка ПО GantnerConnectSrv

  • Для работы данного ПО в ключе защиты должен быть проект 4 модуль 4.
  • Настроить TurnProducer.ini, указать в нем хост и порт, на котором работает gkhostconnect.
  • В config.ini прописать IP, Port на котором работает GAT Direct.Connect Service и указать пароль для подключения к ней (настройки, указанные на вкладке Adapters в GAT Direct.Connect Configurator.
  • В device.csv прописать адреса контроллеров и направления прохода.
  • Проинсталлировать службу GantnerConnectSrv: GantnerConnectSrv.exe /install

 

3. Особенности настройки gkhostconnect

  • В gkhostconnect.ini необходимо установить параметр CanSendData=1 в секции gkhost
  • В decodecards.ini под gkhosstconnect прописать:
    [general]
    usemask=1
     
    [mask]
      card_guest_def = *
     
    [cards.card_guest_def ]
    code=2
  • В случае использования карт mifare classic 1k необходимо в decodecards.ini для считывателя matrix/Z-2 дополнить декодирование следующей строкой:
    DecodeTypeEx=4
 
4. Схема подключения контроллера Gantner к турникету Praktika
 

Где ИП - Источник Питания, а ПТ - Плата Турникета.

 

5. Логическая схема взаимодействия.

  • Считыватель получает трек с карты, верифицирует отпечаток пальца и отправляет трек в Direct.Connect.
  • GantnerConnectSrv получает трек от Direct.Connect и транслирует его в gkhostconnect
  • gkhostconnect анализирует БД и принимает решения о доступе в ресурс
  • GantnerConnectSrv отправляет соответствующую решению gkhostconnect команду в Direct.Connect
  • Direct.Connect транслирует решение на контроллер
  • Контроллер, замыкая реле, отправляет команду "открыть в направлении" на турникет
  • С турникета на контроллер приходит событие проворота (путем срабатывания реле на турникете)
  • Контроллер сообщает о полученном событии в Direct.Connect
  • Direct.Connect сообщает о событии в GantnerConnectSrv, который транслирует его в gkhostconnect
  • gkhostconnect получает событие, создает мероприятие и начинает тарификацию

 

 

6. Подключения считывателя Gantner к ПО Абонемент.

Для подключения считывателя необходимо:

  • Прописать устройство в настройках GantnerConnectSrv (config.ini)
  • В качестве направления прохода прописать "0"
  • Указать TCP порт, в который будут выдаваться треки: TCPCardReaderPort = 7760
  • Указать префикс для трека: TCPCardReaderPrefix = ";"
  • Указать постфикс для трека: TCPCardReaderPostfix = "?"

 

7. Необходимое оборудование

Рецепция:

  • терминал считывания и записи отпечатков пальцев GAT ACCESS 6100F
  • Считыватель IronLogic Z-2 USB или аналогичный

Турникет:

  • Вход: терминал контроля доступа с интегрированной бесконтактной технологией MIFARE GAT ACCESS 6100F + подключенный к нему датчик контроля отпечатков пальцев GAT FR 055
  • Выход: терминал контроля доступа с интегрированной бесконтактной технологией MIFARE GAT ACCESS 6100F

 

8. Типовая логика обслуживания клиента.

  • Клиента регистрируют на рецепции
  • Администратор выбирает в программе пункт "прикрепить идентификатор"
  • Администратор нажимает на терминале считывания и записи отпечатков кнопку "записать", прикладывает карту и просит гостя приложить палец к считывателю
  • Данные об отпечатке пальца записываются на карту,
  • После успешной записи администратор прикладывает карту к считывателю Z-2
  • Гость с данной картой подходит к турникету, чтобы пройти внутрь и прикладывает ее к терминалу контроля доступа
  • Терминал проверяет соответствия отпечатков пальцев гостя тем, что записаны на карте. Если они идентичны, терминал отправляет трек в gkhostconnect
  • Происходит анализ доступа и в случае положительного результата турникет открывается
  • Закончив свое посещение гость приходит к турникету на выход, прикладывает карту к терминалу контроля доступа
  • В случае, если gkhostconnect сообщает о возможности выйти, турникет открывается.

P.S.

В дальнейшем планируется доработка ПО Абонемент для протокольной работы с терминалом считывания и записи отпечатков. Таким образом терминал по умолчанию будет работать в режими считывателя, а при прикреплении идентификатора ПО Абонемент будет отправлять на него команду для перевода в режим записи отпечатков. Это позволит сократить время обслуживания, упростит работу администратора и снизит вероятность человеческой ошибки. Также при такой схеме отпадет необходимость в дополнительном считывателе (Z-2 USB) на рецепции.

Светофор UCS

Светофор UCS в сборе
 
   Предназначен для визуального информирования сотрудника о возможности входа или выхода клиента. В замен турникета. На объекте применяется для возможности выдачи проката и начала тарификации.
     
  Светофор может быть выполнен в двух вариантах:
 
    • Красная лампа по умолчанию горит, при разрешенном доступе сменяется зеленой
    • По умолчанию все лампы выключены, при разрешенном/запрещенном доступе загорается соответствующая
 
  Также возможно подключение звуковой сигнализации для оповещения о запрете доступа.
 
   Состав комплекта:
 
      1. Корпус 1 шт.
      2. Контроллер 2 шт.
      3. Считыватель 2 шт
      4. Лампочки 2 шт. (Красные), 2 шт. (Зеленые)
      5. Блок питания 1 шт.
 
 
Схема подключения
 
Рис. 1: Красная лампа по умолчанию горит, выключается при запрете доступа
 
Рис. 2: Запрет доступа — красная лампа, доступ разрешен — зеленая. По умолчанию обе  выключены.
 
 
Размеры
 
 
 
Нюансы
 
  Используется прошивка двери gk3_trn_3_0_0_50_progdelay_hex.fw.
 
  Параметры:
 
    • При подключении как на рис.1 : вход 05, выход 06, команда при запрете доступа 00
    • При подключении как на рис.2 : вход/выход 05, команда при запрете доступа 06
 
  В модуле турникета стоит галочка «Генерировать событие при разрешенном доступе».
 
  Требования:
 
    1) Ethernet  провода – 2 шт.
    2) Силовой кабель – 2 шт (220В) к блоку питания
    3) Формат карт – Em-Marine, Mifare
 
  Используются считыватели MATRIX-III RD-ALL. При необходимости есть возможность подключения другие RS-232 считывателей для работу с другим типом карт, например с магнитными картами.
 
Примечание
 
  При необходимости устройство может комплектоваться одним считывателем и одним контроллером. При такой комплектации уменьшается и количество светодиодов.
  Таким образом мы сможем контролировать возможность прохода клиента только в одном направлении (когда нет необходимости контролировать выход).
  Подключается аналогично, второй контроллер и считыватель игнорируются, в настройках gkhostconnect в параметрах устройства необходимо установить флаг «немедленно заканчивать мероприятия после прохода».
 
 
Внешний вид
 
1) Общий вид
 
 
2) Вид сверху
 
 
3) Вид сбоку
 
 
 
4) Вид внутри
 
5) Вариант реализации с лампочками вместо светодиодов
 
 

 

Использование Блок-Ридера GameKeeper с Абонемент

Внешний_вид блок-ридера:

Использование

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

 

Логика работы с данным устройством

При входе в каждую платную зону устанавливается данный блок-ридер, к которому подключён Matrix III RD ALL. Каждая платная зона заводится как ресурс. Стоимость посещения каждой зоны фиксированная.

По умолчанию в режиме ожидания на экране отображается "Поднесите  браслет"

Клиент прикладывает карту к считывателю Matrix, на блок-ридере происходит следующее:
• загорается красная лампочка и происходит звуковая индикация (если доступ запрещён). На дисплее блок-ридера появляется информация о балансе клиента и запрете прохода. (По умолчанию - текст ошибки, например - "Guest unknown")
• загорается зеленая лампочка (если доступ разрешён и произведено соответствующее списание). На дисплее блок-ридера появляется информация о балансе клиента и разрешении прохода. (По умолчанию - "Гость: Ф.И.О. гостя   Баланс: баланс гостя")

 

 

Принципиальная схема

Примечание

В данной реализации, встроенный считыватель GameKeeper не используется.

Внутренний вид

 

Необходимые настройки со стороны Абонемент

Тех. часть

Для встроенного контроллера необходимо использовать прошивку gk3_trn_3_0_0_50_progdelay_hex.fw.

Параметры gkhostconnect, для контроллера:

• Команда для входа «05», команда при запрете доступа «06» (если соблюдено подключение к лампам НР1-зелёная, НР2-красная + бипер, иначе наоборот)
• В модуле турникета должны быть проставлены флаги: «Генерировать событие при разрешенном доступе» и «немедленно заканчивать мероприятия после прохода».
• Для изменения текста отображаемого в режиме ожидания измените настройку Приветствие турникета.
• Для изменения отображаемого текста требуется изменить формы AccessDenied.frf, AccessGranted.fr3 и welcome.frf, находящиеся в папке gkhostconnect\frf\

 

Настройки абонемент

Настройка абонемента «1 вход на аттракцион».

В рамках абонемента доступен проход в парк 1 раз.

1. Настройка -> Типы абонементов:

2. Карточка типа абонемента:

3. Карточка тарифа:

4. Карточка услуги:

 

 

Настройка абонемента «5 посещений аттракциона».

В рамках абонемента можно проходить в парк 5 раз.

5. Карточка абонемента:

6. Карточка тарифа:

7. Карточка услуги:

 

Совместимые модели турникетов

Сертификация тех или иных турникетов для работы с ПО Абонемент не требуется.



Ниже приведен список моделей турникетов, которые успешно работают на различных объектах.

Триподы и полуростовые роторные турникеты

  • PERCo-TTR-07.1 - рекомендован для большинства объектов
  • PERCo-T-5
  • PERCo-TTR-04CW/TTR-04.1 - бюджетный вариант
  • PERCo-TTR-08A
  • PERCo-TBC01A/TBC01.1
  • PERCo-RTD-03S - роторный вариант 
  • Praktika T-01
  • Praktika T-02
  • Ростов-Дон к32м
  • Ростов-Дон Т73М1…Т283М1
  • Ростов-Дон Р2М2/3 (Р2М1/3, Р2С/3) (роторные)
  • Ростов-Дон Т9М IP (подключение производится параллельно к встроенному контроллеру sphinx через плату B.M.v3.0 (см.приложенный к статье файл))
  • ОМА-26.461/1
  • Özak - Waist-Height Turnstiles Series

Полноростовые турникеты

  • PerCo серии RTD
  • Ростов-Дон серий ПР1, ПР2
  • Praktika серии Т-10

 

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

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

Рекомендуется выбирать турникеты работающие в импульсном режиме.

ВАЖНО: подключить электронную проходную Perco к ПО Абонемент, используя игровые контроллеры GameKeeper, невозможно.

 

 

ВложениеРазмер
bmv3.0_ucs.txt174 байта

Детские "Клады"

Детский "Клад"

Общее описание

Детский "Клад" представляет собой защитный пластиковый короб с вмонтированными внутрь устройствами и выведенными наружу считывателем и индикатором

Рис. 1

Данное устройство используется с Wi-Fi контроллером UCS, что позволяет использовать его для управления доступом в ресурсы, при этом минимизируя монтажные работы.

Считыватель соединяется по RS-232 протоколу с контроллером и передаёт ему трек поднесённой карты, издавая при этом звуковой сигнал о считывании. Контроллер отправляет информацию в комплекс ПО Абонемент, и ожидает ответа. В случае разрешенного доступа ПО Абонемент начинает тарификацию ресурса, и отправляет на контроллер команду переключения реле, загорается лампа-индикатор, сигнализирующая о разрешённом доступе.

Фотографии внешнего вида устройства

Рис. 2

Рис. 3

Рис. 4

 

Подключение считывателей с интерфейсом Wiegand-26

Подключение считывателей с интерфейсом Wiegand-26

На рынке много считывателей, работающих по протоколу Wiegand-26. Часто такие считыватели используются в качестве встроенных в турникетах и картоприемниках различных производителей, например Perco.

Игровой контроллер UCS, который используется для управления оборудованием, служащего для контроля доступа, поддерживает только интерфейс RS-232. Это создает определенные проблемы, ведь монтаж "не родных" считывателей в турникет или картоприемник зачастую является непростой задачей, а иногда и вовсе невыполнимой в виду конструкционных особенностей конкретных моделей оборудования или нарушает целостность стиля и визуальные качества турникета при монтаже считывателя снаружи.

Во избужание подобных проблем имеется переходник Wiegand->RS-232.

Внешний вид переходника:

Слева (на фото) располагаются клемы, к которым подключается считыватель, согласно маркировке. Справа - разъем DB-9 "мама", который подключается к контроллеру. Есть нюанс, для подключения данного девайся к контроллеру с него необходимо скрутить крепежные гайки.

Ниже приведен пример настройки DecodeCards.ini под gkhostconnect.exe с учетом использования считывателей IronLogic Matrix-III  синтерфейсом RS-232 и встроенных считывателей турникета Perco с интерфейсом Wiegand.

В силу особенностей оборудования и интерфейсов, трек со считывателей приходит в различном формате и к треку, полученному со считывателя Wiegand необходимо применять дополнительное декодирование, а именно DecodeTypeEx=3

[general]
usemask=1
 
[mask]
card_rs=E*
card_wieg=0*
 
[cards.card_rs]
code=2
CardDecodeType=MASK
mask=*****dddddddd
bitmask=$FFFFFFFF
 
[cards.card_wieg]
code=2
CardDecodeType=MASK
mask=dddddddddd
bitmask=$FFFFFFFF
decodetypeex=3
 
 
 
 

Подключения считывателя в дополнительный порт контроллера

Контроллеры производства UCS поддерживают подключение двух считывателей. 
Для подключения считывателя (на примере IronLogic Matrix III RD-ALL) в разъём RJ12 (6P6C), требуется вывод считывателя для подключения по RS232 обжать соответствующим коннектором, как показано на фото:
 
 
Т.е., если смотреть на коннектор со стороны контактов, проводом вниз, провода требуется расположить следующим образом:
 
Назначение Цвет (как правило) Pin коннектора
Gnd Чёрный 3
RxD Синий 5
TxD Жёлтый 6
 
 
Питание для считывателя при таком подключении подаётся отдельно.
 
С другой стороны провода наращиваются в следующем соответствии:
 
черный - черный 
синий - красный
желтый - оранжевый

Использование информационного терминала REA::Touch с Абонемент. Работа по COMINFO

Статья создана на основании задачи 149790.

 

Описание

Рис.1 - Внешний вид информационного терминала

В Абонемент есть возможность интеграции с различным оборудованием работающим по протоколу COMINFO, в частности с информационными терминалами REA::Touch.

 

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

Также поддержана работа с выбором языка отображаемой информации.

 

 

Для работы с данным оборудованием используется модуль gkhostconnect.

 

 

Настройка

Особенности настройки gkhostconnect:

Важно!!!

Адрес устройств COMINFO должен быть двухсимвольным: Device - первый символ адреса;  Relay - второй символ адреса   (Device и Relay - числа от 1 до 9 (0 недопустим))

 

В gkhostconnect.ini необходимо прописать (для протокола версии 2):

[gkhost]
; Адрес и порт сообщения с сервером COMINFO
host=127.0.0.1
port=7760

CanSendData=1

; Протокол ComInfo
ProtocolType=2

[FRF]
; Печатная форма для вывода на инфотерминале
ShortInfoTerminal=ShortInfoTerminal

 

Форма для вывода данных ShortInfoTerminal выводящая данные о балансе, времени входа и текущей продолжительности посещения, работающая с несколькими языками в приложении к статье.

Работа с несколькими языками поддержана с версии gkhostconnect - 1.93

 

Настройка устройства в gkhostconnect:

Рис.2 Пример настройки устройства в gkhostconnect

Выбирается ресурс внутри которого находится терминал.

Указывается адрес устройства, как описано выше.

Выбирается тип устройства - инфотерминал.

 

 

ВложениеРазмер
shortinfoterminal_cominfo.rar2.07 КБ

Использование оптических датчиков Autonics серии BJ с контроллерами UCS для получения факта прохода

 

Рис.1 Датчики Autonics BJ10M-TDT 

Назначение

 

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

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

 

Данное решение предлагается к использованию совместно с модулем "Монитор контроллера".

В таком случае, схема работы будет следующей:

  • Приветствие клиента.
  • Просьба приложить идентификатор к считывателю.
  • На мониторе контроллёра отображается ФИО клиента, разрешён ли проход, и прочие данные, доступные к отображению в мониторе контроллёра.
  • Работник сообщает клиенту, что он может пройти, или сообщает причину отказа, указанную в мониторе контроллёра.
  • Клиент проходит черерз рамку/корридор, в котором установленны датчики.
  • Фиксируется факт прохода клиента.

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

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

 

Также, к контроллеру можно присоединить зелёную лампу для визуального информирования клиента, что проход разрешён. В таком случае, на СК1 подаётся питание, НР1 замыкается на лампу, выход с лампы подключается на землю блока питания.

На контроллер устанавливается прошивка  gk3_trn_3_0_0_50_progdelay_hex.fw  , а команда для входа в настройках gkhostconnect для контроллера устанавливается "2B" (продолжительность включения лампы будет 10 секунд).

 

 

Подключение

 

В целом, подключение датчиков данной модели довольно тривиально.

Рис.2 Принципиальное подключение датчиков Autonics серии BJ к контроллеру UCS.

Т.е. на передающий и принимающий модули подаётся питание с БП от 12В до 24В, на сигнальный провод принимающего модуля замыкается на D1- контроллера, на D1+ подаётся 12В того же блока питания. (Рис.2)

Такое подключение подходит для прошивок: gk3_trn_3_0_0_19_9600x2_hex.fw, gk3_trn_3_0_0_19_19200x2_hex.fw, gk3_trn_3_0_0_50_progdelay_hex.fw.

Управление релейным блоком UCS

 

В возможности ПО Абонемент входит управление светом и прочими электроприборами.

Управление ориентируется на мероприятия создаваемые в ПО Абонемент.

Данное решение позволяет решить ряд задач по автоматизации, для объектов любой направленности.

 

Для управления устройствами используются релейные блоки "PoolJet V4" на 8 устройств. Внешний вид релейного блока представлен на рис.1.

Подробнее про релейный блок можно прочитать тут.

Рис.1 - Внешний вид релейного блока в работе

 

Общая схема работы

Рис.2 - Общая схема работы

 

Ниже рассмотрен комплексный пример автоматизации, с более чем одним управляемым прибором на один ресурс. В большинстве случаев, достаточно и более простого варианта (1 ресурс - 1 устройство), также рассмотренного в рамках примера.

 

 

Пример использования

В сауне на релейный блок скоммутированы освещение и печь.

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

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

 

 

Настройка релейного блока

 

Релейные блоки поставляются с предзагруженной прошивкой.

Адрес релейного блока по умолчанию, как и у контроллеров UCS - 172.31.32.1.

Смена IP-адреса производится в точности согласно инструкции для контролеров.

 

 

Настройка связи ПО и релейного болка

 

AbonHost

Для связи с релейными блоками используется утилита AbonHost. Доступна в поставке по пути  Fullversion\_UTILS\_TURN\AbonHost 

Данная утилита служит ретранслятором комманд от ПО к релейным блокам.

Содержание AbonHost.ini

[tcpserver]
IP=0.0.0.0      - подсеть IP адресов с которых получать команды  для отправки на релейный блок. Если 0.0.0.0, то с любых
Port=5561      - порт по которому обращаются сторонние приложения для отправки команд

[Devices]
DeviceIP=172.31.0.0        - IP подсеть для релейных блоков
DevicePort=18251           - Порт для отправки команд на релейный блок (изменять нельзя)

 

Данная утилита считается серверной, утилиту можно запускать с помощью утилиты Starter.

ВАЖНО!

Компьютер на котором разворачивается AbonHost, должен, как и в случае с GKHOST и контроллерами UCS, существовать в одной подсети с релейными блоками.

 

shelter2gkhub

Набор библиотек, утилиты настройки и тестовой утилиты управления релейным блоком. Сборка доступна по пути Fullversion\_UTILS\_TURN\shelter2gkhub

Состав поставки:

  • Shelter2gkHub.dll - подключаемая библиотека для модулей Абонемент;
  • Installer.exe - настроечная утилита;
  • Shelter2gkHub.ini - файл настроек библиотеки;
  • ShGkHubCtrl.ini - файл настроек на сервер и релейные блоки;
  • TestDLL.exe - тестовая утилита.

 

Первоначально, поставку можно развернуть в отдельной папке.

Для настройки, запускается утилита Installer.exe.

Внешний вид утилиты изображён на рис.3.

Рис.3 - внешний вид утилиты Installer

Требуется произвести следующие настройки - настройку на сервер в разделе gkHub Server. Вводится IP-адрес компьютера, на котором развёрнута утилита AbonHost, и порт указанный при настройке утилиты.

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

Для этого, в секции Light используется кнопка Add. Пример поднимаемого окна приведён на рис.4.

Рис.4 - окно добавления реле

В данном окне доступны параметры:

  • ID - идентификатор реле (позже используется при настройке в Абонемент) (Должны быть уникальны)
  • Hub - 3е число IP-адреса релейного блока в шестнадцатиричном формате (Пример IP-172.31.32.200 - 3е число = 32 - значение для записи в параметр = 20)
  • Device - 4е число IP-адреса релейного блока в шестнадцатиричном формате (Пример IP-172.31.32.200 - 4е число = 200 - значение для записи в параметр = C8)
  • Relay number - номер реле релейного блока (реле блока нумеруются с 1, здесь же нумерация идёт с 0, т.е. доступные для настройки номера 0..7)

При нажатии на кнопку Оk - происходит добавление реле релейного блока.

 

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

 

Для проверки настроенных параметров, можно использовать утилиту TestDLL.exe. Её внешний вид представлен на рис.5.

Рис.5 - внешний вид утилиты TestDLL

В поле ID необходимо вписать ID реле, назначенный при создании в Installer.

Если на предыдущих шагах всё настроено корректно, утилита AbonHost настроена и запущена, то при нажатии кнопки bLightON соотетствующее реле замкнётся, при нажатии bLightOFF соотетствующее реле разомкнётся.

 

Для корректной работы с релейными блоками из ПО Абонемент, настроенную связку Shelter2gkHub.dll, Shelter2gkHub.ini, ShGkHubCtrl.ini необходимо подложить:

Для работы в автоматическом режиме - в папку EventService, для работы в ручном режиме в папку EXE.

 

 

Настройка ПО Абонемент

 

Срабатывание релейных блоков строго привязано к началу и окончанию мероприятий. 

 

Для привязки реле к ресурсу, достаточно в карточке ресурса в поле "Номер устройства управления светом" прописать ID данного реле указанный при настройке в  Installer.

Пример изображён на рис.6.

Рис.6 - Пример настройки карточки ресурса, с указанным ID реле

Это вариант включения при старте мероприятия. В приведённом в начале примере, это управление светом в сауне.

 

При такой настройке, если в папку exe добавлена настроенная сборка shelter2gkhub, тогда при начале мероприятия через карточку мероприятия в основном модуле Абонемент, будет замкнуто реле с ID 778, при окончании мероприятия реле будет разомкнуто, независимо от тарифа в рамках которого производится мероприятие.

Если мероприятия начинаются автоматически с помощью EventService и в папку добавлена настроенная сборка shelter2gkhub, то при начале и окончании мероприятия сервисом, также будет отправлена команда на реле, независимо от тарифа в рамках которого производится мероприятие.

 

II этап решения представленной задачи - включение печки сауны за 30 минут до начала мероприятия.

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

 

Для этого, требуется создать новую категорию ресурсов, с типом "Приборы и устройства". 

После чего, в данной категории необходимо создать тип ресурса и ресурс. В карточке ресурса указать ID реле, управляющего печкой, указать ресурс владелец - "Сауна", настроенный по инструкции выше.

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

Рис.7 - Пример настроек ресурса для заблаговременного включения устройств

Следующим этапом необходимо настроить свойство объекта, в соответствующем справочнике.

Свойство объекта может быть произвольным, должно быть определено для тарифов и ресурсов, должно иметь хотя бы одно значение. Рекомендуется использовать только строковые значения.

Пример корректно заведённого свойства показан на рис.8.

Рис.8 - Пример настроек свойства объекта

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

Для этого, в карточке ресурса, переходим на вкладку свойства, И в заведённом на предыдущем шаге свойстве выставляем единственное определённое значение. Пример показан на рисунке 9.

Рис.9 - Настройка свойства карточки ресурса

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

Рис.10 - Настройка карточки тарифа

На этом настройки со стороны логики Абонемент завершены.

 

EventsService

Чтобы данный функционал отрабатывал, необходимо, чтобы данные мероприятия начинались только сервисом EventsService. Подробнее про EventsService.

Если EventsService уже настроен на начало и окончание мероприятий в данном ресурсе, и в папку добавлена настроенная сборка shelter2gkhub, остаётся только установить в eventservice.ini параметр  TurnONTheDeviceMinutesTimeBefore=  назначив ему значение - количество минут для заблаговременного включения устройств, заведённых согласно описанным выше настройкам. Для рассматриваемого примера устанавливаем значение =30

 

 

Таким образом:

  • EventService будет включать свет в ресурсе при начале мероприятия, независимо от тарифа;
  • EventService будет включать печь за 30 минут до начала мероприятий проводимых в рамках определённых тарифов;
  • EventService будет выключать свет и печь при завершении мероприятия;
  • Администратор сможет включить свет из основного модуля Абонемент, стартуя мероприятие вручную, и выключить завершив мероприятие.

Отчеты

Запуск модуля отчетов Абонемент происходит через файл ...\Abonement\REPORT\FReport.exe. Путь к базе данных и серверу блокировок осуществляется в файле fReport.INI.

Каждый отчет состоит из двух файлов:

  • Информационный файл отчета имеет расширение *.srf . Находится в папке REPORT\PLUG\
  • Файл самого отчета в формате имеет расширение *.fr3 - для FastReport4 или *.frf - для  FastReport2. Находится в папке REPORT\REP\

Для установки нового отчета, требуется скопировать (обновить) файлы в соответствующих папках (см. Рис.1 Пример установки отчета "Подарочные сертификаты")

 

Рис.1 Пример установки отчета "Подарочные сертификаты"

Как правило, отчет еще содержит *.sql  файл - это обновление для базы, чтобы работал отчет. Его нужно выполнить на базе, при этом, в некоторых случаях требуется монопольное подключение к базе. 

 

 

Отчеты для ПО «Абонемент»

Отчеты для ПО «Абонемент»

При установки программы «Абонемент» дополнительно устанавливается модуль отчеты (FReport).
После установки модуля «Отчеты» (FReport) необходимо запустить модуль (freport.exe) от имени Администратора.
Также рекомендуется после установки модуля (либо после его обновления) зарегистрировать библиотеку REPORT\DLL\frDlgDef.dll - запустить командную строку от имени Администратора и прописать в ней команду regsvr32 C:\_UCS\REPORT\DLL\frDlgDef.dll 
Для просмотра отчетности необходимо запустить модуль и ввести свой логин и пароль (аналогичный как при входе в программу).
Рекомендуемые отчеты
 
1. Ежедневные отчеты
1.1. Блок «Финансы». Отчет «Чеки кассовой смены».
 
Описание:
Отчет отображает платежи, которые приняты по программе в выбранный период. Данный отчет формируется по кассовым сменам. 
Которые действовали, т.е. были в состоянии «открыта» в любой день из указанного периода, в том числе и незакрытые смены. В набор данных попадают все оплаченные чеки (зарегистрированные по кнопке «ОПЛАТИТЬ»).
С типом оплаты «Наличные», «Безналичные», «Кредитные карты».
Возможные фильтры:
 
Вид отчета:

Сохранить отчет можно при помощи кнопки Export:

1.2.Блок «Смена». Отчет «Все о смене».

Описание:

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

Возможные фильтры:

Вид отчета:

2. Еженедельные отчеты
2.1. Блок «Абонементы». Отчет «Проданные Абонементы».
 
Описание:
Отчет строиться по зарегистрированным абонементам в указанный период.
Возможные фильтры:
 

Вид отчета:

 

2.2. Блок «Присутствие». Отчет «Контроль присутствия».
 
 Описание отчета:
Отчет строиться по отметке о присутствии (Турникет/контроль присутствия). 
Режим построения отчета:
1) «Присутствуют сейчас» отображается список присутствующих клиентов.
2) «Присутствие в периоде» отображаются присутствия в определенный промежуток времени.
При построение «Присутствие в периоде» можно построить как детальный, так и сводный отчет.
Сводный отчет отображает: 
Первый и последний вход в течении суток.
Дата выхода берется, дата выхода у последнего вход.
Возможные фильтры:
 
 
Вид отчета:

2.3. Блок «Мероприятия». Отчет «Все мероприятия».
 
Описание:
Отчет отображает все мероприятия из таблицы мероприятий. Можно формировать отчет на следующую неделю, для отображения информации по бронированию.
 
Возможные фильтры:
 
Вид отчета:

3. Ежемесячные отчеты
3.1. Блок «Клиенты». Отчет «Список дней рождений всех зарегистрированных клиентов».
 
Описание отчета:
    Выводятся данные всех зарегистрированных когда-либо  гостей,  дни рождения которых входили в указанный период. Учитываются только день и месяц рождения. 
    Опции предоставляют возможность отображать (или скрывать) в отчёте адреса, и производить сортировку гостей по фамилии/дню рождения, а также выводить только гостей, у которых есть действующий абонемент на момент дня рождения. 
Вид отчета:
3.2. Блок «Абонементы». Отчет «Действующие абонементы».
Описание отчета:
  Отчет строиться по действующим абонементам.
      Если выбрать галочку «Завершаются в промежутке дат» и выбрать даты, то отобразится абонементы, которые  заканчиваются в промежутке указанных дат 
(включительно).
      Если выбрать галочку «Действуют в промежутке дат» и выбрать  даты, то отобразится абонементы, которые  завершаются после начальной даты и начало 
действия которых раньше конечной даты. Если выбрать галочку «Выбрать из списка: Тип абонемента», то можно выбрать определенный типа абонемента из  списка.
Возможные фильтры:
 
 
Вид отчета:
 
 
3.3. Блок «Абонементы». Отчет «График платежей».
 
Данный отчет будет полезен, если на объекте осуществляют продажу абонементов в рассрочку.
Описание:
Отчет отображает информацию по абонементам, которые были проданны в рассрочку.
Вид отчета:
 

3.4. Блок «Сотрудники». Отчет «Вознаграждение специалистов».

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

3.5. Блок «Операции». Отчет «Популярность услуг».
 
Описание отчета:
В отчете отображается суммарная информация о начисленных  услугах.
Вид отчета:
 

Многомерные отчёты [КУБЫ].Руководство пользователя.

 

 

 

Последняя редакция: вт, 19/11/2019

Многомерные отчеты [КУБЫ] вошли в «FReport», начиная с 130 версии модуля.
Для корректной работы с отчётами рекомендуем использовать базу данных ПО Абонемент и модуль «FReport» одной версии.

После установки модуля «Отчеты» (FReport) необходимо запустить модуль (freport.exe) от имени Администратора.
Также рекомендуется после установки модуля (либо после его обновления) зарегистрировать библиотеку REPORT\DLL\frDlgDef.dll - запустить командную строку от имени Администратора и прописать в ней команду regsvr32 C:\_UCS\REPORT\DLL\frDlgDef.dll 

Модуль «FReport»  не требует дополнительного лицензирования.

1. Запуск модуля «FReport»

Путь до базы данных прописывается в Report/fReport.INI.
Модуль запускается через файл FReport.exe:

Рис.1

 

Для входа используйте логин и пароль от учетной записи ПО Абонемент:

Рис.2

 

Кубы расположены в соответствующих блоках модуля:

Рис.3

 

2. Интерфейс пользователя

2.1. Фильтр по датам

«Фильтр по датам» - это форма запроса данных за определенный период:

Рис.4

 

2.2. Конфигуратор шаблона

«Конфигуратор» - это интерактивная форма создания запроса для получения данных:

Рис.5

Запрос создается с использованием следующих возможностей:

  1. Выбор интересующих полей группировок;
  2. Перемещение полей из строк в колонки;
  3. Изменение последовательности построения полей в отчёте;

Сформированный запрос преобразуется в отчёт:

Рис.6

 

Начиная со 135 версии повилась возможность выставить итог в конфигураторе, через ПКМ по полю группировки:

Рис 6.1.

 

В конфигураторе реализовано описание отчета:

Рис.7

 

Панель инструментов для создания и работы с шаблонами:

Рис.8

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

 

2.3. Структура

 Поля группировок:

  1. Заполняются данными из БД;
  2. Работают как фильтры;
  3. Перемещаются между строк и колонок.

Рис.9

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

Факты:

  1. Заполняются суммой, количеством, другими значениями;
  2. Вычисления производятся в момент построения,  в разных разрезах, любой глубиной.

Рис.10

 

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

Рис.11

  1. Подсчет итогов по полям группировок;
  2. Возможность свернуть или развернуть поля для получения сводных или детализированных данных;
  3. Применять фильтры к полям группировок;
  4. Использовать «фильтр по датам» в разрезе анализируемых данных;
  5. Экспорт;
  6. Печать.

Таблицы отчетов выгружаются в следующих форматах:

Html:

Рис.12

Excel:

Рис.13

 

Word:

Рис.14

 

 

2.4. Построение отчетов

При выборе всех полей группировок  доступных в конфигураторе:

Рис.15

 

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

Рис.16

 

Дополнительная функция «свернуть» используется для получения отчётов со сводными данными:

Рис.17

 

Многомерный отчет разрезается на «плоские» двухмерные отчеты, с различной аналитической логикой, например:

Разрезы:

  1. По типу;
  2. По группам;
  3. По категориям и т.д.

Глубина:

  1. Год;
  2. Месяц;
  3. День;
  4. Время и т.д.

 

Пример разреза: сводный отчет по типу записи «услуга», с группировкой по «категории»:

Рис.18

 

3. [КУБ] Все о смене

3.1. Описание. Версия отчета 3.2

Блок «Смена». Куб анализирует данные на фолио клиента, регистрацию и коррекции платежей или услуг с применением «фильтра по дате» смены.

Конфигуратор шаблона:

Рис.19

Поля группировок:

  1. Тип - тип транзакции:
    «Платеж» может быть фискальным или нефискальным. Состыкованным или доступным для стыковок.
    «Услуга» может быть частично или полностью оплаченной, неоплаченной.
  2. ID операции;
  3. Наименование;
  4. Группа - группы услуг, платежей;
  5. Категория - категории услуг, платежей или абонементов;
  6. Клиент - ID клиента, ФИО;
  7. Тип клиента - выделяет сотрудников из списка клиентов, где сотрудник - это пользователь и/или специалист;
  8. Пользователь - это пользователь зарегистрировавший транзакцию;
  9. Комментарий - поле «примечание» с фолио клиента;
  10. VIP код - VIP код клиента;
  11. Специалист;
  12. Дата:год,дата:месяц, дата, дата:время - глубина фильтрации данных.
  13. Дата смены - «внутренняя» дата в программе, в которую была совершена транзакция

Факты:

  1. Стоимость;
  2. Кол-во;
  3. Доступно:
  • для «платежа» - доступная сумма транзакции  для использования;
  • для «услуги» - сумма услуги без стыковки с платежом.

 

3.2. Область применения

При помощи данного отчета можно анализировать:

  1. Любые изменения на фолио клиента: начисления, коррекции, регистрации платежей, услуг;
  2. Реализацию услуг и автоначисления;
  3. Контроль работы пользователя;
  4. Статистика по клиенту.

3.3. Примеры отчетов

3.3.1. Пример №1. Анализ фолио клиента

Конфигуратор шаблона:

Рис.20

 

Формирует образ куба аналогичный фолио клиента из ПО Абонемент. В поле группировки «клиент» выбрано интересующие фолио.
К полю группировки «дата» применена функция «итоги вкл/выкл»  для вычисления итоговых значений по каждому типу записи:

Рис.21

 

3.3.2. Пример №2. Анализ смены

Конфигуратор шаблона:

Рис.22

 

Формирует куб с полными данными за анализируемый период:

Рис.23

 

На основе данных сформирован сводный отчет за календарный день по типу записи:

Рис.24

 

Детализация  по изменениям в хронологическом порядке по типу записи:

Рис.25

 

Группировка по полю «клиент»:

Рис.26

 

Группировка по полю  «комментарий»:

Рис.27

 

При автоматическом начислении услуги на фолио, в поле «комментарий» фиксируется соответствующая запись:

Рис.28

 

3.3.3. Пример №3. Анализ по группе платежей или услуг

Конфигуратор шаблона:

Рис.29

 

Группировка отчета по полю «группа» платежей:

Рис.30

 

Группировка отчета по полю «группа» услуг:

Рис.31

 

Разрез отчета по полю «наименование» с подсчётом реализации за календарный месяц:

Рис.32

 

4. [КУБ] Список гостей

4.1. Описание. Версия отчёта 3.5

Блок «Клиенты». Куб анализирует «список клиентов» в ПО Абонемент.
«Фильтр по дате» анализирует дату регистрации клиента в базе:

Рис.33

 

Конфигуратор шаблона:

Рис.34

 

Поля группировок:

  1. Год, месяц, дата, время - глубина фильтрации данных регистрации клиента.

Информация из карточки клиента:

  1. ID, ФИО, Фамилия, Имя, Отчество;
  2. День рождения - ДРдата,  ДРгод, ДРмесяц, ДРдень;
  3. Возраст, пол, телефоны, телефон 1, телефон 2, EMAIL, VIP код, категория клиента, сумма платежей;
  4. Место жительства - прож.государство, прож.область, прож.город;
  5. Источник информации:
  6. Поле «первое посещение»/«последнее посещение» - это посещение в рамках любого абонемента.
  7. Сумма платежей - информация с фолио клиента

Рис.35

 

Информация из карточки «Абонемент» типа «Членство»:

  1. Членство - ID, дата регистрации, дата начала, дата окончания;
  2. Менеджер;

Рис.36

Факты:

  1. Кол-во.

 

4.2. Область применения

При помощи данного отчета можно анализировать:

  1. Целевую аудиторию;
  2. Выявить именинников;
  3. Информацию по дате начала или окончания членства;
  4. Информацию по «первому посещению» или отсутствию посещения;
  5. Поиск задублированных клиентов или телефонов.

 

4.3. Примеры отчетов

4.3.1. Пример №1. Анализ новых, зарегистрированных клиентов

Конфигуратор шаблона:

Рис.37

 

Сводный отчет по зарегистрированным клиентам с группировкой по полю «месяц»:

Рис.38

 

Сводный отчет с группировкой по полям «пол» и «возраст»:

Рис.39

 

Детализированный отчет с информацией о клиенте по дате регистрации: 

Рис.40

 

Клиенты без отметки о «первом посещении» в рамках абонемента типа «членство»:

Рис.41

 

4.3.2. Пример №2. Дни рождения клиентов

Конфигуратор шаблона:

Рис.42

 

Сводная таблица по полю «ДРдата» с группировкой «ДРмесяц». На примере видно, что в январе 38 именинников:

Рис.43

 

Детализация отчета по полю «ДРдата» с информацией по клиенту. На примере видим трех клиентов с датой рождения 03.05:

Рис.44

 

4.3.3. Пример №3. Дублирование клиентов в базе

Конфигуратор шаблона:

Рис.45

 

Формирует куб с группировкой по «фамилии» для поиска задублированных клиентов:

Рис.46

 

Отчет с группировкой по полю «телефоны» для поиска возможного дублирования номеров:

Рис.47

 

5. [КУБ] Чеки кассовой смены

5.1. Описание. Версия отчета 3.4

Блок «Финансы». Куб строится по чекам. «Фильтр по дате» анализирует действующие кассовые смены в период выбранных дат.
В отчет попадают все чеки за смену, даже если начало или окончание смены выходит за пределы анализируемого периода.

Конфигуратор шаблона:

Рис.48

Поля группировок:

  1. Общие данные объекта - организации, киоски, секции, кассир;
  2. Смена - ID, № номер, начало и окончание смены;
  3. Клиент - ФИО, ID, категория, категория.КОД , Vip-коды;
  4. ID чека - № счёта из ночного аудита;
  5. Чек - тип записи, наименованию, базовая услуга, код услуги;
  6. Источник информации;
  7. Знак «-1» работает как фильтр по возвратам.
  8. Рег.год, рег.месяц, рег.дата, рег.время - глубина фильтрации регистрации чека.

Факты:

  1. Кол-во;
  2. Стоимость;
  3. Наличные;
  4. Карты;
  5. Без нал;
  6. Аванс; Покупка с использование функции «Зачет аванса»
  7. НДС.

 

5.2. Область применения

При помощи данного отчета можно анализировать:

  1. Продажи;
  2. Доходы, возвраты;
  3. Эффективность рекламы.

5.3. Примеры отчетов

5.3.1. Пример №1. Анализ смены

Конфигуратор шаблона:

Рис.49

 

Формирует куб с полными данными за анализируемый период: 

Рис.50

 

Группировка отчета по полю «пользователь» с информацией по смене:

Рис.51

 

Группировкой отчета по полю «тип записи»:

Рис.52

 

Отчёт по чекам клиента:

Рис.53

 

Для формирования отчёта по возвратам применяется фильтр к полю «Знак» - «-1»:

Рис.54

 

Группировка отчета по «VIP-коду» клиента:

Рис.55

 

5.3.2. Пример №2. Эффективность рекламы

Конфигуратор шаблона:

Рис.56

 

Формирует сводный куб с общими данными по «источнику информации»:

Рис.57

 

6. [КУБ] Чеки. Детализация по платежам

6.1. Описание. Версия отчета 3.4

Блок «Финансы». Куб строится по чекам с детализацией по типу платежа. «Фильтр по дате» анализирует кассовые смены действующие в какой-либо день в период выбранных дат. 
В отчет попадают все чеки за смену, даже если начало или окончание смены выходит за анализируемый период.

Конфигуратор шаблона:

Рис.58

 

Поля группировок данных:

  1. Организация - собственник.Код, собственник;
  2. Киоски - киоск.КОД, киоск, секция;
  3. Смена - ID смены, №смены, смена.Начало, смена.Окончание, кассир;
  4. Клиент - клиент(ID клиента), ФИО, категория клиента.КОД, категория клиента,
    VIPкод.КОД, VIPкод, источник информации;
  5. Чек - ID Чека, наименование;
  6. Тип записи - аванс, услуга, абонемент;
  7.  Категория - услуг или платежей;
  8. Платеж - платеж.ТипКОД, платеж.Тип, платеж.Категория, КОД;
  9. Услуга - базовая услуга.КОД, базовая услуга;
  10. Знак «-1» - работает как фильтр по возвратам;
  11. Ставка НДС;
  12. Рег.год, рег.месяц, рег.дата, рег.время - глубина фильтрации данных регистрации чека.

Факты:

  1. Кол-во;
  2. Сумма;
  3. НДС.

Логика вычисления фактов «комбинированной оплаты»: cумма платежа / сумму чека * сумму или кол-во услуги = Факт.

 

6.2. Область применения

При помощи данного отчета можно анализировать чеки в разрезе «тип платежа»:

  1. Продажи;
  2. Доходы, возвраты;
  3. Эффективность рекламы.

6.3. Примеры отчетов

6.3.1. Пример №1. Детализация по платежам

Конфигуратор шаблона:

Рис.59

 

Формирует куб с группировкой по платежам:

Рис.60

 

7. [КУБ] Стыковки

7.1. Описание. Версия отчета 3.5

Блок «Финансы». Куб строится по стыковкам платежей и услуг с применением «фильтра по дате» стыковки.

Конфигуратор шаблона:

Рис.61

Поля группировок данных:

  1. Клиент - клиент(ID клиента), ФИО;
  2. Стыковка - С.Смена, С.Дата, С.Время;
  3. Платеж - П.Смена, П.Дата, П.Время, П.Категория, П.Группа, П.Код, П.Наименование, П.ID, П.Доступно, П. Сумма;
  4. Услуга - У.Смена, У.Дата, У.Время, У.Категория, У.Группа, У.Код, У.Наименование, У.ID, У.Доступно, у. Сумма;

Факты: 

  1. Сумма стыковки.

 

7.2. Область применения

При помощи данного отчета можно анализировать:

  1. Стыковки платежей и услуг.

7.3. Примеры отчетов

7.3.1. Пример №1. Когда произошла стыковка?

На примере видим:
1. Когда состоялась стыковка услуг с платежом.
2. Дата смены и регистрации платежа не совпдают.
3. Дата смены и регистрации услуги не совпадают.
4. Датат стыковки совпадает с датой регистрации услуги.

Рис. 62

 

8. [КУБ] Стыковки. Платежи, детализация по услугам

8.1. Описание. Версия отчета 3.2

Блок «Финансы». Куб строится по платежам с применением «фильтра по дате» регистрации платежа и детализируется стыковками с услугами.

Конфигуратор шаблона:

Рис.63

Поля группировок данных:

  1. Клиент - клиент(ID клиента), ФИО;
  2. Стыковка - С.Смена, С.Дата, С.Время;
  3. Платеж - П.Смена, П.Дата, П.Время, П.Категория, П.Группа, П.Код, П.Наименование, П.ID, П.Доступно, П. Сумма;
  4. Услуга - У.Смена, У.Дата, У.Время, У.Категория, У.Группа, У.Код, У.Наименование, У.ID, УКол-во, .Доступно, у. Сумма, УСкидка\Наценка;

Факты: 

  1. Сумма стыковки.

 

8.2. Область применения

При помощи данного отчета можно анализировать:

  1. Стыковки по платежам.

8.3. Примеры отчетов

8.3.1. Пример №1. Использование авансов

Конфигуратор шаблона:

Рис.64

 

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

  1. Инормация по платежу - дата, наименоваине;
  2. Данные транзакции - ID, сумму аванса, доступная для использования часть платежа, датализация по клиенту;
    На примере видим: платеж общей суммой 20600, неизрасходованная часть 15600 и состыковнные с платежом услуги, общей стоимостью 5000.
  3. На примере видим: платеж общей суммой 1488, неизрасходованная часть 1488  без стыковок с услугами;
  4. Итоговая сумма стыковок за период.

Рис.65

 

 

9. [КУБ] Стыковки. Услуги, детализация по платежам

9.1. Описание. Версия отчета 3.2

Блок «Финансы». Куб строится по услугам с применением «фильтра по дате» начисления услуги,
детализируется стыковкой с платежом.

Конфигуратор шаблона:

Рис.66

Поля группировок данных:

  1. Клиент - клиент(ID клиента), ФИО;
  2. Стыковка - С.Смена, С.Дата, С.Время;
  3. Платеж - П.Смена, П.Дата, П.Время, П.Категория, П.Группа, П.Код, П.Наименование, П.ID, П.Доступно, П. Сумма;
  4. Услуга - У.Смена, У.Дата, У.Время, У.Категория, У.Группа, У.Код, У.Наименование, У.ID, У.Доступно, у. Сумма;

Факты: 

  1. Сумма стыковки.

9.2. Область применения

При помощи данного отчета можно анализировать:

  1. Услуги по  состоявшимися стыковкам.

9.3. Примеры отчетов

9.3.1. Пример №1. В разработке

 

 

10. [КУБ] Абонемент

10.1. Описание. Версия отчета 3.2

Блок «Абонементы». Куб анализирует абонементы с применением «фильтра по дате»  регистрации абонемента.
Абонемент может быть зарегистрирован с нулевой ценой.

Рис.67

 

Конфигуратор шаблона:

Рис.68

Поля группировок:

  1. Клиент - ID, ФИО, пол, телефон, ДРгод, ДРмесяц, ДРдата;
  2. Абонемент - ID, код типа, тип абонемента;
  3. Активность - действующий,  закончил действие, не начался;
  4. Статус - активирован, деактивирован;
  5. Состояние - оплачен полностью или нет?
  6. Абонемент относится к типу «членство» - да или нет?
  7. Зарегистрировал - пользователь зарегистрировавший абонемент;
  8. Менеджер -  из  карточки абонемента.
  9. Регистрация.Год, Регистрация.Месяц, Регистрация.Дата, Регистрация.Время - глубина фильтрации по дате регистрации абонемента;
  10. Действует «с» - год, месяц, дата;
  11. Действует «до» - год, месяц, дата.
  12. Скидка - скидка.Код, скидка.Наименование, скидка.Факт%, скидка.Сумма.

Факты:

  1. Кол-во;
  2. Стоимость - цена абонемента;
  3. Оплачено - сумма денег внесенная клиентом за абонемент;
  4. Реализовано - сумма начисленных услуг по абонементу.
    Начисленная услуга, в рамках абонемента с 0 ценой и графиком начислений, может быть: реализованной, но неоплаченной.

10.2. Область применения

При помощи данного отчета можно анализировать:

  1. Регистрацию и использование абонементов;
  2. Анализ действующих и деактивированных абонементов;
  3. Оплата и реализация услуг в рамках абонементов;
  4. Интерес к абонементам у целевой аудитории с группировкой по полу;
  5. Детализация по абонементам клиента.

10.3. Примеры отчетов

10.3.1. Пример №1. Анализ абонементов по регистрации, статусу, активности

Конфигуратор шаблона:

Рис.69

 

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

Рис.70

 

Детализация по действующим абонементам, с группировкой по полю «полностью оплачен?»:

Рис.71

 

Группировка отчета по полю «тип абонемента» среди действующих абонементов:

Рис.72

 

Отчет по активированным абонементам  со значением поля «активность» - «закончил действие», с детализацией по клиенту:

Рис.73

 

10.3.2. Пример №2. Период действия

Конфигуратор шаблона:

Рис.74

 

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

Рис.75

 

10.3.3. Пример №3. Аналитика целевой аудитории

Конфигуратор шаблона:

Рис.76

 

Формирует куб по типам абонементов с группировкой по «полу»:

Рис.77

 

10.3.4. Пример №4. Именинники с действующими абонементами

Конфигуратор шаблона:

Рис.78

 

Формирует куб по полю «ДРдень», с группировкой по «ДРмесяц» и детализацией по клиентам с действующими абонементами. На примере видим, что у клиента 3414, с действующим абонементом, 14 мая день рождения:

Рис.79

 

10.3.5. Пример №5. Абонементы клиента

Конфигуратор шаблона:

Рис.80

 

Формирует куб по «активированным» абонементам клиента:

Рис.81

 

Детализация данных:

Рис.82

 

11. [КУБ] Завершающиеся абонементы.

11.1. Описание. Версия отчета 3.4

Блок «Абонементы». КУБ анализирует абонементы с применением «фильтра по дате» окончания - «Действует «до»».

Конфигуратор шаблона:

Рис.83

Поля группировок:

  1. Клиент - ID, ФИО, Телефон, Телефон 1, Телефон 2;
  2. Абонемент - Категория, Категория.КОД, Тип абонемента.Код,Тип абонемента, ID;
  3. Активность - действующий, закончил действие, не начался;
  4. Статус - активирован, деактивирован;
  5. Действует «с» - дата;
  6. Действует «до» - дата;
  7. Менеджер.

Факты:

  1. Кол-во;
  2. Цена - поле равно стоимости абонемента;
  3. Оплачено;
  4. Реализовано - поле равно начислено.

 

11.2. Область применения

При помощи данного отчета можно анализировать:

  1. Абонементы завершающиеся на определенную дату.

 

11.3. Примеры отчетов

11.3.1. Пример №1. В разработке

 

12. [КУБ] Мероприятия

12.1. Описание. Версия отчета 3.2

Блок «Мероприятия». Куб анализирует информацию по мероприятиям с применением «фильтра по дате» начала мероприятия.
Любое присутствие создает мероприятие, например: вход в ресурс по тарифу с неограниченными визитами, без начисления услуг, создаст индивидуальное мероприятие для клиента.

Конфигуратор шаблона:

Рис.84

Поля группировок:

  1. Мероприятие - ID, тип, наименование, дата регистрации, начала и окончания мероприятия;
  2. Тип «обычное» – это индивидуальное мероприятие для клиента;
  3. Статус - закончилось, началось, не началось.
  4. Удалено – да или нет?;
  5. Клиент - ФИО, ID, пол, возраст, VIP-код;
  6. Абонемент - категория абон.,тип абонемента, наименование;
  7. Ресурс - типы ресурсов, ресурсы;
  8. Специалист - из карточки  мероприятия;
  9. Начало.День недели - 1.пн, 2.вт, 3.ср, 4.чт, 5.пт, 6.сб, 7.вс;
  10. Год, месяц, день, время - глубина фильтрации данных регистрации, начала, окончания мероприятия.

Факты:

  1. Кол-во.

12.2. Область применения

При помощи данного отчета можно:

  1. Проводить аналитику по мероприятиям, характерную для бизнес-схемы объекта;
  2. Анализировать бронирование на будущий период;
  3. Анализировать занятость специалистов;
  4. Получать информацию по состоявшимся мероприятиям;
  5. Анализировать загруженность ресурсов;
  6. Анализировать посещаемость VIP-клиентов.

12.3. Примеры отчетов

12.3.1. Пример №1. Статистика посещаемости

Конфигуратор шаблона:

Рис.85

 

Формирует куб  по мероприятиям с группировкой по дням недели и статусом «закончилось»: 

Рис.86

 

Отчет с группировкой мероприятий по ресурсам:

Рис.87

 

Детализация отчета с информацией по клиенту:

Рис.88

 

Отчет по  мероприятиям  в ресурсах со статусом «закончилось», с группировкой по дням недели:

Рис.89

 

Отчет по удаленным мероприятиям с детализацией:

Рис.90

 

12.3.2. Пример №2. Мероприятия специалистов

Конфигуратор шаблона:

Рис.91

 

Формирует куб по мероприятиям специалистов, с группировкой по дням недели и детализацией по клиенту:

Рис.92

 

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

Рис.93

 

12.3.3. Пример №3. Мероприятия клиента

Конфигуратор шаблона:

Рис.94

 

Формирует куб по мероприятиям клиента, с детализацией по «дням недели» и «специалисту»:

Рис.95

 

Отчет по мероприятиям в разрезе «типа абонемента», с группировкой по «полу» клиента:

Рис.96

 

13. [КУБ] Мероприятия. Среднее посещение в день

13.1. Описание. Версия отчета 3.4

Блок «Мероприятия». Куб строится с применением  «фильтра по дате» начала мероприятия.

Конфигуратор шаблона:

Рис.97

Поля группировок:

  1. Ресурс - тип ресурса;
  2. Тип дня -  будни или выходные;
  3. День недели - 1.пн., 2.вт., 3.ср., 4.чт., 5.пт., 6.сб., 7.вс.;
  4. Статус - закончилось, началось, не началось;
  5. Дата - календарный день анализируемого периода.

Факты:

  1. Общее - кол-во мероприятий;
  2. Коэффициент;
  3. Среднее. 
Логика коэффициента: 1 единица = дата * статус.
Логика среднего значения: общее / коэффициент.

13.2. Область применения

При помощи данного отчета можно:

  1. Анализировать среднее посещение мероприятий в день.

13.3. Примеры отчетов

13.3.1. Пример №1. Среднее по дням недели, по типу дня

Конфигуратор шаблона:

Рис.98

 

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

Рис.99

 

Детализация отчета по среднему посещению в день, в разрезе «тип дня»:

Рис.100

 

 

14. [КУБ]Идентификаторы

14.1. Описание. Версия отчета 3.2

Блок «Клиенты». Куб строится с применением «фильтра по дате» прикрепления идентификатора.

В системе есть несколько типов идентификаторов, а именно:
гостевая карта (2), постоянная гостевая карта (22), карта персонала (21), карта ПДС (24).

Рис.101

 

Конфигуратор шаблона:

Рис.102

 

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

  1. Идентификатор - Значение, тип, состояние;
  2. Клиент - ID, ФИО;
  3. Пользователь - прикрепил.КОД, прикрепил, ФИО, открепил.ID, открепил.ФИО;
  4. Год, месяц, дата, время - глубина фильтрации данных;
  5.  Открепил.дата, открепил.время - детализация открепления идентификатора.

Факты:

  1. Кол-во.

14.2. Область применения

При помощи данного отчета можно:

  1. Получить анализ по идентификаторам актуальный для бизнес-схемы заказчика;
  2. Получить информацию по используемым и освобожденным значениям;
  3. Узнать кол-во прикрепленных и открепленных идентификаторов;
  4. Контроль работы пользователей.

 

14.3. Примеры отчетов

14.3.1. Пример №1. Типы и состояние идентификаторов

Конфигуратор шаблона:

Рис.103

 

Формирует куб с группировкой по полю «тип» и «состоянию» идентификаторов:

Рис.104

 

Детализация куба:

Рис.105

14.3.2. Пример №2. Ответственные за прикрепления

Конфигуратор шаблона: 

Рис.106

Формирует куб  по сотрудникам, прикрепившим идентификатор:

Рис.107

 

Детализация отчета:

Рис.108

 

 

15. [КУБ] Контроль присутствия

15.1. Описание. Версия отчета 3.3

Блок «Присутствие». Куб строится по присутствию клиента в ресурсе, с применением «фильтра по дате» фактического присутствия.
Важно отметить, что продолжительность посещения начинается в момент входа, т. е. регистрации посещения через контроль присутствия или турникет,  и завершается в момент регистрации выхода из ресурса.

Конфигуратор шаблона:

Рис.109

Поля группировок данных:

  1. Клиенту - тип клиента, ID, ФИО, баланс, присутствует - Да;
  2. Ресурс - категория.Код, категория, тип ресурса.Код, тип ресурса, ресурс.Код, типы ресурсов, ресурсы, код ресурса;
  3. Год, месяц, дата, время - глубина фильтрации данных присутствия.

Факты:

  1. Кол-во,
  2. Продолжительность - дни, часы, минуты.

 

15.2. Область применения

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

  1. по присутствию клиентов в ресурсе;
  2. по использованию ресурсов;
  3. информацию по клиентам, которые превысили продолжительность по тарифу;
  4. состояние баланса клиента.

 

15.3. Примеры отчетов

15.3.1. Пример №1. Присутствующие клиенты

Конфигуратор шаблона:

Рис.110

 

Формирует куб по присутствующим клиентам:

Рис.111

Детализация куба:

Рис.112

 

Группировка по балансу для поиска присутствующих должников:

Рис.113

15.3.2. Пример №2. Занятость ресурсов

Рис.114

 

Формирует куб по количеству присутствующих в ресурсах:

Рис.115

 

16. [КУБ] Баланс открытых фолио

16.1. Описание. Версия отчета 3.2

Блок «Клиенты». Куб строится по № фолио без применения «фильтра по дате». Анализируются  фолио за все время работы в базе с момента фактической регистрации.

Конфигуратор шаблона:

Рис.116

Поля группировок:

  1. Баланс -  используется как фильтр по идентичным балансам;
  2. Тип - это свойство фолио: постоянное фолио, фолио киоска, фолио организации;
  3. Клиент - ФИО, ID;
  4. Дата регистрации - фолио в системе.

Факты: 

  1. Кол-во.
  2. Платежи - общая сумма всех платежей клиента;
  3. Услуги - общая сумма реализованных услуг для клиента;
  4. Скидки - общая сумма скидок, предоставленных клиенту;
  5. Баланс - денежные средства на фолио клиентов, доступные для реализации.

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

16.2. Область применения

При помощи данного отчета можно:

  1. Отследить должников;
  2. Определить  общий доступный баланс организации и индивидуальный баланс клиентов;
  3. Выявить клиентов с нулевым балансом;
  4. Определить общую и индивидуальную сумму скидок;
  5. Сравнить сумму принятых платежей и оказанных услуг для последующего анализа.
  6. Выявить кредитоспособного клиента.

 

16.3. Примеры отчетов.

16.3.1. Пример №1. Сводный по фолио

Рис.117

 

Сводный отчет по всем фолио базы. Кол-во фолио, доступный баланс, сумма платежей, сумма начисленных услуг, общая сумма скидок:

Рис.118

16.3.2. Пример №2. Постоянный клиент

Группировка данных по «ФИО», с сортировкой по фактам, позволит выявить клиентов с наибольшей суммой платежей:

Рис.119

 

Фолио без платежей и услуг:

Рис.120

 

 

17. [КУБ] ПДС транзакции

17.1. Описание. Версия отчета 3.5

Блок «Клиенты». Куб строится по ПДС транзакциям клиента, с применением  «фильтра по дате» регистрации транзакции:

Рис. 121

Конфигуратор шаблона:

Рис. 122

Поля группировок:

  1. ПДС транзакция - ID, тип;
  2. Клиент - ФИО, ID;
  3. Пользователь;
  4. Дата, время - глубина фильтрации данных регистрации транзакции;
  5. Удалено - да/нет.
  6. Фактор - фактор начисления:
    Обычный - ручное начисление или списание;
    Платеж - автоматическое начисление;
    Чек - автоматическое списание;
  7. Фактор ссылка:
    Обычный - 0
    Платеж - ID платежа клиента;
    Чек - ID чека.

Факты: 

  1. Кол-во.

 

17.2. Область применения

При помощи данного отчета можно:

  1. Анализировать начисление и использование ПДС транзакций;
  2. Контролировать ручное удаление транзакций.

17.3. Примеры отчетов.

17.3.1. Пример №1.  Начисленые и доступные ПДС транзакции

Конфигуратор шаблона:

Рис.123

 

Формируется куб по дате начисления ПДС транзакций с итогом по начисленным и активным транзакциям:

Рис.124

 

17.3.2. Пример №2.  ПДС транзакции клиента

Конфигуратор шаблона:

Рис.125

 

Формируется куб по дате начисления ПДС транзакций для клиента:

Рис.126

 

17.3.3. Пример №3.  Ручное удаление ПДС транзакций

Рис.127

 

Формируется куб по дате начисления ПДС транзакций с группировкой по состоянию «удалено?», отражает ручное удаление транзакций начисления или списания:

Рис.128

 

 

18. [КУБ] Скидки

18.1. Описание. Версия отчета 3.3

Блок «Операции». Строится по словарным и ручным скидкам клиента с применением «фильтра по дате» применения.

Конфигуратор шаблона:

Рис.129

Поля группировок:

  1. Клиент - ФИО, ID;
  2. Пользователь;
  3. Дата, время - глубина фильтрации данных регистрации скидки;
  4. Относится к - абонементу или услуге;
  5. Наименование - абонемента или услуги;
  6. Ссылка - № абонемента или ID транзакции услуги;
  7. Дата, время - глубина фильтрации данных активации скидки;
  8. Словарный.Код, словарный.Наименование - данные  из справочника «Скидки»;
  9. Причина.Код, причина.Наименование - данные из справочника «Причина действий»
  10. Фактический % - скидки от суммы.

Факты: 

  1. Сумма;
  2. Количество.

 

18.2. Область применения

При помощи данного отчета можно:

  1. Анализировать применение и  использование ручных и словарных скидок;
  2. Контролировать работу персонала;
  3. Анализировать скидки клиента.

 

18.3. Примеры отчетов.

18.3.1. Пример №1.  Словарные скидки

Конфигуратор шаблона:

Рис.130

 

Формирует куб в разрезе словарных скидок с группировкой по полю «относится к» абонементу или услуге, детализирован информацией по клиенту:

Рис.131

 

18.3.2. Пример №2.  Причина действия

Конфигуратор шаблона:

Рис.132

 

Формирует куб в разрезе наименования «причина действия» с группировкой по полю «относится к» абонементу или услуге, детализирован информацией по клиенту:

Рис.133

18.3.3. Пример №3.  Скидки клиента

Конфигуратор шаблона:

Рис.134

 

Формирует куб по скидкам клиентов за анализируемый период:

Рис.135

 

MailReport - отправка отчётов на почту.

 

Схема работы автоматической отправки отчётов на почту:

Рис.1 Схема работы приложения.

Настроив все необходимые файлы (см.ниже), вам понадобится запустить gen.bat, который сформирует (c помощью preport) необходимый отчёт/список отчётов (с заданными параметрами), разместит их в необходимом формате в конкретном месте на диске, после чего будет задействован mailcarrier, который отправит отчёты на указанный почтовый ящик.

Настройка:

·         gen.bat - выбор места хранения файлов outpath

set outpath = D:\rep\ ;укажите тут путь до места хранения (должен существовать)

·         mailcarrier.ini – задайте параметры почтовой рассылки.

POP3SERV= pop.yandex.ru ;настройки Вашего почтового сервера
SMTPSERV= smtp.yandex.ru ;настройки Вашего почтового сервера
FromAddress= mmmmmmmmmmm@ucs.ru ;Ваш почтовый адрес 
USERID= mmmmmmmmmmm@ucs.ru ;Ваш логин от почты
Password= PAROLPAROL ;Ваш пароль от почты

·         preport.ini - параметры логина Freport

login = 1 ;Ваш логин
Password = 1 ;Ваш пароль

·         preport.bat - параметры необходимых отчётов, которые должны соответствовать параметрам, выбираемым в диалоговых окнах при формировании отчётов через Freport (учитывая outpath)

set srf=gdf.srf ;
rem set param="" ;внутри скобок указываем параметры для диалоговых окон отчёта, либо оставляем как есть (см. примечания).

·         tuner.mlc - отвечает за то, какие отчёты куда отправлять. Задаём адреса получателей, пути к папкам отчётов, темы писем. Можно не настраивать вручную, а используя mailcarrier.exe - Вид - Показать список рассылки. Затем сохранить список. Вот содержимое файла:

[ToAddress]
;под каждый адрес почты - свои секции Paths и Subject
0=test_1@ucs.ru 
1=test_2@ucs.ru
[m.permyakov@ucs.ru.Paths]
;путь до папки, в которой размещаются отчёты (имеет смысл указывать тот же путь, что в gen.bat)
0= A:\*.*
[m.permyakov@ucs.ru.Subject]
;тема письма для отчётов группы "0"
0= SUBJECT
[gaga@ucs.ru.Paths]
1= D:\*.*
2= Z:\*.*
[gaga@ucs.ru.Subject]
1= SUBJECT_test2
2= SUBJECT_test3

Примечания:

1. На данный момент формирование файла .html не работает, также замечено, что успешность выгрузки в .XLS зависит от версии MS Office и является ненадёжной. В связи с чем, была доработана автоматическая выгрузка отчётов в .PDF. (параметр formattype="8" в preport.bat). Рекоммендуем использовать именно её.

2. Для того, чтобы утилита имела доступ к Freport, необходимо в Freport.ini прописать в секции [Service] параметр  IsComObject=1

3. Параметры можно взять из FREPORT - Настройки Конфигурации - Фильтры (1) - *выбираем фильтр* - нажимаем зеленую кнопку "Показать диалог" (2) - копируем строку снизу (3). См. Рис2.

Рис.2 Фильтры отчётов

4. Доработан mailcarrier - с версии 1.10.0.1 (доступна в поставке Абонемент 126 версии) можно задавать кодировку темы письма. (По умолчанию стоит win-1251, что позволяет отправлять письма с темой на русском языке)

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

6. Если mailcarrier не может подгрузить библиотеки SSL (видно по логам, когда письма не отправляются), необходимо подложить ssleay32.dll и libeay32.dll, поставляемые с GuestAnnouncer, в папку с mailcarrier.exe.

SMS и E-Mail рассылка. Модуль GuestAnnouncer

 

Презентация для Клиентов данного модуля находится тут

Провайдеры смс рассылки, поддерживаемые Guest Announcer

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

Terasms http://www.terasms.ru/ - Рекомендовано
SMSTraffic http://www.smstraffic.ru/ - Рекомендовано
ISBC Telecom (Quick Telecom) https://isbc-telecom.ru/   
CraftMobile/MOBI/SMSConsult/Instam http://craftmobile.ru http://smsconsult.ru/ https://instam.ru/ провайдер не существует
Сигма SMS https://sigmasms.ru/ или  https://mirsms.ru/
Alpha SMS https://alphasms.ua/
Devinotele
Express Mobile http://expressmobile.ru/
Play SMS
SMSC
Marketing SMS
MTS Communicator
 

Провайдеры, поддержка которых "отвалилась":

AtomPark
MLS http://mlsit.ru/
SMS.ru http://sms.ru
Vostok SMS
rapporto.ru via HTTP
 

Использование HTML шаблонов для рассылки по EMail

Для возможности более гибкого редактирования отправляемых писем можно использовать HTML шаблоны.
Для этого необходимо в запросе на выборку указать файл HTML шаблона, поле должно называться htmlfile, например так:

select g.id ref,
...
'test1.html' htmlfile,
...
from ...



В самом же html Шаблоне вы можете использовать поля запроса, добавляя "$". Например: $field.

Интересные шаблоны в поставке модуля

В поставке модуля в папке EXPORT доступны различные уже готовые шаблоны, которы можно использовать. Там вы можете найти множество стандартных шаблонов, таких как "с новым годом", "с 23 февраля", "с 8 марта", etc.  Но также там присутствуют некоторые интересные рассылки, накопленные в процессе внедрения на различных объектах. Описани таковых будет вестись и пополняться в рамках данной статьи.

Название Описание
SMS - Кол-во неиспользованных мероприятий
Рассылка осуществляется при совершении мероприятий (посещения, персональные тренировки, etc.) Гостю отправляеттся количество оставшихся мероприятий в ресурсе.
 
SMS - При активации абонемента После активации абонемента гостю направляется сообщение с названием и периодом действия
SMS - При деактивации абонемент После деактивации абонемента гостю направляется сообщение об этом.
ОКОНЧАНИЕ СРОКА АБОНЕМЕНТА_SMS За 30 дней (настраивается в запросе) до окончания срока действия абонемента клиент будет об этом проинформирован
SMS - оповещение клиента Информирование клиента о записи на мероприятие с указанием ресурса и специалиста
SMS - оповещение специалиста Информирование специалиста о том, что произошла запись с указанием ФИО клиента и его контактного номера
SMS - Выезд гостя Информирование гостя о выезде из номера
SMS - Бронирование номера   Информирование гостя о бронировании номера

 

GuestAnnouncer2 - модуль e-mail и sms рассылки от 134 версии

 

 

 

GuestAnnoucer2. 

Выложен в 134 версии Абонемент. 

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

Новый модуль e-mail и sms рассылки  -  GuestAnnouncer2 (далее GA2).

 

Модуль был разделён на 3 подмодуля: GA_Editor, GA_Scheduler, GA_Mailer - тем самым разграничивая выполняемый функционал как показано на рис.1

Рис.1 разделение функционала между подмодулями

 

Функционал подмодулей

GA_Editor

Данный подмодуль собрал в себе все функции графического интерфейса, такие как:

  • Содание и редактирование списка оповещений;
  • Просмотр истории рассылок;
  • Тестовая утилита проверки настроек на sms-провайдера (Проверка баланса, отправка одиночной СМС).

Внешний вид основного меню подмодуля можно увидеть на рис.2

Рис.2. Основное меню подмодуля GA_Editor

 

Пункт: Отправить СМС

Окно для тестирования настроек с sms-провайдером представлено на рис.3.

Рис.3 Окно тетстирования настроек sms-провайдера

 

Пункт: Создать языковой файл

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

Используемый языковой файл указывается в GuestAnnouncer2.ini

 

Пункт: История рассылок

Окно истории рассылок представлено на рис.4.

Рис.4 Окно истории рассылок

В окне отображаются все созданные задания на отправку оповещений.

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

В правой части отображается подробная информация о выделенном в левой части задании: параметры, почёрпнутые из запроса шаблона для данного задания (на рис.4); зафиксированные ошибки отправки, если отправка не удалась, или удалась не с первой попытки; сформированное для отправки сообщение.

 

Пункт: Настройка оповещений

Окно настройки оповещений представлено на рис.5. Окно претерпело минимальные изменения по сравнению с предыдущей версией модуля.

Основные изменения: панель редактирования оповещения, редактор шаблона сообщения, функционал просмотра SQL кода.

Рис.5 Окно редактора оповещений

  • Панель редактора

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

При переходе на другое оповещение/шаблон все несохранённые изменения в текущем оповещении будут сброшены.

 

  • Редактор шаблона сообщения

Было принято решение отказаться от редактора FastReport, в пользу более легко редактируемых шаблонов.

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

Для этого используется маскирование заменяемых переменных в тексте шаблона. Маскирование производится заключением названия (исключительно в верхнем регистре) поля результата запроса в {%_%}  (см. примеры ниже).

Рис.6 Редактор шаблона SMS-сообщения

  • Шаблон SMS-сообщения

Для SMS-сообщений используется однострочный редактор, изображён на рис.6 с примером ввода маскированных полей запроса.

 

Рис.7 Редактор шаблона Email-сообщения

  • Шаблон Email-сообщения

Для Email-сообщений используется многострочный HTML редактор, изображён на рис.7.

При отправке полученный HTML код отправляется в виде HTML страницы, с подменёнными переменными. (Пример на рис.8)
 

Рис.8 Окно просмотра SQL кода и результатов запроса

  • Функционал просмотра SQL кода

В окно режима просмотра SQL кода, на вкладку просмотра результатов, добавлено поле просмотра сформированного сообщения (с HTML форматированием)

 

 

GA_Scheduler

 

Данный подмодуль вмещает в себе функции проверки наступления условий и создания заданий на отправку.

Подмодуль не имеет графического интерфейса и устанавливается службой.

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

 

GA_Mailer

 

Данный подмодуль занимается непосредственно отправкой назначенных заданий через SMTP сервер, sms-провайдера или на connecter.

Подмодуль также, как и GA_Scheduler, не имеет графического интерфейса.

Модуль непрерывно мониторит появление новых заданий на отправку. При появлении, формирует текст оповещения, подставляя результаты запроса, и отправляет. Если отправка неуспешна - фиксирует ошибки полученные от принимающей стороны.

Модуль пытается отправить сообщение в течение значения "Дней на отправку" оповещения.

 

 

Установка и настройка

  • Распаковать содержимое поставки GA2 (FullVersionVer134\_MODULES\GuestAnnouncer\GA2);
  • Применить к БД скрипт guest_announcer2.sql ;
  • Настроить GuestAnnouncer2.ini согласно приведённому ниже:
[Settings]
; Путь к БД
dbname=127.0.0.1/3080:С:\_UCS\_FITNESS\IBDATA\FITNESS.FDB
DBUser=ucs
DBPassword=ucs
; для FireBird 1.5 оставить пустым
; Россия
DBCharSet=WIN1251
; Литва
;DBCharSet=WIN1257

[SERVICE]
Timeout=10
TimeoutMsg=10
NewLogHours=1

[SMTP]
; Настройки на почтовый сервис
SMTPAuthenticationType =1
SMTPHost =smtp.yandex.ru
SMTPUserName =mvs@ucs.ru
SMTPPassword =abonementrules
SMTPPort =465
; использовать SSL при соединении с почтовым сервером
SMTPSSL=1
; метод SSL
; 1 - SSLv2
; 2 - SSLv23
; 3 - SSLv3
; 4 - TLSv1
; 5 - TLSv1_1
; 6 - TLSv1_2
SSLMethod=4
; для Яндекса - SMTPFromAddress должен быть равен SMTPUserName иначе работать не будет!
SMTPFromAddress =mvs@ucs.ru
SMTPConnectionTimeOut =60000
SMTPConnectRetryCount =3

[CONNECTER]
: Настройка на connecter, если результат выполнения оповещения должен инициировать запрос в connecter
URL=http://127.0.0.1:7780
EncodingOut=0
EncodingIn=0
UseURLDecode=1

[SMS]
; настроечный файл для отправки СМС из папки SMS_Template
SMSTemplateIni =С:\_UCS\_FITNESS\Guest_Announcer_2\SMS_Template\TERASMS\SettingsTERASMS.ini
SMSUseStatus=1

; только (!!!) для России первую 8 в номере меняем на +7 
; 0 - не меняем
; 1 - меняем
; 2 - удалять первую 8 либо +7
DropCountryCode=2

[LNG]
;Используемый языковой файл
CurrentLanguage=
;CurrentLanguage=English

[LOCK.SERVER]
; Настройка на сервер блокировок Абонемент
TCPHost=172.22.10.41
TCPPort=1119
TCPTimeout=10000
 
  • Настроить связь с провайдером SMS-рассылки, согласно соответствующей статье раздела ->
  • Запустить GA_Editor.exe, проверить корректность настроек связи с БД. Для чего использовать "Настройка оповещений" или "История рассылок" - если связи с БД нет, окно редактора или отчёта не откроется.
  • Проверить правильность настройки на провайдера SMS рассылки, с помощью функционала "Отправить СМС".
  • После данных проверок, можно произвести установку GA_Scheduler.exe и GA_Mailer.exe, запустив их с ключом "-install" от имени администратора.
  • Модуль готов к работе. Остаётся настроить оповещения.

Важно

Ранее для исключения уже отправленных сообщений из рассылки использовалась следующая конструкция:

not exists
  ( select ah.id from announcements_hist ah
    where ah.ref = X.ref 
    and ah.guest_announcement = #ID_ANNOUNCEMENT# )

В GA2 история рассылок хранится иначе, поэтому необходимо использовать конструкцию, приведенную ниже:

not exists
  ( select ah.id from GA_tasks ah
    left join GA_QUEUE gq on gq.id=ah.QUEUE_ID
    where ah.ref = X.ref and ah.status=1
    and gq.GA_TPL_CONTENTS_ID = #ID_ANNOUNCEMENT#)

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

 

 

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

Модуль защищён ключом Проект 4 Модуль 10. Подробнее о лицензировании.

Настройка модуля GuestAnnouncer на работу с SMS рассылкой через terasms.ru

 

Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:

• Использовать GuestAnnouncer версии 1.0.0.157 или выше (доступен в поставке Абонемент c версии 131).

• Проверить наличие папки SMS_Template\TERASMS в используемой поставке GuestAnnouncer.

• Проверить наличие smsc.dll версии не ниже 1.0.0.66 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\TERASMS.

• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:

[SMSC]
Library = C:\_UCS\_FITNESS\GA\smsc.dll

• В секции [SMS] установить параметр SMSTemplateIni следующим образом:

SMSTemplateIni=TERASMS\SettingsTERASMS.ini

• В SMS_Template\TERASMS\SettingsTERASMS.ini установить логин и пароль от ЛК оператора.

• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.

• Для проверки правильности всех параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.

 

 

Настройка модуля GuestAnnouncer2 на работу с SMS рассылкой через SMSTraffic

 

Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer2, требуется:

 

• Использовать GuestAnnouncer2 из поставки Абонемент версии 135 или выше.

• Проверить наличие папки SMS_Template\SMSTraffic в используемой поставке GuestAnnouncer2.

• В GuestAnnouncer2.ini секции [SMS] установить параметр SMSTemplateIni следующим образом:

SMSTemplateIni=<путь_к_GA2>\SMSTraffic\SettingsSMSTraffic.ini

• В SMS_Template\SMSTraffic\SettingsSMSTraffic.ini установить логин, пароль от ЛК оператора и имя отправителя, например:

Login = ucs_login
Password = ucs_password
Sender= UCS

• Правильность последних настроек, можно проконтролировать, с помощью функционала "Отправить СМС" в GA_Editor.

 

Система рассылки SMS и E-mail оповещений Guest Announcer Universal

 

Система рассылки оповещений Guest Announcer Universal

 
Система рассылки оповещений Guest Announcer Universal предназначена для выполнения SMS и E-Mail рассылок, а также
для вызова функций программы Connecter, по произвольно формируемому списку адресатов на основе конфигурируемых критериев, с
использованием настраиваемых шаблонов рассылки и индивидуального графика рассылки для каждого шаблона.
 
Система рассылки состоит из:
 
- приложение GuestAnnouncerUniversal.exe
- настроечный файл приложения GuestAnnouncerUniversal.ini
- динамическая библиотека fastforms.dll для настроек шаблонов FastReport
- динамическая библиотека OpenSSL libeay32.dll
- динамическая библиотека OpenSSL Shared Library ssleay32.dll
- файл описания программы Система рассылки оповещений Guest Announcer.pdf
- папка Attachment для хранения вложений для рассылки по E-Mail.
- папка EXPORT. Тут находятся рабочие примеры рассылок.
- папка SMS_Template. Тут находятся настроечные файлы SMS-провайдеров.
- папка SQL. Тут находится sql-скрипт для создания таблиц и процедур приложения.
- папка LANGUAGES. Тут находятся языковые файлы программы.
- библиотека GuestAnnouncer.dll для передачи команд от сторонних приложений.
- настроечный файл библиотеки GuestAnnouncerDLL.ini
 
Приложение GuestAnnouncerUniversal.exe является серверной частью системы и предназначено для непосредственного
выполнения рассылок. Рабочая станция, на которой установлено приложение GuestAnnouncerUniversal.exe, должна иметь доступ к
интернету для связи с SMS-гейтом и иметь доступ к почтовому SMTP-серверу (корпоративному, либо внешнему). Помимо этого рабочая
станция должна иметь связь с БД FireBird 2.5 в которой хранятся данные для рассылки.
 

Принцип работы Guest Announcer Universal

 
Приложение GuestAnnouncerUniversal.exe должно быть постоянно запущено на определенной рабочей станции. Параметры
запуска GuestAnnouncerUniversal.exe из командной строки:
 
- /run: При запуске с ключем /run приложение непосредственно после запуска переходит в рабочий режим (см. ниже).
- Строка параметров: &AnnounceID=21&AutoClose=1&Param1=Val1&Param2=Val2&Attachment=111.txt&StartLogin=ADMIN,
 
где
AnnounceID – ID оповещения, которое нужно выполнить;
AutoClose – признак завершения приложения после выполнения оповещения (1 – завершить, 0 – не завершать);
Param1.. ParamN – список параметров и их значений, которые присутствуют в шаблоне оповещения. Имя параметра должно совпадать с именем параметра в шаблоне. При выполнении оповещения параметр будет заменен на его значение. В шаблоне параметры указываются в фигурных скобках - {Param1}. Параметры также могут использоваться в тексте SQL-запроса - :Param1;
Attachment – файл, который будет приложен к письму (только для E-Mail, должен находиться в папке Attachment);
StartLogin – для получения доступа к возможности редактирования шаблонов в Менеджере Отчетов.
Указанные параметры могут быть использованы для автоматического запуска приложения при старте Windows. Для настройки приложения служит файл конфигурации GuestAnnouncerUniversal.ini.
 
 
Кнопка «Запустить/Остановить» служит для запуска и остановки режима сканирования и рассылки.
Кнопка «Пауза» служит для приостановки работы программы во время выполнения рассылки сообщений. На вкладке «Лог» отображается лог работы программы.
На вкладке «Настройки» - параметры подключения к БД, почтового сервера, настройки СМС, языка программы и шаблонов оповещения.
Перечисленные параметры сохраняются в конфигурационном файле GuestAnnouncerUniversal.ini и используются при запуске приложения (кроме настроек шаблонов оповещения).
 
Содержимое конфигурационного файла GuestAnnouncerUniversal.ini:
[Application]
; Управляет режимом автоматического старта сканирования после запуска приложения
AutoStart=0
; Начинать сканирование сразу (1) или ждать время интервала сканирования (0)
ImmediatePoll=0
; Режим работы
; 0 - рассылка
; 1 - работа с CONNECTER
; 2 - работа с разовыми сообщениями
AppMode=2
[Settings]
; Путь к БД
DBName=localhost/3060:C:\Work\Projects\OLD\UCS\DB\SHELTER.FDB
; Пользователь для соединения с БД
User=ucs
; Пароль для соединения с БД
Password=ucs
; Роль пользователя в БД
DBRole=
; Кодировка
DBCharSet=WIN1251
; Интервал сканирования БД (сек)
PollInterval=5
; Путь к папке для формирования временных файлов
CachePath = C:\Work\Projects\OLD\UCS\Guest_Announcer\Cache\
; Количество строк лога на экране (0 - на экран лог не выводится)
LinesAmount=500
; Header по умолчанию (для SMS)
DefaultHeader=UCS
; ID гостиницы
HotelID=1
[LANGUAGE]
; Языковой файл программы (должен лежать в папке LANGUAGES)
LngFile=Russian.lng
[SMTP]
; Тип аутентификации на SMTP сервере
SMTPAuthenticationType = 1
; Адрес SMTP сервера
SMTPHost = smtp.google.com
; Логин на SMTP сервер
SMTPUserName = mymail@gmail.com
; Пароль на SMTP сервер
SMTPPassword = mypass
; Порт SMTP сервера
SMTPPort = 25
; Адрес для подстановки в поле “От:” в письме. Некоторые почтовые сервера требуют, чтоб этот
; параметр обязательно совпадал с SMTPUserName.
SMTPFromAddress = mymail@gmail.com
; Таймаут соединения с SMTP сервером (мс)
SMTPConnectionTimeOut = 60000
; Количество попыток установить соединение с SMTP сервером. Этот и предыдущий параметры
; применяются при попытке отсылки каждого письма.
SMTPConnectRetryCount = 3
; Использовать SSL при соединении с почтовым сервером (0 - не использовать, 1 - использовать)
SMTPSSL=1
; Метод SSL
; 1 - SSLv2
; 2 - SSLv23
; 3 - SSLv3
; 4 - TLSv1
SSLMethod=4
[SMS]
; Порт для связи с SMS гейтом

3
SMSPort = 8997
; Таймаут на получение ответа от SMS гейта при посылке команды
SMSReplyTimeOut = 20000
; Таймаут на получение данных от SMS гейта
SMSReadTimeOut = 1000
; Таймаут при подключении к SMS гейту
SMSServerConnectTimeout = 40000
; Настроечный ini-файл провайдера СМС (должен лежать в папке SMS_Template)
SMSTemplateIni=MOBI\SettingsMOBI.ini
[Log]
; Уровень логгирования
LogLevel=10
[CONNECTER]
; Адрес программы CONNECTER
URL=http://198.154.196.199:7780
; Кодировка отправляемых сообщений (0 - ANSI; 1 - UTF-8)
EncodingOut=1
; Кодировка получаемых сообщений (0 - ANSI; 1 - UTF-8)
EncodingIn=0
[EXTCONNECTER]
; Порт для общения с GuestAnnouncer.dll
Port=4141
[LOCK.SERVER]
; Настройка адреса соединения с менеджером лицензий
TCPHost=localhost
; Настройка порта соединения с менеджером лицензий
TCPPort=1111
В запущенном режиме приложение GuestAnnouncerUniversal.exe через заданный интервал времени производит обращение к БД для поиска оповещений, подлежащих рассылке в данный момент на основе указанных в оповещении настроек.
 
При обнаружении таких рассылок, выполняются следующие действия:
 
- По каждой рассылке выполняется выборка адресатов;
- Для каждого адресата в определенной рассылке формируется набор файлов для рассылки по E-Mail и SMS. Данные файлы помещаются в кэш-папку, указанную в настройках.
 
В случае E-Mail рассылки эти файлы являются – html-файлом для включения в тело письма и набор jpg-файлов для оформления письма.
В случае SMS рассылки – текстовый файл с содержимым SMS.
 
- При необходимости выполняется попытка отсылки E-Mail по списку E-Mail адресов выбранного адресата;
- При необходимости выполняется попытка отсылки SMS по списку телефонных номеров выбранного адресата;
 
Результат рассылки сохраняется в БД.
При неудачной попытке отсылки сохраняется информация о шаблоне рассылки, идентификатор для выбора адресата, тип (emai/sms), дата/время события, признак ошибки, содержание ошибки, список адресатов.
При удачной попытке отсылки поле содержание ошибки пусто, признак ошибки отсутствует, однако сохраняется заполненный шаблон, на основе которого было сформировано письмо или SMS.
Перед попыткой отсылки SMS проверяется баланс SMS (если это поддерживается провайдером). Если оставшееся количество SMS на балансе не больше указанного в настройках, то в таблицу истории и результатов рассылки помещается запись со специальным признаком уведомления и текстом, содержащим время события и количество оставшихся на балансе SMS.
При посылке SMS сообщений, для каждого выбранного адресата оповещения формируется пакет для отсылки. Независимо от того, сколько телефонных указано у данного адресата, в историю рассылки попадает по меньшей мере 2 записи – одна запись для всего пакета сообщений по всем телефонным номерам адресата и по одной записи для каждого из телефонных номеров (у данных записей отсутствует признак пакета).
 

Настройка шаблонов и рассылок

Окно настроек вызывается при нажатии на кнопку «Настройка расписания и шаблонов оповещения» в приложении GuestAnnouncerUniversal.exe (при этом сканирование БД на наличие новой задачи по оповещению приостанавливается).
Окно управления оповещениями:
 
В левой верхней части окна содержится список существующих шаблонов оповещений. При доступной опции управления шаблонами существует возможность добавления, редактирования и удаления указанных шаблонов.
 
 
При создании или редактировании шаблона указывается название, описание и нажатием на кнопку «Редактировать запрос» вызывается редактор шаблона.
Редактор шаблона выглядит следующим образом:
 
 
В левой части находится SQL редактор для формирования SQL запроса на получение списка адресатов оповещения и дополнительной информации, необходимой для формирования оповещения. Результирующие поля запроса ОБЯЗАТЕЛЬНО должны содержать следующие имена:
Для рассылки по E-Mail:
mail_to – список E-Mail-адресов получателя, разделяются «;»
subject – тема письма
Ref – ID записи из произвольной таблицы БД – ключ, по которому определяется адресат для данного шаблона оповещения. Например, это может быть идентификатор гостя в таблице гостей, идентификатор организации из таблицы организаций и т.п. Однако естественно, что в рамках одного шаблона это поле будет иметь один и тот же смысл для любого оповещения, созданного на основе этого шаблона. Далее при формировании оповещения на основе шаблона этот идентификатор может быть использован для получения и отображения дополнительной информации, связанной с конкретной записью с этим идентификатором в выбранной таблице.
 
Для рассылки по SMS:
phone_num – перечень телефонных номеров адресата, разделенных знаком «#»
header – отправитель SMS – отображается в поле «От» в доставленном сообщении
Ref – ID записи из произвольной таблицы БД.
 
При создании нового шаблона текст SQL запроса выглядит следующим образом:
 
select G.ID as REF
from GUESTS G
join GUEST_ANNOUNCEMENTS_TPL t on t.id=#ID_TEMPLATE#
join GUEST_ANNOUNCEMENTS a on a.id=#ID_ANNOUNCEMENT#
where #CUSTOM_WHERE#
 
Данный текст содержит три макроса, в которые автоматически при формировании оповещения подставляются конкретные данные.
На место макроса #ID_TEMPLATE# подставляется конкретный идентификатор шаблона оповещения
На место макроса #ID_ANNOUNCEMENT# подставляется конкретный идентификатор оповещения по данному шаблону.
(Эти данные могут быть использованы в SQL-запросе, например, для получения информации по истории рассылки по указанному шаблону и оповещению для выбранного адресата).
На место макроса #CUSTOM_WHERE# подставляется сформированное условие фильтрации запроса в конкретном оповещении, созданном на основе данного шаблона (см. ниже).
В правой части экрана находится таблица для указания списка полей из сформированного SQL запроса, которые в дальнейшем могут быть использованы в качестве настраиваемых пользователем фильтров в конкретном оповещении, созданном на основе данного шаблона.
Эти поля и наложенные на них в фильтре ограничения в дальнейшем будут автоматически преобразованы в SQL выражение, которое будет подставлено на место макроса #CUSTOM_WHERE# в результирующем SQL запросе для формирования списка рассылки по конкретному оповещению.
 
Значение столбцов в списке полей для настройки запроса:
 
«Фрагмент текста SQL запроса» – в данном столбце указывается некоторое поле запроса или допустимое SQL выражение с использованием полей исходного SQL запроса, на которое впоследствии предполагается накладывать настраиваемые ограничения. Т.е. значение данного поля будет скомбинировано с установленным в последствии ограничением и подставлено как часть макроса #CUSTOM_WHERE# в условие WHERE исходного SQL запроса в шаблоне.
Поясним данное на примере:
Допустим, исходный запрос содержит обращение к таблице Guests (гости), которая в свою очередь содержит поля Name (имя гостя) и поле BirthDate (дата рождения). Таким образом SQL запросе будет иметь след. вид:
 
Select…..
From gusets g
…..
Where ….. and #CUSTOM_WHERE# and ….
 
Тогда значением поля «Фрагмент текста SQL запроса» может быть следующий текст:
 
‘g.Name’ или, например, ‘(CURRENT_DATE - cast(g.BirthDate as Date))’ - данное выражение даст нам текущий возраст гостя.
Поле «Уникальное имя» - в данном столбце необходимо задать некий уникальный в рамках данной таблицы для данного шаблона текстовый идентификатор, который гарантированно не совпадет ни с каким фрагментом текста SQL запроса.
Поле «Имя для отображения в фильтре» – в данном столбце необходимо задать некое понятное текстовое название, которое будет в дальнейшем отображаться пользователю при настройке фильтров в оповещениях по данному шаблону.
Поле «Редактор фильтра» – в данном столбце необходимо выбрать из списка одни из доступных редакторов, который будет предлагаться при настройке фильтра по данному полю.
Поле «SQL запрос для списка значений» – если в поле «Редактор фильтра» был выбран редактор LookupCombobox, то в данном поле необходимо указать sql-запрос для формирования выпадающего списка.
 

Настройка оповещений по шаблону

 
В правой верхней части окна настройки расположена таблица, в которой отображается список существующих оповещений по выбранному слева шаблону.
 
 
Вверху расположена панель с кнопками добавления, редактирования, удаления, копирования оповещений по шаблону, а так же для отображения сформированного по данному настроенному шаблону SQL запроса, который будет выполняться в момент срабатывания оповещения для выбора адресатов для рассылки. Данный SQL запрос формируется уже с учетом настроенных фильтров для выбранного оповещения и может быть использован для проверки правильности построения фильтров (кнопка «Просмотр SQL кода»).
 
Редактор оповещения расположен в нижней части окна:
 
 
В левой части редактора задается название оповещения и его описание. Далее задается интервал времени в течение суток, в котором данное оповещение должно срабатывать (с учетом интервала сканирования GuestAnnouncerUniversal.exe) и соответственно должен выполняться SQL запрос на поиск адресатов оповещения. После этого указывается интервал повтора оповещения.
Например, если задан интервал оповещения с 13:00 по 19:00, повтор задан в 60 мин, а интервал сканирования GuestAnnouncerUniversal.exe выставлен, скажем в полчаса, то данное оповещение сработает в интервале 13:00-13:30. Далее следующее сканирование произойдет через пол часа, но т.к. с момента последнего выполнения оповещения час еще не прошел, оно будет проигнорировано. При следующем сканировании пройдет уже более часа с последнего выполнения оповещения и, следовательно, оно опять будет выполнено. И так далее до 19:00. После этого момента и до 13:00 следующего дня оповещение в выборку при сканировании на сервере попадать не будет.
Если повтор выставлен в 0 мин, то оповещение будет выполняться раз в сутки при первом сканировании на сервере в указанном интервале времени.
Оповещение можно временно включить и отключить указанием признака «Активно» либо нажатием кнопки «Активировать/Деактивировать».
 
Далее задаются используемые способы рассылки для данного оповещения:
 
- По E-Mail
- По SMS
- Connecter
- Сервер сообщений
 
И, наконец, для каждого способа рассылки настраивается непосредственно шаблон E-Mail или (и) SMS оповещения:
 
 
Назначение кнопок: Загрузка FastReport шаблона из файла, редактирование FastReport шаблона, сохранение FastReport шаблона в файл и очистка шаблона для данного оповещения. Для оповещения по E-Mail имеется возможность указать файл, который будет приложен к письму. Файл должен находиться в папке Attachment.
Для настройки FastReport шаблона рассылки используется библиотека fastforms.dll.
Данная библиотека позволяет работать с FastReport шаблонами используя текущее подключение к БД, загружать, сохранять шаблоны, а так же формировать готовые формы на основе шаблонов в различных форматах. В данном случае при формировании шаблона в FastReport весь набор результирующих полей SQL запроса в качестве параметров FastReport отчета.
Далее в шаблоне отчета можно, воспользовавшись переданным подключением к БД, а так же некоторыми подготовленными заранее ключевыми параметрами, получить из базы дополнительные выборки и включить их в результирующую форму, которая уже будет отослана адресату. Например, как в приведенном выше варианте запроса, по полю Ref (которому установлено значение guests.id) дополнительным запросов в FastReport выбрать прочую недостающую информацию по гостю или данным с ним связанным и включить их в формируемую форму рассылки в виде полей или таблиц.
 
Шаблоны для рассылки так же возможно создавать с помощью Менеджера отчетов. Затем необходимо привязать созданный отчет к шаблону оповещения:
 
 
В этом случае при рассылке оповещения SQL-запрос, созданный в редакторе запросов, шаблон FastReport и фильтр будут игнорироваться.

Настройка фильтров оповещения

 
В нижней части окна находится область для формирования фильтров по текущему выбранному оповещению – данные фильтры позволяют, создав по одному шаблону несколько оповещений, не только настроить время, интервал и внешний вид отправляемого оповещения, но и для каждого оповещения произвести фильтрацию выборки конечных адресатов.
Фильтры строятся на основе перечня доступных полей, указанных в настройках шаблона оповещения.
В данном окне существует возможность добавления и редактирования произвольного количества условий и их комбинаций, накладываемых на доступные к фильтрации поля. В качестве имен полей указывается заданные ранее при настройке шаблона имена для отображения, а в качестве редакторов условий – указанные там же ранее редакторы.
После формирования фильтра, полученный SQL запрос можно просмотреть, нажав расположенную выше кнопку «Просмотр SQL кода». В результате будет показано SQL выражение, которое формируется на основе SQL выражения в шаблоне оповещения с учетом заданных фильтров. Данное выражение будет использовано приложением GuestAnnouncerUniversal.exe при формировании списка адресатов для данной рассылки, а результирующие поля этого выражения будут использованы при формировании содержимого отсылаемого сообщения на основе FastReport шаблона.
 

Настройка СМС

Настройка передачи СМС производится на основе данных от провайдера. Настроечная информация хранится в файле Settings<имя_провайдера>.ini. Шаблоны посылаемых СМС-гейту и получаемых от СМС-гейта сообщений хранятся в xml-файлах:
 
- Авторизация - Authentication<имя_провайдера>.xml
- Ответ на авторизацию - AuthenticationReply<имя_провайдера>.xml
- Завершение сессии с СМС-гейтом - Disconnect<имя_провайдера>.xml
- Ответ СМС-гейта с сообщением об ошибке - ErrorReply<имя_провайдера>.xml
- Отправка СМС - SendSms<имя_провайдера>.xml
- Ответ на отправку СМС - SendSmsReply<имя_провайдера>.xml
- Запрос статуса СМС - StatusSms<имя_провайдера>.xml
- Ответ на запрос статуса СМС - StatusSmsReply<имя_провайдера>.xml
- Статусы сообщений и коды ошибок СМС-гейта - Status<имя_провайдера>.ini
 
Пример файла SettingsMLS.ini:
;#######################################################################
; для провайдера MLS IT Systems (http://www.mlsit.ru/)
;#######################################################################
[Main]
; как шифровать пароль (если не надо - оставить пустым)
PassCorrection=MD5
; писать сообщения о остатке СМС на балансе при малом остатке
; 0 - не писать
; 1 - писать
WriteBalanceAlert=1
; Признак завершения сообщения
XMLEndString=*END*
; Писать в лог запросы\ответы
; 0 - не писать
; 1 - писать
UseDetailedLog=1
; файл со статусами сообщений и описаниями ошибок (указываются от папки ..\SMS_Template)
SMSStatusIni=MLS\StatusMLS.ini
; тип SMSGate
; 0 - через сокеты
; 1 - по протоколу HTTPS методом POST
; 2 - по протоколу HTTPS методом GET
; 3 - по протоколу HTTP методом GET
SMSType = 0
; количество СМС на балансе, при котором начнется информирование об окончании СМС
SMSBalanceAlert = 10
; адрес СМС-гейта
SMSHost = ftp.mlsit.ru
; логин
SMSGateIDKey =
; пароль
SMSGatePass =
; символ, которым будут заменены пробелы в тексте СМС (если заменять не надо, то написать слово Blank)
BlankTo=Blank
; признак нормального выполнения команды
ReplyOK=
; признак выполнения команды с ошибкой (без пробелов)
ReplyErr=
; для России первую 8 в номере меняем на +7
; 0 - не меняем
; 1 - меняем
DropCountryCode=0
[Nodes]
;---------------------------------------------------------------------
; Ноды ответа сервера на отправку СМС (Doc.DocumentElement.имя_ноды или Doc.DocumentElement.имя_ноды1\имя_ноды):
; <?xml version="1.0" encoding="UTF-8"?>
; <SendSms>
; <Count>1</Count>
; <oneRec id="162847">+79031234567</oneRec>
; </SendSms>
;---------------------------------------------------------------------
; Нода, в которой возвращается ID СМС и другая информация
NodeListNode=oneRec
;---------------------------------------------------------------------
; Ноды ответа сервера на запрос статуса СМС (Doc.DocumentElement.имя_ноды или Doc.DocumentElement.имя_ноды1\имя_ноды):
; <?xml version="1.0" encoding="UTF-8"?>
; <StatusSms>
; <oneRec id="162847">
; <Status>1</Status>
; <DateStatus>05.04.11 13:04</DateStatus>
; <StatusMessage>Отправлено</StatusMessage>
; </oneRec>
; </StatusSms>
;---------------------------------------------------------------------
; Нода, в которой возвращается ID СМС и другая информация
StatusListNode=oneRec
; Пути к шаблонам СМС (указываются от папки ..\SMS_Template)
[Authentication]
; шаблон для аутентификации на сервере (если нужно)
Template=MLS\AuthenticationMLS.xml
; шаблон ответа сервера
Reply=MLS\AuthenticationReplyMLS.xml
[SendSms]
; шаблон отправляемого СМС (обязательно)
Template=MLS\SendSmsMLS.xml
; шаблон ответа сервера
Reply=MLS\SendSmsReplyMLS.xml
[StatusSms]
; шаблон получения статуса СМС (обязательно)
Template=MLS\StatusSmsMLS.xml
; шаблон ответа сервера
Reply=MLS\StatusSmsReplyMLS.xml
[Disconnect]
; шаблон для закрытия соединения (если нужно)
; шаблон ответа сервера не предусмотрен
Template=MLS\DisconnectMLS.xml
[Error]
; шаблон ошибки в ответ на посылаемый XML
Template=MLS\ErrorReplyMLS.xml
 
 
В файлах шаблонов сообщений для общения с СМС-гейтом используются следующие параметры:
 
 
Параметр Вид параметра в XML-документе Название параметра ConstAccountName {%AccountName%} наименование аккаунта
ConstIDSession
{%idSession%}
идентификатор сессии ConstBalance {%Balance%} количество СМС на балансе
ConstHeadSMS
{%HeadSms%}
список доступных заголовков ConstIDKey {%IdKey%} логин
ConstPassword
{%Password%}
пароль ConstHead {%Head%} заголовок сообщения
ConstPhone
{%Phone%}
список телефонов ConstTextSms {%TextSms%} текст сообщения
ConstSendSMSCount
{%SendSMSCount%}
количество отправленных СМС ConstSMSID {%SMSID%} уникальный идентификатор СМС
ConstIDList
{%idList%}
список идентификаторов СМС ConstCodeStatus {%CodeStatus%} код статуса СМС
ConstMessStatus
{%MessStatus%}
текст статуса СМС ConstLastErrorCode {%LastErrorCode%} код ошибки
ConstLastErrorMessage
{%LastErrorMessage%}
описание ошибки ConstMD5Begin {%MD5B%} начало секции, зашифрованной MD5
ConstMD5End
{%MD5E%}
конец секции, зашифрованной MD5 ConstSHA1Begin {%SHA1B%} начало секции, зашифрованной SHA1
ConstSHA1End
{%SHA1E%}
конец секции, зашифрованной SHA1
 
Пример файла SendSmsMLS.xml:
<?xml version="1.0" encoding="UTF-8"?>
<SendSms>
<idSession>{%idSession%}</idSession>
<Head>{%Head%}</Head
<TextSms>{%TextSms%}</TextSms>
<Phone>{%Phone%}</Phone>
</SendSms>
Алгоритм отправки одного СМС-сообщения:
 
 
№ Операция Отправляем СМС-гейту Получаем от СМС-гейта 1 Авторизация (Authentication) на сервере (если нужно) ConstIDKey ConstPassword ConstAccountName ConstIDSession ConstBalance ConstHeadSMS
Отправка СМС (SendSms)
ConstIDKey
ConstPassword
ConstIDSession
ConstHead
ConstPhone
ConstTextSms
ConstSendSMSCount
ConstSMSID
ConstPhone 3 Проверка статуса СМС (TestStatus) ConstIDKey ConstPassword ConstIDSession ConstIDList ConstSMSID ConstCodeStatus ConstMessStatus
Отсоединение (Disconnect) от сервера (если нужно)
ConstIDKey
ConstPassword
ConstIDSession
Ошибки ConstLastErrorCode ConstLastErrorMessage
Работа с программой CONNECTER
 
Шаблоны для отправки сообщений программе CONNECTER хранятся в папке SMS_Template\CONNECTER. В запросе оповещения должны обязательно присутствовать поля REF (ID гостя) и CONNECTER_TPL (имя шаблона из папки SMS_Template\CONNECTER).
Замена ключевых слов в шаблоне - ключевые слова меняются на значения соответствующих полей из запроса. Например: ключевое слово {%GUEST_ID%} будет заменено на значение поля GUEST_ID из запроса.
 
Пример файла RegistrPayment.xml:
<?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
<FUNCNAME>FOLIO_PAYMENT</FUNCNAME>
<PARAMETERS>
<GUEST>{%GUEST_ID%}</GUEST>
<COST>{%GUEST_COST%}</COST>
</PARAMETERS>
</REQUEST>
 
В данном примере в узле <FUNCNAME> хранится имя функции из программы Connecter, а в узле <PARAMETERS> - параметры, которые будут заменены на соответствующие поля запроса.
Работа в режиме сервера сообщений
В этом режиме программа постоянно опрашивает таблицу с сообщениями и выполняет рассылку вновь появившихся. Все остальные рассылки игнорируются. Обмен данными сторонней программы с GuestAnnouncerUniversal происходит при помощи библиотеки GuestAnnouncer.dll.
 
Пример файла GuestAnnouncerDLL.ini:
[ANNOUNCER]
; Адрес, где запущен GuestAnnouncerUniversal
TCPHost=127.0.0.1
; Порт
TCPPort=4141
; Таймаут чтения
TCPTimeOut=5000
[LOG]
; Путь к логам
LogPath=c:\Work\Guest_Announcer\DLL\Logs
; Максимальный размер лога
MaxLogSize=5242880
 
GuestAnnouncer.dll экспортирует следующие функции:
 
1. InitAnnouncerDLL – инициализация библиотеки
 
2. DoneAnnouncerDLL – завершение работы библиотеки
 
3. SendMessageToAnnouncer – оправка сообщения клиенту. Входные параметры – строка вида:
&GUEST=1057&USER=1&PHONE=+79991234567&EMAIL=mymail@mail.ru&MSG=Текст сообщения&TITLE=Заголовок сообщения
GUEST – ID гостя
USER – ID отправившего сообщение
PHONE – телефон для отправки СМС
EMAIL – почтовый адрес для отправки письма
MSG – текст сообщения
TITLE – заголовок сообщения
Возвращает строку: &ERROR=0&ID=22
ERROR – код ошибки
ID – идентификатор нового сообщения
Коды ошибок:
1 – ошибка соединения с GuestAnnouncerUniversal
2 – команда не опознана в GuestAnnouncerUniversal
3 – не удалось сгенерировать новый ID сообщения
4 – не удалось записать новое сообщение в БД
0 – завершено успешно
 
4. GetAnnouncerStatus – запрос состояния GuestAnnouncerUniversal. Возвращает строку: &ERROR=0&STATUS=1&APPMODE=2
ERROR – код ошибки
STATUS – код состояния
APPMODE – режим работы GuestAnnouncerUniversal
Коды ошибок:
1 – ошибка соединения с GuestAnnouncerUniversal
2 – команда не опознана в GuestAnnouncerUniversal
0 – завершено успешно
Коды статусов:
1 – работает
0 – не работает
Режимы работы:
0 – E-Mail и СМС рассылка
1 – работа с Connecter
2 – работа с разовыми сообщениями
 
5. SetAnnouncerStatus – запуск/остановка GuestAnnouncerUniversal. Входные параметры – строка вида: &STATUS=1
Возвращает строку: &ERROR=0&STATUS=1
ERROR – код ошибки
STATUS – код нового состояния
Коды ошибок:
1 – ошибка соединения с GuestAnnouncerUniversal
2 – команда не опознана в GuestAnnouncerUniversal
3 – статус не опознан в GuestAnnouncerUniversal
0 – завершено успешно
Коды статусов:
1 – работает
0 – не работает
 
6. GetAnnouncerTimer – интервал сканирования БД (в мс). Возвращает строку: &ERROR=0&VALUE=5000
ERROR – код ошибки
VALUE – значение интервала сканирования (в мс.)
Коды ошибок:
1 – ошибка соединения с GuestAnnouncerUniversal
2 – команда не опознана в GuestAnnouncerUniversal
0 – завершено успешно
 
7. GetMessageStatus – получение статуса сообщения по его ID. Входные параметры – строка вида: &MSGID=12
Возвращает строку: &ERROR=0&EMAIL=1&SMS=0
ERROR – код ошибки
EMAIL – статус отправки сообщения по почте
SMS – статус отправки сообщения по СМС
Коды ошибок:
1 – ошибка соединения с GuestAnnouncerUniversal
2 – команда не опознана в GuestAnnouncerUniversal
3 – сообщение не найдено
0 – завершено успешно
Коды статусов:
1 – отправлено
0 – не отправлено

Настройка модуля GuestAnnouncer на работу с SMS рассылкой через ExpressMobile

 

Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:

• Использовать GuestAnnouncer версии 1.0.1.20 или выше (доступен в поставке Абонемент c версии 132).

• Проверить наличие папки SMS_Template\ExpressMobile в используемой поставке GuestAnnouncer.

• Проверить наличие smsc.dll в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\ExpressMobile.

• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:

[SMSC]
Library = C:\_UCS\_FITNESS\GA\smsc.dll

• В секции [SMS] установить параметр SMSTemplateIni следующим образом:

SMSTemplateIni=ExpressMible\SettingsExpressMibleSMS.ini

• В SMS_Template\ExpressMobile\SettingsExpressMobileSMS.ini установить логин и пароль от ЛК оператора.

• Запустить прокси для работы с ExpressMobile: GA\Proxy\Proxy.exe

• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.

• Для проверки правильности вcех параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.

ВАЖНО!!! Номер телефона получателя указывается без +7 и без 8, например: 9261234567 ВАЖНО!!!

Настройка модуля GuestAnnouncer на работу с SMS рассылкой через Sales.lv

Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:

• Использовать GuestAnnouncer версии 1.0.1.22 или выше (доступен в поставке Абонемент c версии 133).

• Проверить наличие папки SMS_Template\Sales в используемой поставке GuestAnnouncer.

• Проверить наличие smsc.dll версии не ниже версии не ниже 1.0.0.71 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\Sales.

• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:

[SMSC]
Library = C:\_UCS\_FITNESS\GA\smsc.dll

• В секции [SMS] установить параметр SMSTemplateIni следующим образом:

SMSTemplateIni=Sales\SettingsSales.ini

• В SMS_Template\Sales\SettingsSales.ini установить логин, пароль и APIKey от ЛК оператора.

• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.

• Для проверки правильности вcех параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.

Настройка модуля GuestAnnouncer на работу с SMS рассылкой через sigmasms.ru

 

Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:

• Использовать GuestAnnouncer версии 1.0.0.139 или выше (доступен в поставке Абонемент c версии 128).

• Проверить наличие папки SMS_Template\SigmaSMS в используемой поставке GuestAnnouncer.

• Проверить наличие smsc.dll версии не ниже 1.0.0.66 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\SigmaSMS.

• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:

[SMSC]
Library = C:\_UCS\_FITNESS\GA\smsc.dll

• В секции [SMS] установить параметр SMSTemplateIni следующим образом:

SMSTemplateIni=SigmaSMS\SettingsSigmaSMS.ini

• В SMS_Template\SigmaSMS\SettingsSigmaSMS.ini установить логин и пароль от ЛК оператора.

• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.

• Для проверки правильности вcех параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.

 

ВАЖНО

Данный оператор SMS рассылки работает только с телефонами в формате 7**********, и не работает с форматами 8* и +7*.

Чтобы таких телефонов в базе не возникало, требуется в Абонемент настроить маску телефонных номеров, делается это следующим образом:

В Общих Параметрах, на вкладке Гость, параметр «Формат “Телефоны”» установить значение:

79990000000;1;_

(Также можно установить «Формат “Тел.1”», «Формат “Тел.2”», в зависимости, от того, какое из полей предполагается использовать, для ввода номеров клиентов).

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

Настройка модуля GuestAnnouncer2 на работу с SMS рассылкой через ISBC Telecom (Quick Telecom)

 

Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer2, требуется:

 

• Использовать GuestAnnouncer2 из поставки Абонемент версии 136 или выше.

• Проверить наличие папки SMS_Template\QTelecom в используемой поставке GuestAnnouncer2.

• В GuestAnnouncer2.ini секции [SMS] установить параметр SMSTemplateIni следующим образом:

SMSTemplateIni=<путь_к_GA2>\QTelecom\SettingsQTelecom.ini

• В GuestAnnouncer2.ini секции [SMS] установить параметр DropCountryCode следующим образом:

DropCountryCode=2

• В SMS_Template\QTelecom\SettingsQTelecom.ini установить логин, пароль от ЛК оператора и имя отправителя, например:

Login = ucs_login
Password = ucs_password
Sender= UCS

• Правильность последних настроек, можно проконтролировать, с помощью функционала "Отправить СМС" в GA_Editor.

 
Примечание

Данный оператор не выдаёт ошибок отправки при изначальном запросе, требуется второй запрос для получения статуса задания на отправку sms. Данный функционал не поддержан GuestAnnouncer2.

Обрабатываются только ошибки отправки - отсутствие связи с провайдером, некорректные учётные данные ЛК провайдера.

Настройка модуля GuestAnnouncer на работу с SMS рассылкой через МТС коммуникатор

 

Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer, требуется:

• Использовать GuestAnnouncer версии 1.0.0.157 или выше (доступен в поставке Абонемент c версии 131).

• Проверить наличие папки SMS_Template\MTSCommunicator в используемой поставке GuestAnnouncer.

• Проверить наличие smsc.dll  версии не ниже 1.0.0.66 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\MTSCommunicator.

• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:

[SMSC]
Library = C:\_UCS\_FITNESS\GA\smsc.dll

• В секции [SMS] установить параметр SMSTemplateIni следующим образом:

SMSTemplateIni=MTSCommunicator\SettingsMTSCommunicator.ini

• В SMS_Template\MTSCommunicator\MTSCommunicator.ini установить логин и MD5 хэш от пароля в личный кабинет оператора.

• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS и проверить баланс лицевого счёта.

• Для проверки правильности введённых параметров, можно использовать функцию «Проверить Баланс» на вкладке «Настройки» GuestAnnouncer.

 

Настройка модуля GuestAnnouncer на работу с SMS рассылкой через аппаратный шлюз GoIP4

 

 

Для того чтобы подключить данный шлюз для SMS рассылки через GuestAnnouncer, требуется:

 

Со стороны шлюза:

Настроить доступ к API шлюза, создать пользователя с правами на использование API-функций. (Например GoIP Operator)

Настроить провайдера в GoIP4

Получить API ссылку  для данного провайдера вида: 

http://200.321.154.26/en/dosend.php?USERNAME=User&PASSWORD=Password&smsprovider=3&goipname=gsm03&smsnum=...

 

Со стороны GuestAnnouncer:

• Использовать GuestAnnouncer версии 1.0.1.16 или выше (доступен в поставке Абонемент c версии 132).

• Проверить наличие папки SMS_Template\GoIP4 в используемой поставке GuestAnnouncer.

• Проверить наличие smsc.dll версии не ниже 1.0.0.67 в папке с GuestAnnouncer. В случае отсутствия, взять из папки SMS_Template\GoIP4.

• В GuestAnnouncerUniversal.ini проверить наличие секции и параметра, в случае отсутствия или некорректности пути, добавить или исправить:

[SMSC]
Library = C:\_UCS\_FITNESS\GA\smsc.dll

• В секции [SMS] установить параметр SMSTemplateIni следующим образом:

SMSTemplateIni=GoIP4\SettingsGoIP4.ini

• В SMS_Template\GoIP4\SettingsGoIP4.ini  установить логин и пароль созданного ранее пользователя в GoIP4.

• В SMS_Template\GoIP4\SettingsGoIP4.ini  изменить подсвеченные части SendSmsURI согласно полученной ранее API ссылке:

http://200.321.154.26/en/dosend.php?USERNAME=$login$&PASSWORD=$password$&smsprovider=3&goipname=gsm03&smsnum=$phones$&method=2&Memo=$sms$

• Правильность последних настроек, можно проконтролировать, с помощью TestSendSMS.bat, откуда можно отправить тестовое SMS.

 

ВАЖНО!!!

При использовании аппаратного шлюза, для отправки используется помещённая заказчиком в устройство SIM-карта. Таким образом, невозможно отправлять через данный шлюз SMS с короткого или текстового номера.

Настройка модуля GuestAnnouncer2 на работу с SMS рассылкой через AlphaSMS

Для того чтобы подключить данного оператора для SMS рассылки через GuestAnnouncer2, требуется:

 

• Использовать GuestAnnouncer2 из поставки Абонемент версии 134 или выше.

• Проверить наличие папки SMS_Template\AlphaSMS в используемой поставке GuestAnnouncer2.

• В GuestAnnouncer2.ini секции [SMS] установить параметр SMSTemplateIni следующим образом:

SMSTemplateIni=<путь_к_GA2>\AlphaSMS\SettingsAlpha.ini

• В SMS_Template\AlphaSMS\SettingsAlpha.ini установить логин, пароль от ЛК оператора, имя отправителя, и API ключ из "Настройки"->"API" в личном кабинете  например:

Login = ucs_login
Password = ucs_password
ApiKey=f7ed43d8c6331667945e27e99ce7efcfcd491609
Sender= UCS

• Правильность последних настроек, можно проконтролировать, с помощью функционала "Отправить СМС" в GA_Editor.

 

 

Отправка разовых индивидуальных СМС сообщений из ПО Абонемент

В ПО Абонемент реализована возможность отправлять разовые СМС гостям непосредственно пользователем из основного модуля программы с помощью плагинов.

Алгоритм работы следующий:

  • ПО Абонемент вызывает плагин
  • Плагин инициализирует библиотеку smsc.dll и вызывает функцию создания оповещения для гостя
  • Библиотека создает задание в БД для модуля СМС и EMAIL рассылки
  • GuestAnnouncer анализирует БД и отправляет все новые сообщения

 

Необходимо для работы:

  • smsc.dll и smsc.ini в папке exe
  • В smsc.ini необходимо настроить связь с БД:
    [database]
      dbname=127.0.0.1/3080:C:\_UCS\_FITNESS\IBDATA\FITNESS.FDB
      dbUser=ucs
      dbPassword=ucs
  • В папке frf должны быть файлы (.fr3 и .ini) плагина, который осуществляет отправку смс.
  • В frf.ini необходимо настроить секцию [PLUGINS_MAIN] пример:
    [PLUGINS_MAIN]
    SingleSMS=Отправить сообщение
  • В GuestAnnouncer должен быть создан шаблон рассылки, анализирующий и отправляющий разовые сообщения. Запрос для шаблона:
    select 
      PHONE as phone_num ,
      id as Ref,
      'HEADER' as header,
    SENT_MESSAGE as smstext,
    1
    from GUEST_ANNOUNCEMENTS_SINGLE S
    where 1=1
    and not exists
      ( select ah.id from announcements_hist ah
        where ah.ref = s.id and ah.failed=0
        and ah.guest_announcement = #ID_ANNOUNCEMENT#)

    smstext - текст сообщения, который используется в шаблоне сообщения. Шаблон рассылки присутствует в поставке GuestAnnouncer начиная с версии ПО Абонемент 1.128.

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

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

  ...
  lib := loadLibrary('smsc.dll');
  if lib < 1 then Exit;      
  try                
  CALL_LIBRARY_FUNCTION(lib,'InitializationSMSC',2,['.\smsc.ini','SMSC']);  // инициализация библиотеки с указанием конфигурационного файла
  CALL_LIBRARY_FUNCTION(lib,'SendSMS2',5,[memoSMS.Lines.Text,'',1,strtoint(vartostr(<qGuest."id">))]); //Вызыв функции создания оповещения
  res:=CALL_LIBRARY_FUNCTION(lib,'GetLastError',0,nil); // Получение последней ошибки
  finally                
  CALL_LIBRARY_FUNCTION(lib,'Done',0,nil);  // Завершение рбаоты с библиотекой
  FreeLibrary(lib);  // Освобождение памяти
  if vartostr(res)='0' then begin  // Если ошибки не возникло
     showmessage('Сообщение отправлено');
     dialogpage1.modalresult:=mrCancel;
  end
  else // Если ошибка
       showmessage('Ошибка: '+vartostr(res));
  end;
  ...

Необходимые модули в ключе защиты:

  • ПО Абонемент
  • Модуль SMS и E-Mail рассылки

В поставке, начиная со 128 версии, в папке exe\frf присутствует пример плагина для отправки разовых произвольных сообщений: SingleSMS.fr3.

Закрытие из RKeeper в Абонемент через FarCards

 

 

 

Описание интерфейса связи RK7 и Абонемент через FarCards.

 

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

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

 

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

RKeeper при оплате на специальную валюту обращается к FarCards, который вызывает подключенную к нему sdmHTTPFarCard.dll. Последняя dll обращается к ключу защиты и если лицензия найдена (проект 2 модуль 11), отправляется XML запрос на TCP/IP сервер - программу HTTPRKtoSH.exe. Этот сервер обращается к ShelterConnect.dll, которая работает с базой данных Абонемент.

  • Используемые версии ПО
  • Версия станции и кассового сервера 7.5.7.65.
  • Версия FarCards 6.04
  • !Важно! pds_netk.dll из версии RK7 7.5.3.х
  • Абонемент версия 127
  • HTTPRKtoSH от 16.06.2017
  • ShelterConnect.dll от 07.02.2017
  • sdmHTTPFarCard.dll от 18.04.2018

Дистрибутив со всем необходимым можно скачать на FTP

Настройки RKeeper7.

1. Зайти в меню Сервис – Кассовые станции и устройства. Добавить устройство: PDS interface#1. См. Рис. 2
Параметр PDS Server Name = rkfcab – имя сервера FarCard, через который будет обеспечиваться связь с системой Абонемент.
Внимание! LookupCardByMailAddr = YES
Mail Addr Type Kind = 2
Если параметр Pass All Receipts XML data установить Yes Always (fail if impossible) то при закрытии на любую валюту этот заказ будет передаваться в Абонемент. Для этого должны быть сделаны соответствующие настройки в ShelterConnect.ini и в настройках программы. Не рекомендуемая схема работы.
Если PDS interface#1 уже есть, то рекомендуется его удалить и добавить новый.

Рис.2. Кассовые станции и устройства

 

2. Зайти в меню Сервис – Интерфейсы. Добавить новый интерфейс. Назовем его RKtoAbonement. См рис. 3 В данном интерфейсе указываем , ранее заведенный PDS interface#1. Код интерфейса нужно запомнить и прописать в файле HTTPRKtoSH.ini. См. настройки HTTPRKtoSH.exe.

Для передачи ППР позиций меню в Абонемент (с версии 136) и последующей печати их в чеке, необходимо в параметр интерфейса xml dish attributes установить как:

xml dish attributes = 2560.ItemKind

Рис.3. Интерфейс

 

3. Заходим в меню Сервис - Обработка сигналов и устройств  и добавить MCR алгоритм. Указываем тип «Интерфейс». Объект Интерфейс RKtoAbonement, заведенный в пункте 2.

Если указать тип «Валюта», то будет ошибка 232: "Не получается напечатать чек: Персональное ограничение для "" = 0.00."

Можно завести несколько интерфейсов для разных типов идентификаторов. Сделаем два интерфейса, один карт E-Marine (Рис.4)  и другой для Mifare (Рис.5). 

Рис4. MCR алгоритмя для E-Marine карт. 

Пример скрипта для карт E_Marine:

function MCR1000636(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;
var RestCode: integer;
    i, j, t1, t2, S, res1: Integer;
    hex, resulttext: string;
begin
  Result := false;
  if pos('Em-Marine',Parameter)>0 then
  begin
    i := pos(']',Parameter);
    j := pos(',',Parameter);
    resulttext:=copy(Parameter,i+2,3);
    resulttext:=resulttext+copy(Parameter,j+1,5);
      Result := true;
      Parameter:=resulttext;
    end;
end;
 

Рис5. MCR алгоритмя для Mifare карт без ограничения по длине номера.

 
Пример скрипта для карт Mifare:
function MCR1000637(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;
var RestCode: integer;
    i, j, S: integer;
    res1, t1, t2: int64;
    hex, resulttext: string;
begin
  Result := false;
  if pos('Mifare[',Parameter)>0 then
  begin
    i := pos('[',Parameter);
    j := pos(']',Parameter);
    Parameter := copy(Parameter,i+1, j-i-1);
    if length(Parameter) > 0 then begin
      Result := true;
      res1:=strtoint64('$'+Parameter);
      Parameter:= Int64ToStr(Res1 and $FFFFFFFF );        
    end;
  end;    
end;
 
 
4. Завести валюту: «На Фолио в АБ». (Рис.6) Так же можно установить наценку для чаевых и  чаевые будут передаваться в Абонемент и отдельно там фиксироваться  - НЕ ТЕСТИРОВАЛОСЬ.
Важно обратить внимание на заполнение полей:
- Без сдачи – флаг установлен
- Доп инфо с клавиатуры – флаг установлен
-Автозаполнение – Вся сумма + подтверждение.
Формат доп инфо - символ F и решетки.(F#########). Символ F является ключевым, для определения типа идентификатора FOLIO.
- Не учитывать в потратах ПДС – флаг должен быть снят.

Рис 6. Свойства валюты.

 

Настройки FarCards. 

FarCards устанавливается на любом компьютере в одной сети с кассой и кассовым сервером. Если модуль лицении прописан в одном ключе с Абонементом, то FarCards обязательно устанавливается на машину, где установлен этот ключ, как правило это сервер. Более подробную инструкцию по установке FarCards можно найти тут http://support.ucs.ru/ru/node/6673#header-10
Принтскрины запушенного окна FarCards отображены на Рис.7.
 
 
Рис 7. FarCards
 
Пример настройки ini файлов. 
 
FARCARDS.INI
[FarServer]
Type = 1
DLL = sdmHTTPFarCard.dll
Gate = 1
log = 30
XMLCP=1251
 
[LinkDLL]
1 = pds_netk
 
[pds_netk]
NetServerName=rkfcab
ininame=netk.ini
 
NETK.INI:
[netkern]
TESTMESSAGES=0
protocols=tcpsoc.dll
[TCPSOC]
port=2234
 

Настройка sdmHTTPFarCard.dll

FarCards обращается к sdmHTTPFarCard.dll, которая должна находиться в папке с FarCards. sdmHTTPFarCard.dll защищена ключом защиты UCS Shelter. Этот ключ должен физически находиться на машине, где запущен FarCards. В случае связи с ПО Абонемент  или гостиничной системой Shelter, можно воспользоваться одним ключом, если FarCards запущен на одном сервере с Shelter или Абонемент.
Настройки осуществляются в файле HTTPFarCard.ini. Ниже приведен его пример. В данных настройках sdmHTTPFarCard.dll обращается к TCP/IP серверу, который запущен на машине 198.154.196.224 и слушает 2277 порт. В секции [PARAMS] задаются параметры, которыми обворачивается XML запрос. В Настройках TCP/IP сервера, могут использоваться аналогичные параметры, например для определения «свой/чужой». В файле HTTPFarCards1.log ведется логирование XML команд.
SdmHTTPFarCard.dll передает данные на TCP/IP сервер/ Для интеграции с Абонементом используется HTTPRKtoSH.exe
 
Настройки осуществляются в файле HTTPFarCard.ini:
[PARAMS]
  ClientCode = HOTEL 
  UserCode = UCS
  UserPwd = 12345
  LangCode = RU
 
[SERVER]
  Host =198.154.196.224 
  Port =2277
 
[LOG]
  FileName=HTTPFarCards1.log
  Level = 100
  DebugLevel = 100
 
 

Настройка HTTPRKtoSH.exe

HTTPRKtoSH.exe является сервером, который слушает TCP/IP и обрабатывает XML запрос от sdmHTTPFarCard.dll.  HTTPRKtoSH.exe по умолчанию всегда вызывает функции ShelterConnect.dll, которая должна находить в одной директории с ним. Основные настройки осуществляются в файле HTTPRKtoSH.ini
[SERVER]
  Port = 2277
   ;порт на который передает данные   sdmHTTPFarCard.dll. 
 
RKInterfaceID=7
  ;код  интерфейса RKtoAbonement. Настраивается  меню Сервис – Интерфейсы. Добавить новый интерфейс.
 
 AllCheckToHotel = 1  
                                    
  IdentPhysType = 2
 
  Autostart = 1
  Autohide =1
 
[LOG]
  FileName =  C:\UCS\HTTPtoAB\LOG\HTTPRKtoSH.log
 
  Level = 100
  DebugLevel =100
 
  ByMonthes = 1
  ByDays = 1
  ByHours = 1
 
 

Настройка ShelterConnect.ini

ShelterConnect.ini - настроечный файл ShelterConnect.dll, который управляет тем, в каком формате данные будут переданы во внешнюю систему.
Пример содержимого файла (параметры без комментариев изменению не подлежат):
[Database]
;Настройка на БД Абонемент
  DBname    =   127.0.0.1/3080:C:\_UCS\_FITNESS\IBDATA\FITNESS.FDB
  DBUser     = ucs
  DBPassword = oQKH8n0BFUE=

[ExternalClient]
;Код типа идентификатора для поиска
  IdentPhysType = 2
;Преобразовывать в CP866
  ToOEM = 0
;Запрещать операции превышающие сумму баланса и лимита кредита гостя (в противном случае в r_k возвращается текущий баланс гостя 99999)
  NeverRestrictTransaction = 0

  ConvertOperationNeed = 1
  ClientID      = 1
  FolioMask = 1
  ShowBalance = 1
  ShowBalanceFirst = 1
  RoomInfoMode =4
  TransSection =0

[log]
  FileName   = ShelterConnect.log
  Level      =  100
  DebugLevel =  100

[GarbageCollector]
  Enabled  = 0
  LifeTime = 120

[SCRK6]
;Не подлежат изменению для интерфейса с r_k7
  AlcoholicOperation =999;
  Messages =SCRK6.eng.msg

  UseScreenHeader0 =1
  UseScreenHeader1 =1
  UseScreenSequelCode =1

  ShowBalance = 1
  ShowBalanceFirst = 1
  ShowBalanceEverywhere = 1

  UseDetails = 1
  UseSuperDetails = 1

[TranslateOperation]
;Таблица соответствия Кода групп станций r_k и создаваемой в Абонемент услуги
     1 = 301
     2 = 301
     3 = 301
     4 = 301
     5 = 301
     6 = 301
     7 = 301
     8 = 301
     9 = 301
     11 = 301
     12 = 301
     13 = 301
     14 = 301
     15 = 301
     16 = 301
     17 = 301
    10 = 301
   999 = 301

[TranslatePayment]
;не используется в Абонемент
  1 = 1005,910
  1000632 = 1005,901
  8 = 1005,901
  3 = 1005,901
 
 

Процесс обслуживания клиента в RK7

 

Рис.8 Создание заказа в RK7 _______________________________________________________

Рис.9 Оператор прикладывает браслет (карту) гостя (также возможен ручной ввод номера ФОЛИО). На экране появляется информация о клиенте, в т.ч. баланс счета.

Рис.10 После оплаты заказ в RK7 закрывается и считается оплаченным. На ФОЛИО гостя в ПО Абонемент создается услуга соответствующей стоимости, а также передается информация о содержимом заказа и примененных скидках. 

Рис.11 Также с помощью браслета клиента можно получить список закрытых на ФОЛИО данного клиента чеков  ____________________________________________________________________

 

Разделение блюд по разным услугам в Абонемент

В тех или иных случаях требуется закрывать блюда из одного чека r_keeper на различные услуги в Абонемент.

В таком случае, для корректного разделения содержимого чека, передачи идентификаторов чеков для возможности последующего возврата, разделение должно происходить на стороне r_keeper.

Для подобного разделения необходимо запустить два экземпляра сборки FarCards и HTTPRKtoSH, настроенные на разные порты сообщения и на разные услуги в Абонемент: первое настраивается в соответствующих ini файлах запускаемых модулей (netk.ini, HTTPRKtoSH.ini, sdmHTTPFarCards.ini), второе настраивается в ShelterConnect.ini (в секции [TranslateOperation]).

В примере ниже, алкогольная продукция ООО "бар", будет закрываться на услугу с кодом 302 Абонемент - Бар, остальные на услугу 301 - Ресторан.

Настройки r_keeper:

В r_keeper необходимо настроить дополнительный PDSinterface, направив его на второй используемый FarCards. Настройки ПДС интерфейсов будут выглядеть как показано на рис.12-13

Важно! Настройки оригинального интерфейса необходимо изменить (В частности параметр "Pass ALL Receipts XML data" обоих интерфейсов должен иметь значение "By Script")

Рис.12-13 Настройки интерфейсов кассового сервера

Далее, так же необходимо задублировать интерфейсы в справочнике Интерфесы. Назначенный код нового интерфейса необходимо заполнить в соответствующем HTTPRKtoSH.ini.

Примеры настроек показаны на рис.14-15.

Рис.14-15 Пример настройки интерфейсов в r_keeper

Необходимо задублировать и MCR-алгоритм, назначив новый дополнительному интерфейсу.

Далее, необходимо разделить блюда меню по параметру "Отдел ФР". Примеры блюд в справочнике Классификации блюд представлены на рис.16-17.

(Заведение нескольких отделов в r_keeper разобрано в статье)

Рис.16-17 Примеры настроек блюд в справочнике Клиссификации блюд

Следующим пунктом необходимо настроить дополнительную валюту и изменить настройки основной валюты закрытия в Абонемент.

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

Примеры настроек валют приведены на рис.18-19. 

Рис. 18-19 Примеры настроек валют

Для реализации данной схемы, необходимо наличие каких-либо принтеров на кассовой станции, для разделения закрываемых блюд.

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

На примере на рис.20-21 Принтер STAR используется для печати блюд ООО "бар".

Рис.20-21 Пример настроек принтеров кассовой станции

 

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

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

Рис.22 Пример интерфейса Быстрого чека r_keeper при использовании данных настроек

В Абонемент будут созданы две услуги на фолио, обе из которых будут иметь корректно обрабатываемое содержимое чека. Пример фолио на которое производилось закрытие заказа с рис.22 показано на рис.23. 

 

 

Обновления

 
18.05.2018

Обновлена sdmHTTPFarCards.dll - уменьшено количество кликов пользователя в rKeeper.

Добавлена возможность просмотра баланса по карте из основного меню кассы Rkeeper.

Для поиска закрытых по идентификатору чеков в rKeeper требуется на списке закрытых чеков

применить фильтр "Поиск по карте", и приложить идентификатор к считывателю.

30.07.2018

Обновлена sdmHTTPFarCards.dll (версия 1.2.0.10)- исправлена кодировка отображения кириллицы в имени гостя получаемом, при прокатывании карты в rKeeper.

(В Shelterconnect.ini необходимо установить параметр  ToOEM = 1)

18.01.2019 Из-за изменений, повлёкших ошибки при работе с версией версии r_k 7.6.2.xx, была переработана работа с кодировкой и с версии sdmHTTPFarCards.dll 1.17.0.0 параметр Shelterconnect.ini ToOEM должен быть установлен как ToOEM=0
10.02.2019

Обновлена ShelterConnect.dll (версия 1.2) - исправлена ошибка, когда при аннулировании/отмене чека корректирующая транзакция на фолио не корректировала закрытие.

Абонемент версия 136 - поддержана передача ППР из r_k и печать в детализированном чеке закрытия на номер. 

 

Инфоплазма

 

 

1. Общие сведения

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

1.1. Назначение

Программа предназначена для визуализации информации из базы данных (например, поэтажного плана, списка находящихся клиентов и др.) и должна быть отображена на отдельном дисплее в удобном для посетителей месте, например в холе заведения. Устанавливается на рабочий компьютер администратора, при наличии второго монитора или на отдельный компьютер. В случае размещения в зале, за телевизором устанавливаем компьютер типа NetTop. 

  

Внешний вид модуля

1.2. Целевая аудитория программного продукта

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

2. Настройка программы

Для настройки программы используется файл monitor.ini - в данном файле, в разделе [Settings], указывается путь до файла с настройками MonitorSettings.xml и путь до базы данных

MonitorSettings=D:\Monitor\MonitorSettings.xml 
dbname=127.0.0.1/3080:D:\MyDB\IBData\fitness.FDB 
;Программа защищена ключом, поэтому необходимо прописать путь к серверу блокировок: 
[LOCK.SERVER] 
TCPPort=1111 
TCPHost=127.0.0.1

Далее, существует 2 варианта настройки выводимых данных и интерфейса:

2.1.  С помощью встроенного редактора в abonementmanager

Для упрощенного вывода отображения поэтажного плана используется настройка в редакторе abonementmanager.

Преимуществo данного способа – простота редактирования выводимой формы

Недостаток данного способа – негибкость настроек отображаемых данных, ограниченный набор способов вывода данных.

В случае, если abonementmanager.ini и monitor.ini настроены на одну базу, Этажный план, создаваемый с помощью abonementmanager, будет дублироваться в форме Monitor.

Для внесения изменений в форму Монитора, можно зайти в раздел Абонемента, щелкнув по иконке (см. рис.1).

 

Рис.1. Настройка поэтажного плана в abonementmanager

Далее, сохраняем внесённые изменения и наблюдаем изменения в форме Монитора.

2.2. С помощью настройки файлов преобразований и запросов

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

Преимущества данного способа – возможность вывода любых данных из БД в удобной форме, в зависимости от настроек.

Недостаток данного способа – сложность настроек файлов, необходимость знать наименования полей БД.

2.2.1. Структура программы Monitor

В состав программного продукта входят следующие основные модули (типы файлов):

  • Файлы настроек: *. ini
  • Файлы библиотек: *.dll
  • Файлы запуска программ .exe (Для запуска Монитора - Monitor.exe)
  • Файлы .xml — файлы в текстовом формате, предназначенные для хранения структурированных данных и для обмена информацией между программами.

MonitorSettings.xml

В данном файле определяются параметры выводимой формы, такие как: высота, ширина, заголовок, позиционирование на экране.

Кроме этого, из SQL-запроса, указанного здесь, возвращается набор данных, которые могут быть выведены на форму.

Атрибуты формы (Form)

left

Отступ слева (в пикселях)

top

Отступ

Width

Ширина формы (окна)

Height

Высота формы (окна)

Caption

Выводимое наименование окна (заголовок)

BorderStyle

задает толщину рамки вокруг элемента в пикселях

 

С частотой, указанной в теге <Periodicity>2</Periodicity> (в данном случае – 2 секунды), данные, полученные из запроса, будут обновляться на выводимой форме Monitora.

2.2.2.  Алгоритм работы программы

Результат выполнения запроса, указанного в MonitorSettings.xml формируется в виде xml-данных, на которые накладывается шаблон преобразования (*.xls) (см. рис.2).

Путь к данному шаблону и его имя указываются в файле MonitorSettings.xml, в разделе

<XSLT>floorplan.xsl</XSLT> (в данном случае, файл floorplan.xsl располагается в том же каталоге, что и Monitor.exe, MonitorSettings.xml).

В шаблоне преобразования (floorplan.xsl) описаны правила преобразования xml документа в другой внешний вид, в данном случае в HTML страницу. Путь и наименование новой html-страницы указываются в MonitorSettings.xml в разделе

<HTML>cache\floorplan.html</HTML> (в данном случае, будет создана страница floorplan.html в папке cache).

Рис.2. Схема работы программы Монитор

2.2.3. Шаблон преобразования документа

Шаблон преобразования написан на XSL (язык преобразований XML-документов). С помощью него XML-документ трансформируется в HTML вид.

Структура документа

<header> </header>

здесь указываются метаданные, например, кодировка.

<body></body>

«тело документа». В атрибутах тега <body> можно указать, например, style="background-image:url(floorplan.gif);"

При этом, картинка floorplan.gif должна находиться в папке Monitor\cache\

Атрибуты тега <body> влияют на внешний вид всего документа целиком:

Атрибут

Описание

Пример

bgcolor

Цвет фона

<body bgcolor="#C9CDED">

background

Фоновая картинка

<body background="images/tile.jpg">

text

Цвет текста

<body text="#000067">

link

Цвет ссылок

<body link="#457BAF">

vlink

Цвет посещённых ссылок

<body vlink="#9C7B92">

alink

Цвет активных ссылок

<body alink="#434343">

Таким образом, результаты запроса можно представить в виде html-документа

Каждая строчка в выводимом наборе данных представлена в теге <RecordSet>, каждое поле в теге <Record>.

Схематично это можно проиллюстрировать примером:

Запрос «select ID, Name from Rooms».

В результате выполнения запроса будут получены следующие данные:

ID

Name

1

Бассейн

2

Зал

В результате преобразования данные будут представлены в следующем схематичном виде

<RecordSet>

<Record> ID=”1”  Name= “Бассейн” </Record>

<Record> ID=”2”  Name= “Зал” </Record>

</RecordSet>

Данные выводятся в табличном виде. Схема простой таблицы (с 1 строкой и 2 колонками) представлена ниже:

<table>   
 <tr>     
   <td>Ячейка 1</td>     
   <td>Ячейка 2</td>
 </tr>
</table>

В ячейках можно выводить данные, полученные в результате выполнения запроса из MonitorSettings.xml.

Например, выводим номер <xsl:value-of select="NUMBER"/>

Примечание! Наименование полей указывается прописными буквами

2.2.4. Примеры

Пример 1

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

1) Настраиваем MonitorSettings.xml

<Form left="500" top="5" Width="200"                        Height="400"

Размеры и расположение формы на мониторе

     Caption="Данные по комнатам"

Заголовок окна

      ID="2"

Номер формы (ее идентификатор)

       BorderStyle="2"

       WindowState="0">

Стиль окна: ширина рамки 2 пикселя

 <ZOrder>-1</ZOrder>

Z-последовательность (Z order) окна обозначает позицию окна в стеке перекрывающихся окон. Окно наверху Z-последовательности перекрывает все другие окна. Окно внизу Z-последовательности перекрыто всеми другими окнами.

 <ShowPanel>0</ShowPanel>

Не отображать панель настроек браузера

 <Periodicity>2</Periodicity>

Период обновления – 2 секунды

 <SQLText>

 select r.number  number, r.name from rooms r

 </SQLText>

SQL запрос. Выводятся следующие поля таблицы rooms базы данных: number (номер) комнаты и name (имя) комнаты

<XSLT>rooms.xsl</XSLT>

Применяемый файл преобразования, в данном случае: rooms.xsl

<HTML>cache\rooms.html</HTML>

В результате преобразования в папке /cache будет сформирована html-страница rooms.html

<HIDECURSOR>0</HIDECURSOR>

Не показывать курсор мыши в пределах окна формы

<FormID>2</FormID>

</Form>

Команда на создание формы

                    

2) Создадим файл преобразования rooms.xsl

Приведем часть кода

<body>  <table border="1" >        <tr>           <th >Номер комнаты </th>                        ;Заголовки колонок таблицы           <th >Наименование комнаты </th>          ;Заголовки колонок таблицы       </tr>     <xsl:for-each select="RecordSet/Record">         <tr>           <td>             <xsl:value-of select="NUMBER"/>             ;Выводимые значения полей БД           </td>           <td>             <xsl:value-of select="NAME"/>                   ;Выводимые значения полей БД           </td>         </tr>  </xsl:for-each>  </table> </body>

То есть данные должны быть выведены в подобном виде:

Номер комнаты

Наименование комнаты

    <--- Заголовок колонок таблицы

 Значение 1

Наименование 1

    <--- Выводимые значения полей БД

..

..

     

  В результате выполнения преобразования будет создана rooms.html страница в папке cache. И при запуске исполняемого файла Monitor.exe поверх всего будет выведена форма с таблицей.            

Пример 2

Настройка цветов в зависимости от статуса мероприятия

Варианты статусов

ID статуса

Статус

0

Не началось мероприятие

1

Началось мероприятие

2

Мероприятие закончилось

3. Режим работы с программой

Управление выводимой формой осуществляется с помощью следующего стандартного окна настроек (см.рис.3).

Рис.3 - Стандартное окно настроек Монитора

Окно выводимой формы с этажным планом можно настраивать в соответствии с потребностями, и оно всегда выводится поверх остальных окон (см. рис.4). 

 

Рис.4,5 - Варианты окна Монитора

Данное окно не подлежит закрытию стандартными средствами - для закрытия программы используется Окно настроек (с рис.3).

Файл MonitorSettings.xml:

<Monitor>

        <Forms>  

                <Form left="5" top="5" Width="510" Height="380" Caption="Этажный план" ID="1" BorderStyle="2" WindowState="0">

                        <ZOrder>-1</ZOrder>

                        <ShowPanel>0</ShowPanel>

                        <Periodicity>2</Periodicity>

                        <SQLText>

    

select r.id id, r.number  number, r.name, r.state, r.floor,r.building, 0 guest_quant ,

     rk.id roomkind, rk.code roomkindcode,rk.name roomkindname,


COLORTOHTMLHEXCOLOR(rk.color) roomkindcolor,

d.id claim, d.status claimstate, formatdatetimeex('hh:mm:ss',d.startdate,'') arrival,


case when d.status=1 and d.finishdate=90000

     then formatdatetimeex('hh:mm:ss',(d.startdate + p.diaryduration)-(d2dbl('now')),'')

     else formatdatetimeex('hh:mm:ss',d.finishdate-(d2dbl('now')),'')

end  fmt_end_time, 


case when d.status=1 and d.finishdate=90000

     then ROUND(((d.startdate + p.diaryduration)-(d2dbl('now')))*1440)

     else ROUND(((d.finishdate)-(d2dbl('now')))*1440)

end  fmt_end_time_min,


case when

        case when d.status=1 and d.finishdate=90000

            then ROUND(((d.startdate + p.diaryduration)-(d2dbl('now')))*1440)

            else ROUND(((d.finishdate)-(d2dbl('now')))*1440)

       end >5 then 'black'

              else 'red'

end fmt_end_time_min_color,



d.guest,fp.aleft , fp.atop,fp.awidth,fp.aheight, r.building, r.floor,

case when d.status=1 then 'red' else 'green' end statecolor ,

g.fullname as GUESTNAME,


case when getnamedparamdefnum(dd.paramstr,'color',0)=000000

    then 'ffffff'

     else COLORTOHTMLHEXCOLOR(getnamedparamdefnum(dd.paramstr,'color',0)) end as room_abonement_categ_color


from resource_categ rc

left join room_kinds rk on rc.id=rk.resource_categ and  rk.enabled=1

left join rooms r on r.roomkind=rk.id and r.enabled=1


                         /*and r.building=3*/

left join floorplan fp on fp.idroom = r.id

left join diary d on d.idroom=r.id and d.enabled=1

                                   and ( d.status=1 or (d.startdate &lt; d2dbl('now') 

                                   and d.finishdate &gt; d2dbl('now')))

left join guests g on d.guest = g.id

left join abonement_packages ap on d.abonement_package = ap.id


left join abonements a on a.id = ap.abonement

left join package_kinds pk on a.package_kind=pk.id

left join d_document dd on dd.id=pk.abonementcateg


left join packages p on ap.package = p.id


                         where 

                         rc.kind in (0) 

                         and r.enabled=1 

                         order by r.number ,fmt_end_time_min


      </SQLText>

                        <XSLT>floorplan.xsl</XSLT>

                        <HTML>cache\floorplan.html</HTML>

                        <HIDECURSOR>0</HIDECURSOR>

                        <FormID>2</FormID>

                </Form>



        </Forms>

</Monitor>

Файл floorplan.xsl

<?xml version="1.0" encoding="WINDOWS-1251" ?>

<!--Набор переменных используеться для XSLT -->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 

                         xmlns:str="http://user.com/namespace" version="2.0"  

>


<xsl:key name="group" match="/RecordSet/Record" use="ID" /> 

<!--Ключ "group", уникальное поле "ID" -->

<xsl:template match="/">


<header>

  <META http-equiv="Content-Type" CONTENT="text/html; charset=WINDOWS-1251" />

</header>

<!--Фон страницы -->

<body style="background-image: url(floorplan2.GIF);background-repeat: no-repeat;">

<!-- Первый цикл по уникальному поле "ID" -->

  <xsl:for-each select="/RecordSet/Record[ generate-id() = generate-id( key( 'group', ID ))]">


 <!--позицианирование div  блока согластно данным в БД-->

 <div ID="{ID}" STYLE="position:absolute; top: {ATOP}px; left: {ALEFT}px; width: {AWIDTH}px; height: {AHEIGHT}px; overflow:hidden;">

<!--Построение "шапки" таблицы таблицы border толщина линий, width ширина height высота, cellpadding расстояние между ячейками по высоте, cellspacing расстояние между ячейками по ширине -->   

<table border="1" width="100%" height="100%" cellpadding='0' cellspacing='0' > 

    <tr height="20px" > <!--Высота первой строки-->

<td align="center" colspan="2" style='background-color: #FFCC66;'> 

<!--Фон  первой строки-->

<xsl:value-of select="NUMBER"/>  <!--Значение  первой строки-->

  </td>

</tr>

<xsl:for-each select="key( 'group', current()/ID )">

<!-- Второй цикл тут обходим только Record для ID из прошлого цикла, т.е. строим строки таблицы -->

<tr > <td align="center" width="60px"><!--Ширина первого столбца  таблицы-->

<xsl:attribute name="BGCOLOR">                             

<!--Фон столбца  таблицы, в зависимости от категории-->

<xsl:value-of select="ROOM_ABONEMENT_CATEG_COLOR"/>

</xsl:attribute>  

<font color="{FMT_END_TIME_MIN_COLOR}">                   

 <!--Фон столбца  таблицы, в зависимости от категории-->

<xsl:value-of select="FMT_END_TIME_MIN"/> мин                 

</font> 

      </td >

    <td align="center">

<xsl:attribute name="BGCOLOR">                             

<xsl:value-of select="ROOM_ABONEMENT_CATEG_COLOR"/>   

<!--Фон 2 столбца  таблицы, в зависимости от категории-->

</xsl:attribute>  

    <xsl:value-of select="GUESTNAME"/>  <!--Гость во 2-м столбце  таблицы-->

                        </td > 

                    </tr>

                </xsl:for-each>

  </table> 

  

     </div>

</xsl:for-each>


</body>

</xsl:template>

</xsl:stylesheet>
 

EventsService - модуль автоматической работы с мероприятиями

Описание 

 

Модуль EventsService отвечает за работу с мероприятиями в автоматическом режиме.
Модуль может обеспечивать следующий функционал:
  • Начинать и/или заканчивать мероприятия
  •      Производить операции только с групповыми или только с индивидуальными мероприятиями
  •      Производить операции только с мероприятиями в определённых ресурсах
  •      Начинать и заканчивать мероприятия с задержкой/опережением
  •      Контролировать оплату абонемента, по которому забронировано мероприятие
  •           Удалять не начавшиеся мероприятия если оплата не поступила, с настраиваемым временем до или после запланированного начала 
  •           Удалять неоплаченные абонементы
  • Управлять светом и электроприборами, при начале мероприятия (Интеграция с релейным блоком)
  • Работа с регулярными списаниями средств в рамках графика платежей (EFT)
 
 
Лицензирование
 
Лицензия на модуль предоставляется бесплатно, для целей управления мероприятиями (проект 4, модуль 3 в ключе защиты)
Лицензия на модуль в случае использования функционала EFT платна (проект 1, модуль 9 в ключе защиты)
Подробнее про лицензирование модулей Абонемент.
 
 
 

Примеры решаемых задач 

 
Модуль используется на объектах, работающих в сеансовом режиме или с бронированием, в случаях, когда заранее созданные мероприятия не имеет смысла начинать и/или заканчивать в ручном режиме, но механизмы списания и контроля доступа должны работать в соответствии с настроенной логикой.
 
 
Пример №1:

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

 

Пример №2:

На объекте используется солярий в автономном режиме.
Пакеты минут в солярий заведены как типы абонементов (5 минут, 10 минут, 100 минут и т.д.).
При отметке визита в солярий в контроле присутствия создается мероприятие фикс. продолжительности и автоматически завершается по истечении продолжительности посещения из карточки тарифа.

 

Описание настроек

 
ВАЖНО!!!
Для корректной работы функционала необходимо чтобы в карточке тарифа был установлен параметр "Автосоздание мероприятия фиксированной продолжительности".
 
 
Все настройки модуля производятся через eventservice.ini
 
Содержание EventsService.ini :
;Настройка на базу данных Абонемент (Аналогично остальным модулям)
[database]
  dbname=127.0.0.1/3080:UCS_WORK
  dbuser = ucs
  DBPassword = oQKH8n0BFUE=

;Настройка на сервер блокировок Абонемент (Аналогично остальным модулям)
[LOCK.SERVER]
  TCPHost = 127.0.0.1
  TCPPort = 1119

;Настройка параметров логирования (Аналогично остальным модулям)
[log]
  level=30
  debuglevel=30
  name=.\LOG\EventsService.log
  ByMonthes=1
  ByDays=1
  BYHOURS=1

[application]
;Начинать работу автоматически при запуске приложения
  AutoStart=1
;Частота опроса БД в секундах (минимальное значение - 5)
  TimerInterval=10

;Настройка работы с мероприятиями
[Diary]
;Автоматически начинать обычные мероприятия
  startkind0=0
;Автоматически заканчивать обычные мероприятия
  stopkind0=0
;Автоматически начинать групповые мероприятия
  startkind1=0
;Автоматически заканчивать групповые мероприятия
  stopkind1=0

;Коды ресурсов (через запятую), обычные мероприятия в которых должны стартовать автоматически (если не заполнено - во всех)
  startResourcesKind0=
;Коды ресурсов (через запятую), групповые мероприятия в которых должны стартовать автоматически (если не заполнено - во всех)
  startResourcesKind1=
;Коды ресурсов (через запятую), обычные мероприятия в которых должны заканчиваться автоматически (если не заполнено - во всех)
  stopResourcesKind0=
;Коды ресурсов (через запятую), групповые мероприятия в которых должны заканчиваться автоматически (если не заполнено - во всех)
  stopResourcesKind1=

;Начинать обычные мероприятия с задержкой(количество минут). Если отрицательное число, то начнётся заранее
  EventStartDelayKind0 = 0  
;Начинать групповые мероприятия с задержкой(количество минут). Если отрицательное число, то начнётся заранее
  EventStartDelayKind1 = 0  
;Заканчивать обычные мероприятия с задержкой(количество минут). Если отрицательное число, то закончится заранее
  EventStopDelayKind0 = 0   
;Заканчивать групповые мероприятия с задержкой(количество минут). Если отрицательное число, то закончится заранее
  EventStopDelayKind1 = 0   


;Искать забронированные НЕ начатые мероприятия по неоплаченным абонементам в интервале от ТЕКУЩЕЕ ВРЕМЯ + HourForDeleteNoPayedAbonementBefore до ТЕКУЩЕЕ ВРЕМЯ + HourForDeleteNoPayedAbonement (могут принимать отрицательные значения)
;  Если такие мероприятия найдены, то отрабатывается параметр deleteNoPayedAbonement. Если deleteNoPayedAbonement=0, то проверяется параметр deleteNoPayedDiary.
  HourForDeleteNoPayedAbonement=0
  HourForDeleteNoPayedAbonementBefore=0

;Удалять мероприятия по неоплаченному абонементу
  deleteNoPayedDiary=0
;Удалять неоплаченный абонемент
  deleteNoPayedAbonement=0


;Включать приборы в ресурсе заранее до мероприятия (количество минут)
  TurnONTheDeviceMinutesTimeBefore=0
;Включать устройства, даже если EventService не начинает и не заканчивает мероприятия в данных ресурсах
  AlwaysTurnONTheDevice=0
 
 
Секции [CreditCard] и [pos] отвечают за функционал EFT, и не обязательны. 
Функционал и настройки EFT описаны в соответствующей статье.
 
 
ВАЖНО!!!!
Если любой из параметров NeedRegCCPayment или UseEFT установлен в 1, модуль перестанет работать без соответствующей лицензии (проект 1, модуль 9).
 
 

Установка и мониторинг работоспособности

 
Для использования модуля достаточно распаковать поставку модуля, находится по пути Fullversion\_MODULES\EventsService
 
Модуль не имеет графического интерфейса. 
При запуске отображается иконкой в трее Windows. Иконка отображает текущее состояние: работает или приостановлен, показаны на рисунках 1, 2.
По правой кнопке мыши доступны действия: Запустить/Остановить и выгрузить.
 

Рис.1 Вид иконки модуля в трее Windows - рабочее состояние

 

Рис.2  Приостановленное состояние

 

 

Запуск может также производится утилитой StarterA1, для работы в фоновом режиме от имени системы, и старта в качестве службы.
 
Отслеживать работоспособность модуля можно с помощью утилиты ServMonitor.
 
 
 
 
 
 

ИнфоМонитор для клиента

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

Рассмотрим несколько возможных ситуаций решения данной задачи:

  • Инфотерминал без контроллера
  • ИнфоПлазма с контроллером
  • Инфоплазма без контроллера
  • Контроллер с дисплеем

 

1. Инфотерминал без контроллера

Используется ПО: Инфотерминал (в режиме работы "Аквапарк").
Оборудование: Персональный компьютер, монитор, считыватель. Можно использовать специальный антивандальный настенный терминал.
Краткое описание: Устанавливается на стену монитор и считыватель, системный блок  или мини-ПК убирается за стену в технологическое помещение. Считыватель подключается к системному блоку. Компьютер подключается к локальной сети. На него устанавливаем ПО Инфотерминал - это WEB решение которое работает через Connector с оборудованием. По умолчанию крутится заставка, когда гость подносит карту, на экране отображаем Фото гостя, его ФИО, баланс фолио, информацию по нахождению в ресурсе.  Требуется кастомизация под конкретного клиента. 
 

2. ИнфоПлазма с контроллером

Используется ПО: Инфоплазма (монитор), интерфейс с турникетом (GkHostConnect)
Оборудование: Персональный компьютер, монитор, считыватель, контроллер.
Краткое описание: Устанавливается на стену монитор и считыватель, системный блок  или мини-ПК убирается за стену в технологическое помещение. Считыватель подключается к контроллеру, который так же находится в технологическом помещении. Контроллер находится в локальной сети. Данный контроллер, как и контроллеры турникета настраиваются на конкретный ресурс. Тип устройства в GKHostConnect указывается Инфотерминал. На компьютер устанавливается модуль Инфоплазма, которая постоянно сканирует базу и ждет срабатывания контроллера. Обрабатывается событие чтение карты, считывается трек с карты и по номеру идентификатора на мониторе отображается информация о госте, его баланс, фотография, остатки времени пребывания в ресурсе. Требуется кастомизация под конкретного клиента. 
 
 

3. Инфоплазма без контроллера

Используется ПО: Инфоплазма (монитор), интерфейс с турникетом (GkHostConnect), TCPCardReader
Оборудование: Персональный компьютер, монитор, считыватель
Краткое описание:  Устанавливается на стену монитор и считыватель, системный блок  или мини-ПК убирается за стену в технологическое помещение. Считыватель подключается к системному блоку. Компьютер подключается к локальной сети. На него устанавливаем ПО Инфоплазма. По сравнению с предыдущем пунктом, контроллер заменяем TCPCardReader, который считывает информацию с карты и передает ее в GKHostConnect. Один TCPCardReader эмулирует работу одного контроллера. Все остальные настройки делаются аналогично.
 
 
4. Контроллер с дисплеем
Используется ПО: Интерфейс с турникетом (GkHostConnect)
Оборудование: Считыватель, контроллер, дисплей.
Краткое описание:  На стену в удобном месте устанавливаем считыватель и 2-х строчный дисплей GameKeeper. Отдельно дисплеи уже не делаются. Идут только со считывателями для карт GameKeeper. От этого устройства нужен только дисплей, а считыватель используем  другой. Контроллер подключаем в локальную сеть. В GkHostConnect настраиваем так же тип устройства Инфотерминал. При считывании картой на дисплее можно отображать разную информацию. Регулируется печатной формой.  Ограничены 2-мя строками дисплея. В большинстве случаев требуется кастомизация под конкретного клиента. 
 

 

Вывод информации о балансе на двухстрочный монитор с помощью gkhostconnect

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

  1. Тип устройства в gkhostconnect необходимо выбрать "Инфотерминал"
  2. В параметрах устройсвта в пункте " Контроль баланса -> Логирование баланса клиента при проходе" выбрать "Включено всегда"
  3. В gkhostconnect.ini прописать:
    [frf]
          ShortInfoTerminal=ShortInfoTerminal
  4. В качестве печатной формы можно использовать приложенную. Она должна располагаться в %gkhostconnect%\frf\

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

Печатная форма для примера во вложении.

ИнфоМонитор для клиента через контроллер и СРЧ-125 (E-Marine)

ИнфоМонитор для клиента через контроллер и СРЧ-125

Работает только на картах формата E-Marine!
 
На рабочих местах в ПО Абонемент можно использовать считыватель СРЧ-125.  В этом случае для отображения информации гостю используется контроллер игрового автомата со считывателем Game Keeper E-Marine и двустрочным дисплеем.
 
Трек, который приходит на контроллер со считывателя СРЧ-125, подключенного к компьютеру:
;750=0060000454134126624
Трек, приходящий с контроллера, к которому подключен считыватель GameKeeper с дисплеем: 
20C8 CARD 0060000454134126624F

(Рис.1 - Считыватель СРЧ-125)

(Рис.2 - Считыватель GameKeeper)

Модуль "EFT - автоматический процессинг"

 

Описание

Механизм EFT списаний – это механизм для списания денежных средств с банковской карты клиента, согласно установленному графику списаний.
Списание производится через процессинг.
 
Поддерживаемые процессинги: ucscards.ru (UnitedCardServices)
 
В ПО Абонемент 
1) Создается клиент
2) Присваивается банковская карта с пометкой "основная"
3) Продается абонемент с типом "EFT", у которого имеется график платежей и график автоначислений услуг.
  
  Например
  Тип абонемента "EFT2" 
  списывать платеж на сумму "1000" ежемесячно каждого 11-го числа, 
  начислять услугу на сумму "1000" ежемесячно каждого 12-го числа 
 
Т.е. первая попытка списания 11-го, если списать деньги не удалось, то 12-го у клиента начислится ежемесячная услуга 
у клиента будет отрицательный баланс, как следствие по настройкам типа абонемента, клиенту будет доступ запрещен.
Обычно настраивают 10 попыток (дней) списаний.
 
Механизм состоит из 3-х последовательных звеньев: EventsService.exe, EFT.exe, Банк

[Звено 1]  EventsService.exe 
1) Формирует XML файл для  списания. 
Имеет набор данных: 
Карта плательщика, дата окончания, сумма списания и прочие доп. поля
2) Фиксирует ответ от банка в БД
 
[Звено 2]  EFT.exe
1) Преобразует файл XML в файл формата банка 
2) Формирует файл, закодированный ключом PGP. Сохраняет в отдельную папку.
3) Отправляет письмо по адресу с определенным текстом и прикрепленным файлом
4) Мониторит почту (может отличаться от отправляемой) для выявления ответа от банка 
и скачивает вложенный файл. Ожидается один файл. Сохраняет в отдельную папку.
5) Декодирует полученный файл и заполняет файл XML ответами из банка. 
 
[Звено 3]  Банк
1) Принимает закодированный файл для списания
2) Списывает с банковских карт средства
3) Возвращает закодированный файл с результатами списаний
 

Настройки EventsService.ini специализированные

[application]
    UseManualEft=0                         /* 0 - по умолчанию (автоматическое);  1 - ручное, пошаговое  EFT-списание */
 

[CreditCard]

  NeedRegCCPayment=1                /*1-включить автоматическую оплату абонементов. Всегда = 1*/
  useeft=1                                        /* включить механизм EFT списаний */
  PKCode = EFT,EFT2,EFT3           /* список кодов типов абонементов, учавствующие в атоматических списаниях */
 
  filename=ChangeEFT.xml              /* файл набора данных */ 
  paycode=Visa                                 /* код платежа создаваемого, в случае успешного списания*/  
 

Настройки EFT.ini

[Main]
ManualMode = 1                                                          /*Ручной режим формирования и импортирования пакетов (0 -- нет, 1 -- да)*/
Timer = 5000                                                                /*Время повтора Eft списания (в миллисекундах)*/
 
LockFile =D:\FITNESS\UTILS\EventService\ChangeEFT.lock                   /* Управляющий файл взаимодействия EventService и EFT*/
XMLFile = D:\_1_JOB\03_EFT\EventService\ChangeEFT.XML                 /* XML файл данных от Event Service*/
 
WorkDir = D:\FITNESS\UTILS\EFTWorkDir\                                                                  /* Рабочая директория */
FileToBankPack=D:\_1_JOB\03_EFT\WorkDir\09999_20170926_00.asc                     /* Техническое поле. Файл для банка Eft списания*/
FileFromBankPack =D:\_1_JOB\03_EFT\WorkDir\ans-09999_20170926_00.zip.asc   /* Техническое поле. Файл ответа от банка Eft списания*/
 
 
Pack = D:\FITNESS\UTILS\EFT\pack.bat                  /*Командный файл для упаковки (шифрования)*/
UnPack = D:\FITNESS\UTILS\EFT\unpack.bat         /*Командный файл для распаковки (дешифрования)*/
 
Status =0                                                            /* Состояние:*/
                                                                              ;0 -- начальное состояние (формирование файла для банка);
                                                                              ;1 -- отправление данных Eft в банк;
                                                                              ;2 -- получение ответа от банка по Eft;
                                                                              ;3 -- импортирование данных в Event Service
 
LastDate=43011                                                /*Дата последнего отправления в банк, в формате числа*/
IDDoc=3                                                             /* ;ID документа для банка (увеличивается на 1 после ответа от банка) */
 
FromDay = 1                                                      /*День месяца периода. Период, отправки данные в банк*/
Days = 30                                                           /*Кол-во дней от дня месяца периода . Период, отправки данные в банк*/           
FromTime = 10:00                                              /*Время, с которого отпралять данные в банк*/
 
[7Zip]
FileExe = "C:\Program Files\7-Zip\7z.exe"        /* путь до файла архивирования */
 
 
[GPG]
FileExe =  "C:\Program Files (x86)\GNU\GnuPG\gpg2.exe"   /*Приложение для шифрования и расшифровывания (PGP)*/
Password = *Password*                                                          /*Пароль для расшифровывания*/         
LocalUser = *User*                                                                  /*Имя пользователя ключа*/                     
 
[Bank]
  ContractNumber = 09999                               /*Номер договора. Получить у банка*/
  MerchantID = 9909999771                             /*Код клиента. Получить у банка*/     
 
[SMTP] 
  Host = smtp.yandex.ru                                   /*Адрес сервера SMTP*/
  Port = 465                                                       /*Порт сервера SMTP*/
 
  Username =Username@mail.ru                       /*Имя пользователя*/
  Password =*Password*                                    /*Пароль*/
  Subject = complex auth from %n%                   /*Темя сообщения*/
 
  FromAddress =Username@mail.ru                          /*Адрес отправителя*/
  ToAddress = monitor@abgcard.ru,admin@my.ru     /*Адрес банка*/   
  AdminAddress = admin@my.ru                                /*Адрес администратора*/
 
  TimeOut = 10000                                                     /*Тайм-аут подключения*/
  SSLType = 1                                                             /*Тип SSL (0 -- 3)*/
 
[POP3]
Host = pop.yandex.ru                                                  /*Адрес сервера POP3*/
Port = 995                                                                    /*Порт сервера POP3*/
Username =Username@mail.ru                                  /*Имя пользователя*/
Password =*Password*                                                /*Пароль*/
FromAddress =monitor@abgcard.ru                            /*Адрес отправителя (банка)*/
TimeOut = 10000                                                          /*Тайм-аут подключения*/
SSLType = 1                                                                  /*Тип SSL (0 -- 3)*/
 
ValidationFileName = 0                                                  /*Проверка имени файла от банка (0 -- нет, 1 -- да)*/  
 
[HTTP]
Host = 127.0.0.1             /*Хост. Для подтверждения отправки*/
Port = 8089                     /*Порт. Для подтверждения отправки*/
 

Взаимодействие 

Взаимодействие между EFT.exe и EventsService.exe – файловый.
Файл 1: EventsService\ChangeEFT.lock – управляющий файл
Файл 2: EventsService\ChangeEFT.XML– набор обрабатываемых данных
 
Файл ChangeEFT.lock имеет несколько значений
0 – Файл ChangeEFT.XML не сформирован
1 – Файл ChangeEFT.XML начал формироваться
2 – Файл ChangeEFT.XML сформирован
3 – Файл ChangeEFT.XML занят обработкой в EFT.exe
4 – Файл ChangeEFT.XML обработан EFT.exe
5 – Файл ChangeEFT.XML фиксируется в БД. По окончанию удаляется.
 

Общие данные поведения утилиты EFT.exe

1)  Цикл работы при стабильном функционировании: 
      1 раз в день , с 8 числа в течении 12 дней (параметры)
2) Признак начала работы: Состояние управляющего файла = 3
3) Признак окончания работы: Состояние управляющего файла = 4
 

Общий цикл EFT списания

1) Стартовое состояние: 
ChangeEFT.lock = 0 (либо отсутствует файл), ChangeEFT.XML пустой (либо отсутствует файл).
2) ChangeEFT.lock = 1, ChangeEFT.XML начинает формироваться XML.
3) ChangeEFT.lock = 2, ChangeEFT.XML завершилось формироваться XML.
4) EFT.exe выставляет значение ChangeEFT.lock = 3, копирует ChangeEFT.XML во временную директорию .\WORK. 
5) EFT.exe кодирует ключом PGP формирует зашифрованный файл для банка.
Сохраняет .\Archive\to\20170130_143548\09999_20170926_00.asc
6) EFT.exe отправляет сформированный файл на почту 
7) EFT.exe мониторит наличие ответа из банка раз в 5 минут (параметр)
8) EFT.exe скачивает ответ банка. 
Сохраняет во временную директорию.
Сохраняет .\Archive\from\20170130_153548\ans-09999_20170926_00.zip.asc
9) EFT.exe декодирует файл
Получает из файла банка ответы и к каждой записи ChangeEFT.XML  добавляет значения 
<ERRORCODE></ERRORCODE>
<ERRORTEXT></ ERRORTEXT >
10) EFT.exe копирует с заменой в директорию EventsService\ChangeEFT.XML 
cохраняет .\Archive\from\20170130_153552\ChangeEFT.XML 
11) EFT.exe выставляет значение ChangeEFT.lock = 4
12) EFT.exe фиксирует, что сегодня файл уже был один раз обработан и не работает не зависимо от того какое состояние файла ChangeEFT.lock. и ожидает следующий цикл обработки.
13) EventsService.exe выставляет значение ChangeEFT.lock = 5 
Обрабатывает файл ChangeEFT.XML .
14) EventsService.exe выставляет значение ChangeEFT.lock = 0 
Удаляет файл ChangeEFT.XML .
15) Цикл EFT списания завершен
 
 

 

Модуль распознавания документов. Интерфейс с Cognitive Technologies.

Распознавание документов через программу Scanify

Используется программа распознавания документов ScanifyAPI, разработанная компанией Cognitive Technologies (http://www.cognitive.ru). Сканер документов модель Plustek OpticSlim 550 Plus.

 

Установка программы ScanifyAPI

Установка производилась на операционную систему Windows 7.

Для установки программы ScanifyAPI необходимо запустить файл setup.exe. Данная программа использует USB Guardant ключ. Установка драйверов Guardant выполняется отдельно. Далее, подключаем сканер к USB порту, устанавливаем драйвера. В системе устанавливается сканер «Plustek OpticSlim 550 Plus». В ходе тестирования стандартного драйвера устройства было выявлено, что сканер переходит в спящий режим через короткий промежуток времени (менее 10 минут), в связи с чем, на дилерском FTP ресурсе размещена версия драйвера с предустановленным режимом "no sleep" (работоспособность протестирована, сканер не переключался в "спящий режим" более 24 ч.).

Ссылка на версию драйвера с "no sleep": ftp://172.22.10.100/Abonement/Interface/Cognitive_Technologies/

Запускаем программу «..\Cognitive\ScanifyAPI\Samples\ScDialog_delphi.exe». Паспорт на сканере размещается ВЕРТИКАЛЬНО. (вероятно возможно настроить данный программный комплекс для горизонтального размещения документа). Нажимаем на кнопку «Сканировать». Возникает окно с предложением калибровать сканер. Выполняем калибровку сканера. Калибровку сканера так же можно выполнить в свойствах сканера (Панель управления\сканеры и камеры). В окне «Выбор источника» выбираем сканер. После этого происходит сканирование и распознавание документа. В окне «Протокол работы» отображается информация о ходе сканирования и возникающих ошибках. Таким образом происходит проверка работы программы ScanifyAPI.

 

Настройка Abonement

Проверка проходила на Abonement ver.127

Из папки «C:\Program Files\Cognitive\ScanifyAPI\Samples\» в папку «exe» Абонемента скопировать следующие файлы:

ScProxy.cs.dll
ScProxy.cs.xml
ScProxy.dll
ScProxy.ini

Из папки «..\FullVersionVer127\HW\screcog\» в папку «exe» Абонемента скопировать следующие файлы:

ScRecog.dll
screcog.ini

В файле screcog.ini прописать название сканера. Название сканера взять из протокола работы программы ScDialog_delphi.exe (при проверке использовалось имя «Plustek OpticSlim 550 Plus-TWAIN»).

В файле «ScProxy.ini» необходимо прописать путь до папки /Bin32 программы «ScanifyAPI».

(По умолчанию устанавливается в «C:\Program Files (x86)\Cognitive\ScanifyAPI\Scanify\Bin32»).

 

Работа в Abonement

 Вы можете использовать сканер при добавлении клиента. Перейдите на вкладку “Управление абонементом”, потом “Список клиентов”. При нажатии на кнопку “Добавить клиента”, Вы увидите стандартную форму “Карточка клиента”. Положите паспорт в сканер и нажмите кнопку “Сканирование”. Через некоторое время, приблизительно 10 секунд, данные паспорта отсканируются и распознаются. Всё это будет видно по заполненным полям в карточке клиента. Если у Вас в течении определённого времени ничего не появилось в карточке, то одной из причин может быть неправильное расположение паспорта. Переверните его и попробуйте ещё раз отсканировать. Абонемент использует API функции программы Scanify и за качество распознавания компания UCS ответственности не несет.

(Рис. 1 Сканирование паспорта РФ в ПО "Абонемент")

Модуль распознавания документов. Интерфейс с Regula DocumentReader.

 

Распознавание документов с помощью ПО и сканера документов Regula

Используется программа распознавания документов DocumentReader, разработанная компанией Regula (https://regulaforensics.com/) поставляемая со сканерами документов Regula. (Дополнительное лицензирование от Regula не требуется. Достаточно приобрести и подключить сканер)

 

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

Модуль распознования защищён проектом 4, модулем 11 в ключе Абонемент (тем же что и модуль Cognitive)

 

Стоимость и условия приобретения

Для данной интеграции рекомендуется использовать 2 модели сканеров. На территории РФ все считыватели поставляются с  полным SDK :
«Регула» 7017 - розничная стоимость ~700€
«Регула» 7027 - розничная стоимость ~845€ (Модель «Регула» 7027 комплектуется считывателем бесконтактных идентификационных микросхем (в Абонемент данный функционал не тестировался))
 
Дилеры компании UCS могут приобрести считыватели документов Regula с партнерской скидкой в 20%
Для получения специальных цен нужно обращаться к представителям Regula (при обращении сообщите, что являетесь дилером UCS):
 
«Офисная Полиграфия Плюс». Москалионов Дмитрий - генеральный директор, d.moskalionov@offpoly.ru, тел. +7 (495) 925-00-97.
 
«Регула Русь». Гапотченко Леонид – генеральный директор, regula-rus@mail.ru, тел. +7 (916) 140-63-98.
 
Служба поддержки: support@regulaforensics.com или через сайт https://regulaforensics.com/ru/support/.
 

Установка и настройка программы DocumentReaderSDK

Достаточно скачать актуальную версию DocumentReaderSDK с сайта производителя и установить её. Или же установить версию, поставляемую в комплекте со сканером документов, если невозможно получить актуальную версию. (Тестирование производилось на версии SDK 4.12)

После установки требуется подключить сканер к ПК, дождаться установки драйверов на устройство, добавленных при установке SDK. (Тестирование производилось на считывателе документов «Регула» 7017), виды протестированных документов: Паспорт РФ (с МЧЗ и без), Загранпаспорт РФ, Водительское удостоверение РФ, Паспорт США, Паспорт Беларуси, ВУ Беларуси)

Теперь необходимо запустить программу Document Reader, проверить работоспособность сканера и модуля распознования, подобрать настройки сканирования для улучшения качества распознования. (Для значительного улучшения качества сканирования рекомендуется откалибровать сканер перед использованием)

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

Рис. 1 Пример настроек Document Reader

Pic. 2 Example for Results tab in Document Reader Options

Рис. 3 Пример настроек Document Reader

Pic. 4 Example for Results tab in Document Reader Options

 

Настройка Abonement

Проверка проходила на Abonement ver.136 (Для работы модуля необходима версия ПО "Абонемент" не ниже 1.132)

Из папки «..\FullVersionVerXXX\HW\screcogregula\» в папку «exe» Абонемента скопировать следующие файлы:

ScRegulaRecog.dll
scRegulaRecog.ini
regula.js

После копирования требуется произвести настройки.

Пример файла настроек scRegulaRecog.ini :

[Main] 
;Кодировка возвращаемой строки: 0-ANSI (по умолчанию) 1-UTF8 
;UseUtf8=0 ;Сообщение при сканировании 
;ScanningStr = Приложите документ к сканеру... 
;Скрипт, в котором реализована процедура запуск сканера. По умолчанию regula.js 
JSFile=regula.js 
;Функция из JSFile, которая запускает сканирование. По умолчанию regulaReaderScan() 
;EValCode=regulaReaderScan() 
;Функция из JSFile, которая останавливает сканирование. По умолчанию stopFileFileCreate() 
;StopCode=stopFileFileCreate() 
[LOCK.SERVER] 
TCPHost=127.0.0.1 
TCPPort=1119 
;AbonementOnly=1 

[Localization] 
CurrentLanguage=default

Со стороны Абонемент требуется прописать новую секцию и настройку в abonementmanager.ini:

[screcog]
scRecogDllName=scRegulaRecog.dll

 

Работа в Abonement

 Вы можете использовать сканер при добавлении клиента. Запустите ПО DocumentReader, запустите ПО "Абонемент", перейдите на вкладку “Управление абонементом”, потом “Список клиентов”. При нажатии на кнопку “Добавить клиента”, Вы увидите стандартную форму “Карточка клиента”. Положите паспорт в сканер и нажмите кнопку “Сканирование”. Через некоторое время, приблизительно 3-5 секунд, данные паспорта отсканируются и распознаются. Всё это будет видно по заполненным полям в карточке клиента. Если у Вас в течение определённого времени ничего не появилось в карточке, попробуйте убрать документ со сканера и приложить вновь.

 

(Рис. 3 Сканирование паспорта Белоруссии в ПО "Абонемент")

 

Важно!!!

Абонемент использует API функции программы Document Reader SDK и за качество распознавания компания UCS ответственности не несет.

(Например, устройство на котором производилось тестирование (Регула 7017) не имело лицензии на распознавание документов без Машиночитаемой зоны (МЧЗ). Исправлено тех. поддержкой Регула по нашему запросу.)

Банковский протокол

Работа с модулем Интерфейс банковского протокола в ПО "Абонемент"

Работа с модулем Банковский протокол в ПО «Абонемент»

 
При подключении банковского протокола на вкладке ночной аудит появятся новые кнопки:
 
Рис.1 Вкладка «Ночной аудит»
 
Закрыть смену теминала платежных карт – используется в конце смены для закрытия дня и снятия отчета по использованию терминала кредитных карт;
 
Последний чек терминала платежных карт – используется для отображения данных по последней продаже через терминал кретдитных карт;
 
Краткий отчет – печатается краткий отчет по использованию терминала кредитных карт;
 
Полный отчет – печатается полный отчет по использованию терминала кредитных карт ;
 
Повторная печать чека – повторно печатается последний пробитый через терминал чек.
 
Продажа производится аналогичным (с наличными) способом, но в оплате выбирается кнопка «Кредитные карты» - «VISA» или «MasterCard» (настраивается в «Настройки»->»Платежи»), вставляем/подносим карту и оплачиваем:
 
Рис.2 Проведение оплаты по карте
 
Возврат платежа производится также аналогичным с наличными способом , на терминале отображается сумма отмены, если все верно – нажимаем зеленую кнопку, после чего подносим карту и производится возврат:
 
Рис.3 Возврат платежа по карте
 
При проведении оплаты по карте, вместе с чеком печатается слип, информация отраженная в нем :
 
005629,0020B0,200218,171411,debug,:------------------------------------
005630,0020B0,200218,171411,debug,:-----Origin Image-----
005631,0020B0,200218,171411,-info,:L=000,Test terminal UCS
005632,0020B0,200218,171411,-info,:L=001,Терминал: 00600597               Чек 295
005633,0020B0,200218,171411,-info,:L=002,Мерчант: 700000
005634,0020B0,200218,171411,-info,:L=003,            Отмена операции
005635,0020B0,200218,171411,-info,:L=004,                 ОПЛАТА
005636,0020B0,200218,171411,-info,:L=005,                ОДОБРЕНО
005637,0020B0,200218,171411,-info,:L=006,СУММА:                        150.00 РУБ
005638,0020B0,200218,171411,-info,:L=007,Комиссия
005639,0020B0,200218,171411,-info,:L=008,Банка ГПБ (АО):                 0.00 РУБ
005640,0020B0,200218,171411,-info,:L=009,ИТОГО:                        150.00 РУБ
005641,0020B0,200218,171411,-info,:L=010,AID: A0000000031010                 VISA
005642,0020B0,200218,171411,-info,:L=011,Карта: VISA
005643,0020B0,200218,171411,-info,:L=012,            ************0013
005644,0020B0,200218,171411,-info,:L=013,Ссылка:                     002531499416
005645,0020B0,200218,171411,-info,:L=014,Код авторизации:                  499416
005646,0020B0,200218,171411,-info,:L=015,Код ответа:                          000
005647,0020B0,200218,171411,-info,:L=016,
005648,0020B0,200218,171411,-info,:L=017,Дата:                  20/02/18 17:10:49
005649,0020B0,200218,171411,-info,:L=018,Дата ПЦ:               20/02/18 17:14:10
005650,0020B0,200218,171411,-info,:L=019,         БЕСКОНТАКТНАЯ ОПЕРАЦИЯ
005651,0020B0,200218,171411,-info,:L=020,
005652,0020B0,200218,171411,debug,:------------------------------------

Установка связки терминала оплаты банковской картой (APPEX) и программы «Абонемент»

 
Используемое оборудование: Терминал для оплаты банковской картой (Для тестирования использовался Ingenico IPP320) подключённый специалистами APPEX.
Используемое ПО: программа «Abonement-manager» версии 1.138 и выше, ПО Arcus2 версии 2.1.1.7 и выше
Лицензия: Должен быть приобретен модуль Банковский протокол
 
Настройки, которые выполняются сотрудником эквайринга:
 
1) Установить драйвер для подключения к системе терминала.
 
2) Установка и настройка ПО Arcus. (версии 2.1.1.7 или выше)
 
3) Сконфигурировать устройство. Проверить его работоспособность.
 
 
Настройки, которые выполняются техническим специалистом Абонемент:
 
1) В папку exe скопировать файлы: runcc.ini, runcc.dll, Arcus.dll, arcus.ini. Файлы доступны в дистрибутиве Абонемент версии 137 и выше по пути Fullversion\_INTERFACE\Terminal\ARCUS2
 
2) Настройка runcc.ini. Пример файла:
 
[Main]
TerminalDLL = Arcus.dll
BufSize = 5000000

[Cmd]
; Команда закрытия дня - справа значение из ops.ini
5 = 11
; Команда отмены чека с передачей параметров - справа значение из ops.ini
2 = 4
; Команда полного отчёта - справа значение из ops.ini
20 = 7
; Команда краткого отчёта - справа значение из ops.ini
2000=8
 
[LOCK.SERVER]
; IP Адрес сервера блокировок
TCPHost = 172.22.10.41
; Порт сервера болкировок
TCPPort = 1116
; Текст ошибки в случае отсутствия незанятой валидной лицензии на модуль "Банковский протокол"
LicErrorText = "Ошибка лицензии интерфейса платёжных карт, оплата картами будет недоступна"8
 
где:
BufSize - размер буфера для документов (не рекомендуется изменять);
[Cmd] - правила преобразования команд согласно ops.ini.
 
3) В файле abonementmanager.ini в секцию [pos] добавить useposterminal=1
 
4) В файле arcus.ini указать путь к библиотеке arccom.dll в установленной поставке ARCUS2.
 
5) Подключение фискального аппарата производится через универсальный драйвер ФР.
 
[hr]
ВАЖНО!
 
При работе с данным эквайрингом не поддерживается оплата несколькими платёжными картами в рамках одного чека.
При попытке добавления второй карты в список оплат, будет выдано сообщение с кодом 9999 "Оплата несколькими картами не поддерживается"
 
Корректность печати слипов проверена на следующих ФР: Атол 22Ф, Штрих (Ритейл 01Ф).
[hr]
 
Способы функционирования (и методика их тестирования) терминала платёжных карт в Абонемент:
 
  • Оплата. Печать слипов на фискальном регистраторе. Вид успешных слипов
    Сценарий теста: С использованием тестовой карты выполнить оплату на произвольную сумму.
    Результат: Успешная печать слипов. Образ слипов, переданный терминалом, распечатан полностью, без пропусков и искажений.
  • Отказ терминала
    Для создания сбоя, при оплате вводятся невалидная карта или же производится отмена выполнения текущей операции по кнопке.
    Сценарий теста: С использованием тестовой карты выполняется попытка платёжа на произвольную сумму. Терминал вернёт кассе отказ.
    Результат: На экране кассы появится сообщение с заголовком “Отказ терминала”. В тексте сообщения указан код ошибки и текст сообщения.
  • Отказ в создании фискального чека после успешного выполнения запроса на оплату по пластиковой карте
    Для создания реального сбоя, на фискальном регистраторе не делается Z-отчёт более 24 часов к моменту выполнения тестов.
    Сценарий теста: На кассе создать чек на произвольную сумму. Выполнить оплату по пластиковой карте. После успешного получения кода авторизации, терминал передаст на кассу положительный ответ и образ двух успешных слипов. При попытке создания фискального чека, фискальный регистратор выдаст сбой: “Прошло более 24 часов с момента последнего Z-отчёта.
    Результат: Касса автоматически выполняет отмену платежа по пластиковой карте. Кассовый чек открыт, не оплачен. После выполнения Z-отчёта касса готова к работе.
  • Сбой печати на фискальном регистраторе при печати успешного слипа
    Для создания реального сбоя, на фискальном регистраторе убирается рулон бумаги, вместо него оставляют кусок чековой ленты длиной 6…8 сантиметров.
    Сценарий теста: На кассе создать чек на произвольную сумму. Выполнить оплату по пластиковой карте. После успешного получения кода авторизации, терминал передаст на кассу положительный ответ и образ двух успешных слипов. Печатается фискальный чек. Касса делает запрос на печать слипов. При печати слипов заканчивается бумага.
    Результат: В Абонемент фиксируется транзакция. Фискальный принтер останавливает печать. Устанавливается новый рулон бумаги. После чего, для получения слипов, кассир переходит на вкладку "Ночной Аудит" и успешно печатает слипы по кнопке "Печать последнего чека терминала платёжных карт"
  • Смешанная оплата. Успешный результат
    Сценарий теста: С использованием тестовой карты и наличных выполняется оплата одного чека на произвольную сумму.
    Результат: После успешного выполнения запросов печатаются слипы и фискальный чек.
  • Смешанная оплата. Положительный результат оплаты наличными, отрицательный результат оплаты по пластиковой карте
    Сценарий выполняется, если в кассовом ПО возможна следующая последовательность оплаты смешанного чека: оплата наличными, далее – пластиковой картой.
    Сценарий теста: Оплаты наличными успешны. Оплата отрицательной пластиковой картой не успешна.
    Результат: Успешная отмена платежа наличными.
  • Возврат
    Сценарий теста: С использованием тестовой карты выполняется возврат транзакции, проведённой в одну из предыдущих кассовых смен.
    Результат: После успешного выполнения запроса печатаются слипы и фискальный чек.
  • Отмена закрытого чека. 
    Сценарий теста: С использованием тестовой карты в рамках одной кассовой смены создаётся и закрывается чек оплаты на произвольную сумму. Делается отмена чека. Терминал запрашивает номер чека указанный на слипе полученном при регистрации платежа. Требуется ввести номер чека.
    Результат: После успешного выполнения запроса печатаются слипы и фискальный чек.
  • Отчёт краткий
    Сценарий теста: Выполняется запрос “отчёт краткий”.
    Результат: Успешная печать краткого отчёта.
  • Отчёт полный
    До выполнения отчёта на терминале выполнено несколько оплат.
    Сценарий теста: Выполняется запрос “отчёт полный”.
    Результат: Успешная печать полного отчёта. Текст отчёта полон. Чек отчёта завершён корректно.
  • Закрытие дня терминала, сверка итогов. Автоматический запуск по “Z” -отчёту
    Сценарий теста: Выполняется запрос “Z” -отчёта.Примечание: данная операция разграничивается правами пользователей и недоступна при закрытой кассовой смене или кассиру отличному от кассира открывшего смену.
    Результат: При запуске “Z” -отчёта автоматически выполняется запрос на закрытие смены терминала. Закрытие смены выполняется успешно. Печатается слип сверки итогов.
  • Закрытие дня терминала, сверка итогов. Ручной запуск
    Сценарий теста: Выполняется запрос на закрытие смены терминала, путём использования меню "Ночной Аудит", вкладку "Фискальный регистратор". Примечание: данная операция разграничивается правами пользователей и недоступна при закрытой кассовой смене или кассиру отличному от кассира открывшего смену.
    Результат: Закрытие смены выполняется успешно. Печатается слип сверки итогов. 

Установка связки терминала оплаты банковской картой (Сбербанк) и программы «Абонемент»

Настройка

 
Используемое оборудование: Терминал для оплаты банковской картой (Verifone VX 820, PAX 30 и другие поддерживаемые ПО Сбербанка) подключённый через pilot_nt.dll
Используемое ПО: программа «Abonement-manager» версии 1.135 и выше.
Лицензия: Должен быть преобретен модуль Банковский протокол
 
Настройки, которые выполняются сотрудником банка:
 
1) Установить драйвер для подключения к системе терминала Verifone.
Драйвер предоставляется Сбербанком (Пример: WinXP-Win7-VeriFone-USB-UARTDriver_Vx_1.0.0.30_Build-2).
 
2) Установить необходимое програмное обеспечение банка для интеграции с кассовым ПО. (pilot_nt.dll версии не ранее 27.0.30.0)
 
3) Сконфигурировать устройство. Проверить его работу при помощи утилиты LoadParm.exe.
 
4) Особенности конфигурации прошивки терминала.
4.1. Общие параметры / Параметры для терминалов на базе PC / Последовательность в конце чека (PrinterEnd в pinpad.ini) указать 010D0A011B55
4.2. Дополнительные опции / Число копий чека указать = 2
 
 
Настройки, которые выполняются техническим специалистом:
 
1) В папку exe скопировать файлы: amCC_Sberbank.dll, amCC_Sberbank.ini. Файлы можно взять из дистрибутива 135 версии Абонемент. (доступны по пути FullVersion\_INTERFACE\Terminal\Sberbank)
 
2) Прописываем в abonementmanager.ini секцию [CC] следующим образом:
[CC]
RunCCDllName=amCC_Sberbank.dll
4) В abonementmanager.ini в секцию [pos] добавить useposterminal=1
 
3) Настройка amCC_Sberbank.ini Пример файла:
[DLL.CreditCard-Sberbank]

; В случае работы с несколькими ююр.лицами в Абонемент, и несколькими отделами в терминале раскомментировать и заполнить для каждого рабочего места
;[DLL.CreditCard-Sberbank.Department]
;ID киоска = ID отдела в терминале
;  1 = 0
;  2 = 1

[DLL.CreditCard-Sberbank.ESC]
  CUT = #1#27U

[DLL.CreditCard-Sberbank.ErrorMsg]
12=Необходимо Обратиться к персоналу Сбербанка, который устанавливал терминал.
36=Необходимо Обратиться к персоналу Сбербанка, который устанавливал терминал.
99=Необходимо Проверить кабели, идущие к пинпаду. Если все на месте, обратиться к персоналу Сбербанка, который устанавливал терминал.
...
 
5) Прописать путь к папке «Pilot_NT» в переменную окружения Path.
 
6) Подключение фискального аппарата при этом происходит по стандартной схеме.
 
 
 

Проведение операций без карты клиента.

 
В случае, если клиент не имеет с собой карты, но знает её данные, возможно произвести продажу/возврат с ручным вводом карты.
 
Для проведения таких операций терминал сбербанка должен быть специальным образом настроен и зарегистрирован (данные работы проводятся специалистами Сбербанка).
В таком случае, при запросе операций из кассового ПО если операцию можно произвести с ручным вводом информации о карте, соответствующая кнопка появится на экране терминала, как показано на рис.1.
Ввод данных о карте может проиходить как на терминале, так и в диалоговом окне на кассе, в зависимости от настроек ПО сбербанка (в частности параметра ShowScreens в pinpad.ini).
Пример окон поднимаемых на кассе для операции продажи приведён на рисунках 2-5.
 

Рис.1 Терминал с доступной кнопкой ручного ввода данных карты

Рис.2 Этап ввода номера карты на кассе

Рис.3 Этап ввода срока действия карты на кассе

 

 

Рис.4 Этап выбора причины ручного ввода данных карты

Рис.5 Ввод CVV кода карты

 
 
 
[hr]
 
 

Способы функционирования (и методика их тестирования) теминала платёжных карт в Абонемент:

 
1) Выполнить сверку.
Ночной аудит -> Фискальный регистратор -> Закрыть смену терминала кредитных карт. Из фискального выходит чек сверки итогов. В зависимости от настроек VeriFone может печататься как краткий чек, так и детализированный.
 
2) Регистрация нецелевого платежа:
Фолио клиента -> Зарегистрировать платеж -> В окне регистрации платежа выбрать группу операций «Кредитные карты», тип кредитной карты (Visa/Master-card), поле «Стоимость платежа» прописываем сумму -> В окне связи с терминалом вывод сообщения «Вставьте карту» -> Проводим карту через терминал -> В окне связи с терминалом выбираем тип карты. Далее, в том случае, если карта без чипа – ввод последних 4 цифр № карты, если карта с чипом – ввод пин-кода -> Если средств на карте достаточно для оплаты, происходит печать фискального чека через фискальный аппарат с признаками «Аванс», «Продажа» и «Кредитная карта» и терминального чека с признаками «Оплата», «Одобрено» и «Введен пин-код».
 
3) Оплата ранее оказанных услуг:
Фолио клиента -> Добавить доп. услугу -> Оплатить ранее оказанные услуги -> В окне «Быстрой продажи» выбрать тип оплаты «Кредитные карты», тип кредитной карты (Visa/Master-card) -> Оплатить -> В окне связи с терминалом вывод сообщения «Вставьте карту» -> Проводим карту через терминал -> В окне связи с терминалом выбираем тип карты. Далее, в том случае, если карта без чипа – ввод последних 4 цифр № карты, если карта с чипом – ввод пин-кода -> Если средств на карте достаточно для оплаты, происходит печать фискального чека через фискальный аппарат с признаками «Продажа», «Кредитная карта» и терминального чека с признаками «Оплата», «Одобрено» и «Введен пин-код».
 
4) Частичная оплата:
Абонементы клиента -> Добавить абонемент -> Частичная оплата -> В окне регистрации платежа выбрать группу операций «Кредитные карты», тип кредитной карты (Visa/Master-card), поле «Итоговая стоимость» прописываем сумму -> В окне связи с терминалом вывод сообщения «Вставьте карту» -> Проводим карту через терминал -> В окне связи с терминалом выбираем тип карты. Далее, в том случае, если карта без чипа – ввод последних 4 цифр № карты, если карта с чипом – ввод пин-кода -> Если средств на карте для оплаты достаточно, происходит печать фискального чека через фискальный аппарат с признаками «Аванс», «Продажа» и «Кредитная карта» и терминального чека с признаками «Оплата», «Одобрено» и «Введен пин-код».
 
5) Возврат:
Фолио клиента -> Выбор платежа, по которому осуществляется возврат -> Возврат -> В окне связи с терминалом вывод сообщения «Вставьте карту» -> Проводим карту через терминал -> В окне связи с терминалом выбираем тип карты. Далее, в том случае, если карта без чипа – ввод последних 4 цифр № карты, если карта с чипом – ввод пин-кода -> Если средств на карте для оплаты достаточно, происходит печать фискального чека через фискальный аппарат с признаками «Возврат продажи», «Возврат» и «Кредитная карта» и терминального чека с признаками «Отмена», «Одобрено» и «Введен пин-код».
 
6) Частичный возврат:
Фолио клиента -> Выбор платежа, по которому частично оказаны услуги и осуществляется возврат -> Возврат -> В окне связи с терминалом вывод сообщения «Вставьте карту» -> Проводим карту через терминал -> В окне связи с терминалом выбираем тип карты. Далее, в том случае, если карта без чипа – ввод последних 4 цифр № карты, если карта с чипом – ввод пин-кода -> Если средств на карте для оплаты достаточно, происходит печать фискального чека через фискальный аппарат с признаками «Возврат продажи», «Возврат» и «Кредитная карта» и терминального чека с признаками «Отмена», «Одобрено» и «Введен пин-код».
 
7) Комбинированная оплата (наличными и картой):
Фолио клиента -> Быстрая продажа -> Выбор услуги/абонемента -> Оплата -> Из табличной части удалить платеж с полной стоимостью -> В форме ввода справа указать сумму платежа (по карте) -> В списке оплат выбрать «Кредитные карты», «Visa» -> В форме ввода справа указать сумму платежа (наличные) -> В списке оплат выбрать «Наличный расчет» -> Оплатить -> Если средств на карте для оплаты достаточно, происходит печать фискального чека через фискальный аппарат с признаками «Продажа», «Кредитная карта», «Наличные» и терминального слип чека с признаками «Оплата», «Одобрено» и «Введен пин-код».
 
8) Комбинированная оплата (картой и картой):
Фолио клиента -> Быстрая продажа -> Выбор услуги/абонемента -> Оплата -> Из табличной части удалить платеж с полной стоимостью -> В форме ввода справа указать сумму платежа (по карте) -> В списке оплат выбрать «Кредитные карты», «Visa» -> Выбрать другой тип карт, например «MasterCard», программа автоматически сформирует платеж на остаток суммы. Если средств на карте для оплаты достаточно, происходит печать фискального чека через фискальный аппарат с признаками «Продажа», «Кредитная карта», и терминального чека с признаками «Оплата», «Одобрено» и «Введен пин- код» для каждый карты.
 
9) Автоотмена операции:
Выполнить сверку. Провести оплату любым способом. После оплаты через терминал, до того момента как вышел фискальный чек, отключить фискальный регистратор. Включить фискальный регистратор. Выполнить сверку. Проверить, что в чеке отображена отмена. 
 
10) Неверный ввод пин кода:
При проведении любой оплаты не верно ввести пин код. Операция продажи не проходит, кассовый чек не печатается, на фолио транзакция не фиксируется.
 
11) Печать последнего чека:
Выполнить сверку итогов или провести оплату через терминал. Далее: Ночной аудит -> Фискальный регистратор ->Последний чек терминала кредитных карт.  После оплаты через терминал, сразу после того момента как вышел фискальный чек об оплате, но не вышел чек от терминала, отключить фискальный регистратор. Включить фискальный регистратор. Выполнить печать последнего чека.
 
ВАЖНО! В зависимости от настроек терминала, чек может выйти как через терминал, так и через фискальный регистратор, подключенный на компьютере. Если вывод настроен через фискальный регистратор, то печать чека с признаком «Кредитная карта» происходит немного дольше, чем при оплате наличными. Связано это с тем, что фискальный регистратор печатает информацию, которую передает ему POS-терминал. Данное взаимодействие занимает большее время.

Настройка (устаревшее)

 
Используемое оборудование: Терминал для оплаты банковской картой (Verifone VX 820, PAX 30 и другие поддерживаемые ПО Сбербанка) подключённый через pilot_nt.dll
Используемое ПО: программа «Abonement-manager» версии 1.112 и выше.
Лицензия: Должен быть преобретен модуль Банковский протокол
 
Настройки, которые выполняются сотрудником банка:
 
1) Установить драйвер для подключения к системе терминала Verifone.
Драйвер предоставляется Сбербанком (Пример: WinXP-Win7-VeriFone-USB-UARTDriver_Vx_1.0.0.30_Build-2).
 
2) Скопировать на жесткий диск папку «Pilot_NT». В ней содержатся драйвера для работы связи с банком. (pilot_nt.dll версии не ранее 11.40.0.24 от 02.07.2014)
 
3) Сконфигурировать устройство. Проверить его работу при помощи утилиты LoadParm.exe.
 
4) Особенности конфигурации прошивки терминала.
4.1. Общие параметры / Параметры для терминалов на базе PC / Последовательность в конце чека указать 010D0A011B55
4.2. Дополнительные опции / Число копий чека указать 1
 
 
Настройки, которые выполняются техническим специалистом:
 
1) В папку exe скопировать файлы: runcc.ini, sberbank2.ini, runcc.dll (версии 1.01 от 01.07.2014), sdmsberbank2.dll (версии не раньше 09.09.2015). Файлы можно взять из дистрибутива 127 версии Абонемент.
 
2) Прописываем в файле runcc.ini параметр Sberbank = sberbank2.ini, вместо значения по умолчанию CC=CCVirtual.ini.
 
3) Настройка sberbank2.ini Пример файла:
 
[boot]
 CreditCard =D:\SHELTER\Sberbank_Sh_Ab_Sh2_new\abonement\111_exe\sdmSberbank2.dll
[hardware]
 CreditCard = Sberbank2
[hardware.Sberbank2]
 ;путь к каталогу PILOT_NT
 SetPath = D:\SHELTER\Sberbank_Sh_Ab_Sh2_new\abonement\PILOT_NT_DIALOG\
;Удалять все после разделителя из секции CUT
 DelLastESC = CUT
 Log.Name = Sberbank2.log
 Log.Level = 30
 Log.DebugLevel = 30
[Sberbank2.ErrorMsg]
[Sberbank2.ESC]
 ;Разделитель между чеками
 CUT = #1#27U

4) В файле abonementmanager.ini в секцию [pos] добавить useposterminal=1
 
5) Прописать путь к папке «Pilot_NT» в переменную окружения Path.
 
6) Подключение фискального аппарата при этом происходит по стандартной схеме.
 
[hr]
[hr]
 
 
Обновления:

135 версия Абонемент

Произведена смена ядра библиотеки интеграции (см. обновлённую инструкцию)

Поддержана работа с несколькими отделами (юр.лицами) в одном терминале

 

Расшифровка ошибок UPOS (универсального ПО POS-терминалов Сбербанка России)

Коды ошибок UPOS (универсального ПО POS-терминалов Сбербанка России) с расшифровками.

Данный документ был предоставлен сотрудниками Сбербанка, актуален на 02.02.2018

Для корректного отображения описаний необходимых действий в ПО Абонемент необходимо настроить текст ошибок в файле sberbank2.ini, в секции [Sberbank2.ErrorMsg], например:

[Sberbank2.ErrorMsg]
12=Необходимо Обратиться к персоналу Сбербанка, который устанавливал терминал.
36=Необходимо Обратиться к персоналу Сбербанка, который устанавливал терминал.
99=Необходимо Проверить кабели, идущие к пинпаду. Если все на месте, обратиться к персоналу Сбербанка, который устанавливал терминал.
101=Необходимо Обратиться к персоналу Сбербанка, который устанавливал терминал.
115=Необходимо Обратиться к персоналу Сбербанка, который устанавливал терминал.

Начиная с версии 1.132 в поставке присутствует конфигурационный файл с настроенным текстом для всех доступных нам ошибок.

 

Код ошибки

Возможная причина

Действия кассира при ошибке

12

Эта версия не поддерживает режим РС-3

Обратиться к персоналу Сбербанка, который устанавливал терминал.

36

В пинпаде нет ключа в ячейке 9

Обратиться к персоналу Сбербанка, который устанавливал терминал.

99

Пинпад не подключен

Проверить кабели, идущие к пинпаду. Если все на месте, обратиться к персоналу Сбербанка, который устанавливал терминал.

101

Операция не поддерживается.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

115

Библиотека занята другим процессом, требуется подождать его завершения.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

233

Пинпад не подключен

Нет связи с устройством.Если это внешнее устройство, проверьте, включено ли оно, подключен ли кабель связи.

238

Пинпад отключился

Обратиться к персоналу Сбербанка, который устанавливал терминал.

248

Динамическая память закончилась

Обратиться к персоналу Сбербанка, который устанавливал терминал.

249

На терминал передана команда не содержащая обязательные параметры

Обратиться к персоналу Сбербанка, который устанавливал терминал.

250

Внутренняя ошибка: операция отменена Internal error

Обратиться к персоналу Сбербанка, который устанавливал терминал.

252

Внутренняя ошибка: операция не поддерживается Internal error

Обратиться к персоналу Сбербанка, который устанавливал терминал.

253

Аппаратный сбой. Устройство ещё не готово. Hardware failure

Обратиться к персоналу Сбербанка, который устанавливал терминал.

361

Нарушился контакт с чипом карты.

Вытащить карту, протереть чип мягкой тканью и повторить операцию.

362

Карта не читается Card is not responding

Вытащить карту, протереть чип мягкой тканью и повторить операцию.

363

Карта не читается. Попробуйте магн.ридер

Вытащить карту, протереть чип мягкой тканью и повторить операцию.

364

Карта не читается

Вытащить карту, протереть чип мягкой тканью и повторить операцию.

402

Карта не была выдана. Изымите карту!

Обратиться к персоналу Сбербанка, который устанавливал терминал.

403

ПИН неверен

Объяснить клиенту его ошибку и повторить операцию.

405

ПИН блокирован

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

500

Карта терминала старой версии!

Обратиться к персоналу Сбербанка, который устанавливал терминал.

505

Карта терминала заполнена. Выполните инкассацию

Обратиться к персоналу Сбербанка, который устанавливал терминал.

507

Срок действия карты истек

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

514

На терминале установлена неверная дата

Обратиться к персоналу Сбербанка, который устанавливал терминал.

521

На карте недостаточно средств

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

561

Нарушен список операций на карте. Изымите карту!

Обратиться к персоналу Сбербанка, который устанавливал терминал.

579

Карта блокирована. Изымите карту!

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

584

Сегодня по этой карте больше операций делать нельзя

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

585

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

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

586

Превышен лимит, разрешенный без связи с банком

Обратиться к персоналу Сбербанка, который устанавливал терминал.

705

Карта блокирована. Изымите карту!

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

706

Карта блокирована

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

708

ПИН зачисления заблокирован

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

709

ПИН списания заблокирован

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

2000

Операция прервана клиентом

Возможно, при вводе ПИНа клиент случайно нажал красную клавишу на пинпаде. Повторить операцию.

2002

Превышено время ожидания

Повторить операцию. На ввод ПИНа дается 1 минута.

2008

Для этой карты операция запрещена

Обратиться к персоналу Сбербанка, который устанавливал терминал.

3162

Срок действия карты СБЕРКАРТ окончен. Эта ошибка не должна вылезти в проме.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4073

Биосканер не подключен

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4100

Нет связи с банком

Повторить операцию. Если за 2-3 попытки провести операцию не удается, обратиться к персоналу Сбербанка, который устанавливал терминал.

4101

На терминале нет стоп-листа. Выполните инкассацию

Выполнить инкассацию карты терминала и повторить операцию.

4102

На терминале нет таблицы комиссий

Выполнить инкассацию карты терминала и повторить операцию.

4104

Неверный ответ на команду

Выполнить инкассацию карты терминала и повторить операцию.

4106

ПИН неверен

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4107

ПИН блокирован

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4108

Номер карты неверен

Повторить операцию. Если за 2-3 попытки провести операцию не удается, обратиться к персоналу Сбербанка, который устанавливал терминал.

4110

Карта терм.заполнена.Выполните инкассацию

Выполнить инкассацию карты терминала и повторить операцию.

4111

Стоп-лист устарел. Выполните инкассацию

Выполнить инкассацию карты терминала и повторить операцию.

4112

Неверный стоп-лист. Выполните инкассацию

Выполнить инкассацию карты терминала и повторить операцию.

4113

Превышен лимит операций за сутки

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

4115

Для таких карт ручной ввод запрещен

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

4116

Цифры не совпадают!

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

4117

Клиент отказался от ввода ПИНа

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4118

Операции не найдены

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4119

Нет связи с банком

Повторить операцию. Если за 2-3 попытки провести операцию не удается, обратиться к персоналу Сбербанка, который устанавливал терминал.

4120

Пинпад не подключен или не загружены ключи

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4121

Терминал неисправен!

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4122

Ошибка смены ключей!

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4123

Сначала выполните сверку итогов

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4124

Не загружены ключи

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4125

На карте есть чип. Вставьте карту чипом

Вставить карту в чиповый ридер и продолжить операцию.

4128

Ошибка настройки терминала

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4130

Память заполнена. Сделайте сверку ито- гов или инкассацию.

Выполнить сверку итогов и повторить операцию.

4131

Пинпад был заменен. Выполните загрузку параметров

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4132

Операция отклонена картой Transaction declined by card

Повторить операцию. Если ошибка повторяется, отказать клиенту.

4133

Неверный код ответа по протоколу VISA2

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4134

Сначала выполните сверку итогов Totals required

Повторить операцию. Если ошибка повторяется, отказать клиенту.

4135

Неверно настроены отделы в терминале

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4136

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

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4137

ПИНы не совпадают. Попробуйте еще раз.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4138

Карта отправителя и получателя не могут совпадать.

Повторить операцию  и ввести номера карт правильно.

4139

Нет адреса для связи.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4148

Карта в стоп-листе!

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

4149

На карте нет имени держателя

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

4150

Превышен лимит операций

Выполнить операцию с установкой связи с банком.

4151

Срок действия карты истек

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

4157

Превышена максимальная сумма операции.

Отказать клиенту. Предложить выполнить операцию на меньшую сумму.

4159

Валюта операции не поддерживается бесконтактным ридером

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4174

Файл не найден

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4175

Слишком большой файл

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4176

Неизвестная версия Vivopay

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4185

Неверная карта администратора

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4186

Ключ уже введен!

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4187

Неверный номер карты

Повторить ввод номера карты.

4188

Неверный  срок действия карты

Повторить ввод срока действия карты.

4189

Недопустимое значение!

Ввести допустимое значение изменяемого параметра.

4190

Карта не читается. Попробуйте магн.ридер

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

4203

Терминал не зарегистрирован

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4204

Внутренняя ошибка сервера

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4205

Ошибка связи с хостом

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4206

Нарушение протокола

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4207

Нарушение формата сообщений

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4208

Ошибка базы данных

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4209

Некорректные данные

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4210

Ошибка шифрования

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4211

Отсутствует ключ

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4213

Сервер PSDB слишком нагружен. Повторите позже.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4220

Не указан код региона для удаленной загрузки

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4221

Не удалось восстановить связь с ККМ после удаленной загрузки

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4222

Память заполнена. Необходимо отправить чеки на сервер

Отправьте чеки \r\nна сервер и\r\nповторите операцию

4300

От ККМ поступило недостаточно параметров

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4303

Мы принимаем только Visa

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4311

Операция не найдена

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4313

Номер карты не соответствует исходному

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4314

Это не карта СБЕРКАРТ

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4315

Разрешены только отмены в текущей смене

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4319

Сумма не должна превышать 42 млн.

Проведите операцию на меньшую сумму или уменьшите количество товара

4323

Номер карты не совпадает с исходным

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

4325

Сумма не указана!

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4326

Карта прочитана не полностью. Повторите считывание карты.

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

4327

Нет товаров для отображения

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4328

Информация о товаре  отсутствует или неполна.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4329

Справочник товаров переполнен.  Выполните сверку.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4330

Товар не найден.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4334

Карта не считана. Либо цикл ожидания карты прерван нажатием клавиши ESC, либо истек таймаут.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4336

Валюта указана неверно.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4337

Из кассовой программы передан неверный тип карты.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4342

Ошибка: невозможно запустить диалоговое окно UPOS.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4351

Настроечные файлы *.tlv не найдены

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4355

Этот палец уже зарегистрирован в базе

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4358

Палец не опознан!

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4362

Пинпад временно заблокирован. Повторите операцию через 15 сек.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4363

Превышена сумма оригинальной операции

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4365

Режим электронного захвата подписи не поддерживается

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4366

Рассчитанная скидка меньше минимально допустимой.

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

4367

RKL: неверный формат запроса

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4368

RKL: не создана ключевая пара СА

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4369

RKL: не загружен сертификат хоста

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4370

RKL: не загружен публичный ключ СА

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4371

Текущая версия ОС не поддерживает RKL

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4372

RKL: хост CA дает некорректный ответ. Необходимо перезагрузить терминал

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4380

Штатная сверка итогов не выполнена.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4381

Неверный формат QR-кода

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4382

Количество товара не должно превышать 4 млн. 200 тыс. единиц

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4383

Не удалось открыть сканирующее устройство

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4384

Считаны не все данные

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4385

Неверный номер пользователя

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4388

Место закончилось. Передайте чеки в банк.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4389

Чек уже успешно передан

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4400

Возможно, карта преждевременно вынута

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4401

Позвоните в банк по т.(800)775-55-55 (495)544-45-46 (495)788-92-74

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4402

Позвоните в банк

Позвонить в службу авторизации Сбербанка и следовать указаниям оператора.

4403

Терминал заблокирован. Обратитесь в банк.

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4404

Изымите карту

Позвонить в службу авторизации Сбербанка и следовать указаниям оператора.

4405

Отказано

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4406

Общая ошибка

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4407

Изымите карту

Изъять карту и отказать клиенту в проведении операции.

4408

Отказано

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка.

4410

Позвоните в Амекс по т. 8(800)2006203 или   8(495)6443054

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка.

4411

Отказано

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка.

4412

Транзакция неверна

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4413

Сумма неверна

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4414

Карта неверна

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка.

4419

Повторите позже

Операция в данный момент невозможна. Повторить операцию через 10-15 минут.

4433

Изымите карту

Изъять карту и отказать клиенту в проведении операции.

4438

Изымите карту

Изъять карту и отказать клиенту в проведении операции.

4441

Изымите карту

Изъять карту и отказать клиенту в проведении операции.

4443

Изымите карту

Изъять карту и отказать клиенту в проведении операции.

4450

Отказано

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4451

Недостаточно средств

Отказать клиенту в проведении операции.

4454

Срок действия карты истек

Отказать клиенту в проведении операции.

4455

ПИН неверен

Объяснить клиенту его ошибку и повторить операцию.

4457

Транзакция не разрешена картой

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в любое отделение Сбербанка.

4458

Транзакция не разрешена терминалом

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4461

Исчерпан лимит

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4462

Карта ограничена

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4465

Исчерпан лимит

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4468

Повторите позже

Операция в данный момент невозможна. Повторить операцию через 10-15 минут.

4475

ПИН заблокирован

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

4476

Нет исходной операции

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4478

Счет неверен

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4481

Повторите позже

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4482

Отказано

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4483

Ошибка обработки ПИНа

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4486

Ошибка обработки ПИНа

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4488

Ошибка обработки ПИНа

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4489

МАС-код неверен

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4490

Неверная контрольная информация

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4491

Эмитент недоступен

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4493

Транзакция запрещена

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4494

Повторная транзакция

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4495

Отказано

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4496

Ошибка системы

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4497

Повторите операцию позже

Операция в данный момент невозможна. Повторить операцию через 10-15 минут.

4498

МАС-код неверен

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4499

Ошибка формата

Обратиться к персоналу Сбербанка, который устанавливал терминал.

4710

Такая карта не обслуживается

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5001

Отказ карты при выборе приложения Error application selection

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5002

Отказ карты. Некорректный ответ Chip error

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5003

Отказ карты. Некорректный ответ Chip error

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5015

Операция отменена клиентом

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5029

Мы принимаем только Visa

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5042

Ключ удаленной загрузки неверен

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5044

Нужно позвонить в банк Call issuer

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5053

На карте неверные данные Data integrity error

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5055

Карта отклонила операцию Transaction declined by card

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5063

Карта не ведет историю операций

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5075

Необходимо вставить  карту в чиповый ридер

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5084

Введите пароль на телефоне

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5100

Подлинность данных не проверена

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5101

Ошибка проверки SDA Integrity check error

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5102

На карте нет нужных данных

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5103

Карта в стоп-листе

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5104

Ошибка проверки DDA Integrity check error

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5105

Ошибка проверки CDA Integrity check error

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5108

Неверная версия приложения EMV

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5109

Срок действия карты истек

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5110

Срок действия карты еще не настал

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5111

Для этой карты такая операция запрещена Operation is prohibited

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5112

Карта  только что выдана

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5116

Личность клиента не проверена Cardholder verification error

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк по месту выдачи карты.

5117

Неизвестный код CVM Cardholder verification error

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5118

ПИН блокирован

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5119

Пин-пад неисправен

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5120

Клиент не ввел ПИН

Возможно, при вводе ПИНа клиент случайно нажал красную клавишу на пинпаде. Повторить операцию, объяснив клиенту, что без ввода ПИНа операция невозможна.

5124

Такая сумма требует связи с банком

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5125

Превышен нижний лимит карты

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5126

Превышен верхний лимит карты

Обратиться к персоналу Сбербанка, который устанавливал терминал.

5133

Операция отклонена картой Transaction declined by card

Операция невозможна. Отказать клиенту в проведении операции и посоветовать обратиться в банк.

 

Установка связки терминала оплаты банковской картой (ГазПромБанк) и программы «Абонемент»

Используемое оборудование: Терминал для оплаты банковской картой (Ingenico IPP320) подключённый специалистами ГазПромБанка.
Используемое ПО: программа «Abonement-manager» версии 1.132 и выше.
Лицензия: Должен быть преобретен модуль Банковский протокол
 
Настройки, которые выполняются сотрудником банка:
 
1) Установить драйвер для подключения к системе терминала Ingenico.
 
2) Скопировать на жесткий диск папку «EMVGSSL». В ней содержится ПО для работы связи с банком.
 
3) Сконфигурировать устройство. Проверить его работоспособность.
 
4) Особенности конфигурации ПО экваринга.
  • Требуется, чтобы при отмене терминал запрашивал RRN, а не номер чека.
    (В файл emvgate.cfg необходимо вставить параметр:  egate.pinpad.op.void = rrn)
    Данная настройка необходима для осуществления автоматической отмены, в случае проведения успешной транзакции по терминалу, но неуспешной попытки дальнейшей регистрации (например, отказ печати кассового чека).
  • Также, поскольку в Абонемент есть возможность частичной отмены, требуется, чтобы данная операция была разрешена на уровне ПО эквайринга.
Настройки, которые выполняются техническим специалистом Абонемент:
 
1) В папку exe скопировать файлы: runcc.ini, CCGazPromBank.ini, runcc.dll (версии 1.01 от 01.07.2014), sdmGazPromBank.dll. Файлы можно взять из дистрибутива Абонемент версии 132 и выше по пути FullVersionVerxxx\_INTERFACE\HW\Terminal\GazPromBank\. (Подробнее про новый формат поставки Абонемент)
 
2) Прописываем в файле runcc.ini параметр CCGazPromBank=CCGazPromBank.ini, вместо значения по умолчанию CC=CCVirtual.ini.
 
3) Настройка CCGazPromBank.ini Пример файла:
 
[boot]
  CreditCard = %exepath%\sdmGazPromBank.dll

[hardware]
  CreditCard = GAZPROMBANK

[LOCK.SERVER]
; Параметры сервера блокировок
  TCPHost=192.168.1.1
  TCPPort=1119
  version=2.3 

[hardware.GAZPROMBANK]
; Путь к настроечному файлу ПО эквайринга 
  CFGName = C:\GCS\EMVGSSL\emvgate.cfg

  Log.Name  = GazPromBank.log
  Log.Level = 30
  Log.DebugLevel = 30


[GAZPROMBANK.ErrorMsg]
  0    = Успешное завершение
  7777 = Работа с терминалом невозможна! Обратитесь в техподдержку
  9999 = Оплата несколькими картами не поддерживается

4) В файле abonementmanager.ini в секцию [pos] добавить useposterminal=1
 
5) Прописать путь к папке «EMVGSSL» в переменную окружения Path.
 
6) Подключение фискального аппарата производится через универсальный драйвер ФР.
 
[hr]
ВАЖНО!
 
При работе с данным эквайрингом не поддерживается оплата несколькими платёжными картами в рамках одного чека.
При попытке добавления второй карты в список оплат, будет выдано сообщение с кодом 9999 "Оплата несколькими картами не поддерживается"
 
Все документы полученные от эквайринга печатаются в 2-х экземплярах.
 
Корректность печати слипов проверена на следующих ФР: Атол 22Ф, Прим 08-Ф, Штрих (до 54ФЗ), Атол (до 54ФЗ).
[hr]
 
Способы функционирования (и методика их тестирования) терминала платёжных карт в Абонемент:
 
  • Оплата. Печать слипов на фискальном регистраторе. Вид успешных слипов
    Сценарий теста: С использованием положительной карты выполнить оплату на произвольную сумму.
    Результат: Успешная печать слипов. Образ слипов, переданный терминалом, распечатан полностью, без пропусков и искажений.
  • Отказ процессинга
    Сценарий теста: С использованием отрицательной тестовой карты выполняется платеж на произвольную сумму. Терминал получит отказ процессинга. Кассе вернет отказ и образ отказного слипа.
    Результат: На экране кассы появится сообщение с заголовком “Отказ процессинга”. В тексте сообщения указан код ошибки и текст сообщения. Распечатается отказной слип.
  • Отказ терминала
    Для создания сбоя, из терминала или из кассы через которую он подключён к сети интернет, выдернуть сетевой патчкорд.
    Сценарий теста: С использованием положительной тестовой карты выполняется платёж на произвольную сумму. Терминал вернёт кассе отказ.
    Результат: На экране кассы появится сообщение с заголовком “Отказ терминала”. В тексте сообщения указан код ошибки и текст сообщения.
  • Отказ в создании фискального чека после успешного выполнения запроса на оплату по пластиковой карте
    Для создания реального сбоя, на фискальном регистраторе не делается Z-отчёт более 24 часов к моменту выполнения тестов.
    Сценарий теста: На кассе создать чек на произвольную сумму. Выполнить оплату по пластиковой карте. После успешного получения кода авторизации, терминал передаст на кассу положительный ответ и образ двух успешных слипов. При попытке создания фискального чека, фискальный регистратор выдаст сбой: “Прошло более 24 часов с момента последнего Z-отчёта.
    Результат: Касса автоматически выполняет отмену платежа по пластиковой карте. Кассовый чек открыт, не оплачен. После выполнения Z-отчёта касса готова к работе.
  • Сбой печати на фискальном регистраторе при печати успешного слипа
    Для создания реального сбоя, на фискальном регистраторе убирается рулон бумаги, вместо него оставляют кусок чековой ленты длиной 6…8 сантиметров.
    Сценарий теста: На кассе создать чек на произвольную сумму. Выполнить оплату по пластиковой карте. После успешного получения кода авторизации, терминал передаст на кассу положительный ответ и образ двух успешных слипов. Печатается фискальный чек. Касса делает запрос на печать слипов. При печати слипов заканчивается бумага.
    Результат: В Абонемент фиксируется транзакция. Фискальный принтер останавливает печать. Устанавливается новый рулон бумаги. После чего, для получения слипов, кассир переходит на вкладку "Ночной Аудит" и успешно печатает слипы по кнопке "Печать последнего чека терминала платёжных карт"
  • Смешанная оплата. Успешный результат
    Сценарий теста: С использованием одной положительной тестовой карты и наличных выполняется оплата одного чека на произвольную сумму.
    Результат: После успешного выполнения запросов печатаются слипы и фискальный чек.
  • Смешанная оплата. Положительный результат оплаты наличными, отрицательный результат оплаты по пластиковой карте
    Сценарий выполняется, если в кассовом ПО возможна следующая последовательность оплаты смешанного чека: оплата наличными, далее – пластиковой картой.
    Сценарий теста: Оплаты наличными успешны. Оплата отрицательной пластиковой картой не успешна.
    Результат: Успешная отмена платежа наличными
  • Возврат
    Сценарий теста: С использованием положительной тестовой карты выполняется возврат транзакции, проведённой в одну из предыдущих кассовых смен.
    Результат: После успешного выполнения запроса печатаются слипы и фискальный чек.
  • Отмена закрытого чека. Успешная Online отмена кода
    Сценарий теста: С использованием положительной, тестовой карты в рамках одной кассовой смены создаётся и закрывается чек оплаты на произвольную сумму. Делается отмена чека.
    Результат: После успешного выполнения запроса печатаются слип и фискальный чек.
  • Отмена закрытого чека. Успешная Offline отмена кода
    Для создания сбоя требуется отключить от сети терминал или кассу через которую он подключён к сети интернет.
    Сценарий теста: С использованием положительной, тестовой карты в рамках одной кассовой смены создаётся и закрывается чек оплаты на произвольную сумму. Создаётся сбой, делается отмена чека.
    Результат: Попытка отмены неудачна. После отказа от проведения на терминале, возвращается ошибка в Абонемент. Отмена не проходит.
  • Копия чека
    Сценарий теста: С использованием положительной, тестовой карты создаётся и закрывается последовательно два чека. Последовательно выполняется запрос копий обоих чеков.
    Результат: Успешная печать чеков.
  • Отчёт краткий
    Сценарий теста: Выполняется запрос “отчёт краткий”.
    Результат: Успешная печать краткого отчёта.
  • Отчёт полный
    До выполнения отчёта на терминале выполнено менее 10 оплат.
    Сценарий теста: Выполняется запрос “отчёт полный”.
    Результат: Успешная печать полного отчёта. Текст отчёта полон. Чек отчёта завершён корректно.
  • Закрытие смены терминала, сверка итогов. Автоматический запуск по “Z” -отчёту
    Сценарий теста: Выполняется запрос “Z” -отчёта.
    Результат: При запуске “Z” -отчёта автоматически выполняется запрос на закрытие смены терминала. Закрытие смены выполняется успешно. Печатается слип сверки итогов.
  • Закрытие смены терминала, сверка итогов. Ручной запуск
    Сценарий теста: Выполняется запрос на закрытие смены терминала, путём использования меню "Ночной Аудит", вкладку "Фискальный регистратор". Примечание: данная операция разграничивается правами пользователей и недоступна при закрытой кассовой смене или кассиру отличному от кассира открывшего смену.
    Результат: Закрытие смены выполняется успешно. Печатается слип сверки итогов. 
ВложениеРазмер
gazprom_protokol_sertifikacionnyh_ispytaniy.pdf261.2 КБ

Установка связки терминала оплаты банковской картой (UCSCARDS) и программы «Абонемент»

ВАЖНО: United Card Services (далее UCSCARDS) - процессинговая компания, не имеет никакого отношения к компании UCS и ПО Абонемент.
 
 

Настройка

 
Используемое оборудование: Терминал для оплаты банковской картой (VeriFone vx810) подключённый специалистами Ucscards.
Используемое ПО: программа «Abonement-manager» версии 1.136 и выше.
Лицензия: Должен быть преобретен модуль Банковский протокол. Подробнее про лицензирование
 
Настройки, которые выполняются сотрудником банка:
 
1) Подключение к ПК терминала и его настройка.
 
2) Установка ПО процессинга (micromodule)
 
 
Настройки, которые выполняются техническим специалистом Абонемент:
 
1) В папку exe скопировать файлы: amCC_EFTPOS.dll, amCC_EFTPOS.ini. Файлы можно взять из дистрибутива Абонемент версии 137 и выше по пути \Fullversion\_INTERFACE\Terminal\amCC_EFTPOS.
 
2) Прописываем в abonementmanager.ini секцию [CC] следующим образом:
[CC]
RunCCDllName=amCC_EFTPOS.dll
3) В abonementmanager.ini в секцию [pos] добавить useposterminal=1
 
4) Настройка amCC_EFTPOS.ini Пример файла:
[DLL.CC_EFTPOS]
; ID Терминала
TerminalID=77203272
; Путь к микромодулю UCScards
MMDLLName=C:\UCS\BIN\ucs_ms.dll

[DLL.CC_EFTPOS.ESC]
   CUT=#10#13

[DLL.CC_EFTPOS.ErrorMsg]
0    = Успешное завершение
7777 = Работа с терминалом невозможна! Обратитесь в техподдержку   
-9999 = Оплата несколькими картами не поддерживается
9999 = Оплата несколькими картами не поддерживается
900=внутренняя ошибка интерфейса
ВАЖНО!!!    amCC_EFTPOS.ini должен быть строго в кодировке "UTF-8". Будьте внимательны, блокнот windows сбрасывает кодировку на "UTF-8 без BOM", тем самым не давая считать из него параметры. Воспользуйтесь более продвинутым текстовым редактором для изменения параметров (например Notepad++).
 
 
5) Подключение фискального аппарата производится через универсальный драйвер ФР.
 
[hr]
ВАЖНО!
 
При работе с данным эквайрингом не поддерживается оплата несколькими платёжными картами в рамках одного чека.
При попытке добавления второй карты в список оплат, будет выдано сообщение с кодом 9999 "Оплата несколькими картами не поддерживается"
 
Все документы полученные от эквайринга печатаются в 2-х экземплярах.
[hr]
 

Настройка (устаревшее)

 
 
Используемое оборудование: Терминал для оплаты банковской картой (VeriFone vx810) подключённый специалистами Ucscards.
Используемое ПО: программа «Abonement-manager» версии 1.130 и выше.
Лицензия: Должен быть преобретен модуль Банковский протокол
 
Настройки, которые выполняются сотрудником банка:
 
1) Подключение к ПК терминала и его настройка.
 
2) Установка ПО процессинга (micromodule)
 
 
Настройки, которые выполняются техническим специалистом Абонемент:
 
1) В папку exe скопировать файлы: runcc.ini, eftpos.ini, runcc.dll (версии 1.01 от 01.07.2014), sdmEFTPOS.dll. Файлы можно взять из дистрибутива Абонемент версии 130 и выше.
 
2) Прописываем в файле runcc.ini параметр eftpos=eftpos.ini, вместо значения по умолчанию CC=CCVirtual.ini.
 
3) Настройка eftpos.ini Пример файла:
[BOOT]
BOOT=sdmEFTPOS.dll

[HARDWARE]
CreditCard=EFTPOS

[hardware.EFTPOS]
; id терминала
TerminalID=12345678
; Путь к микромодулю
MMDLLName=C:\_ucs\Eft_POS\BIN\ucs_ms.dll 

  LOG.NAME=EFTPOS.LOG
  LOG.DIRECTWRITE=0
  LOG.APPEND=1
  LOG.TRYANOTHERNAME=1
  LOG.LEVEL=30
  LOG.DEBUGLEVEL=30
  LOG.STAMP=1
  LOG.STAMPKIND=49
  LOG.AUTOFLUSH=1
  LOG.BYMONTHES=1
  LOG.BYDAYS=1
  LOG.BYHOURS=1

  [EFTPOS.ESC]
   CUT=#10#13
[EFTPOS.ErrorMsg]   
  0    = Успешное завершение   
  7777 = Работа с терминалом невозможна! Обратитесь в техподдержку   
  9999 = Оплата несколькими картами не поддерживается
 
 
4) В файле abonementmanager.ini в секцию [pos] добавить useposterminal=1
 
6) Подключение фискального аппарата производится через универсальный драйвер ФР.
 
 
 

Способы функционирования (и методика их тестирования) терминала платёжных карт в Абонемент:

 
  • Оплата. Печать слипов на фискальном регистраторе. Вид успешных слипов
    Сценарий теста: С использованием положительной карты выполнить оплату на произвольную сумму.
    Результат: Успешная печать слипов. Образ слипов, переданный терминалом, распечатан полностью, без пропусков и искажений.
  • Отказ процессинга
    Сценарий теста: С использованием отрицательной тестовой карты выполняется платеж на произвольную сумму. Терминал получит отказ процессинга. Кассе вернет отказ и образ отказного слипа.
    Результат: На экране кассы появится сообщение с заголовком “Отказ процессинга”. В тексте сообщения указан код ошибки и текст сообщения. Распечатается отказной слип.
  • Отказ терминала
    Для создания сбоя, из терминала или из кассы через которую он подключён к сети интернет, выдернуть сетевой патчкорд.
    Сценарий теста: С использованием положительной тестовой карты выполняется платёж на произвольную сумму. Терминал вернёт кассе отказ.
    Результат: На экране кассы появится сообщение с заголовком “Отказ терминала”. В тексте сообщения указан код ошибки и текст сообщения.
  • Отказ в создании фискального чека после успешного выполнения запроса на оплату по пластиковой карте
    Для создания реального сбоя, на фискальном регистраторе не делается Z-отчёт более 24 часов к моменту выполнения тестов.
    Сценарий теста: На кассе создать чек на произвольную сумму. Выполнить оплату по пластиковой карте. После успешного получения кода авторизации, терминал передаст на кассу положительный ответ и образ двух успешных слипов. При попытке создания фискального чека, фискальный регистратор выдаст сбой: “Прошло более 24 часов с момента последнего Z-отчёта.
    Результат: Касса автоматически выполняет отмену платежа по пластиковой карте. Кассовый чек открыт, не оплачен. После выполнения Z-отчёта касса готова к работе.
  • Сбой печати на фискальном регистраторе при печати успешного слипа
    Для создания реального сбоя, на фискальном регистраторе убирается рулон бумаги, вместо него оставляют кусок чековой ленты длиной 6…8 сантиметров.
    Сценарий теста: На кассе создать чек на произвольную сумму. Выполнить оплату по пластиковой карте. После успешного получения кода авторизации, терминал передаст на кассу положительный ответ и образ двух успешных слипов. Печатается фискальный чек. Касса делает запрос на печать слипов. При печати слипов заканчивается бумага.
    Результат: В Абонемент фиксируется транзакция. Фискальный принтер останавливает печать. Устанавливается новый рулон бумаги. После чего, для получения слипов, кассир переходит на вкладку "Ночной Аудит" и успешно печатает слипы по кнопке "Печать последнего чека терминала платёжных карт"
  • Смешанная оплата. Успешный результат
    Сценарий теста: С использованием одной положительной тестовой карты и наличных выполняется оплата одного чека на произвольную сумму.
    Результат: После успешного выполнения запросов печатаются слипы и фискальный чек.
  • Смешанная оплата. Положительный результат оплаты наличными, отрицательный результат оплаты по пластиковой карте
    Сценарий выполняется, если в кассовом ПО возможна следующая последовательность оплаты смешанного чека: оплата наличными, далее – пластиковой картой.
    Сценарий теста: Оплаты наличными успешны. Оплата отрицательной пластиковой картой не успешна.
    Результат: Успешная отмена платежа наличными
  • Возврат
    Сценарий теста: С использованием положительной тестовой карты выполняется возврат транзакции, проведённой в одну из предыдущих кассовых смен.
    Результат: После успешного выполнения запроса печатаются слипы и фискальный чек.
  • Отмена закрытого чека. Успешная Online отмена кода
    Сценарий теста: С использованием положительной, тестовой карты в рамках одной кассовой смены создаётся и закрывается чек оплаты на произвольную сумму. Делается отмена чека.
    Результат: После успешного выполнения запроса печатаются слип и фискальный чек.
  • Отмена закрытого чека. Успешная Offline отмена кода
    Для создания сбоя требуется отключить от сети терминал или кассу через которую он подключён к сети интернет.
    Сценарий теста: С использованием положительной, тестовой карты в рамках одной кассовой смены создаётся и закрывается чек оплаты на произвольную сумму. Создаётся сбой, делается отмена чека.
    Результат: Происходит Offline отмена кода, на экране отображается соответствующее сообщение и напоминание о необходимости звонка в процессинг.
  • Копия чека
    Сценарий теста: С использованием положительной, тестовой карты создаётся и закрывается последовательно два чека. Последовательно выполняется запрос копий обоих чеков.
    Результат: Успешная печать чеков.
  • Отчёт краткий
    Сценарий теста: Выполняется запрос “отчёт краткий”.
    Результат: Успешная печать краткого отчёта.
  • Отчёт полный
    До выполнения отчёта на терминале выполнено менее 10 оплат.
    Сценарий теста: Выполняется запрос “отчёт полный”.
    Результат: Успешная печать полного отчёта. Текст отчёта полон. Чек отчёта завершён корректно.
  • Закрытие смены терминала, сверка итогов. Автоматический запуск по “Z” -отчёту
    Сценарий теста: Выполняется запрос “Z” -отчёта.
    Результат: При запуске “Z” -отчёта автоматически выполняется запрос на закрытие смены терминала. Закрытие смены выполняется успешно. Печатается слип сверки итогов.
  • Закрытие смены терминала, сверка итогов. Ручной запуск
    Сценарий теста: Выполняется запрос на закрытие смены терминала, путём использования меню "Ночной Аудит", вкладку "Фискальный регистратор". Примечание: данная операция разграничивается правами пользователей и недоступна при закрытой кассовой смене или кассиру отличному от кассира открывшего смену.
    Результат: Закрытие смены выполняется успешно. Печатается слип сверки итогов. 
Настройки, которые выполняются сотрудником банка:
 
1) Подключение к ПК терминала и его настройка.
 
2) Установка ПО процессинга (micromodule)
 

Установка связки терминала оплаты банковской картой (работающего по протоколу Arcus2) и программы «Абонемент»

Ingenico работает почти со всеми банками России. За более подробной информацией лучше обращаться в Ingenico.
(Пример успешной интеграции дилерами с эквайрингом банка ВТБ #128436)
(Успешно произведена интеграция с эквайрингом банка ВТБ 24 и банка МКБ (Московский Кредитный Банк))
 
Используемое оборудование: Терминал для оплаты банковской картой (Ingenico IPP350) подключённый специалистами банка эквайера.
Используемое ПО: программа «Abonement-manager» версии 1.129 и выше, ПО Arcus2 версии 2.1.0.7 и выше
Лицензия: Должен быть приобретен модуль Банковский протокол
 
Настройки, которые выполняются сотрудником банка:
 
1) Установить драйвер для подключения к системе терминала Ingenico.
 
2) Установка и настройка ПО Arcus. (версии 2.1.0.7 или выше) (версию 2.1.0.9 можно скачать с ftp)
 
3) Сконфигурировать устройство. Проверить его работоспособность.
 
 
Настройки, которые выполняются техническим специалистом Абонемент:
 
1) В папку exe скопировать файлы: runcc.ini, runcc.dll, Arcus.dll. Файлы можно взять из дистрибутива Абонемент версии 129 и выше.
 
2) Настройка runcc.ini. Пример файла:
 
[Main]
TerminalDLL = Arcus.dll
BufSize = 5000000

[Cmd]
; Комманда закрытия дня - справа значение из ops.ini
5 = 11
; Комманда отмены чека с передачей параметров - справа значение из ops.ini
2 = 4
; Комманда полного отчёта - справа значение из ops.ini
20 = 7
; Комманда краткого отчёта - справа значение из ops.ini
2000=8
 
[LOCK.SERVER]
; IP Адрес сервера блокировок
TCPHost = 172.22.10.41
; Порт сервера болкировок
TCPPort = 1116
; Текст ошибки в случае отсутствия незанятой валидной лицензии на модуль "Банковский протокол"
LicErrorText = "Ошибка лицензии интерфейса платёжных карт, оплата картами будет недоступна"8
 
где:
BufSize - размер буфера для документов;
[Cmd] - правила преобразования команд согласно ops.ini.
 
3) В файле abonementmanager.ini в секцию [pos] добавить useposterminal=1
 
4) Подключение фискального аппарата производится через универсальный драйвер ФР.
 
[hr]
ВАЖНО!
 
При работе с данным эквайрингом не поддерживается оплата несколькими платёжными картами в рамках одного чека.
При попытке добавления второй карты в список оплат, будет выдано сообщение с кодом 9999 "Оплата несколькими картами не поддерживается"
 
Корректность печати слипов проверена на следующих ФР: Атол 22Ф, Прим 08-Ф, Штрих (до 54ФЗ), Атол (до 54ФЗ).
[hr]
 
Способы функционирования (и методика их тестирования) терминала платёжных карт в Абонемент:
 
  • Оплата. Печать слипов на фискальном регистраторе. Вид успешных слипов
    Сценарий теста: С использованием тестовой карты выполнить оплату на произвольную сумму.
    Результат: Успешная печать слипов. Образ слипов, переданный терминалом, распечатан полностью, без пропусков и искажений.
  • Отказ терминала
    Для создания сбоя, при оплате вводятся невалидная карта или же производится отмена выполнения текущей операции по кнопке.
    Сценарий теста: С использованием тестовой карты выполняется попытка платёжа на произвольную сумму. Терминал вернёт кассе отказ.
    Результат: На экране кассы появится сообщение с заголовком “Отказ терминала”. В тексте сообщения указан код ошибки и текст сообщения.
  • Отказ в создании фискального чека после успешного выполнения запроса на оплату по пластиковой карте
    Для создания реального сбоя, на фискальном регистраторе не делается Z-отчёт более 24 часов к моменту выполнения тестов.
    Сценарий теста: На кассе создать чек на произвольную сумму. Выполнить оплату по пластиковой карте. После успешного получения кода авторизации, терминал передаст на кассу положительный ответ и образ двух успешных слипов. При попытке создания фискального чека, фискальный регистратор выдаст сбой: “Прошло более 24 часов с момента последнего Z-отчёта.
    Результат: Касса автоматически выполняет отмену платежа по пластиковой карте. Кассовый чек открыт, не оплачен. После выполнения Z-отчёта касса готова к работе.
  • Сбой печати на фискальном регистраторе при печати успешного слипа
    Для создания реального сбоя, на фискальном регистраторе убирается рулон бумаги, вместо него оставляют кусок чековой ленты длиной 6…8 сантиметров.
    Сценарий теста: На кассе создать чек на произвольную сумму. Выполнить оплату по пластиковой карте. После успешного получения кода авторизации, терминал передаст на кассу положительный ответ и образ двух успешных слипов. Печатается фискальный чек. Касса делает запрос на печать слипов. При печати слипов заканчивается бумага.
    Результат: В Абонемент фиксируется транзакция. Фискальный принтер останавливает печать. Устанавливается новый рулон бумаги. После чего, для получения слипов, кассир переходит на вкладку "Ночной Аудит" и успешно печатает слипы по кнопке "Печать последнего чека терминала платёжных карт"
  • Смешанная оплата. Успешный результат
    Сценарий теста: С использованием тестовой карты и наличных выполняется оплата одного чека на произвольную сумму.
    Результат: После успешного выполнения запросов печатаются слипы и фискальный чек.
  • Смешанная оплата. Положительный результат оплаты наличными, отрицательный результат оплаты по пластиковой карте
    Сценарий выполняется, если в кассовом ПО возможна следующая последовательность оплаты смешанного чека: оплата наличными, далее – пластиковой картой.
    Сценарий теста: Оплаты наличными успешны. Оплата отрицательной пластиковой картой не успешна.
    Результат: Успешная отмена платежа наличными.
  • Возврат
    Сценарий теста: С использованием тестовой карты выполняется возврат транзакции, проведённой в одну из предыдущих кассовых смен.
    Результат: После успешного выполнения запроса печатаются слипы и фискальный чек.
  • Отмена закрытого чека. 
    Сценарий теста: С использованием тестовой карты в рамках одной кассовой смены создаётся и закрывается чек оплаты на произвольную сумму. Делается отмена чека. Терминал запрашивает номер чека указанный на слипе полученном при регистрации платежа. Требуется ввести номер чека.
    Результат: После успешного выполнения запроса печатаются слип и фискальный чек.
  • Отчёт краткий
    Сценарий теста: Выполняется запрос “отчёт краткий”.
    Результат: Успешная печать краткого отчёта.
  • Отчёт полный
    До выполнения отчёта на терминале выполнено несколько оплат.
    Сценарий теста: Выполняется запрос “отчёт полный”.
    Результат: Успешная печать полного отчёта. Текст отчёта полон. Чек отчёта завершён корректно.
  • Закрытие дня терминала, сверка итогов. Автоматический запуск по “Z” -отчёту
    Сценарий теста: Выполняется запрос “Z” -отчёта.Примечание: данная операция разграничивается правами пользователей и недоступна при закрытой кассовой смене или кассиру отличному от кассира открывшего смену.
    Результат: При запуске “Z” -отчёта автоматически выполняется запрос на закрытие смены терминала. Закрытие смены выполняется успешно. Печатается слип сверки итогов.
  • Закрытие дня терминала, сверка итогов. Ручной запуск
    Сценарий теста: Выполняется запрос на закрытие смены терминала, путём использования меню "Ночной Аудит", вкладку "Фискальный регистратор". Примечание: данная операция разграничивается правами пользователей и недоступна при закрытой кассовой смене или кассиру отличному от кассира открывшего смену.
    Результат: Закрытие смены выполняется успешно. Печатается слип сверки итогов. 

Интеграция Абонемент с CRM 1С Битрикс.

Описание

В программе Абонемент реализована выгрузка данных в 1С Битрикс, которая позволяет менеджерам отдела продаж (пользователям 1С Битрикс)  получать обратную связь о первом посещении клиента.

Данная связка работает при выполнении следующих условий:

Если у клиента состоялось первое посещение в рамках его "Членства", то в 1С Битрикс создается лид на соответствующем этапе (в нашем случае "Первое посещение"

Из карточки клиента подтягиваются ФИО и телефон, а ответственный выбирается из карточки анализируемого абонемента с типом "Членство".

Для корректной работы этой связки в ПО "Абонемент" должны быть заведены абонементы с типом "Членство" и настроен выбор ответственного за регистрацию абонемента.

Рис.1 Карточка типа абонемента в ПО "Абонемент"

 

В 1С Битрикс в свою очередь настраивается классическая схема работы с лидами. Для получения лида из ПО Абонемент в 1С Битрикс создается статус (этап), в который будет попадать данный лид.

Рис.2 Статусы CRM 1С Битрикс
 

После создания лида на этапе «Первое посещение» в 1С Битрикс запускается бизнес-процесс, который формирует задание на обзвон и назначает ответственного.

Рис.3 CRM 1С Битрикс
 
Рис.4 CRM 1С Битрикс
 
Рис.5 Лиды CRM 1С Битрикс
 

Данное задание контролируется ответственным сотрудником, и по результатам его выполнения создается контакт или происходит дальнейшая аналитика.

 

Техническая часть

Модуль интеграции CRMOnline используется для передачи информации из ПО "Абонемент" в CRM 1С Битрикс.

Дистрибутив модуля находится в поставке: '..\FullVersionVer136.1\Fullversion\_MODULES\CRMOnline'.

Лицензируется: проект 1 модуль 11.

Информация должна соответсвовать условиям определенным в теле запроса sql.txt:                                                  

select XX.*, --
       SN(S.CODE) as STAF,
      '2' AS STATUS
from (select X.*,
             (select min(a.id)
              from FOLIO F
              left join ABONEMENTS A on A.FOLIO = F.ID
              inner join PACKAGE_KINDS PK on PK.ID = A.PACKAGE_KIND and PK.ISMEMBERSHIP = 1
              left join ABONEMENT_PACKAGES AP on AP.ABONEMENT = A.ID
              left join DIARY D on D.ABONEMENT_PACKAGE = AP.ID and d.status=2 and d.enabled=1
              where F.OWNER = X.REF and d.id > 0) as AbonID
      from (select G.ID as REF, --
                   G.NAME name2, G.NAME1 name, G.NAME2 name1, --
                   G.PHONES, G.EMAIL
            from GUESTS G
            where G.ID > 1000 and
                  G.PERSONKIND = 0 and
                  not exists(select AH.ID
                             from ANNOUNCEMENTS_HIST AH
                             where AH.REF = G.ID and
                                   AH.FAILED = 0 and
                                   AH.GUEST_ANNOUNCEMENT = 0)
 
      ) X) XX
left join abonements a on a.id = xx.AbonID
left join STAFF S on S.ID = a.STAFF
where XX.AbonID > 0

Настройки модуля определены в файле config.ini:

[LOCK.SERVER]
TCPHost = 127.0.0.1
TCPPort = 1119      

[database]
dbname=127.0.0.1/3080:D:\_IBDATA\_FITNESS\FITNESS.FDB
dbuser = ucs
DBPassword = ucs

[Main]
;Интервал повтора в секундах
Interval = 5
;Автозапуск
Start = 0
SSLVer = 1
;URI CRMOnline
URI = "https://172.22.3.241:5000/addleadbitrix?tocken=9ww110g16bjnllpf&staf={%STAF%}&fname={%NAME%}&sname={%NAME1%}&lname={%NAME2%}&phone={%PHONES%}&email={%EMAIL%}&status={%STATUS%}"
HTTPBody =
;Закрывать после отправки данных
CloseAfterSend = 0
;Шаблон ответа
ResponseOK = OK
;Максимальное количество строк в логе
MaxLogLines = 20
;Максимальное количество URI
MaxURICount = 100
;Показывать форму 1 или нет 0
ShowForm = 0
;ID GuestAnnouncement
GuestAnnouncement = 0
;Показыват =1 или нет =0 окно подтверждения перед закрытием приложения
RequestClose = 1
;Дублировать =0 или нет =1 последнюю строчку лога
UniqueLastLogLine = 0
dbuser = ucs
DBPassword = ucs

[Main]
;Интервал повтора в секундах
Interval = 5
;Автозапуск (параметры автозапуска)
Start = 0
SSLVer = 1
;URI CRMOnline (Адрес страницы WEB интерфейса CRM 1C Битрикс)
URI = "https://172.22.3.241:5000/addleadbitrix?tocken=9ww110g16bjnllpf&staf={%STAF%}&fname={%NAME%}&sname={%NAME1%}&lname={%NAME2%}&phone={%PHONES%}&email={%EMAIL%}&status={%STATUS%}"
HTTPBody =
;Закрывать после отправки данных
CloseAfterSend = 0
;Шаблон ответа
ResponseOK = OK
;Максимальное количество строк в логе
MaxLogLines = 20
;Максимальное количество URI
MaxURICount = 100
;Показывать форму 1 или нет 0
ShowForm = 0
;ID GuestAnnouncement
GuestAnnouncement = 0
;Показыват =1 или нет =0 окно подтверждения перед закрытием приложения
RequestClose = 1
;Дублировать =0 или нет =1 последнюю строчку лога
UniqueLastLogLine = 0

 

Интерфейс модуля интеграции с CRM 1С Битрикс выглядит следующим образом:

 

Рис.6 Внешний вид работающего модуля интеграции с CRM 1С Битрикс

 

Переданный в CRM 1С Битрикс лид будет выглядеть следующим образом:

 

Рис.7 Визуализация переданных из ПО "Абонемент" данных в CRM 1С Битрикс 

 

 

-------------------------------------------------------------------------------------------------------------------

Доработка готова. Сделано пилотное внедрение. Готовим материал в этой статье. 

http://tracker.ucs.ru/issues/127590 

Модуль "Выгрузка в 1С"

Описание программного комплекса

 

Программа предназначена для загрузки данных из Абонемент или Shelter в 1С:Бухгалтерию (редакции 3.0) 1С:Предприятия 8.2(8.3), 1С:Бухгалтерию (редакции 2.0) 1С:Предприятия 8. (Важно! Если 1.6, то обновить до 2.0) и в 1С:Бухгалтерию (редакции 4.5) 1С:Предприятия 7.7. Программа загружает все наличные и безналичные платежи и реализацию услуг. Все типы платежей и реализации услуг переносятся опционально. Что позволяет использовать программу совместно с клиент-банком и другими обработками для 1С:Предприятия. Программа является обработкой, написанной на языке «1С» с открытым исходным кодом, что позволяет пользователю самостоятельно вносить изменения в порядок загрузки данных.

Данные формируются следующим образом: все оплаты выгружаются день в день. Если услуга была оказана на  фолио, то эти услуги выгрузятся  в день их реализации, т.е. днем, когда они были начислены. Если услуга(оплата) находится на фолио организации или группы от юридического лица, то она принадлежит юр. лицу. Фолио группы создается на организацию плательщика, установленного в карточке. Важно чтобы после выгруженных данных в Абонемент или Shelter не проводились скидки задним числом и не совершались трансферы. Т.е. до момента выгрузки все трансферы и скидки должны быть сделаны.

 

Описание поставки программного комплекса

 

Поставку выгрузки можно найти по адресу Fullversion\_MODULES\ImportTo1C  (c версии Абонемент 129 до 132 по пути \FullVersionVerxxx\utils\ImportTo1C.

 

Firebird_ODBC_2.0.0.148_win32.exe — ODBC драйвер для FireBird (x86) (Firebird_ODBC_2.0.0.151_x64.exe для 64-битной ОС.)

GDS32.DLL – клиентская библиотека FireBird.

UCSimportFromShelterTo1C8_BUX_3_0_709.epf – Обработка 1С:Предприятия 8.2 (8.3)   Конфигурация Бухгалтерия предприятия, редакция 3.0. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.

UCSimportFromShelterTo1C8_BUX_3_0_709_ВыборОтеля.epf – Обработка 1С:Предприятия 8.2 (8.3)   Конфигурация Бухгалтерия предприятия, редакция 3.0. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.

UCSimportFromShelterTo1C8_2_BUX_709.epf – Обработка 1С:Предприятия 8.2   Конфигурация Бухгалтерия предприятия, редакция 2.0. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.

UCSimportFromShelterTo1C8_2_BUX_709_ЧастноеЛицо.epf - Обработка 1С:Предприятия 8.2   Конфигурация Бухгалтерия предприятия, редакция 2.0. Все контрагенты — частные лица заменены одним контрагентом Частное Лицо. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.

UCSimportFromShelterTo1C8_2_BUX_709_ВыборОтеля.epf – Обработка 1С:Предприятия 8.2   Конфигурация Бухгалтерия предприятия, редакция 2.0. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.       

UCSimportfromShelterTo1C77_Complex_709.ert – Обработка 1С:Предприятия 7.7. Комплексная конфигурация ред. 4.5. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.

UCSimportfromShelterTo1C77_BUH_709.ert - Обработка 1С:Предприятия 7.7.  Конфигурация Бухгалтерский учет, редакция 4.5. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.

UCSimportfromShelterTo1C77_USN_ЧастноеЛицо_709.ert - Обработка 1С:Предприятия 7.7.  Конфигурация Упрощенная система налогообложения, ред. 1.3. Все контрагенты — частные лица заменены одним контрагентом Частное Лицо. Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.

UCSimportfromShelterTo1C77_USN_709.ert - Обработка 1С:Предприятия 7.7.  Конфигурация Упрощенная система налогообложения, ред. 1.3.  Работает с версиями Shelter 709 и выше, Абонемент 68 и выше.  

Руководство пользователя2016.doc  - руководство пользователя.

 

 

Описание установки программного комплекса

 

  1. Установить ODBC драйвер (Firebird_ODBC_2.0.0.148_win32.exe) для 32-битной ОС.

Либо установить драйвер (Firebird_ODBC_2.0.0.151_x64.exe) для 64-битной ОС.

  1. Скопировать библиотеку GDS32.DLL в Windows\System32 (если ее там нет) для 32-битной ОС, либо в Windows\sysWOW64 и Windows\System32 для 64-битной ОС (ВАЖНО!!! Иногда бывают случаи, когда необходимо использовать модифицированную версию библиотеки gds32.dll (есть на гугл-диске https://drive.google.com/drive/folders/0B683WItGLEHHQk5CTTE1MVg1QXM))
  2. Из 1С-Бухгалтерии v8.1 ред. 2.0  запустить UCSimportFromShelter.epf  или из 1С-Бухгалтерии v7.7 ред. 4.5  запустить UCSimportFromShelter.ert.

ВАЖНО!!!

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

1. в папке UDF на сервере нужно обновить файл sh2_udf.dll

2. на базе выполнить скрипт:

select * from sp_create_object('&Object=UDF&Name=CHKLIC&EntryPoint=CHKLIC&Module=sh2_udf&Params=CSTRING RETURNS CSTRING FREE_IT');
commit;
update RDB$FUNCTIONS set RDB$MODULE_NAME = 'sh2_udf' where RDB$FUNCTION_NAME = 'CHKLIC';
commit;

Иначе, при проверке подключения из выгрузки будет выдано сообщение, что лицензия не найдена.

 

Описание настройки программного комплекса

Общий вид окна настроек выгрузки можно увидеть на рис.1.

  • После открытия выгрузки в 1С, требуется ввести настроки связи с БД Абонемент (Shelter) и сервером болкировок.
  • DbName:  IP адрес и порт или dns имя и порт сервера FireBird и путь к файлу БД Абонемент (Shelter)
  • TCPHost: ip адрес или dns имя сервера болкировок, TCPPort: tcp порт сервера болкировок, 

 

Проверить настройки связи с БД и  с серверм болкировок можно кнопкой «Проверить».

На странице настроек произвести выбрать все остальные параметры и сохранить настройки. Далее сначала "Заполнить", потом "Загрузить" на каждой странице отдельно или "Загрузить все".

Рис.1 Общий вид окна настроек выгрузки

 

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

 

1.      Сообщение в 1С об ошибке при вызове метода контекста (Execute): 

«Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers):
[ODBC Firebird Driver][Firebird]invalid request BLR at offset 63
function CHKLIC is not defined
module name or entrypoint could not be found»

Причина ошибки: в базе данных не найдена функция, отвечающая за нахождение лицензии выгрузки в 1С.Метод исправления ошибки: в папку UDF необходимо поместить файл sh_licudf.dll . И кроме того необходимо выполнить скрипт script_1c.sql.

2.      Сообщение в 1С об ошибке при вызове метода контекста (Open)

Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Driver):
[ODBC Firebird Driver] File Database is not found.

Причина ошибки :  некорректно заполнено поле «DbName». Пример  правильного заполнения поля указан ниже:     127.0.0.1/3080:C:\_UCS\_FITNESS\IBDATA\FITNESS.FDB

3.      Сообщение в 1С об ошибке при вызове метода контекста (Open)

Произошла исключительная ситуация: 
SQLCODE = - 902: 
I/O error during «@1» operation for file «@2». Error while trying to open file.

Причина ошибки: см.пункт 3

4.      Сообщение в 1С об ошибке при вызове метода контекста (Open):

Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): 
[ODBC Firebird Driver]unavailable database
Не удалось подключиться к FireBird.

Причина ошибки: см.пункт 3

5.      Сообщение в 1С об ошибке при вызове метода контекста(EOF)

Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): 
[ODBC Firebird Driver] 
[Firebird] Error reading from the connection…

Причина ошибки: некорректная установка необходимых драйверов ODBC Firebird (для 32 либо 64-битной системы).

Сервер Статистики "ServStat"

Модуль: "ServStat" сервер статистики

Предназначена: Для сбора статистики по БД объекта и выгрузки статистической информации во внешнее "облако".
Функционально: Формирует информацию по следующим временным интервалам: "Вчера","Сегодня","Сейчас". Типы данных: "Сумма денег" (по чекам) и "Кол-во клиентов" (по присутствию)

Для каждого Заказчика регистрируется поддомен *.ucs.ru и формируется статистическая база данных на MySQL. Модуль OnLine статистики предоставляется и устанавливается бесплатно. Но включаться абонентская плата на обслуживание домена *.ucs.ru порядка 500 рулей в месяц. Если необходимо развернуть модуль на домене Заказчика, то в этом случае Компания UCS делает данные работы на платной основе. 

!!Сервер статистики ServStat защищен лицензионным ключом (Проект:1, Модуль:12)!!

Пример статистических отчетов можно посмотреть по адресу

http://stats.ucs.ru/
Логин: admin
Пароль: 11111

Модуль можно скачать: FullversionVerXXX\UTILS\ServStat
 

Настройка модуля:

  [database]
    dbname - путь до БД
    dbuser - логин БД
    DBPassword - пароль БД

  [Server] параметры сервера статистики
    OBJECT_GUID - название объекта
    KEY         - секретный код
    URL         - путь до файла report.php  

    Важно: Параметры секции [Server] необходимо получить у технической поддержки Абонемент UCS. 
  
  [SQL]
    sqlopenKind1 - sql1 запрос для отображения данных за "вчерашний день" 
    sqlopenKind2 - sql2 запрос для отображения данных за "сегодня" 
    sqlopenKind3 - sql3 запрос для отображения данных за "сейчас" 
    LastBeforeDate     - дата последней выгрузки за "вчерашний день" в формате числа
    LastBeforeDateInfo - дата последней выгрузки за "вчерашний день" в формате даты

   Важно: 
   Если LastBeforeDate = 0 или пусто или отсутствует, то сформируется параметр и выгрузится за вчерашний день.
   Если LastBeforeDate не пусто и значение меньше чем вчера, то выгрузка будет происходить последовательно за каждый день
   до наступления условия LastBeforeDate <= вчера. 

  [Application] параметры приложения
    Timer = 60000  - интервал выполнения цикла в мс (значение 60000 равно 60 секундам) 
 

 

WEB модули Абонемент

В данном разделе собраны модули работающие на WEB технологии. 

Connecter: PMS интерфейс Абонемент. Служит для взаимодействия с БД стороннего ПО.

 

 

 

 

Назначение и описание.

Программа Connecter - это HTTP-сервер - слушает определенный сокет (пара Хост-Порт) в ожидании команд. Сторонняя программа (или браузер) методом POST посылает запрос на выполнение предопределённой функции в программе. Connecter понимает, ей ли адресована пришедшая информация или нет. Если да, то она выполняет определенные запросы к БД Абонемент через внутренний интерфейс, и результат передает обратно.
 
Для проверки работы используется программа testConnecter.exe, в которой также как и в данном документе представлен формат запросов и функции. С помощью testconnecter.exe также можно послать запросы на выполнение функций и убедиться, что утилита работает. TestConnecter распространяется в поставке вместе с connecter.
На рис. 1 показана схема взаимодействия:
Рис. 1 Схема взаимодействия стороннего ПО с БД Абонемент
 
При необходимости на сервере компании UCS может быть развернут тестовый экземпляр программы Connecter.exe. Данные для подключения а так же secret key предоставляются после согласования условий с компанией UCS.
Функции дорабатываются как правило на платной основе и только после согласования ТЗ.

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

ПО Connecter может использоваться для реализации различных задач (Абонемент-онлайн, Инфокиоск, Монитор тренера, etc) и защищаться разной связкой проект/модуль в ключе защиты. В качестве чего используется конкретный экземплят коннектора настраивается в connecter.ini:

[LOCK.SERVER]
  Project = 1
  Module = 2

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

Функция Проект/Модуль (должен любой из)
GUEST_INFO 1/1, 1/2, 1/3, 1/4,  1/5, 1/6, 1/7, 4/5
GETEVENT 1/1, 1/3, 1/4,  1/5, 1/6
ALLGUESTDIARYPAUSE 1/1, 1/3, 1/4
MONEYACCEPTOR 1/1, 1/3
SOLARY_ON 1/1, 1/6
GUEST_AVAILABLE_ROOMS_NOW 1/1, 1/6
GUEST_AVAILABLE_PACKAGES_NOW 1/1, 1/6
DIARY_PROCESS 1/1, 1/5
LIST_OF_DIARY 1/1, 1/2, 1/3, 1/4,  1/5
LIST_OF_STAFF 1/1, 1/2, 1/3, 1/4,  1/5
LIST_OF_GROUPDIARY 1/1, 1/2, 1/3, 1/4,  1/5
CREATE_ABONEMENT 1/1, 1/2, 1/3, 1/4,  1/5
CREATE_FOLIO_SERVICES 1/1, 1/2, 1/3, 1/4,  1/5
FOLIO_PAYMENT 1/1, 4/5, 1/3
TOPAYINADVANCEPAYMENT 1/1, 4/5, 1/3

 

Расшифровка модулей в ключе защиты

Проект Модуль Расшифровка
1 1 Все функции
1 2 Абонемент-Онлайн
1 3 Инфокиоск с оплатой
1 4 Инфокиоск без оплаты
1 5 Монитор тренера
1 6 Интерактивный солярий
1 7 Монитор клиента
4 5 Платежные системы (RoboKassa, Assist)
4 9 Интерфейс взаимодействия внешних приложений с БД Абонемент

 

Функции, их описания и параметры

Тэг <REQUEST> запроса должен содержать параметры SECRETKEY и PUBLICKEY.
SECRETKEY формируется по правилу MD5(PRIVATEKEY+PUBLICKEY), где PRIVATEKEY - это одноименный параметр из конфигурационного файла Connecter.ini.

Пример:

<REQUEST SECRETKEY="d17e7b7c48b8308bae416d560d44a580" PUBLICKEY="f096d3da9f8797e053edd854335413ab">

 

1. Группа функций "Гость"

Edit

1.1. Функция GUEST_INFO "Информация о клиенте"

Edit

Описание

          Информация о клиенте
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
SHOW_ABONEMENT_PACKAGES - 1-показывать тарифы абонемента
SHOW_ABONEMENT_PACKAGE_DIARY - 1-показывать мероприятия по тарифам абонемента
SHOW_ABONEMENT_FREEZE - 1-показывать заморозки по абонементу
SHOWDIARY - 1-показывать мероприятия клиента
SHOWABONEMENTS - 1-показывать абонементы клиента
SHOWTRANSACTIONS - 1-показывать транзакции клиента
TRANSACTIONFILTERDATEFROM - показывать транзакции с даты (в формате yyyymmdd)
TRANSACTIONFILTERDATETO - показывать транзакции по дату (в формате yyyymmdd)
SHOW_DIARY_KIND0 - 1-показывать обычные мероприятия
SHOW_DIARY_KIND1 - 1-показывать групповые мероприятия (тренировки)
SHOW_DIARY_KIND2 - 1-показывать мероприятия в составе группы
SHOW_GUEST_PHOTO - 1-показывать фотографию клиента
SHOW_OBJ_PROP_VALUES - 1-показывать свойства объекта

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GUEST_INFO</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <SHOWDIARY>1</SHOWDIARY>
        <SHOWABONEMENTS>1</SHOWABONEMENTS>
        <SHOW_ABONEMENT_PACKAGES>0</SHOW_ABONEMENT_PACKAGES>
        <SHOW_ABONEMENT_PACKAGE_DIARY>0</SHOW_ABONEMENT_PACKAGE_DIARY>
        <SHOW_ABONEMENT_FREEZE>0</SHOW_ABONEMENT_FREEZE>
        <SHOWTRANSACTIONS>1</SHOWTRANSACTIONS>
        <TRANSACTIONFILTERDATEFROM>20170523</TRANSACTIONFILTERDATEFROM>
        <TRANSACTIONFILTERDATETO>20170622</TRANSACTIONFILTERDATETO>
        <SHOW_DIARY_KIND0>0</SHOW_DIARY_KIND0>
        <SHOW_DIARY_KIND1>0</SHOW_DIARY_KIND1>
        <SHOW_DIARY_KIND2>0</SHOW_DIARY_KIND2>
        <SHOW_GUEST_PHOTO>1</SHOW_GUEST_PHOTO>
        <SHOW_OBJ_PROP_VALUES>1</SHOW_OBJ_PROP_VALUES>
        <FILTER>
            <ABONEMENTFILTER/>
        </FILTER>
        <SHOW_DATA_BLOBS>0</SHOW_DATA_BLOBS>
        <SHOW_PDS_TRANSACTIONS_SUM>0</SHOW_PDS_TRANSACTIONS_SUM>
        <SHOW_GUEST_IDENTIFIERS>0</SHOW_GUEST_IDENTIFIERS>
    </PARAMETERS>
</REQUEST>

          
Edit

1.2. Функция ADD_GUEST "Создать нового клиента"

Edit

Описание

          Создать нового клиента
ID - ID гостя (integer) (0 для нового гостя)
NAME - фамилия (varchar(50))
NAME1 - имя (varchar(50))
NAME2 - отчество (varchar(50))
EMAIL - E-mail (varchar(30))
PHONES - телефон (varchar(50))
NOGUEST - Номер документа (varchar(250))
DOC_SERIES - Серия документа (varchar(20))
NOCONTENT - Кем выдан документ (varchar(250))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
MAILING_TYPE - Тип подписки на рассылку: 
    0 - не подписывыться
    1 - E-Mail
    2 - SMS
    3 - E-Mail и SMS

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>ADD_GUEST</FUNCNAME>
    <PARAMETERS>
        <ID>0</ID>
        <NAME>Иванов</NAME>
        <NAME1>Иван</NAME1>
        <NAME2>Петрович</NAME2>
        <EMAIL>ivan@petro.ivanov</EMAIL>
        <PHONES>+7 495 921-41-98</PHONES>
        <NOGUEST>Номер документа</NOGUEST>
        <DOC_SERIES>Серия документа</DOC_SERIES>
        <NOCONTENT>Кем выдан документ</NOCONTENT>
        <LOGIN/>
        <PASSWRD/>
        <MAILING_TYPE>0</MAILING_TYPE>
        <BIRTHDATE>0</BIRTHDATE>
        <GENDERTYPE>0</GENDERTYPE>
        <PHONE1/>
        <PSEUDONYM/>
        <PIN/>
        <STAFF>0</STAFF>
        <PHOTO/>
        <DATA_BLOBS>
            <RECORDSET>
                <RECORD>
                    <ID>0</ID>
                    <ISMAIN>1</ISMAIN>
                    <DATAKIND>1000</DATAKIND>
                    <INFO>Info</INFO>
                    <DATABLOB>dXJh</DATABLOB>
                </RECORD>
            </RECORDSET>
        </DATA_BLOBS>
    </PARAMETERS>
</REQUEST>

          
Edit

1.3. Функция MODIFY_GUEST "Редактировать клиента"

Edit

Описание

          Редактировать клиента
ID - ID гостя (integer) (0 для нового гостя)
NAME - фамилия (varchar(50))
NAME1 - имя (varchar(50))
NAME2 - отчество (varchar(50))
EMAIL - E-mail (varchar(30))
PHONES - телефон (varchar(50))
NOGUEST - Номер документа (varchar(250))
DOC_SERIES - Серия документа (varchar(20))
NOCONTENT - Кем выдан документ (varchar(250))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
MAILING_TYPE - Тип подписки на рассылку: 
    0 - не подписывыться
    1 - E-Mail
    2 - SMS
    3 - E-Mail и SMS

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>MODIFY_GUEST</FUNCNAME>
    <PARAMETERS>
        <ID>0</ID>
        <NAME>Иванов</NAME>
        <NAME1>Иван</NAME1>
        <NAME2>Петрович</NAME2>
        <EMAIL>ivan@petro.ivanov</EMAIL>
        <PHONES>+7 495 921-41-98</PHONES>
        <NOGUEST>Номер документа</NOGUEST>
        <DOC_SERIES>Серия документа</DOC_SERIES>
        <NOCONTENT>Кем выдан документ</NOCONTENT>
        <LOGIN/>
        <PASSWRD/>
        <MAILING_TYPE>0</MAILING_TYPE>
        <BIRTHDATE>0</BIRTHDATE>
        <GENDERTYPE>0</GENDERTYPE>
        <PHONE1/>
        <PSEUDONYM/>
        <PIN/>
        <STAFF>0</STAFF>
        <PHOTO/>
        <DATA_BLOBS>
            <RECORDSET>
                <RECORD>
                    <ID>0</ID>
                    <ISMAIN>1</ISMAIN>
                    <DATAKIND>1000</DATAKIND>
                    <INFO>Info</INFO>
                    <DATABLOB>dXJh</DATABLOB>
                </RECORD>
            </RECORDSET>
        </DATA_BLOBS>
    </PARAMETERS>
</REQUEST>

          
Edit

1.4. Функция LIST_OF_GUESTS "Список клиентов"

Edit

Описание

          Список клиентов
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_GUESTS</FUNCNAME>
    <PARAMETERS>
        <ACCOMPANIED_GUEST>0</ACCOMPANIED_GUEST>
        <FIO_STARTING_WITH>FIO_STARTING_WITH</FIO_STARTING_WITH>
        <FIO_CONTAINING>FIO_CONTAINING</FIO_CONTAINING>
        <MAXRECORDS>100</MAXRECORDS>
        <FILTER> and 1=1 </FILTER>
        <ORDERBY> g.id desc </ORDERBY>
        <EXTRA_OUTPUT_FIELDS> g.AUX, formatdatetimeex('c',g.REGDATE,'') fmtregdate </EXTRA_OUTPUT_FIELDS>
        <EXTRA_OUTPUT_FIELDS_GROUPBY> g.AUX, g.REGDATE </EXTRA_OUTPUT_FIELDS_GROUPBY>
    </PARAMETERS>
</REQUEST>

          
Edit

1.5. Функция ATTENDANTS "Сопровождающие"

Edit

Описание

          Сопровождающие
ACTION - Тип действия:
   ADD - Добавить в сопровождающие
   DELETE - Удалить из сопровождающих

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>ATTENDANTS</FUNCNAME>
    <PARAMETERS>
        <ACTION>ADD</ACTION>
        <ACCOMPANIED_GUEST>1003</ACCOMPANIED_GUEST>
        <ATTENDANT>1030</ATTENDANT>
    </PARAMETERS>
</REQUEST>

          
Edit

1.6. Функция INVOLVING_GUESTS "Привлеченные клиенты"

Edit

Описание

          Привлеченные клиенты
ACTION - Тип действия:
   ADD - Добавить привлеченного
   DELETE - Удалить из привлеченных

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>INVOLVING_GUESTS</FUNCNAME>
    <PARAMETERS>
        <ACTION>ADD</ACTION>
        <GUEST>1003</GUEST>
        <INVOLVED_GUEST>1030</INVOLVED_GUEST>
    </PARAMETERS>
</REQUEST>

          
Edit

1.7. Функция GUESTVISITINFO "Получить информацию о визите клиента"

Edit

Описание

          Получить информацию о визите клиента
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
ROOMNUMBER - код ресурса
INFOTERMINALINSIDE        1: клиент внутри зоны тарификации  
        0: клиент вне зоны тарификации  
Возвращает
DIARYDURATION - Продолжительность посещения по тарифу 
REALDURATIONVISITPRODAY - Продолжительность посещений за день 
INTERMEDIATEGUESTBALANCE - Промежуточный баланс 
LASTATTENDANCE - Время последнего входа 
DIARY - мероприятие, по которому клиент присутствует 
ABONEMENT_PACKAGE - тариф клиента, по которому клиент присутствует 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GUESTVISITINFO</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <ROOMNUMBER>BROOM</ROOMNUMBER>
        <INFOTERMINALINSIDE>1</INFOTERMINALINSIDE>
    </PARAMETERS>
</REQUEST>

          
Edit

1.8. Функция CHANGE_PHONE_CONFIRM_CODE "Код подтверждения телефонного номера"

Edit

Описание

          Код подтверждения телефонного номера
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
 case STATUS of 
   0 - clear confirmation code 
   1 - confirm confirmation code 
   2 - create confirmation code 
   3 - get confirmation code 
 case PHONETYPE of 
   1 - PHONE1 
   2 - PHONE2 
   3 - PHONES 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CHANGE_PHONE_CONFIRM_CODE</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <CONFIRMATION_CODE>1234</CONFIRMATION_CODE>
        <STATUS>2</STATUS>
        <PHONETYPE>1</PHONETYPE>
    </PARAMETERS>
</REQUEST>

          
Edit

2. Группа функций "Фолио"

Edit

2.1. Функция FOLIO_PAYMENT "Зарегистрировать платёж"

Edit

Описание

          Зарегистрировать платёж
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
COST - сумма платежа (double)
INFO - Примечание к платежу  (varchar(100))
ADVANCENAME - Цель платежа (varchar(30)
PAYCODE - код платежа (должен быть строго нефискальным) (varchar(6)
ADVANCE_PURPOSE - Цели аванса
Возвращает:
FCID -  (integer больше 0 при успехе) - идентификатор транзакции
CCTRANSPARAM - Параметры транзакции платежной картой

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>FOLIO_PAYMENT</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <COST>1000</COST>
        <INFO>Info</INFO>
        <ADVANCENAME>Advance</ADVANCENAME>
        <PAYCODE>901</PAYCODE>
        <ADVANCE_PURPOSE>
            <ABONEMENTS>
                <RECORDSET>
                    <RECORD>
                        <ID>11</ID>
                    </RECORD>
                    <RECORD>
                        <ID>12</ID>
                    </RECORD>
                </RECORDSET>
            </ABONEMENTS>
            <OPERATIONS>
                <RECORDSET>
                    <RECORD>
                        <ID>71</ID>
                    </RECORD>
                    <RECORD>
                        <ID>72</ID>
                    </RECORD>
                </RECORDSET>
            </OPERATIONS>
        </ADVANCE_PURPOSE>
        <CCTRANSPARAM/>
    </PARAMETERS>
</REQUEST>

          
Edit

2.2. Функция CREATE_FOLIO_SERVICES "Зарегистрировать услуги"

Edit

Описание

          Зарегистрировать услуги
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CREATE_FOLIO_SERVICES</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <OPERATIONS>
            <RECORDSET>
                <RECORD>
                    <ID>70</ID>
                    <COUNT>1</COUNT>
                    <INFO/>
                </RECORD>
                <RECORD>
                    <ID>55</ID>
                    <COUNT>1</COUNT>
                    <INFO/>
                </RECORD>
            </RECORDSET>
        </OPERATIONS>
    </PARAMETERS>
</REQUEST>

          
Edit

2.3. Функция FOLIO_PAYMENT_CORRECTION "Корректировать платеж"

Edit

Описание

          Корректировать платеж
RETURNCOST - Сумма коррекции:
   0 - не корректировать
   -1 - корректировать на макс. возможную сумму
   >0 - корректировать на введенную сумму, но не больше макс. возможной

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>FOLIO_PAYMENT_CORRECTION</FUNCNAME>
    <PARAMETERS>
        <PAYMENT>36288</PAYMENT>
        <INFO>Info</INFO>
        <MODE>0</MODE>
        <ITEMS>
            <RECORDSET>
                <RECORD>
                    <ABONEMENT>12332</ABONEMENT>
                    <RETURNCOST>200</RETURNCOST>
                </RECORD>
                <RECORD>
                    <ABONEMENT>12333</ABONEMENT>
                    <RETURNCOST>-1</RETURNCOST>
                </RECORD>
                <RECORD>
                    <ABONEMENT>0</ABONEMENT>
                    <RETURNCOST>-1</RETURNCOST>
                </RECORD>
            </RECORDSET>
        </ITEMS>
    </PARAMETERS>
</REQUEST>

          
Edit

2.4. Функция QUICKSALE "Быстрая продажа"

Edit

Описание

          Быстрая продажа
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
KINDOFCHECK -  Тип чека: 
   0 - Оплатить
   1 - Пречек
   2 - Зачет аванса

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>QUICKSALE</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <PAYCODE>910</PAYCODE>
        <KINDOFCHECK>0</KINDOFCHECK>
        <SERVICES>
            <RECORDSET>
                <RECORD>
                    <OPERATION>70</OPERATION>
                    <QUANT>2</QUANT>
                    <PRICE>100</PRICE>
                    <ISABONEMENT>0</ISABONEMENT>
                </RECORD>
                <RECORD>
                    <OPERATION>72</OPERATION>
                    <QUANT>1</QUANT>
                    <PRICE>450</PRICE>
                    <ISABONEMENT>0</ISABONEMENT>
                </RECORD>
                <RECORD>
                    <PACKAGE_KIND>12</PACKAGE_KIND>
                    <QUANT>3</QUANT>
                    <PRICE>200</PRICE>
                    <ISABONEMENT>1</ISABONEMENT>
                </RECORD>
                <RECORD>
                    <PACKAGE_KIND>14</PACKAGE_KIND>
                    <QUANT>1</QUANT>
                    <PRICE>40000</PRICE>
                    <ISABONEMENT>1</ISABONEMENT>
                </RECORD>
            </RECORDSET>
        </SERVICES>
    </PARAMETERS>
</REQUEST>

          
Edit

2.5. Функция TOPAYINADVANCEPAYMENT "Зачесть авансы"

Edit

Описание

          Зачесть авансы
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
ADVANCE_PURPOSE - Цели аванса
Возвращает:
ACTIONCOUNT - Количество выполненных действий
AVAILABLECOST - Доступная сумма
SUMNOPAYCOST - Неоплаченная сумма

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>TOPAYINADVANCEPAYMENT</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <ADVANCE_PURPOSE>
            <ABONEMENTS>
                <RECORDSET>
                    <RECORD>
                        <ID>11</ID>
                    </RECORD>
                    <RECORD>
                        <ID>12</ID>
                    </RECORD>
                </RECORDSET>
            </ABONEMENTS>
        </ADVANCE_PURPOSE>
    </PARAMETERS>
</REQUEST>

          
Edit

2.6. Функция INTERMEDIATE_BALANCE "Промежуточный баланс клиента"

Edit

Описание

          Промежуточный баланс клиента
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>INTERMEDIATE_BALANCE</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <IDROOM>1</IDROOM>
    </PARAMETERS>
</REQUEST>

          
Edit

2.7. Функция CALC_DISCOUNTCOST "Расчёт суммы скидки"

Edit

Описание

          Расчёт суммы скидки
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CALC_DISCOUNTCOST</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <SERVICES>
            <RECORDSET>
                <RECORD>
                    <ID>71</ID>
                    <COST>1000</COST>
                </RECORD>
                <RECORD>
                    <ID>72</ID>
                    <COST>400</COST>
                </RECORD>
            </RECORDSET>
        </SERVICES>
    </PARAMETERS>
</REQUEST>

          
Edit

3. Группа функций "Абонементы"

Edit

3.1. Функция ABONEMENT_INFO "Параметры абонемента"

Edit

Описание

          Параметры абонемента
ID - ID абонемента
SHOW_ABONEMENT_PACKAGES - 1-показывать тарифы абонемента
SHOW_ABONEMENT_PACKAGES - 1-показывать мероприятия по тарифам абонемента
SHOW_ABONEMENT_PACKAGES - 1-показывать заморозки по абонементу

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>ABONEMENT_INFO</FUNCNAME>
    <PARAMETERS>
        <ID>0</ID>
        <SHOW_ABONEMENT_PACKAGES>0</SHOW_ABONEMENT_PACKAGES>
        <SHOW_ABONEMENT_PACKAGE_DIARY>0</SHOW_ABONEMENT_PACKAGE_DIARY>
        <SHOW_ABONEMENT_FREEZE>0</SHOW_ABONEMENT_FREEZE>
    </PARAMETERS>
</REQUEST>

          
Edit

3.2. Функция CREATE_ABONEMENT "Создать абонемент"

Edit

Описание

          Создать абонемент
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CREATE_ABONEMENT</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <PACKAGE_KINDS>
            <RECORDSET>
                <RECORD>
                    <ID>4</ID>
                    <COUNT>1</COUNT>
                </RECORD>
                <RECORD>
                    <ID>55</ID>
                    <COUNT>3</COUNT>
                </RECORD>
            </RECORDSET>
        </PACKAGE_KINDS>
    </PARAMETERS>
</REQUEST>

          
Edit

3.3. Функция MODIFY_ABONEMENTS "Редактировать абонемент"

Edit

Описание

          Редактировать абонемент
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>MODIFY_ABONEMENTS</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <ABONEMENTS>
            <RECORDSET>
                <RECORD>
                    <ID>4</ID>
                    <STARTDATE>42918</STARTDATE>
                    <EXPDATE>42928</EXPDATE>
                    <STATUS>1</STATUS>
                </RECORD>
                <RECORD>
                    <ID>55</ID>
                    <STARTDATE>42938</STARTDATE>
                    <EXPDATE>42958</EXPDATE>
                    <STATUS>2</STATUS>
                </RECORD>
            </RECORDSET>
        </ABONEMENTS>
    </PARAMETERS>
</REQUEST>

          
Edit

3.4. Функция DELETE_ABONEMENTS "Удалить абонементы"

Edit

Описание

          Удалить абонементы
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>DELETE_ABONEMENTS</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <ABONEMENTS>
            <RECORDSET>
                <RECORD>
                    <ID>4</ID>
                </RECORD>
                <RECORD>
                    <ID>55</ID>
                </RECORD>
            </RECORDSET>
        </ABONEMENTS>
    </PARAMETERS>
</REQUEST>

          
Edit

4. Группа функций "Заморозки"

Edit

4.1. Функция CREATEABONEMENTBLOCK "Создать заморозку абонемента"

Edit

Описание

          Создать заморозку абонемента
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CREATEABONEMENTBLOCK</FUNCNAME>
    <PARAMETERS>
        <ABONEMENT>100</ABONEMENT>
        <BEGINDATE>42909</BEGINDATE>
        <ENDDATE>42910</ENDDATE>
        <INFO/>
    </PARAMETERS>
</REQUEST>

          
Edit

4.2. Функция MODIFYABONEMENTBLOCK "Редактировать заморозку абонемента"

Edit

Описание

          Редактировать заморозку абонемента
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>MODIFYABONEMENTBLOCK</FUNCNAME>
    <PARAMETERS>
        <ID>10</ID>
        <BEGINDATE>42909</BEGINDATE>
        <ENDDATE>42910</ENDDATE>
        <INFO/>
    </PARAMETERS>
</REQUEST>

          
Edit

4.3. Функция DELETEABONEMENTBLOCK "Удалить заморозку абонемента"

Edit

Описание

          Удалить заморозку абонемента
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>DELETEABONEMENTBLOCK</FUNCNAME>
    <PARAMETERS>
        <ID>10</ID>
    </PARAMETERS>
</REQUEST>

          
Edit

5. Группа функций "Мероприятия"

Edit

5.1. Функция LIST_OF_DIARY "Список мероприятий"

Edit

Описание

          Список мероприятий
STAFF - ID специалиста
DATE0 - Дата начала выборки (integer)
DATE1 - Дата окончания выборки (integer)
DATETIME0 - Дата-время начала выборки (double)
DATETIME1 - Дата-время окончания выборки (double)
ROOMKIND - ID типа ресурса
ORDERBY - Сортировать по полям 
SHOW_DIARY_KIND0 - 1-показывать обычные мероприятия
SHOW_DIARY_KIND1 - 1-показывать групповые мероприятия (тренировки)
SHOW_DIARY_KIND2 - 1-показывать мероприятия в составе группы
IDROOM - ID ресурса
DIARY_KIND - ID типа тренировки
SHOW_GROUP_SERVICES - 0 - не отображать услуги в мероприятиях; 1 - отображать 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_DIARY</FUNCNAME>
    <PARAMETERS>
        <STAFF>0</STAFF>
        <DATE0>0</DATE0>
        <DATE1>0</DATE1>
        <DATETIME0>0</DATETIME0>
        <DATETIME1>0</DATETIME1>
        <ROOMKIND>0</ROOMKIND>
        <ORDERBY> 1,2 </ORDERBY>
        <SHOW_DIARY_KIND0>1</SHOW_DIARY_KIND0>
        <SHOW_DIARY_KIND1>1</SHOW_DIARY_KIND1>
        <SHOW_DIARY_KIND2>1</SHOW_DIARY_KIND2>
        <IDROOM>103</IDROOM>
        <DIARY_KIND>15</DIARY_KIND>
        <BUILDING>0</BUILDING>
        <SHOW_GROUP_SERVICES>1</SHOW_GROUP_SERVICES>
    </PARAMETERS>
</REQUEST>

          
Edit

5.2. Функция LIST_OF_GROUPDIARY "Список неначатых групповых мероприятий (тренировок)"

Edit

Описание

          Список неначатых групповых мероприятий (тренировок)
Параметры клиента задаём для того, чтобы показать присутствует ли клиент в тренировке или нет. 
CLIENT_ONLY - 1- выводятся только те записи, которые относятся к выбранному клиенту
SHOW_SIGN_UP_ALLOWED_ERROR - Показывать доступность ресурса в период начало-окончание мероприятия
STAFF - ID специалиста
DATE0 - Дата начала выборки (integer)
DATE1 - Дата окончания выборки (integer)
DATETIME0 - Дата-время начала выборки (double)
DATETIME1 - Дата-время окончания выборки (double)
ROOMKIND - ID типа ресурса
ORDERBY - Сортировать по полям 
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
IDROOM - ID ресурса
DIARY_KIND - ID типа тренировки
SHOW_GROUP_SERVICES - 0 - не отображать услуги в мероприятиях; 1 - отображать 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_GROUPDIARY</FUNCNAME>
    <PARAMETERS>
        <CLIENT_ONLY>0</CLIENT_ONLY>
        <SHOW_SIGN_UP_ALLOWED_ERROR>0</SHOW_SIGN_UP_ALLOWED_ERROR>
        <STAFF>0</STAFF>
        <DATE0>0</DATE0>
        <DATE1>0</DATE1>
        <DATETIME0>0</DATETIME0>
        <DATETIME1>0</DATETIME1>
        <ROOMKIND>0</ROOMKIND>
        <ORDERBY> 1,2 </ORDERBY>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <IDROOM>103</IDROOM>
        <DIARY_KIND>15</DIARY_KIND>
        <BUILDING>0</BUILDING>
        <SHOW_GROUP_SERVICES>1</SHOW_GROUP_SERVICES>
    </PARAMETERS>
</REQUEST>

          
Edit

5.3. Функция ADDDIARYTOGROUPS "Добавить клиента к занятию (тренировкам)"

Edit

Описание

          Добавить клиента к занятию (тренировкам)
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
ABONEMENT_PACKAGE - Идентификатор тарифа абонемента клиента
<DIARY>
 <RECORDSET>
  <RECORD>
   <ID/>
  </RECORD>
  <RECORD>
   <ID/>
  </RECORD>
 </RECORDSET>
</DIARY> - ID групповых мероприятий (тренировок), в которые добавляем тренировки клиента

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>ADDDIARYTOGROUPS</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <DIARY_GROUP>0</DIARY_GROUP>
        <SECRETKEY/>
        <ABONEMENT_PACKAGE>0</ABONEMENT_PACKAGE>
        <DIARY>
            <RECORDSET>
                <RECORD>
                    <ID>10</ID>
                </RECORD>
                <RECORD>
                    <ID>19</ID>
                </RECORD>
            </RECORDSET>
        </DIARY>
    </PARAMETERS>
</REQUEST>

          
Edit

5.4. Функция CANCEL_DIARY "Аннулировать мероприятие"

Edit

Описание

          Аннулировать мероприятие
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
<DIARY>
 <RECORDSET>
  <RECORD>
   <ID/>
  </RECORD>
  <RECORD>
   <ID/>
  </RECORD>
 </RECORDSET>
</DIARY> - ID групповых мероприятий (тренировок), в которые добавляем тренировки клиента

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CANCEL_DIARY</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <DIARY>
            <RECORDSET>
                <RECORD>
                    <ID>10</ID>
                </RECORD>
                <RECORD>
                    <ID>19</ID>
                </RECORD>
            </RECORDSET>
        </DIARY>
    </PARAMETERS>
</REQUEST>

          
Edit

5.5. Функция CREATE_DIARY_1 "Создать групповые мероприятия"

Edit

Описание

          Создать групповые мероприятия
NAME - Наименование varchar(50)
DATE0 - Дата-время начала
DATE1 - Дата-время окончания
IDROOM - ID ресурса
STAFF - ID специалиста
Q_PERSON - Количество клиентов
DIARY_KIND - ID типа тренировки

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CREATE_DIARY_1</FUNCNAME>
    <PARAMETERS>
        <DIARY>
            <RECORDSET>
                <RECORD>
                    <NAME>Name</NAME>
                    <DATE0>42908.698026088</DATE0>
                    <DATE1>42908.7396927546</DATE1>
                    <IDROOM>103</IDROOM>
                    <STAFF>14</STAFF>
                    <USERID>1</USERID>
                    <Q_PERSON>1</Q_PERSON>
                    <DIARY_KIND>15</DIARY_KIND>
                </RECORD>
            </RECORDSET>
        </DIARY>
    </PARAMETERS>
</REQUEST>

          
Edit

5.6. Функция ALLGUESTDIARYPAUSE "Приостановить тарификацию в ресурсе ROOMNUMBER 
(Если ROOMNUMBER пустой, то тарификация приостанавливается во всех ресурсах)
Возвращает: 
CLOSEDRESOURCECOUNT - количество закрытых ресурсов 
RESOLVEDDELAY - Разрешённая задержка (минут) на выход после приостановки тарификации
"

Edit

Описание

          Приостановить тарификацию в ресурсе ROOMNUMBER 
(Если ROOMNUMBER пустой, то тарификация приостанавливается во всех ресурсах)
 Возвращает: 
CLOSEDRESOURCECOUNT - количество закрытых ресурсов 
RESOLVEDDELAY - Разрешённая задержка (минут) на выход после приостановки тарификации
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>ALLGUESTDIARYPAUSE</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <ROOMNUMBER>BROOM</ROOMNUMBER>
    </PARAMETERS>
</REQUEST>

          
Edit

5.7. Функция CREATEONEDIARYABONEMENT "Создать абонемент и мероприятие для него"

Edit

Описание

          Создать абонемент и мероприятие для него
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
IDROOM - ID ресурса
DIARY_KIND - ID типа тренировки
DATE0 - Дата-время начала
DATE1 - Дата-время окончания
STAFF - ID специалиста
DIARY_NAME - Тема (название) мероприятия
PACKAGE_KIND - Идентификатор типа абонемента
PACKAGE - Идентификатор тарифа

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CREATEONEDIARYABONEMENT</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <IDROOM>103</IDROOM>
        <DIARY_KIND>15</DIARY_KIND>
        <DATE0>42909.5</DATE0>
        <DATE1>42909.5416666667</DATE1>
        <STAFF>0</STAFF>
        <DIARY_NAME>Тема (название) мероприятия</DIARY_NAME>
        <PACKAGE_KIND>0</PACKAGE_KIND>
        <PACKAGE>0</PACKAGE>
    </PARAMETERS>
</REQUEST>

          
Edit

5.8. Функция CREATEDIARYFORABONEMENT "Создать мероприятие по абонементу"

Edit

Описание

          Создать мероприятие по абонементу
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
IDROOM - ID ресурса
DIARY_KIND - ID типа тренировки
DATE0 - Дата-время начала
DATE1 - Дата-время окончания
STAFF - ID специалиста
DIARY_NAME - Тема (название) мероприятия
ABONEMENT_PACKAGE - Идентификатор тарифа абонемента клиента

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CREATEDIARYFORABONEMENT</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <IDROOM>103</IDROOM>
        <DIARY_KIND>15</DIARY_KIND>
        <DATE0>42909.5</DATE0>
        <DATE1>42909.5416666667</DATE1>
        <STAFF>0</STAFF>
        <DIARY_NAME>Тема (название) мероприятия</DIARY_NAME>
        <ABONEMENT_PACKAGE>0</ABONEMENT_PACKAGE>
    </PARAMETERS>
</REQUEST>

          
Edit

5.9. Функция CREATE_DIARY_GROUP "Создать группу для мероприятий"

Edit

Описание

          Создать группу для мероприятий
OWNER - ID владельца
INVOICE - ID счёта
CODE - Код varchar(6)
NAME - Наименование varchar(50)
SECRETKEY - Секретное слово varchar(50)

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CREATE_DIARY_GROUP</FUNCNAME>
    <PARAMETERS>
        <OWNER>2</OWNER>
        <INVOICE>0</INVOICE>
        <CODE/>
        <NAME/>
        <SECRETKEY/>
    </PARAMETERS>
</REQUEST>

          
Edit

5.10. Функция ADD_DIARY_TO_GROUP "Добавить мероприятие в группу"

Edit

Описание

          Добавить мероприятие в группу
DIARY - ID мероприятия
DIARY_GROUP - ID группы мероприятий
SECRETKEY - Секретное слово varchar(50)
CHANGE_DIARY_GROUP - Изменять (1), не изменять (0) группу у мероприятия, если группа уже определена

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>ADD_DIARY_TO_GROUP</FUNCNAME>
    <PARAMETERS>
        <DIARY>123</DIARY>
        <DIARY_GROUP>2</DIARY_GROUP>
        <SECRETKEY/>
        <CHANGE_DIARY_GROUP>1</CHANGE_DIARY_GROUP>
    </PARAMETERS>
</REQUEST>

          
Edit

5.11. Функция GETSECRETKEY_FOR_DIARY_GROUP "Получить SECRETKEY для группы"

Edit

Описание

          Получить SECRETKEY для группы
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
DIARY_GROUP - ID группы мероприятий

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GETSECRETKEY_FOR_DIARY_GROUP</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <DIARY_GROUP>2</DIARY_GROUP>
    </PARAMETERS>
</REQUEST>

          
Edit

5.12. Функция LIST_OF_INQUIRY_DIARY "Список мероприятий, входящих в состав группового"

Edit

Описание

          Список мероприятий, входящих в состав группового
STAFF - ID специалиста
DATE0 - Дата начала выборки (integer)
DATE1 - Дата окончания выборки (integer)
DATETIME0 - Дата-время начала выборки (double)
DATETIME1 - Дата-время окончания выборки (double)
ROOMKIND - ID типа ресурса
DIARY_INQUIRY - ID группового мероприятия
ORDERBY - Сортировать по полям 
IDROOM - ID ресурса
DIARY_KIND - ID типа тренировки
SHOW_GROUP_SERVICES - 0 - не отображать услуги в мероприятиях; 1 - отображать 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_INQUIRY_DIARY</FUNCNAME>
    <PARAMETERS>
        <STAFF>0</STAFF>
        <DATE0>0</DATE0>
        <DATE1>0</DATE1>
        <DATETIME0>0</DATETIME0>
        <DATETIME1>0</DATETIME1>
        <ROOMKIND>0</ROOMKIND>
        <DIARY_INQUIRY>0</DIARY_INQUIRY>
        <ORDERBY> 1,2 </ORDERBY>
        <IDROOM>103</IDROOM>
        <DIARY_KIND>15</DIARY_KIND>
        <BUILDING>0</BUILDING>
        <SHOW_GROUP_SERVICES>1</SHOW_GROUP_SERVICES>
    </PARAMETERS>
</REQUEST>

          
Edit

5.13. Функция DIARY_HASCOME "Отметка о прибытие на мероприятие"

Edit

Описание

          Отметка о прибытие на мероприятие
DIARY - ID мероприятия
DIARY_HASCOME - 1-отметить прибытие ; 0 - отметить, что клиент не пойдёт на тренировку 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>DIARY_HASCOME</FUNCNAME>
    <PARAMETERS>
        <DIARY>123</DIARY>
        <DIARY_HASCOME>1</DIARY_HASCOME>
    </PARAMETERS>
</REQUEST>

          
Edit

5.14. Функция GET_GROUP_OF_THE_DIARY "Получить состав группы мероприятий"

Edit

Описание

          Получить состав группы мероприятий
DIARY_GROUP - ID группы мероприятий

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GET_GROUP_OF_THE_DIARY</FUNCNAME>
    <PARAMETERS>
        <DIARY_GROUP>2</DIARY_GROUP>
    </PARAMETERS>
</REQUEST>

          
Edit

5.15. Функция TIME_LEFT_TO_EXIT_FROM_ROOM_AFTER_SUSPENSION "Осталось времени для выхода после приостановки тарификации"

Edit

Описание

          Осталось времени для выхода после приостановки тарификации
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>TIME_LEFT_TO_EXIT_FROM_ROOM_AFTER_SUSPENSION</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <IDROOM>1</IDROOM>
    </PARAMETERS>
</REQUEST>

          
Edit

5.16. Функция DIARY_PROCESS "Действие с мероприятиями"

Edit

Описание

          Действие с мероприятиями
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
NAME - Наименование varchar(50)
DATE0 - Дата-время начала
DATE1 - Дата-время окончания
IDROOM - ID ресурса
STAFF - ID специалиста
Q_PERSON - Количество клиентов
DIARY_KIND - ID типа тренировки
ABONEMENT_PACKAGE - Идентификатор тарифа абонемента клиента

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>DIARY_PROCESS</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <DIARY>
            <RECORDSET>
                <RECORD>
                    <NAME>Name</NAME>
                    <DATE0>42908.69802625</DATE0>
                    <DATE1>42908.7396929167</DATE1>
                    <IDROOM>103</IDROOM>
                    <STAFF>14</STAFF>
                    <USERID>1</USERID>
                    <Q_PERSON>1</Q_PERSON>
                    <DIARY_KIND>15</DIARY_KIND>
                    <DIARY_GROUP>0</DIARY_GROUP>
                    <ABONEMENT_PACKAGE>0</ABONEMENT_PACKAGE>
                    <ID>0</ID>
                    <KIND>0</KIND>
                    <INQUIRY>0</INQUIRY>
                    <STATUS>0</STATUS>
                    <INFO>0</INFO>
                    <CLEAR_OLD_GROUP_SERVICES>0</CLEAR_OLD_GROUP_SERVICES>
                    <GROUP_SERVICES>
                        <RECORDSET>
                            <RECORD>
                                <ID>0</ID>
                                <OPERATION>72</OPERATION>
                                <COST>9000</COST>
                                <QUANT>1</QUANT>
                                <DISCOUNTCOST>-1000</DISCOUNTCOST>
                            </RECORD>
                        </RECORDSET>
                    </GROUP_SERVICES>
                </RECORD>
            </RECORDSET>
        </DIARY>
    </PARAMETERS>
</REQUEST>

          
Edit

6. Группа функций "Идентификаторы"

Edit

6.1. Функция GUEST_IDENTIFIERS "Управление идентификаторами клиента"

Edit

Описание

          Управление идентификаторами клиента
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
ACTION - ATTACH-прикрепить идентификатор; DETACH-открепить идентификатор;

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GUEST_IDENTIFIERS</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <ACTION>ATTACH</ACTION>
        <NEW_CARDNO>1234567</NEW_CARDNO>
        <NEW_CARDTYPE>2</NEW_CARDTYPE>
        <NEW_TRACK/>
    </PARAMETERS>
</REQUEST>

          
Edit

7. Группа функций "Доступ"

Edit

7.1. Функция AVAILABLEPACKAGESFORGUEST "Доступные тарифы для клиента"

Edit

Описание

          Доступные тарифы для клиента
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
DATE0 - Дата-время начала
DATE1 - Дата-время окончания
IDROOM - ID ресурса
USEFORINTERNET - 1-только доступные для интернет-бронирования; 0- абонементы всех типов 
CHECKONLYEXIST - 1-только есть или нет; 0-получить список
SHOW_FREEPLACES - Показывать количество свободных мест

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>AVAILABLEPACKAGESFORGUEST</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <DATE0>42909.5</DATE0>
        <DATE1>42909.5416666667</DATE1>
        <IDROOM>103</IDROOM>
        <USEFORINTERNET>0</USEFORINTERNET>
        <USECHECKADVANCEPAYMENT>0</USECHECKADVANCEPAYMENT>
        <CHECKONLYEXIST>0</CHECKONLYEXIST>
        <SHOW_FREEPLACES>0</SHOW_FREEPLACES>
    </PARAMETERS>
</REQUEST>

          
Edit

7.2. Функция AVAILABLEPACKAGESCHECK "Проверка существования доступных тарифов"

Edit

Описание

          Проверка существования доступных тарифов
IDROOM - ID ресурса
USEFORINTERNET - 1-только доступные для интернет-бронирования; 0- абонементы всех типов 
DATE0 - Дата-время начала
DATE1 - Дата-время окончания

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>AVAILABLEPACKAGESCHECK</FUNCNAME>
    <PARAMETERS>
        <IDROOM>103</IDROOM>
        <USEFORINTERNET>0</USEFORINTERNET>
        <USECHECKADVANCEPAYMENT>0</USECHECKADVANCEPAYMENT>
        <DATES>
            <RECORDSET>
                <RECORD>
                    <DATE0>42909.5</DATE0>
                    <DATE1>42909.5416666667</DATE1>
                </RECORD>
                <RECORD>
                    <DATE0>42909.5416666667</DATE0>
                    <DATE1>42909.5833333333</DATE1>
                </RECORD>
            </RECORDSET>
        </DATES>
    </PARAMETERS>
</REQUEST>

          
Edit

7.3. Функция CHECK_AVAILABLE_BY_SCHEDULER "Проверить доступность по расписанию"

Edit

Описание

          Проверить доступность по расписанию
DATE0 - Дата-время начала
DATE1 - Дата-время окончания
ID - Идентификатор
MODE -  В зависимости от этого параметра по разному анализируется ID: 
 Если MODE - это 
 0 , то ID - это Идентификатор Типа Абонемента (PACKAGE_KINDS.ID) 
 1 , то ID - это Идентификатор Сотрудника (STAFF.ID) 
 2 , то ID - это Идентификатор услуги, входящей в тариф (PACKAGE_CONTENTS.ID) 
 3 , то ID - это Идентификатор скидки (DISCOUNTS.ID) 
 4 , то ID - это Идентификатор специальности (STAFFPOST.ID) 
IDROOM - ID ресурса
WITHOUTDIARYBYTIME -  0 - не контролировать наличие мероприятий; 1 - контролировать наличие мероприятий (Только для специалистов)

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CHECK_AVAILABLE_BY_SCHEDULER</FUNCNAME>
    <PARAMETERS>
        <DATE0>42909.5</DATE0>
        <DATE1>42909.5416666667</DATE1>
        <ID>0</ID>
        <MODE>0</MODE>
        <IDROOM>103</IDROOM>
        <WITHOUTDIARYBYTIME>0</WITHOUTDIARYBYTIME>
        <DATES>
            <RECORDSET>
                <RECORD>
                    <DATE0>42909.5</DATE0>
                    <DATE1>42909.5416666667</DATE1>
                    <ID>0</ID>
                    <MODE>736</MODE>
                    <IDROOM>0</IDROOM>
                    <WITHOUTDIARYBYTIME>0</WITHOUTDIARYBYTIME>
                </RECORD>
                <RECORD>
                    <DATE0>42909.5416666667</DATE0>
                    <DATE1>42909.5833333333</DATE1>
                    <ID>1827</ID>
                    <MODE>0</MODE>
                    <IDROOM>0</IDROOM>
                    <WITHOUTDIARYBYTIME>1</WITHOUTDIARYBYTIME>
                </RECORD>
            </RECORDSET>
        </DATES>
    </PARAMETERS>
</REQUEST>

          
Edit

7.4. Функция CHECK_ACCESS "Проверить возможность доступа (требуется GKHOSTCONNECT)"

Edit

Описание

          Проверить возможность доступа (требуется GKHOSTCONNECT)
TRACK - Дорожка с карты
DEVICE - DEVICE (параметр из GkhostConnect) 
RELAY - RELAY (параметр из GkhostConnect)

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CHECK_ACCESS</FUNCNAME>
    <PARAMETERS>
        <TRACK>770=123456789</TRACK>
        <DEVICE>32</DEVICE>
        <RELAY>4</RELAY>
        <KIND>0</KIND>
    </PARAMETERS>
</REQUEST>

          
Edit

7.5. Функция GUEST_AVAILABLE_ROOMS_NOW "Доступные сейчас ресурсы для клиента"

Edit

Описание

          Доступные сейчас ресурсы для клиента
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
SHOW_DEVICE_STATUS - 0 - не отображать статус устройства; 1 - отображать статус устройства (Рекомендуется указывать IDROOM)

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GUEST_AVAILABLE_ROOMS_NOW</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <BUILDING>1</BUILDING>
        <ROOMKIND>20</ROOMKIND>
        <FLOOR>2</FLOOR>
        <IDROOM>0</IDROOM>
        <SHOW_DEVICE_STATUS>0</SHOW_DEVICE_STATUS>
    </PARAMETERS>
</REQUEST>

          
Edit

7.6. Функция GUEST_AVAILABLE_PACKAGES_NOW "Доступные сейчас тарифы для клиента"

Edit

Описание

          Доступные сейчас тарифы для клиента
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GUEST_AVAILABLE_PACKAGES_NOW</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <IDROOM>0</IDROOM>
    </PARAMETERS>
</REQUEST>

          
Edit

8. Группа функций "ПДС"

Edit

8.1. Функция PDSCARDINFO "Получить информацию о дисконтной карте из ПДС"

Edit

Описание

          Получить информацию о дисконтной карте из ПДС
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>PDSCARDINFO</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
    </PARAMETERS>
</REQUEST>

          
Edit

8.2. Функция PDS_CREATE_TRANSACTION "Зарегистрировать ПДС-транзакцию"

Edit

Описание

          Зарегистрировать ПДС-транзакцию
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту
KIND - Тип транзакции (Byte) 
 0 - платеж (снятие денег с карты) 
 1 - скидка 
 2 - бонус (начисление денег на карту) 
 3 - потраты гостя (сколько заплатил своих денег) 
 11 - игровые деньги 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>PDS_CREATE_TRANSACTION</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <KIND>2</KIND>
        <COST>1000</COST>
        <USELOCALBONUS>0</USELOCALBONUS>
        <CHECKNO>0</CHECKNO>
        <UNITNO>0</UNITNO>
        <REF>0</REF>
        <REFKIND>0</REFKIND>
    </PARAMETERS>
</REQUEST>

          
Edit

9. Группа функций "WEB"

Edit

9.1. Функция AUTHORIZATION "Авторизация клиента"

Edit

Описание

          Авторизация клиента
LOGIN - Логин
PASSWRD - Пароль

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>AUTHORIZATION</FUNCNAME>
    <PARAMETERS>
        <LOGIN/>
        <PASSWRD/>
    </PARAMETERS>
</REQUEST>

          
Edit

9.2. Функция RESTOREPASSWORD "Восстановление пароля"

Edit

Описание

          Восстановление пароля
EMAIL - ivan@petro.ivanov

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>RESTOREPASSWORD</FUNCNAME>
    <PARAMETERS>
        <EMAIL>client@y.client</EMAIL>
    </PARAMETERS>
</REQUEST>

          
Edit

10. Группа функций "Сотрудники"

Edit

10.1. Функция LIST_OF_STAFF_POST "Список должностей"

Edit

Описание

          Список должностей
STAFF - ID специалиста
DATE0 - Дата начала выборки (integer)
DATE1 - Дата окончания выборки (integer)
DATETIME0 - Дата-время начала выборки (double)
DATETIME1 - Дата-время окончания выборки (double)
ROOMKIND - ID типа ресурса
SHOW_STAFF - 1-показывать специалистов
SHOW_STAFF_DIARY - 1-показывать мероприятия, которые проводит специалист
STAFF_POST_MODIFICATOR -  0 - Все
 1 - Ответственные по абонементам
 2 - Проводят мероприятия
 3 - Оказывают услуги

SHOW_DIARY_KIND0 - 1-показывать обычные мероприятия
SHOW_DIARY_KIND1 - 1-показывать групповые мероприятия (тренировки)
SHOW_DIARY_KIND2 - 1-показывать мероприятия в составе группы
IDROOM - ID ресурса
DIARY_KIND - ID типа тренировки
SHOW_GROUP_SERVICES - 0 - не отображать услуги в мероприятиях; 1 - отображать 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_STAFF_POST</FUNCNAME>
    <PARAMETERS>
        <STAFF>0</STAFF>
        <DATE0>0</DATE0>
        <DATE1>0</DATE1>
        <DATETIME0>0</DATETIME0>
        <DATETIME1>0</DATETIME1>
        <ROOMKIND>0</ROOMKIND>
        <SHOW_STAFF>1</SHOW_STAFF>
        <SHOW_STAFF_CLASS>1</SHOW_STAFF_CLASS>
        <SHOW_STAFF_DIARY>1</SHOW_STAFF_DIARY>
        <STAFF_POST_MODIFICATOR>0</STAFF_POST_MODIFICATOR>
        <SHOW_DIARY_KIND0>1</SHOW_DIARY_KIND0>
        <SHOW_DIARY_KIND1>1</SHOW_DIARY_KIND1>
        <SHOW_DIARY_KIND2>1</SHOW_DIARY_KIND2>
        <IDROOM>103</IDROOM>
        <DIARY_KIND>15</DIARY_KIND>
        <BUILDING>0</BUILDING>
        <SHOW_GROUP_SERVICES>1</SHOW_GROUP_SERVICES>
    </PARAMETERS>
</REQUEST>

          
Edit

10.2. Функция LIST_OF_STAFF "Список специалистов"

Edit

Описание

          Список специалистов
STAFF - ID специалиста
DATE0 - Дата начала выборки (integer)
DATE1 - Дата окончания выборки (integer)
DATETIME0 - Дата-время начала выборки (double)
DATETIME1 - Дата-время окончания выборки (double)
ROOMKIND - ID типа ресурса
GUEST - ID клиента
STAFFBUILDING - ID корпуса, к ресурсам которого сотрудник имеет доступ
SHOW_STAFF_DIARY - 1-показывать мероприятия, которые проводит специалист
STAFF_POST_MODIFICATOR -  0 - Все
 1 - Ответственные по абонементам
 2 - Проводят мероприятия
 3 - Оказывают услуги

SHOW_DIARY_KIND0 - 1-показывать обычные мероприятия
SHOW_DIARY_KIND1 - 1-показывать групповые мероприятия (тренировки)
SHOW_DIARY_KIND2 - 1-показывать мероприятия в составе группы
IDROOM - ID ресурса
DIARY_KIND - ID типа тренировки
SHOW_GROUP_SERVICES - 0 - не отображать услуги в мероприятиях; 1 - отображать 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_STAFF</FUNCNAME>
    <PARAMETERS>
        <STAFF>0</STAFF>
        <DATE0>0</DATE0>
        <DATE1>0</DATE1>
        <DATETIME0>0</DATETIME0>
        <DATETIME1>0</DATETIME1>
        <ROOMKIND>0</ROOMKIND>
        <GUEST>0</GUEST>
        <STAFFBUILDING>0</STAFFBUILDING>
        <SHOW_STAFF_DIARY>1</SHOW_STAFF_DIARY>
        <STAFF_POST_MODIFICATOR>0</STAFF_POST_MODIFICATOR>
        <SHOW_DIARY_KIND0>1</SHOW_DIARY_KIND0>
        <SHOW_DIARY_KIND1>1</SHOW_DIARY_KIND1>
        <SHOW_DIARY_KIND2>1</SHOW_DIARY_KIND2>
        <IDROOM>103</IDROOM>
        <DIARY_KIND>15</DIARY_KIND>
        <BUILDING>0</BUILDING>
        <SHOW_GROUP_SERVICES>1</SHOW_GROUP_SERVICES>
    </PARAMETERS>
</REQUEST>

          
Edit

10.3. Функция GETREADYSTAFFFORROOM "Получить список сотрудников, имеющих доступ к ресурсу"

Edit

Описание

          Получить список сотрудников, имеющих доступ к ресурсу
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GETREADYSTAFFFORROOM</FUNCNAME>
    <PARAMETERS>
        <DATES>
            <RECORDSET>
                <RECORD>
                    <DATE0>42909.5</DATE0>
                    <DATE1>42909.5416666667</DATE1>
                    <IDROOM>3</IDROOM>
                </RECORD>
                <RECORD>
                    <DATE0>42909.5416666667</DATE0>
                    <DATE1>42909.5833333333</DATE1>
                    <IDROOM>4</IDROOM>
                </RECORD>
            </RECORDSET>
        </DATES>
    </PARAMETERS>
</REQUEST>

          
Edit

10.4. Функция ADDGUESTTOSTAFF "Сделать клиента специалистом"

Edit

Описание

          Сделать клиента специалистом
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>ADDGUESTTOSTAFF</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <STAFF_CLASS>15</STAFF_CLASS>
    </PARAMETERS>
</REQUEST>

          
Edit

10.5. Функция DELGUESTFROMSTAFF "Удалить клиента из списка специалистов"

Edit

Описание

          Удалить клиента из списка специалистов
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>DELGUESTFROMSTAFF</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
    </PARAMETERS>
</REQUEST>

          
Edit

11. Группа функций "Пользователи"

Edit

11.1. Функция CHECKUSERFUNCTION "Проверить права пользователя"

Edit

Описание

          Проверить права пользователя
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CHECKUSERFUNCTION</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <FUNCNAME/>
    </PARAMETERS>
</REQUEST>

          
Edit

11.2. Функция CHECKUSER "Проверка пользователя"

Edit

Описание

          Проверка пользователя
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CHECKUSER</FUNCNAME>
    <PARAMETERS>
        <LOGIN/>
        <PASSWRD/>
        <HOTEL>1</HOTEL>
    </PARAMETERS>
</REQUEST>

          
Edit

12. Группа функций "Свойства объектов"

Edit

12.1. Функция OBJ_PROP_VALUES "Действие со свойствами объектов"

Edit

Описание

          Действие со свойствами объектов

   ACTION: GET - получить свойства; SET - установить свойства 
   TABLENAME - тип объекта (для клиента TABLENAME=GUESTS) 
   REF - тип объекта (для клиента REF=GUESTS.ID) 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>OBJ_PROP_VALUES</FUNCNAME>
    <PARAMETERS>
        <ACTION>SET</ACTION>
        <TABLENAME>GUESTS</TABLENAME>
        <REF>GUESTS</REF>
        <OBJ_PROP_VALUES>
            <RECORDSET>
                <RECORD>
                    <CODE>poCod1</CODE>
                    <NEWVALUE>NewValueCOde1</NEWVALUE>
                    <NEWVALUE_TYPE>0</NEWVALUE_TYPE>
                    <UNCATEGORIZED_VALUE>UNCATEGORIZED_VALUE1</UNCATEGORIZED_VALUE>
                </RECORD>
                <RECORD>
                    <CODE>poCod2</CODE>
                    <NEWVALUE>NewValueCOde2</NEWVALUE>
                    <NEWVALUE_TYPE>0</NEWVALUE_TYPE>
                    <UNCATEGORIZED_VALUE>UNCATEGORIZED_VALUE2</UNCATEGORIZED_VALUE>
                </RECORD>
            </RECORDSET>
        </OBJ_PROP_VALUES>
    </PARAMETERS>
</REQUEST>

          
Edit

13. Группа функций "Гостиничный интерфейс"

Edit

13.1. Функция HOTELINTERFACE_CHECKROOMINFO "Получить список проживающих в гостиничном номере"

Edit

Описание

          Получить список проживающих в гостиничном номере
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>HOTELINTERFACE_CHECKROOMINFO</FUNCNAME>
    <PARAMETERS>
        <UNITNUM>0</UNITNUM>
        <TRANSACTIONID>0</TRANSACTIONID>
        <COST>100.5</COST>
        <ROOM>113</ROOM>
    </PARAMETERS>
</REQUEST>

          
Edit

13.2. Функция HOTELINTERFACE_INVOKETRANSACTION "Оплата через гостиничный интерфейс"

Edit

Описание

          Оплата через гостиничный интерфейс
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>HOTELINTERFACE_INVOKETRANSACTION</FUNCNAME>
    <PARAMETERS>
        <UNITNUM>0</UNITNUM>
        <TRANSACTIONID>0</TRANSACTIONID>
        <COST>100.5</COST>
        <IDENT>0</IDENT>
        <CHECKNUM>0</CHECKNUM>
        <WAITERNUM>0</WAITERNUM>
        <KASSIRNUM>0</KASSIRNUM>
        <GUESTS>0</GUESTS>
        <CHECKCONTENT/>
    </PARAMETERS>
</REQUEST>

          
Edit

13.3. Функция HOTELINTERFACE_DELETETRANSACTION "Отменить оплату через гостиничный интерфейс"

Edit

Описание

          Отменить оплату через гостиничный интерфейс
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>HOTELINTERFACE_DELETETRANSACTION</FUNCNAME>
    <PARAMETERS>
        <UNITNUM>0</UNITNUM>
        <TRANSACTIONID>0</TRANSACTIONID>
        <COST>100.5</COST>
        <FOLIO>0</FOLIO>
        <CHECKNUM>0</CHECKNUM>
    </PARAMETERS>
</REQUEST>

          
Edit

14. Группа функций "Устройства"

Edit

14.1. Функция GETEVENT "Запрос события"

Edit

Описание

          Запрос события
EVENTTYPE - Тип запрашиваемого события:
   CARDREADER - получить трек с картридера
          Возвращает трек в ноде LASTTRACK
   MONEYACCEPTOR - получить события от купюроприёмника
          Возвращает 
               FIRSTBANKNOTE - полученная купюра
               BANKNOTECOUNT - количество купюр
               MONEYACCEPTOR_ISACTIVE - состояние купюроприёмника
               SUMBANKNOTEVALUE - сумма всех полученных купюр
               ODDMONEY - сумма выданной сдачи
               FAILEDTOGIVEODDMONEY - сумма НЕвыданной сдачи
               ISFINALEXACT - 0 - купюра; 1 - уведомление об окончании MONEYACCEPTOR_STARTEXACT

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GETEVENT</FUNCNAME>
    <PARAMETERS>
        <EVENTTYPE>CARDREADER</EVENTTYPE>
    </PARAMETERS>
</REQUEST>

          
Edit

14.2. Функция SETEVENT "Создать событие"

Edit

Описание

          Создать событие
EVENTTYPE - Тип запрашиваемого события:
   CARDREADER - установить трек
          Возвращает SUCCESS = 1  при успехе
          Возвращает SUCCESS = 0  при неуспехе

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>SETEVENT</FUNCNAME>
    <PARAMETERS>
        <EVENTTYPE>CARDREADER</EVENTTYPE>
        <LASTTRACK>;12345678?</LASTTRACK>
    </PARAMETERS>
</REQUEST>

          
Edit

14.3. Функция SOLARY_ON "Перевести солярий в режим ожидания клиента"

Edit

Описание

          Перевести солярий в режим ожидания клиента
GUEST - ID гостя (integer)
CARDNO - номер карты (integer)
CARDTYPE - тип карты (integer)
TRACK - дорожка с карты (varchar(100))
LOGIN - Логин клиента (varchar(50))
PASSWRD - Пароль клиента (varchar(10))
Алгоритм поиска гостя следующий:
Для поиска клиента используются параметры по порядку: GUEST, FOLIO, TRACK, CARDNO-CARDTYPE, LOGIN-PASSWRD, EMAIL-PASSWRD, GUEST_WITH_CHECKSUM 
Если клиент найден в списке клиентов, то поиск прекращается
Нижеприведенные функции применяются к найденному клиенту

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>SOLARY_ON</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <CARDNO>0</CARDNO>
        <CARDTYPE>0</CARDTYPE>
        <TRACK>770=12345678=987405</TRACK>
        <LOGIN/>
        <PASSWRD/>
        <ABONEMENT_PACKAGE>2</ABONEMENT_PACKAGE>
        <IDROOM>1</IDROOM>
    </PARAMETERS>
</REQUEST>

          
Edit

15. Группа функций "Купюроприёмник"

Edit

15.1. Функция MONEYACCEPTOR "Работа с купюроприёмником"

Edit

Описание

          Работа с купюроприёмником
MONEYACCEPTOR_ACTION - Тип действия с купюроприёмником:
   MONEYACCEPTOR_START - перевести в режим ожидания банкнот
   MONEYACCEPTOR_STOP - отключить режим ожидания банкнот
   MONEYACCEPTOR_STARTEXACT - перевести в режим ожидания банкнот на сумму REQUIREDAMOUNT
 Возвращает  MONEYACCEPTOR_ISACTIVE - состояние купюроприёмника
   MONEYACCEPTOR_BANKNOTESAVAILABLE - запрос наличия купюр в диспенсере (для сдачи)

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>MONEYACCEPTOR</FUNCNAME>
    <PARAMETERS>
        <MONEYACCEPTOR_ACTION>MONEYACCEPTOR_START</MONEYACCEPTOR_ACTION>
    </PARAMETERS>
</REQUEST>

          
Edit

16. Группа функций "Диспенсер карт"

Edit

16.1. Функция CARDDISPENSER "Диспенсер карт"

Edit

Описание

Диспенсер карт
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CARDDISPENSER</FUNCNAME>
    <PARAMETERS>
        <ACTION>ISSUE_CARD</ACTION>
    </PARAMETERS>
</REQUEST>

          
Edit

17. Группа функций "Киоск"

Edit

17.1. Функция POS "Работа с фискальным регистратором"

Edit

Описание

          Работа с фискальным регистратором
ACTION - Тип действия:
   ZREPORT - Снять Z-отчет (смена автоматически открывается с тем же кассиром)
   XREPORT - Снять X-отчет 
   XASZREPORT - Снять X-отчет и перевести смену (нефискальная передача смены) 
   CHANGE_CASSIER - Сменить кассира (открыть смену)
   CASHIN - Внесение в кассу
   CASHOUT - Изъятие из кассы
   COST - Денежная сумма

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>POS</FUNCNAME>
    <PARAMETERS>
        <ACTION>ZREPORT</ACTION>
    </PARAMETERS>
</REQUEST>

          
Edit

17.2. Функция POS_INFO "Информация о кассе"

Edit

Описание

          Информация о кассе
POS - ID киоска. 0 - текущий киоск
DETAILMODE -  Тип детализации. 
 0 - без детализации
 1 - детализация до категории операции

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>POS_INFO</FUNCNAME>
    <PARAMETERS>
        <POS>0</POS>
        <DETAILMODE>1</DETAILMODE>
    </PARAMETERS>
</REQUEST>

          
Edit

18. Группа функций "Банковские карты"

Edit

18.1. Функция CREDIT_CARD "Терминал банковских карт"

Edit

Описание

          Терминал банковских карт
ACTION - Тип действия:
   CC_CHANGESHIFT - Закрыть смену

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CREDIT_CARD</FUNCNAME>
    <PARAMETERS>
        <ACTION>CC_CHANGESHIFT</ACTION>
    </PARAMETERS>
</REQUEST>

          
Edit

19. Группа функций "Справочники"

Edit

19.1. Функция LIST_OF_PAYMENTS "Получить список платежей"

Edit

Описание

          Получить список платежей
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_PAYMENTS</FUNCNAME>
    <PARAMETERS/>
</REQUEST>

          
Edit

19.2. Функция LIST_OF_SERVICES "Получить список услуг"

Edit

Описание

          Получить список услуг
STAFF - ID специалиста

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_SERVICES</FUNCNAME>
    <PARAMETERS>
        <STAFF>0</STAFF>
    </PARAMETERS>
</REQUEST>

          
Edit

19.3. Функция LIST_OF_PACKAGE_KINDS "Получить список типов абонементов"

Edit

Описание

          Получить список типов абонементов
GUEST - ID клиента
DATE0 - Дата-Время для момента расчёта (double)
BUILDING - ID корпуса
CHECKDISCOUNT - 1-учесть скидку; 0-не учитывать скидку
USEFORINTERNET - 1-только доступные для интернет-бронирования; 0- абонементы всех типов 
SHOWISNOTUSED - 1-показывать временно неиспользуемые; 0- не показывать временно неиспользуемые 
SHOW_PACKAGES - 1-показывать тарифы
SHOW_PACKAGE_KINDS_SCHEDULE - 1-показывать расписание типа абонемента
SHOW_PACKAGE_CONTENTS - 1-показывать услуги тарифа
SHOW_PACKAGE_CONTENTS_SCHEDULE - 1-показывать детализацию стоимости от расписания
ORDERBY - Сортировать по полям 

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_PACKAGE_KINDS</FUNCNAME>
    <PARAMETERS>
        <GUEST>1003</GUEST>
        <DATE0>0</DATE0>
        <BUILDING>0</BUILDING>
        <CHECKDISCOUNT>1</CHECKDISCOUNT>
        <USEFORINTERNET>0</USEFORINTERNET>
        <SHOWISNOTUSED>0</SHOWISNOTUSED>
        <SHOW_PACKAGES>1</SHOW_PACKAGES>
        <SHOW_PACKAGE_KINDS_SCHEDULE>1</SHOW_PACKAGE_KINDS_SCHEDULE>
        <SHOW_PACKAGE_CONTENTS>1</SHOW_PACKAGE_CONTENTS>
        <SHOW_PACKAGE_CONTENTS_SCHEDULE>1</SHOW_PACKAGE_CONTENTS_SCHEDULE>
        <EXTRA_OUTPUT_FIELDS> pk.ISMEMBERSHIP </EXTRA_OUTPUT_FIELDS>
        <ORDERBY> 1,2 </ORDERBY>
    </PARAMETERS>
</REQUEST>

          
Edit

19.4. Функция LIST_OF_ABONEMENTS_CATEG "Список категорий абонементов"

Edit

Описание

          Список категорий абонементов
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_ABONEMENTS_CATEG</FUNCNAME>
    <PARAMETERS/>
</REQUEST>

          
Edit

19.5. Функция LIST_OF_RESOURCES "Список ресурсов"

Edit

Описание

          Список ресурсов
KIND - Тип

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_RESOURCES</FUNCNAME>
    <PARAMETERS>
        <KIND>0</KIND>
        <BUILDING>0</BUILDING>
    </PARAMETERS>
</REQUEST>

          
Edit

19.6. Функция LIST_OF_HOTELS "Список комплексов"

Edit

Описание

          Список комплексов
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_HOTELS</FUNCNAME>
    <PARAMETERS/>
</REQUEST>

          
Edit

19.7. Функция SETTINGS_EDITOR "Редактор настроек"

Edit

Описание

          Редактор настроек
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>SETTINGS_EDITOR</FUNCNAME>
    <PARAMETERS>
        <ABONEMENT_LOAD/>
    </PARAMETERS>
</REQUEST>

          
Edit

19.8. Функция LIST_OF_DIARY_KINDS "Типы событий"

Edit

Описание

          Типы событий
IDROOM - ID ресурса

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>LIST_OF_DIARY_KINDS</FUNCNAME>
    <PARAMETERS>
        <IDROOM>0</IDROOM>
    </PARAMETERS>
</REQUEST>

          
Edit

20. Группа функций "Служебные"

Edit

20.1. Функция MDCHECKSUM "Контрольная сумма"

Edit

Описание

          Контрольная сумма
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>MDCHECKSUM</FUNCNAME>
    <PARAMETERS/>
</REQUEST>

          
Edit

20.2. Функция PRINT_REPORT "Печать отчета"

Edit

 

Описание

          Печать отчета
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>PRINT_REPORT</FUNCNAME>
    <PARAMETERS>
        <REPORT_NAME>ticket</REPORT_NAME>
        <PARAMSTR>&amp;guest=1003&amp;invoice=128&amp;someparam=lalala</PARAMSTR>
    </PARAMETERS>
</REQUEST>

          
Edit

20.3. Функция SENDSMS "Отправка SMS"

Edit

Описание

          Отправка SMS
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>SENDSMS</FUNCNAME>
    <PARAMETERS>
        <PHONES>+74959214198</PHONES>
        <TEXT>Hello</TEXT>
        <EXTRAPARAM/>
    </PARAMETERS>
</REQUEST>

          
Edit

20.4. Функция SENDMAIL "Отправить E-Mail"

Edit

Описание

          Отправить E-Mail
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>SENDMAIL</FUNCNAME>
    <PARAMETERS>
        <MAIL_TO>e@mail.ru</MAIL_TO>
        <SUBJECT>Subject</SUBJECT>
        <BODY>Text</BODY>
        <USE_SSL>1</USE_SSL>
    </PARAMETERS>
</REQUEST>

          
Edit

20.5. Функция CHECKLICENCE "Сервер блокировок"

Edit

Описание

          Сервер блокировок
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>CHECKLICENCE</FUNCNAME>
    <PARAMETERS>
        <RECORDS>
            <RECORDSET>
                <RECORD>
                    <ACTION>LOCK</ACTION>
                    <REF>1001</REF>
                    <SCHEMA>2</SCHEMA>
                </RECORD>
                <RECORD>
                    <ACTION>UNLOCK</ACTION>
                    <LOCKID>1003</LOCKID>
                </RECORD>
            </RECORDSET>
        </RECORDS>
    </PARAMETERS>
</REQUEST>

          
Edit

20.6. Функция SQLOPEN "Исполнить sql-запрос"

Edit

Описание

          Исполнить sql-запрос
Это технологическая функция. Используется только представителями UCS

          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>SQLOPEN</FUNCNAME>
    <PARAMETERS>
        <SQLTEXT>select * from dummy</SQLTEXT>
    </PARAMETERS>
</REQUEST>

          
Edit

20.7. Функция GETVERSION "Получить версию программы"

Edit

Описание

          Получить версию программы
          
Edit

Пример вызова

          <?xml version="1.0" encoding="windows-1251"?>
<REQUEST>
    <FUNCNAME>GETVERSION</FUNCNAME>
    <PARAMETERS/>
</REQUEST>

          

Абонемент Инфокиоск. Киоск самообслуживания.

Презентация данного модуля находится тут ftp://ftpint.ucs.ru/Abonement/InfoKiosk/

Киоск пополнения CRM

 

 

 

 

 

Киоск пополнения CRM.

 
 

1. Задача

 
Программно-аппаратный комплекс "Киоск пополнения CRM" служит для осуществления зачисления денежных средств на баланс системы лояльности с выдачей клиенту фискального чека без зайдействия ресурсов кассира. С более подробным описанием можно ознакомиться в презентации на FTP "Киоск пополнения CRM" представляет собой комплекс из следующих составляющих:
  • Терминал самообслуживания, конфигурация может варьироваться Ниже приведен пример киоска, на котором производилось тестирование.
  • Серверная часть ПО АБонемент: FireBird сервер, сервер блокировок+ключ, БД ПО Абонемент. Если используется один терминал и не используется само ПО Абонемент, то можно развернуть непосредственно на киоске. Иначе разворачивается на выделенном сервере
  • Интерфейс для работы внешних приложений с БД ПО Абонемент (connecter)
  • Веб-сервер (denwer)
  • PHP скрипты web-модуля "инфокиоск".
 
 

2. Схема взаимодействия

 
Схема взаимодействия (структурно показана на Рис. 1)следующая: веб модуль общается с ПО Connecter и постоянно его опрашивает на вопрос прикладывания карты. В случае, если connecter сообщает, что карта была приложена, веб-модуль производит поиск гостя (алгоритм поиска представлен на Рис. 2). Далее гость выбирает способ оплаты для пополнения кошелька. Connecter активирует соответствующее оборудование (пин-пад, купюроприемник, etc.). После успешной оплаты печатается фискальный чек, в БД ПО Абонемент клиенту зачисляется платеж и начисляется услуга с аналогичной стоимостью, таким образом баланс гостя не меняется, но имеется возможность просмотра отчетности. Также сумма оплаты зачисляется на депозитный счет гостя в CRM.
Рис. 1 Схема взаимодействия модулей.
 
 
 
Рис.2 Алгоритм поиска гостя
 
 
 

3. Необходимые настройки

 

В ПО Абонемент:

  • Так как киоск является кассой, то необходимо завести киоски в ПО Абонемент для каждого терминала
  • Завести услугу для балансировки
  • Установить в общих параметрах флаг "Бонусы накапливаются во внешней PDS"
  • Создать фискальные типы платежей (для наличных и кредитных карт) с бонусным процентом равным 100%

В настройках веб-модуля:

  • настроить соединение с connecter
  • В качестве кодов типов оплат для наличных и кредитных карт указать те, у которых установлен бонусный процент равный 100% из предыдущего пункта
  • Указать ID начисляемой услуги при пополнении баланса.

Для работы с наличными:

  • Установить ядро UCS Премьера (kiosk_host)
  • В папку с Kiosk_host установить BillAcceptorServer (FullVersionXXX\HW\MoneyAcceptor\BillAcceptor.rar)
  • В папку с Connecter установить BillAcceptor.dll и BillAcceptorEx.dll

Настройка Connecter:

Для связи с CRM:

  • В папку с Connecter скопировать актуальные файлы RunPDS.dll и sdmPDS_CS.dll
  • В RunPDS.ini в секции [Merge] прописать pdscs=PDS_CS.ini
  • Настроить PDS_CS.ini:
[BOOT]
PDS = %exepath%\sdmPDS_CS.dll
[DLL]
PDS = PDS-CS
[DLL.PDS-CS]
;дисконтная карта может передаваться другому человеку
DefKindCard = 0
GlobalKey = *%тут прописать global key от CRM%*
;Логин и пароль для подключения к CRM
LoginUser = Администратор
LoginPsw  = 1
;Сетевой адрес и порт, на котором работает CRM
Host=172.22.3.172
Port = 9191
;Классификатор ПО в CRM
TerminalID = 13
;Тип счета, баланс которого отображать
BalanceAccountTypeID = 1
;Тип счета, который будет пополняться
PaymentAccountTypeID = 1
; Указан несуществующий счет, чтобы при пополнении депозитного счета потраты не передавались.
ServiceAccountTypeID = 99999

Log.Name  = !!!!!!!!!pds-cs!!!!!!!!!!!.log
Log.Level = 100
Log.DebugLevel = 100Б
 

4. Работа с киоском

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

Инкассация киоска.

В настройках веб-модуля необходимо установить флаги:
  • Доступна регистрация кассира
  • Кассир не является пользователем
В БД ПО Абонемент необходимо создать пользователя с правами кассира. Данному пользователю необходимо прикрепить идентификатор. При прикладывании этого идентификатора к считывателю киоска произойдет авторизация кассира и станут доступны служебные функции: X-Отчет, Z-Отчет, внесение, изъятие, etc (см. рисунок ниже)
 
Описание функций:
  • X-отчет - снять Х-отчет с фискального регистратора
  • Z-отчет - закрыть смену (снять Z-отчет с фискального регистратора)
  • Z-отчет с автоматическим внесением - закрыть смену (снять Z-отчет с фискального регистратора), после которого будет выполнено автоматическое внесение наличности на всю сумму в кассе. Используется в случаях, когда закрывается кассовая смена, но деньги остаются в кассе.
  • Смена кассира - смена текущего кассира в программе Абонемент на используемом киоске
  • Внесение и изъятие наличных - кассовые функции внесения и изъятия денег в кассу (будет запрошена сумма, после подтверждения напечатан соответствующий документ на ФР
  • Закрытие смены терминала - закрыти смены на терминале кредитных кард (сверка итогов и инкассация терминала).
 
 

Порядок запуска.

  1. BillAcceptorServer. Он же запускает kiosk_host.
  2. Denwer (если он развернут на самом киоске)
  3. TcpCardReader
  4. Connecter
  5. Браузер
Для реализации автоматического запуска можно добавить в автозагрузку .bat файл со следующим содержанием:
rem Файл служит для запуска всех необходимых утилит для работы инфотерминала
rem а так же стартует браузер в полноэкранном режиме
rem в начале завершается процесс EXPLORER для отключения рабочего стола.
TaskKill /F /IM explorer* 
start "" "C:\_UCS\_KIOSK\kiosk_host\BillAcceptorServer.exe" 
start "" C:\_UCS\_KIOSK\Denw\denwer\Run.exe

start "" C:\_UCS\_KIOSK\TcpCardReader\TcpCardReader.exe
start /min "" C:\_UCS\_KIOSK\Connecter\connecter.lnk
ping -n 10 127.0.0.1 > nul 
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" -kiosk http://127.0.0.1/info_crm/ –overscroll-history-navigation=0
 
 

5. Особенности

 
  • Для настройки и получения финансовой отчетности необходимо рабочее место ПО Абонемент.
  • Все гости из CRM дублируются в БД ПО Абонемент.
  • Для работы Kiosk_host необходим ключ премьеры с модулем киоска.
  • В связке VKP-80-II-SX, чтобы чеки не "выплевывались", а презентовались необходимо отключить печать клише в настройках ФР: https://казначей.онлайн/forum/index.php?topic=61.0
  • Может возникнуть ситуация, что при корректных настройках принтера кириллица печатается иероглифами. Это случается из-за того, что казначей неверно выставляет кодовую страницу. Поможет заливка на принтер альтернативного FONT модуля: https://drive.google.com/open?id=0B683WItGLEHHVWo1T2tKTzR0UzA

6. Версии ПО

Тестирование проивзодилось на следующих версиях ПО и модулей:

  • Абонемент v1.129
  • Connecter v1.58.0.2
  • Инфокиоск v4.41
  • CRM v5.09.05.003
 

7. Пример киоска

 
Внешний вид:                                           Внешний вид киоска на объекте:
                 
 
 
Оборудование:
  • Корпус терминала САГА ТП-10/20 (любой цвет по каталогу RAL) 
  • Системная плата J1800I-C + Intel C2.41GHz, двухъядерный 
  • DIMM 2048Mb  
  • Блок питания ATX 350W FSP  
  • Жесткий диск 2.5" 500Gb 
  • ЖК дисплей с сенсорной технологией 17-дюйма  
  • Фильтр на 6 розеток + предохранитель 
  • Фискальный регистратор «КАЗНАЧЕЙ»  + Фискальный накопитель
  • Купюроприемник CashCode SM с кассетой до 1500 банкнот (протокол CCNet)  
  • ИБП 500ВА 
  • Право на использование Windows Embedded POSReady 7
  • Iron Logic Matrix III RS-232 

Примерная стоимость: 2600$

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

  • Пин-пад SZZT ZT588 СА или ZT598L (поддерживаемый Сбербанком)
  • Картридер Sankyo ICT3K7

При этом стоимость увеличится примерно на 800$

Работа возможна только с процессингом Сбербанка через Pilot_NT.dll

 

8. Возможные ошибки (раздел будет пополняться)

Проблема Вероятная причина
Все проходит до момента нажатия пользователем кнопки "ОПЛАТИТЬ", после чего не печатается чек, на экране видем сообщение Bad Parameters В настройках киоска (http://..../settings) неверно задан параметр "ID начисляемой услуги при пополнении баланса" . Следует обратить внимание, что это именно ID услуги, а не код.
   

 

9. Ключевые доработки и исправления

Версии ПО Суть изменения

Connecter v1.58.0.12
Kiosk v.4.41

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

Connecter v1.60.xxx

Ручная блокировка киоска из меню кассира
Автоматическая блокировка киоска при первой ошибке ФР. Разблокируется после успешной операции с ФР, пример: во время печати чека возникает ошибка ФР, киоск блокируется, авторизоваться можно только кассиром. После устранения проблемы ФР кассир снимает Х-отчет, киоск продолжает работать в штатном режиме.

 

Абонемент-Online

О модуле

Онлайн-бронирование позволяет клиенту за несколько минут просмотреть максимально полную и достоверную информацию об абонементах и мероприятиях, забронировать и оплатить абонементы и записаться на желаемые мероприятия.
Теперь для совершения данных действий не требуется находиться в спорткомплексе, а достаточно иметь компьютер или мобильное устройство с выходом в интернет.
«Абонемент-Онлайн» является дополнительным модулем «Абонемент», который даёт возможность клиенту управлять своими персональными данными, получать информацию о состоянии своего счета, осуществлять покупки абонементов, а также запись на индивидуальные и групповые тренировки.
 
Модуль «Абонемент-Онлайн» работает с программой «Абонемент» через постоянный выделенный внешний IP адрес. Передача данных между Абонемент и модулем «Абонемент-Онлайн» осуществляется в реальном времени в формате XML через определенные IP и порт.
Для защиты от несанкционированных запросов используется ключ проверки передаваемой информации, который указывается в настройках модуля «АбонементОнлайн» и программы «connecter».
 
Для интеграции с уже существующим сайтом, модуль «Абонемент-Онлайн» устанавливается на сервер в то же место, где расположен сайт и настраивается в соответствии с указанными в инструкции по установки требованиями. 
 
 
 
Ознакомится с модулем можно на общедоступной демоверсии abonement-online.ucs.ru

Рис.1 - Абонемент онлайн (расписание групповых занятий)

 
 

Возможности

Для клиентов
  • Регистрация и авторизация в системе;
  • отображения мероприятий в зависимости от выбранного корпуса;
  • возможность упрощенной регистрации с использованием карты клуба;
  • просмотр отображаемых занятий с возможностью фильтрации данных, а также бронирование мест на доступные занятия;
  • работа с групповыми и индивидуальными мероприятиями;
  • возможность детализировать групповые мероприятия по дням;
  • просмотр и добавление в корзину доступных абонементов, покупка абонементов;
  • выбор приобретенного ранее абонемента или автоматическое добавление нового для записи на групповое или индивидуальное мероприятие;
  •  вывод информации об используемом абонементе и выбранном тарифе для групповых и индивидуальных мероприятий;
  •  просмотр и изменение личной информации в системе;
  •  изменение языка отображаемой информации;
  •  формирование абонементов и билетов на мероприятия с возможностью добавления штрих-кода и qr-кода в формате PDF;
  • работа с личным кабинетом
  •         операции с абонементами пользователя
  •         просмотр и пополнение баланса;
  •         просмотр начисленных услуг;
  •         просмотр начисленных скидок;
  •         просмотр мероприятий пользователя;
  •         просмотр платежей пользователя;
  • работа с мобильной версией модуля.

Рис.2 - Примеры страниц модуля (оригинал и встроенные на сайты заказчиков)

Рис.3 - Пример билета, отправляемого клиенту, после покупки абонемента в онлайн модуле

 

 

Настройки модуля

  • Визуальные настройки модуля;
  • возможность использовать в качестве основного сайта или внедрения на страницу существующего сайта;
  • абонементы
  •         отображение всех или определенных абонементов для онлайнбронирования;
  •         отображение цены в других валютах;
  •         отображение расписания и описания для абонементов;
  •         настройка прибавки определенного количества дней к дате активации абонемента при добавлении в корзину;
  •         настройка отображения
  •                 даты активации абонемента;
  •                 авансовой оплаты;
  •                 максимального количества посещений;
  •         разрешение загрузки абонементов в формате PDF
  •         вывод стоимости абонемента при выборе тарифа в групповых или индивидуальных мероприятиях;
  •         настройка вывода информации об используемом абонементе и выбранном тарифе для групповых и индивидуальных мероприятий;
  •         настройка автоматического удаления абонемента при отмене бронирования;
  • расписание мероприятий
  •         задание время начала и окончания расписания;
  •         количество отображаемых дней в таблице;
  •         задание точки отсчета отображения мероприятий (например, с сегодняшнего или завтрашнего дня);
  •         ограничение по общему количеству недель в таблице (например, расписание на месяц);
  •         привязка цвета к ресурсам в групповых и индивидуальных мероприятиях;
  • групповые мероприятия
  •         предоставлять выбор ресурсов;
  •         использовать фильтр в расписание групповых мероприятий;
  •         настройка количества отображаемых дней в таблице;
  •         задание шага построения расписания по часам, минутам;
  •         возможность подменять название группового мероприятия названием ресурса, специалистом или количеством свободных мест;
  •         возможность вывода информации о специалисте вместе с основной информацией в таблице групповых мероприятиях;
  •         возможность многократной записи;
  •         возможность использования групп для записи;
  •         фильтр вывода мероприятий по ресурсам;
  • индивидуальные мероприятия
  •         настройка количества отображаемых дней в таблице;
  •         возможность клиенту задать произвольное время начала мероприятия;
  •         задание времени проведения индивидуальных мероприятий, как для всех ресурсов, так и отдельно для каждого;
  •         возможность выбора специалиста для индивидуальных мероприятий;
  •         фильтр вывода мероприятий по ресурсам;
  • пользователь
  •         гибкое формирование обязательных и необязательных полей для регистрации клиента;
  •         разрешение заморозки абонементов;
  •         настройка отображения
  •                 начисленных услуг;
  •                 начисленных платежей;
  •                 остатка посещений по абонементам;
  •                 цен оплаченных абонементов;
  •                 начисленных скидок;
  •         вывод изображения клиента;
  •         фильтр вывода событий;
  • оплата
  •         разрешение проведения оплаты;
  •         разрешение пополнения баланса;
  •         проведение полной или частичной оплаты абонементов;
  •         сумма пополнения баланса по умолчанию;
  •         настройка платежных систем
  • отправка сообщений на почту
  •         разрешение на отправку текстового письма при оплате абонементов и пополнении баланса;
  •         разрешение на отправку текстового письма при регистрации;
  •         настройка отправки писем менеджерам с информацией об оплате абонементов;
  • гибкая настройка интерфейса для любого дизайна веб-сайта.

Рис.4 - Настройки модуля

 

 

Оплата

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

Возможность оплаты лицензируется отдельно.

В данный момент, модуль может быть интегрирован со следующими процессингами онлайн платежей:

  • ROBOKASSA (поддержана передача содержимого чека)
  • ASSIST
  • Яндекс.Касса
  • Cloudpayments
  • Uniteller
  • Сургутнефтегазбанк

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.5 - Пример пополнения баланса через онлайн модуль

 

 

Мобильная версия модуля «Абонемент-Онлайн»

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

Рис. 6 – Главное меню и расписание групповых мероприятий

Рис. 7 – Расписание индивидуальных мероприятий и просмотр абонементов пользователя в личном кабинете

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

Требования

Необходимо наличие связи между хостингом и машиной в сети, где расположена БД Абонемент (сервер Абонемент).
Как правило у провайдера получается постоянный внешний IP-адрес для организации, и определённый порт пробрасывается до машины с которой будет производится связь с веб-частью, расположенной на хостинге.
 
Для работы веб-скриптов модуля необходимо выполнение хостингом следующих минимальных требований:
  • Операционная система Linux 2.6;
  • версия Apache 2.2.17;
  • версия PHP 5.4;
  • возможность использования модулем библиотеки jQuery;
  • установленные модули: cUrl, Sessions, Sockets, Xml, SimpleXML, GD, bcmath, mbstring, iconv, DOM, а также предоставлять возможность установки дополнительных модулей по требованию.

Проверить необходимые модули можно с помощью встроенного модуля check server. Для этого необходимо перейти в визуальные настройки и открыть ссылку check server. Далее выбрать модуль для тестирования, задать параметры для подключения к программе connecter.

Рис.8 - Страница check_server в составе модуля

 
  Disclaimer
 
Веб-скрипты модуля поставляются "как есть". Все изменения вносятся специалистами заказчика. 
Обновления модуля также поставляются как есть, все изменения специалист заказчика должен будет воспроизвести на новой версии модуля.
 
 
 

Установка

Серверная часть

В качестве серверной части, используется утилита сообщения Connecter из поставки Абонемент.
Утилита является посредником между запросами веб-части и БД Абонемент, используя соответствующий протокол.

Настройка Connecter производится через connecter.ini, где указываются:
PrivateKey - секретный ключ, также указываемый в настройках веб-скрипта в config.php;
UseUrlEncode - использовать ли URL-кодировку, для принимаемы/отсылаемых сообщений, также указываемый в настройках веб-скрипта в config.php;
DBConnectCount - количество создаваемых подключений к БД - максимальное количество одновременно обрабатываемых запросов, при недостаточном количестве - при высокой нагрузке клиентов на веб модуль не все запросы смогут быть обработаны, при большом количестве - утилита будет долго инициализироваться и займёт большое количество ресурсов для одновременной работы всех подключений. (Значение по умолчанию - 16, достаточно для не слишком большого наплыва клиентов до 500 в час);
BindingPort - порт, на который будут приниматься запросы от веб модуля;
BindingIp - локальный IP на котором будет занят BindingPort;
ListenQueue - длина очереди для обработки запросов;

Настройка на БД Абонемент происходит как и в прочих модулях, в настройке на сервер блокировок дополнительно необходимо указать Project = 1,  Module = 2, чтобы были доступны все фнукции Абонемент Онлайн. (Подробнее про лицензирование Абонемент и Connecter)

В случае использования онлайн-оплаты, следует настроить дополнительный киоск, на котором всегда будет открыта смена. Прописать в секцию [defaults] в connecter.ini параметр StdKioskCode. Код платежа задаётся в визуальных настройках веб-части.

 

 

Веб-часть 

Предоставляемый модуль разделен на 2 части:
1. шаблон сайта;
2. модуль Абонемент-Онлайн (находится в директории «abonement»).
Если у Вас сайт уже есть, значит, Вам понадобится только модуль.
 
Для демонстрации данный модуль можно развернуть, используя пакет WEB-разработчика Denwer с версией PHP 5.4. Скачать его можно на сайте denwer.ru.
После его установки папку \club\ скопировать в C:\WebServers\home\localhost\www\.
Настроить модуль по описанию ниже. Из WEB-браузера вызывать http://127.0.0.1/club/
 
 
 
 

Настройка модуля

Закрытые настройки модуля представлены в файле /abonement/сonfig.php.
Визуальные настройки доступны по адресу <адрес_модуля>/abonement/settings/
 
 
Рассмотрим закрытые настройки для первоначального запуска модуля.
В файле config.php представлены настройки:
  • PRIVATEKEY – ключ проверки передаваемой информации, также указывается в настройке программы connecter.
  • USE_URL_DECODE – значение параметра UseURLEncode в файле connecter.ini
  • SCHEDULE_XML_PATH – TCPHost и TCPPort для подключения к программе connecter, доступные указываются в блоке HTTPServer файла connecter.ini
  • соответствия цветов к ресурсам;
  • настройки платежных систем;
  • настройка мультиязычности.
Сохранять файл config.php необходимо с кодировкой UTF-8 (без BOM). В качестве программы для редактирования файла воспользуйтесь Notepad++.
Перед установкой модуля проверьте, чтобы папка /logs/ была пуста.
 
 
 
 

Оплата

Оплата в Абонемент-Онлайн лицензируется отдельно и защищена ключом - проект 4, модуль 5.
 
Настройки интеграции с поддержанными процессингами онлайн оплаты представлены в соответствующем разделе.
 
 

Языковые настройки

Языковые настройки модуля содержаться в разделе /inc/ в файле lang.php
 
 

Описания для абонементов

Дополнительно в таблице вывода абонементов для каждого можно составить описание на разных языках и добавить изображения.
Для этого в разделе /description/abonements/код языка (значение $arLang в config.php)/ создать файл в формате .tpl, название которого соответствует коду абонемента. При выводе модуль будет проверять наличие данного файла для каждого абонемента, если файл найден, тогда модуль добавит описание в подробную информацию об абонементе. Изображение помещается в раздел /description/images/, название должно соответствовать коду абонемента.
 
 

Настройка мобильной версии

Файлы для отображения мобильной версии находятся в разделе /mobile/.
Абонемент-Онлайн поддерживает 2 способа подключения мобильной версии:
  • если Вы используете модуль бронирования отдельно от Вашего сайта;
  • если Вы используете модуль бронирования на странице Вашего сайта, тогда для работы с мобильной версией необходимо дублирование модуля на сервере:
  •         необходимо скопировать модуль бронирования в отдельный раздел, как вариант, можно создать поддомен и привязать к данному разделу;
  •         настроить каждый модуль отдельно.
Настройки мобильной версии доступны в открытых настройках модуля.
 
 
 

Информация для веб-дизайнера/разработчика

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

Стилистика модуля

Основной шаблон находится в файле template.php, в котором подключаются JavaScript, стили и задается структура html страницы. 
Стили CSS находятся в файле style.css
В разделе /template/ находятся шаблоны страниц, отображающие информацию определенной страницы. Для изменения вывода определенных данных, необходимо изменить файл, соответствующий изменяемой странице. 
В разделе /template/inc/ находятся шаблоны выполнения определенных функций, названия файла соответствует либо названию страницы, либо функции.
 
 

Почтовые шаблоны

Данные уведомления не связаны с почтовой подпиской через программу «Абонемент».
Вы можете составить шаблон письма по своему усмотрению в формате html. Все текстовые шаблоны находятся в разделе /mail/. Переменная, которая будет заменена на значение, заключается между символами «#». Текст будет отправлен также как и указано в шаблоне, только вместо переменных будут конкретные значения.
В одном шаблоне предоставляется возможность использовать разные языки, с указанием для каждого одних и тех же заменяемых параметров. Если требуемый шаблон отсутствует, модуль письмо не отправит.
На данный момент модуль работает с 2 типами текстовых шаблонов: статичными и динамичными.
Статичный шаблон содержит текст, в котором модулю достаточно изменить требуемые элементы. Пример статичного шаблона:
Уважаемый #FIO#, вы успешно зарегистрировались на нашем сайте!<br />
<b>Логин:</b> #LOGIN#<br />
<b>Пароль:</b> #PASSWORD#<br />
Результат подстановки шаблона:
Уважаемый Иванов Иван Иванович, вы успешно зарегистрировались на нашем сайте!
Логин: ivan
Пароль: 12345
Для добавления новых элементов в шаблон требуется доработать соответствующий шаблон и добавить параметры в файле в разделе /controller/. Для добавления новых элементов достаточно в массив $arData добавить элемент массива:
$arData = Array(
 'NAME' => ‘Иван’,
 'PHONE' => ‘123123’
);
Динамичный шаблон содержит как элементы, требующие замены, так и списки, формирующие автоматически при создании шаблона.
Заменяемые программой элементы заключаются символами «#», как указано в примере.
Пример динамичного шаблона:
Уважаемый #NAME# #NAME1#, вы успешно добавили абонементы на нашем сайте:<br />
%<b><i>#ABONEMENT_NAME#</i> (#ABONEMENT_COUNT# шт.)</b>%
<p>Теперь вы можете записаться на соответствующие мероприятия.</p>
Результат подстановки шаблона:
Уважаемый Иванов Иван, вы успешно добавили абонементы на нашем сайте:
Бассейн 1 посещение (3 шт.)
Тренажёрный зал 1 посещение (5 шт.)
Теперь вы можете записаться на соответствующие мероприятия.
Для создания списка в данных шаблонах, необходимо перечисляемые элементы заключить между символом «%», как указано в примере. Сами элементы заключаются также как и в статичном примере символом «#».
В модуле возможно создавать несколько списков в шаблоне, при этом они не должны содержаться друг в друге.
Правильный пример:
Уважаемый #NAME# #NAME1#, вы успешно добавили абонементы на нашем сайте:<br />
%<b>#ABONEMENT_NAME# (#ABONEMENT_COUNT# шт.)</b>%
<p>Ближайшие мероприятия:</p>
%<b>#DIARY_NAME#</b>%
НЕ правильный пример:
Уважаемый #NAME# #NAME1#, вы успешно добавили абонементы на нашем сайте:<br />
%<b>#ABONEMENT_NAME# (#ABONEMENT_COUNT# шт.)</b>
<p>Ближайшие мероприятия:</p>
%<b>#DIARY_NAME#</b>%%
Для добавления новых элементов и списков в шаблон требуется доработать соответствующий шаблон и добавить параметры в файле в разделе /controller/. Для добавления новых элементов достаточно в массив $arData добавить элемент. Для создания списка необходимо добавить элемент, cодержащий перечисление значений через разделитель «;».
$arData = Array(
 'NAME' => ‘Иван’,
 'ABONEMENT_NAME' => ‘Бассейн 1 посещение;Тренажёрный зал 1 посещение’,
);
 
 

Печать абонементов и билетов на мероприятие в формате PDF

Каждый шаблон состоит из PDF-файла, TPL-файла и CSS-стилей. Размер PDF-файл необходимо указывать такой же, как и в примере.
 
Печать абонементов
 
Шаблоны для печати находятся в разделе /print/abonement/template/. Название шаблонов изменять недопустимо.
В корне данного раздела находится шаблон для всех языков и абонементов. Если необходимо для каждого языка задать отдельный шаблон, необходимо создать раздел, название которого соответствует коду языка в массиве $arLang в config.php, и разместить файлы шаблона. Данный шаблон будет использоваться для всех абонементов соответствующего языка. Если необходимо задать шаблон для каждого типа абонемента, необходимо создать раздел в директории /print/abonement/template/<название языка>/, название которого соответствует коду абонемента, и разместить файлы шаблона. При
создании абонемента в формате PDF, модуль будет проверять наличие шаблона в порядке: для типа абонемента, для используемого в модуле языка, для всех языков и абонементов.
Печать билетов на мероприятие
Загрузка билета возможна при условии полной оплаты абонемента на мероприятие.
Для создания билета на мероприятие необходимо создать шаблоны в разделе /print/diary/template/ и настроить файл для построения шаблона. Все параметры настраиваются индивидуально в соответствии требованиям заказчика.
 
 

Шаблоны отображения информации

Шаблоны разделяются на две категории:
  • выводят информацию при вызове определенной страницы;
  • выводят информацию в результате выполнения действия на определенной странице, например, отображение подробной информации мероприятия.
В разделе /template/ находятся шаблоны страниц, отображающие информацию определенной страницы. Для изменения вывода определенных данных, необходимо изменить файл соответствующий изменяемой странице.
В разделе /template/inc/ находятся шаблоны выполнения определенных функций, названия файла соответствует либо названию страницы, либо функции.
 
Шаблоны страниц:
  •  Abonements – просмотр и добавление абонементов;
  •  AboutStaff – отображение информации о специалистах;
  •  AddBalance – пополнение баланса;
  •  AddGuest – регистрация пользователя;
  •  AddGuestCard – упрощенная регистрация с помощью карты клуба;
  •  AddOrLogin – совмещенная авторизация и регистрация, отображается при покупке абонементов неавторизированным пользователем;
  •  BuyAbonements – подтверждение покупки абонементов;
  •  GroupDiary – отображение групповых мероприятий по неделям;
  •  GroupDiaryDay – отображение групповых мероприятий по дням;
  •  GuestInfo – личный кабинет клиента;
  •  LoginGuest – авторизация пользователя;
  •  ModifyGuest – изменение персональной информации пользователя;
  •  OneDiary – отображение индивидуальных мероприятий;
  •  Regulations – пользовательское соглашение;
  •  RestorePassword – восстановление пароля;
  •  StaffDiary – расписание для специалиста;
  •  StaffDiaryAbout – подробная информация о мероприятии специалиста.
Шаблоны функций:
  •  Abonement – шаблон, в котором формируются:
  •       вывод описания абонемента, если файл найден;
  •       таблица периода действия по дням недели;
  •  Filter – шаблон фильтра ресурсов для групповых мероприятий;
  •  GroupDiary – шаблон вывода подробной информации о групповом мероприятии во всплывающем окне, в котором формируются:
  •       количество добавляемых абонементов при записи на мероприятие;
  •       кнопка для записи или отмены записи с соответствующими параметрами;
  •         ссылка на авторизацию для записи на мероприятие, если пользователь не авторизирован;
  •         получение подробной информации о мероприятии;
  •         формирование списка абонементов для покупки;
  •         сообщение об отсутствии абонементов для записи на данное мероприятие;
  •  GuestInfo – шаблон, в котором формируются заморозки для абонемента;
  •  OneDiary – шаблон вывода подробной информации об индивидуальном мероприятии во всплывающем окне, в котором формируются:
  •         ссылка на авторизацию для записи на мероприятие, если пользователь не авторизирован;
  •         получение подробной информации о несозданном мероприятии;
  •         получение подробной информации о созданном мероприятии;
  •  Lang – смена языка отображаемой информации.

Интеграция платёжных систем с Абонемент-Онлайн

Интеграция платёжной системы АРРЕХ с Абонемент-Онлайн

Для подключения платёжной системы АРРЕХ к Абонемент-Онлайн, требуется:

Со стороны взаимодействия с АРРЕХ:

Зарегистрироваться в системе.
В личном кабинете платёжной системы перейти в настройки:
В качестве адреса для уведомления интернет-магазина об изменившемся статусе оплаты прописать адрес к файлу указанному в config.php в разделе систем оплат с пометкой "соответствует файлу" (http://<адрес модуля Абонемент онлайн>/inc/pm/xxxxxxxxx.php).
 
Для дальнейшей настройки Абонемент-Онлайн требуется из личного кабинета собрать следующую информацию:
APPEX_ACCOUNT – Идентификатор личного кабинета APPEX,
APPEX_KEY_1 – Создаются в личном кабинете APPEX,
APPEX_KEY_2 – Создаются в личном кабинете APPEX,
APPEX_PAY_URL – URL для отправки запросов,
Адреса API платёжной системы зависят от режима платежей – тестовый или реальный.
 

Со стороны Абонемент-Онлайн:

Для настройки Абонемент-Онлайн на данную платёжную систему, необходимо прописать в config.php полученные ранее данные:
	define('APPEX_ACCOUNT', 'ACC003867');
	define('APPEX_KEY_1', 'd745397d-8c58-d88c-c05e-88ce9af12628');
	define('APPEX_KEY_2', 'lkv847_MxtR357Z9x_kS');
	define('APPEX_PAY_URL', 'https://secure.test.paygateway.ru/api');
Адреса страниц API платёжной системы зависят от режима платежей – тестовый (https://secure.test.paygateway.ru/api) или реальный (https://secure.paygateway.ru/api/). По умолчанию в настройках Абонемент-Онлайн указаны страницы для тестовых платежей на тестовом сервере.
 
 

ВАЖНО!

Модуль онлайн оплаты лицензируется отдельно.

В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5. Подробнее про лицензирование.

Интеграция платёжной системы Робокасса с Абонемент-Онлайн

Для подключения платёжной системы ROBOKASSA к Абонемент-Онлайн, требуется:

Со стороны взаимодействия с Робокассой:

Зарегистрироваться в качестве партнёра.
В личном кабинете создать новый магазин, как на рис.1. 
 
Рис.1. Личный кабинет Робокасса.
 
В настройках магазина:
 
Заполнить страницу Регистрация, перейти на страницу Технические настройки (представлены на рис.2).
Для взаимодействия с Абонемент Онлайн, потребуются следующие данные:
Идентификатор магазина, Пароль1, Пароль 2.
В Success Url и Fail Url требуется прописать ссылку на страницу Личный кабинет модуля Абонемент Онлайн (http://<адрес модуля Абонемент онлайн>/?schedule=GuestInfo).
В Result Url прописать адрес к файлу указанному в config.php в разделе систем оплат с пометкой "соответствует файлу" (http://<адрес модуля Абонемент онлайн>/inc/pm/xxxxxxxxx.php).
Метод отсылки данных везде указать POST.
 

Рис.2. Настройки магазина в личном кабинете Робокасса

Со стороны Абонемент-Онлайн:

Для настройки Абонемент онлайн на данную платёжную систему, необходимо прописать в config.php следующие параметры:
Полученные ранее данные Идентификатор магазина, Пароль1 и Пароль2 указать в параметрах:
define('ROBOKASSA_IS_TEST', 1); // использовать режим тестирования
define('ROBOKASSA_MrchLogin', 'online.funnyjungle.ru'); // логин платежной системы ROBOKASSA
define('ROBOKASSA_mrh_pass1', 'ucs00000'); // пароль 1 платежной системы ROBOKASSA
define('ROBOKASSA_mrh_pass2', 'ucs00001'); // пароль 2 платежной системы ROBOKASSA
define('ROBOKASSA_IS_RECEIPT', 0); // использовать Робочеки (или прочие решения RoboKassa для фискализации) (https://docs.robokassa.ru/?_ga=#6865)
define('ROBOKASSA_RECEIPT_SNO', 'osn'); // Система налогооблажения. Доступные варианты - osn, usn_income, usn_income_outcome, envd, esn, patent
define('ROBOKASSA_RECEIPT_TAX', 'none'); // Налог передаваемый для позиций. Доступные варианты - none, vat0, vat10, vat18, vat110, vat118
define('ROBOKASSA_PURCHASE', 'https://auth.robokassa.ru/Merchant/Index.aspx'); // отправка данных в ROBOKASSA (не изменять)
 
 
Будьте внимательны, для работы в тестовом режиме, параметры Пароль1 и Пароль2 должны быть переданы в настройки Абонемент-Онлайн из соответствующего радела настроек магазина в Робокассе.

 

ВАЖНО!

Модуль онлайн оплаты лицензируется отдельно.

В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.

Интеграция платёжной системы CloudPayments с Абонемент-Онлайн

Для подключения платёжной системы CloudPayments к Абонемент-Онлайн, требуется:

Со стороны взаимодействия с CloudPayments:

Зарегистрироваться в системе.
В личном кабинете на странице «Сайты» (представлена на рис.1), необходимо добавить сайт, если он не был добавлен ранее и перейти в настройки:
 

Рис.1 Личный кабинет CloudPayments - страница "Сайты"

 
 
Для корректной работы Абонемент-Online из уведомлений необходимо включить только пункт "Pay уведомление".
В поле «Адрес» прописать адрес к файлу указанному в config.php в разделе систем оплат с пометкой "соответствует файлу" (http://<адрес модуля Абонемент онлайн>/inc/pm/xxxxxxxxx.php). Кодировка обязательно "UTF-8", метод "POST", Формат запроса "CloudPayments".
Остальные настройки производятся согласно пожеланиям заказчика.
 

Рис.2 Личный кабинет CloudPayments - страница настроек сайта

 
Для дальнейшей настройки Абонемент-Онлайн требуется из личного кабинета собрать следующую информацию, доступную на данной странице:
Public_ID - идентификатор магазина в CloudPayments, Пароль для API - ключ передаваемый в CloudPayments для подтверждения валидности запроса из магазина.
 

Со стороны Абонемент-Онлайн:

Для настройки Абонемент-Онлайн на данную платёжную систему, необходимо прописать в config.php следующие полученные ранее данные:
Public_IDПароль для API в поля CLOUDPAYMENTS_PUBLIC_ID и CLOUDPAYMENTS_PASS соответственно.
// настройка платежной системы Cloudpayments
// соответствует файлу /inc/pm/chb345rjk.php
define('CLOUDPAYMENTS_PUBLIC_ID', 'pk_5acd6950f73ffe9d9f41eb6ad6fca');
define('CLOUDPAYMENTS_PASS', '4beff951d19449aeb01262bbb87126df');
Режим работы системы оплаты – тестовый или реальный управляется только со стороны личного кабинета CloudPayments.
 
 

ВАЖНО!

Модуль онлайн оплаты лицензируется отдельно.

В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.

Интеграция платёжной системы Сургутнефтегазбанка с Абонемент-Онлайн

Для подключения платёжной системы Сургутнефтегазбанка к Абонемент-Онлайн, требуется:

Со стороны взаимодействия с Сургутнефтегазбанком:

Отправить заявку на подключение к платёжной системе в качестве интернет магазина.
Банк предоставляет доступ к тестовому Merchant сайту. 
Банк получает от интернет-магазина название домена, IP адрес, SSL сертификат при его наличии, и настраивает их в системе CommerceGateway.
Банк получает доступ к тестовому магазину и проводит тестирование.
При отсутствии замечаний по работе магазина с тестовым сервером CommerceGateway  предоставляется доступ к рабочей среде.

Со стороны действий в личном кабинете системы ECommerce:

После получения доступа к личному кабинету, необходимо зарегистрировать сайт для взаимодействия интернет-магазина с сервером электронной коммерции.
 
 
При регистрации сайта, требуется заполнить следующие поля:
URL Init Notification     -ссылка на страницу Абонемент-Онлайн  club/?abonement-online=GuestInfo
URL Error -ссылка на страницу Абонемент-Онлайн  club/?abonement-online=GuestInfo
После чего, нажать кнопку Make PSK, вследствие чего будет сгенерирован PSK – ключ работы сайта с платёжной системой. Данный ключ потребуется указать при настройке Абонемент-Онлайн.
 
 
Далее необходимо настроить терминал интернет-магазина, для этого в личном кабинете системы ECommerce перейдите по ссылке Merchant в главном меню.
Далее на странице выбранного терминала содержатся данные Merchant ID и Terminal Alias, которые необходимо указать при настройке Абонемент-Онлайн.
 
 

Со стороны Абонемент-Онлайн:

Для настройки Абонемент онлайн на данную платёжную систему, необходимо прописать в config.php следующие параметры:
Полученные ранее данные Merchant ID, Terminal Alias, и PSK указать в параметрах:
define('SURGUT_MERCHANT', '1234'); 

define('SURGUT_TERMINAL', '1234-alias');

define('SURGUT_PSK', 'db51412418fffe41a14c1b363e85ab92d1dbd673');
соответственно.
 
Параметр:
define('SURGUT_URL_SEND', 'https://ecm.sngb.ru:443/ECommerce/PaymentInitServlet');
отвечает за настройку на тестовый (по умолчанию) или полноценный режим работы.
(для рабочего режима установить: 'https://ecm.sngb.ru:443/Gateway/PaymentInitServlet')
 

ВАЖНО!

Модуль онлайн оплаты лицензируется отдельно.

В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.

 
 
В тестовом режиме онлайн оплата в Абонемент-Онлайн выглядит следующим образом:
 
При нажатии на кнопку оплатить, клиента переводит на страницу платёжной системы:
 

Интеграция платёжной системы Assist с Абонемент-Онлайн

Для подключения платёжной системы Assist к Абонемент-Онлайн, требуется:

Со стороны взаимодействия с Assist:

Зарегистрироваться в системе.
В личном кабинете должен быть создан мерчант, как на рис.1. 
 
Рис.1. Личный кабинет Assist настройки мерчантов, настройки платежей
 
В настройках мерчанта:
 
На вкладке «Настройки платежей» (представлена на рис.1) ввести URL_RETURN и URL_RETURN_OK. В данном случае это ссылка на страницу «Личный кабинет» модуля Абонемент-Онлайн (http://<адрес модуля Абонемент онлайн>/?schedule=GuestInfo).
 
На вкладке «Настройка отправки результатов платежей» (представлена на рис.2) поставить галочку «Отправка результатов оплат» и задать остальные параметры.
В поле «URL для отправки результатов» прописать адрес к файлу указанному в config.php в разделе систем оплат с пометкой "соответствует файлу" (http://<адрес модуля Абонемент онлайн>/inc/pm/xxxxxxxxx.php).
Тип протокола указать POST, тип подписи MD5.
 

Рис.2. Личный кабинет Assist настройки мерчантов, настройки результатов платежей

Со стороны Абонемент-Онлайн:

Для настройки Абонемент-Онлайн на данную платёжную систему, необходимо прописать в config.php следующие полученные ранее данные:
ID мерчанта из платёжной системы, логин и пароль от личного кабинета платёжной системы.
define('ASSIST_MERCHANT_ID', '914136'); // ID - магазина платежной системы Assist
define('ASSIST_LOGIN', 'testucsru'); // логин платежной системы Assist
define('ASSIST_PASSWORD', 'ucs00000'); // пароль платежной системы Assist
define('ASSIST_PURCHASE', 'https://test.paysecure.ru/pay/order.cfm'); // отправка данных в платежную систему Assist
define('ASSIST_ORDERSTATE', 'https://test.paysecure.ru/orderstate/orderstate.cfm'); // проверка заказа платежной системы Assist
 
Для работы в тестовом режиме необходимо прописать соответствующие пути как:
define('ASSIST_PURCHASE', 'https://payments.demo.paysecure.ru/pay/order.cfm'); // отправка данных в платежную систему Assist
define('ASSIST_ORDERSTATE', 'https://payments.demo.paysecure.ru/orderstate/orderstate.cfm'); // проверка заказа платежной системы Assist
При работе в тестовом режиме можно использовать только специальные тестовые карты. Список приложен в виде xls файла

ВАЖНО!

Модуль онлайн оплаты лицензируется отдельно.

В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.

ДОПОЛНИТЕЛЬНО!

Схему реализации взаимодействия ТСП и АПК Ассист по фискализации Вы можете увидеть тут

ВложениеРазмер
cards.xls28 КБ

Интеграция платёжной системы Uniteller с Абонемент-Онлайн

Для подключения платёжной системы Uniteller к Абонемент-Онлайн, требуется:

Со стороны взаимодействия с Uniteller:

Зарегистрироваться в системе.
В личном кабинете со страницы «Договоры» перейти в настройки:
В поле «URL для уведомления сервера интернет-магазина об изменившемся статусе счёта/оплаты» прописать адрес к файлу указанному в config.php в разделе систем оплат с пометкой "соответствует файлу" (http://<адрес модуля Абонемент онлайн>/inc/pm/xxxxxxxxx.php).
 
Для дальнейшей настройки Абонемент-Онлайн требуется из личного кабинета собрать следующую информацию:
Shop_ID - страница «Договоры», Login - страница «Параметры Авторизации», Password - страница «Параметры Авторизации», а также параметры «страница для оплаты заказа», «страница для возврата клиента после оплаты», «страница для проверки статуса заказа».
Адреса страниц зависят от режима платежей – тестовый или реальный.
 

Со стороны Абонемент-Онлайн:

Для настройки Абонемент-Онлайн на данную платёжную систему, необходимо прописать в config.php следующие полученные ранее данные:
Shop_ID, Login, Password, «страница для оплаты заказа», «страница для возврата клиента после оплаты», «страница для проверки статуса заказа».
define('UNITELLER_SHOP_ID', '');
define('UNITELLER_LOGIN', '');
define('UNITELLER_PASS', '');
define('UNITELLER_URL_SEND', 'https://test.wpay.uniteller.ru/pay/');
define('UNITELLER_URL_RETURN', '');
define('UNITELLER_URL_CHECK', 'https://test.wpay.uniteller.ru/results/');
Адреса страниц зависят от режима платежей – тестовый или реальный. Изначально в настройках Абонемент-Онлайн указаны страницы для тестовых платежей на тестовом сервере.
 
 

ВАЖНО!

Модуль онлайн оплаты лицензируется отдельно.

В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.

Интеграция платёжной системы Яндекс-Касса с Абонемент-Онлайн

 

Рис.1 Страница окна оплаты, после нажатия на кнопку оплатить в онлайн модуле

 

Для подключения платёжной системы Яндекс-Касса к Абонемент-Онлайн, требуется:

Со стороны взаимодействия с Яндекс-Кассой:

Зарегистрироваться в системе.
В личном кабинете на странице магазинов, выбрать магазин и перейти в настройки интеграции по API:
В поле «checkUrl» прописать адрес к файлу указанному в config.php в разделе систем оплат с пометкой "соответствует файлу" (http://<адрес модуля Абонемент онлайн>/inc/pm/xxxxxxxxx.php).
 
Для дальнейшей настройки Абонемент-Онлайн требуется из личного кабинета собрать следующую информацию:
Shop_ID , ShopKey - API-ключ магазина.
 
 

Со стороны Абонемент-Онлайн:

Для настройки Абонемент-Онлайн на данную платёжную систему, необходимо прописать в config.php следующие полученные ранее данные:
Shop_ID , ShopKey - API-ключ магазина.
 
// настройка платежной системы YANDEX
define('YANDEX_SHOPID', '507777'); // shopId магазина платежной системы Yandex
define('YANDEX_SHOPKEY', 'test_snZ08VACupCS7pq37Fz874238_z0Ubi2gGuJBkiHlzX'); // секретный ключ Yandex
 
Настройка тестовый или реальный магазин производится путём смены магазина (оба параметра уникальны для магазина). 
 
В визуальных настройках модуля, выбрать соответствующий код платежной системы.
 
 

ВАЖНО!

Модуль онлайн оплаты лицензируется отдельно.

В ключе, на который подключён connecter с которым взаимодействует Абонемент-Онлайн должен быть прописан Проект 4 Модуль 5.

Модуль "Монитор для покупателя"

Общая информация

В поставке данный модуль находится в папке FullVersionVerXXX\UTILS\MonitorForClient\.

 

Модуль защищен лицензионным ключем (проект 1 модуль 7), подключение к нему настраивается через утилиту Connecter.

Для этого в connecter.ini в секции [LOCK.SERVER] должно быть прописано:

Project=1
Module=7

 

Важно!!! В файле abonementmanager.ini необходимо добавить секцию и параметр:

[XMLOUTPUT]
UseXMLOUTPUT=1

 

Настраивается по аналогии с другими WEB модулями, например: Адрес/monitor/settings

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

Рис.1 Настройка модуля "Монитор для покупателя"

 

Описание

Данный WEB модуль предназначен для удобства при обслуживании клиента. При обслуживании клиента (например, с использованием моноблока с двумя дисплеями (например, Моноблок GlobalPOS AIR II 15" c двумя дисплеями)) на второй дисплей в реальном времени можно передавать следующую информацию:

- Общая информация;
- Ф.И.О., баланс, фотография клиента; 
- Остаток посещений по абонементам;
- Статус оплаты для абонементов клиента;
- Отображение количества позиций в чеке и их наименований.
 
Вывод информации о компании:
 
- Наименование;
- Адрес;
- Телефон.
 
При этом присутствует возможность настройки масштабирования отображаемой информации, изменения шрифтов и т.п. через форму настройки (см. Рис.1).
 
В режиме ожидания отображаемая WEB-форма может выглядеть следующим образом (Слайды показываются из изображения с расширением jpg и png):
 

Рис.2 Отображение слайдов в режиме ожидания

Соответственно при обслуживании клиента (переходе в ПО "Абонемент", на вкладку "Быстрый чек", см. Рис.3), окно формы будет выглядеть следующим образом (см. Рис.4): 

Рис.3 Вкладка "Быстрый чек" в ПО "Абонемент"

Рис.4 Отображение формы в режиме обслуживания

 

Модуль «Монитор тренера»

 

 

 

 

Введение

Скачать сборку скриптов модуля можно с FTP по пути: Abonement/InfoKiosk/

Модуль "Монитор тренера" является веб-модулем Абонемент, позволяющим производить контроль работы специалиста, и позволяет тренеру контролировать своё расписание (показано на рис.1), отмечать присутствие клиентов на мероприятиях и начинать и заканчивать групповые и индивидуальные мероприятия в Абонемент (как показано на рис.2,3), а также регистрировать дополнительные услуги.

Рис. 1 - Внешний вид модуля, страница «Мое расписание» (Изображения кликабельны)

Рис. 2 - Внешний вид модуля, страница мероприятия

 

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

Вид модуля до авторизации специалиста показан на рис. 4.

Рис. 3 - Внешний вид модуля, страница добавления клиента в мероприятие

Рис. 4 - Внешний вид модуля, стартовая страница авторизации специалиста

 

Принципиальная схема работы

 

На ПК разворачиваются: connecter для связи с БД Абонемент, TCPCardReader для упрощения авторизации специалиста и поиска клиента в БД для добавления его в мероприятие, веб сервер (например denwer), набор веб-скриптов модуля «Монитор тренера».

В качестве ПК для модуля, рекомендуется использовать моноблоки на подобии MSI Pro 16 Flex-029RU (N3160 4Gb 500Gb 15.6 HD TouchScreen, подробнее см. в рекомендуемом оборудовании, представлен на рис.5).

ПК с модулем "Монитор тренера" рекомендуется размещать в зале, где непосредственно проводятся тренировки, для удобства использования.

Рис.5 - Внешний вид модуля запущеного на моноблоке, установленный в зале

 

Настройки

Пример рабочей сборки: http://support.ucs.ru/sites/files/upload/nodes/8966/fitness_monitor_trenera.rar

ПО "Абонемент"

1. На вкладке «Специалисты» создаются сотрудники, их расписание, указываются доступные ресурсы (рис. 6, 7 и 8).

Рис.6 Интерфейс Абонемент, создание специалиста

Рис.7 Интерфейс Абонемент, создание расписания для специалиста

Рис.8 Интерфейс Абонемент, выбор доступного специалисту ресурса

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

3. Для работы с групповыми занятиями, в программе необходимо создать расписание для данных мероприятий (рис. 9 и 10).

Рис.9 Интерфейс Абонемент, создание групповых мероприятий на «Шахматке мероприятий» 

 

 

Рис.10 Интерфейс Абонемент, создание групповых мероприятий с помощью  «Автоматического распределения» на вкладке «Специалисты»

 

TCPCardReader

TCPCardReader и настройки декодирования под TCPCardReader`ом и connector`ом настраиваются так же как и на рабочих местах абонемент под TCPCardReader`ом и abonementmanager.exe

 

Connecter

Connecter настраивается базовым образом (общие настройки, сервер блокировок, БД Абонемент), дополнительно для работы считывателя в веб-интерфейсе, необходимо настроить параметры подключения к TCPCardReader:

[TCPCardReader]
PORT=7760
HOST=127.0.0.1
UseTCPCardReader=1

[DEVICES]
  UseCardReader=1

 

Требования к веб-серверу

- версия Apache 2.2.17;
- версия PHP 5.3;
- возможность использования модулем библиотеки jQuery;
- установленные модули: cUrl, Sessions, Sockets, Xml, SimpleXML, GD, bcmath, mbstring, iconv, DOM

 

Веб-часть модуля

Для настройки веб-части модуля, после его развёртывания на машине, требуется открыть в браузере настройки (показаны на рис. 11 и 12), находящиеся по адресу  http://<адрес веб модуля>/settings

Для монитора тренера имеют силу настройки пунктов 1, 2, 3, 9, 10, 17, 23, 24

В пункте 1 настроек, привести настройки связи с connecter и настройки вебсервера, для корректной отработки модуля.

В пункте 3 должны быть 3.1 = Фитнес, 3.2 = Только С авторизацией

Пункт 10 – Специалист – содержит настройки монитора тренера.

Собственно в данном пункте очень гибко настраивается доступный для тренера функционал и количество отображаемой для него информации.

Пункт 17 – позволяет настроить отображение таблицы расписания.

Требуемым образом настроить пункты 23 и 24.

 

Рис. 11 - Внешний вид модуля, страница настроек модуля 

Основные настройки

Рис. 12 - Внешний вид модуля, страница настроек модуля

Настройки функций доступных специалисту

 

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

Модуль защищён ключом - Проект 1, Модуль 5.

ВложениеРазмер
fitness_monitor_trenera.rar3.33 КБ

Модуль «Онлайн оплата для аквапарка»

 

Модуль «Онлайн оплата для аквапарка»

Общее описание модуля

Реализован web модуль для удобной онлайн-оплаты абонементов на сайте организации. Данный модуль предназначен для использования на объектах со спецификой «Аквапарк» и схожими направлениями. Данный web модуль предоставляется в виде набора php скриптов и предназначен для встраивания на сайт заказчика.

Описание работы модуля

                                               Рис. 1

При переходе на страницу онлайн-покупки открывается календарь для выбора даты посещения аквапарка.

Абонементы, доступные для покупки, отображаются согласно расписанию действия с выставленным параметром в карточке типа абонемента «доступны для интернет-бронирования».

                                                                Рис. 2

 

Типы абонементов группируются с помощью категории абонементов. В момент изменения количества каждой позиции формируется поле «итого». Клиент заполняет персональные данные, номер телефона в заданном формате и адрес электронной почты. Кнопка «оплатить» активна только после проставления галки «Я согласен с пользовательским соглашением», текст соглашения открывается в новой вкладке при клике на указанную ссылку. Текст соглашения редактируется в шаблоне “ /abonement/template/Regulations.php”. После нажатия на кнопку «оплатить» происходит перенаправление в процессинг. После завершения оплаты в основном модуле «Абонемент» происходит следующее: в базе данных создается клиент для каждого абонемента в чеке, персональные данные будут заполнены только для первого клиента в чеке, а остальные клиенты будут не персонализированы. На указанную почту существует возможность отправить id всех клиентов в чеке или номер счета для данного чека. В момент фактического посещения клиента сотрудник на объекте осуществляет поиск в базе с помощью существующих фильтров в списке клиентов в основном модуле (см. рис. 3)

.

                                                                                                                                      Рис. 3

 

 

Техническая сторона

Модуль является модифицированным модулем "Абонемент-Online", лицензируется проектом 1 модуль 2.

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

Сборка актуальной веб-части предоставляется по запросу.

 

Необходимые настройки

Необходимо настроить Connecter для корректной работы под соответствующей лицензией, через внешние IP и порт.

Connecter следует сразу настроить на новый киоск в Абонемент, на котором всегда будет открыта смена, для проведения платежей в любое время суток. (Параметр StdKioskCode в секции [defaults] в connecter.ini)

Так как при каждой покупке через модуль в БД создаётся новый гость, то НЕОБХОДИМО отключить проверку уникальности тел.номеров в Общих параметрах и отключить проверку уникальности email путём выполнения на БД скрипта:

  execute procedure sp_set_defaultvalue('NEED_CHECK_GUESTS_EMAIL','0');
  commit;

Со стороны веб-части необходимо настроить <Адрес_модуля>/abonement/config.php

Параметры подключения к connecter:

define('SCHEDULE_XML_PATH', 'http://46.229.182.139:33204'); // TCPHost и TCPPort для подключения к connecter 
define('USE_URL_DECODE', 0); // значение параметра UseURLEncode в файле connecter.ini
define('PRIVATEKEY', 'aqua76'); // указывается в файле connecter.ini

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

 

Остальные настройки веб-модуля, в частности настройки доступных к покупке абонементов, а также заведённого для онлайн оплаты в Абонемент типа безналичного платежа, вносятся в браузере по адресу <Адрес_модуля>/abonement/settings

 

Шаблон отправляемого клиенту письма, в случае успешной оплаты, можно отредактировать. Шаблон находится в <Адрес_модуля>/abonement/mail/Aqua.tpl   (Вносимые модулем данные, например #NAME#, следует оставить)

Настройка адреса для рассылок производится в основном модуле Абонемент - Общие параметры / Рассылки.

Модуль самостоятельной регистрации в детском центре

Вариант схемы автоматизации детского центра

В данной статье описан принцип работы "Зоны самостоятельной регистрации гостей" из представленной выше схемы.

Цель проекта

Данный модуль предназначен для самостоятельной регистрации клиентов в базе данных ПО Абонемент. Используется на объектах из сегмента детский парк развлечений.
Основные задачи:
  • Заполнение персональных данных клиентов;
  • Верификация номера телефона;
  • Взаимосвязь сопровождающих и сопровождаемых;
  • Подтверждение согласия с условиями посещения;
  • Печать анкеты с персональными данными (форму анкеты предоставляет заказчик)

 

Установленные модули и особенности тех. настроек

На сервере:
  • Модуль интерфейс-турникет, для регистрации входа/выхода клиентов
На планшетах:
  • Connecter (требуется лицензия на проект 1 модуль 4)
  • smsc (требуется лицензия на модуль СМС и email рассылки)
  • Web-сервер
  • Web-модуль самостоятельной регистрации
Для корректной работы модуля самостоятельной регистрации под connceter-ом должна быть установлена специализированная печатная форма договора, а также выполнен скрипт attendants.sql
 

Оборудование

  • Планшеты с ОС Windows 10
  • Два контроллера + 2 считывателя Matrix-III для регистрации входа/выхода

 

Схема обслуживания клиентов

Новый клиент должен пройти самостоятельную регистрацию в учетной системе с помощью специализированного web модуля, который развернут на планшете. Клиент (родитель) вводит свой номер телефона и подтверждает его кодом из смс-сообщения, далее заполняет свои персональные данные. Если с ребёнком пришли несколько сопровождающих взрослых, то они также вносят персональные данные. Следующим этапом заполняются данные о детях и фиксируются их ограничения, если такие имеются (например: сломана рука). Далее необходимо дать согласие на условие посещения парка и распечатать анкету, с которой нужно будет подойти к кассиру для покупки билетов.
С помощью уникального номера (id клиента) из распечатанной анкеты кассир ищет клиентов в базе данных и оформляет продажу билетов каждому клиенту, который планирует посетить парк. Далее каждому клиенту в программе прикрепляется браслет, который является ключом от шкафчиков, расположенных внутри игровой зоны. Чтобы начать тарификацию времени посещения, кассир должен приложить каждый браслет к специальному считывателю, после чего на инфоплазме появится информация об оставшемся времени посещения и номере браслета для каждого клиента.
Для выхода из парка клиент должен подойти к стойке рецепции, где сотрудник прикладывает браслет к другому считывателю для завершения тарификации. Если клиент не превысил время посещения и не ушел в долг, то сотрудник рецепции в программе Абонемент открепляет браслет от данного клиента и выпускает его из парка. Если же образовалась задолженность, то клиент проходит на кассу, оплачивает долг, и только потом кассир открепляет браслет и выпускает клиента.
 
Повторный клиент также должен пройти процедуру  самостоятельной регистрации в web интерфейсе на планшете по своему номеру телефона. После подтверждения номера телефона по коду из смс открывается карточка данного клиента с персональными данными. Также сохраняется список клиентов, которые когда-либо сопровождали вместе с ним ребёнка. На этом этапе существует возможность добавить дополнительных сопровождающих взрослых. В системе также зафиксированы персональные данные детей, которых клиент когда-либо сопровождал, и существует возможность добавить информацию о других сопровождаемых детях. После согласия с правилами посещения парка клиент печатает анкету и следует на кассу.
Дальнейшая схема обслуживания аналогична схеме для новых клиентов.
 

Логика работы web модуля для самостоятельной регистрации

Экранные формы web модуля для самостоятельной регистрации

Шаг 1: Ввод номера телефона
 
Шаг 2: Ввод кода из смс
 
Шаг 3: Ввод ФИО сопровождающего
 
Шаг 4: Ввод даты рождения сопровождающего
 
Шаг 5: Данные сохранены. Выбор кнопки «Далее»
 
Шаг 6: Ввод ФИО сопровождаемого ребёнка
 
Шаг 7: Ввод даты рождения сопровождаемого
 
Шаг 8: Данные сохранены. Выбор кнопки «Есть ограничения»
 
Шаг 9: Заполнение информации об ограничениях
 
Шаг 10: Данные сохранены. Выбор кнопки «Далее»
 
Шаг 11: Согласие с правилами посещения парка. Выбор кнопки «Далее»
 
Шаг 12: Печать анкеты на принтере
 
Шаг 13: Информация о результатах отправки анкеты на печать
ВложениеРазмер
selfreg.7z5.39 КБ

Модуль Интерактивный солярий

 

О модуле «Инфотерминал» в режиме работы «Интерактивный солярий»

Модуль интерактивный солярий позволяет клиенту самостоятельно за несколько минут просмотреть максимально полную и достоверную информацию о доступности ресурсов, выбрать устраивающую его кабинку солярия. Также клиенту предоставляется информация о доступных для него тарифах с возможностью выбора наиболее подходящего.
После выбора клиентом кабинки передается команда на контроллер и он автоматически переводится в режим ожидания. Тарификация начинается с момента включения солярия, которое происходит по команде клиента (нажатие на кнопку). По истечении отведенного тарифом времени кабинка автоматически отключается и переводится в режим остывания.
В модуле есть возможность отображения/сокрытия недоступных кабинок (при отображении отображается и их статус). Остывающие кабинки помечаются, отображается время, оставшееся до момента, когда кабинка станет доступной к использованию.
Модуль «Интерактивный солярий» работает с программой «Абонемент» через посредника – connecter.exe. Передача данных между посредником и модулем «Интерактивный солярий» осуществляется в реальном времени в формате XML через определенный IP и порт (TCPHost и TCPPort в настройках connecter).
Для защиты от несанкционированных запросов используется ключ проверки передаваемой информации, который указывается в настройках модуля «Интерактивный солярий» и программы «connecter».
Управление солярием происходит путем подачи напряжения по замкнутому контуру не более 12В. Отключение происходит при размыкании контура. Периодичность и продолжительность работы солярия управляется программно.
В солярии должна быть установлена кнопка включения, а так же обеспечена возможность подключения контроллера к реле включения солярия. Работы по монтажу контроллера управления солярия проводятся совместно с инженерами, монтирующими и подключающими солярий.
Модуль возможно установить на планшет под управлением ОС Windows. При поддержке планшетом возможности подключения внешних устройств по USB к нему можно подключить считыватель бесконтактных карт для упрощенной авторизации клиента, например Z-2. Планшет и считыватель могут быть обрамлены в антивандальный корпус, который стилизован под интерьер заказчика. Необходимо учесть, что порт для работы со считывателем и порт, для подключения ЗУ не могут быть одним и тем же портом.
 
Была успешная интеграция соляриев от фирмы http://golden-sun-lux.ru/ На объекте используется одна кабина - солярий, а вторая кабина - 3 в 1. На объекте установлено и успешно функционирует ПО Интерактивный солярий, используемое оборудование:
  • Планшет на базе ОС Windows Lenovo 80FX
  • Считыватель бесконтактных карт IronLogic Z-2
 
 

Структурная схема работы интерактивного солярия.

Возможности:
  •  регистрация и авторизация в системе;
  •  возможность упрощенной регистрации клиента с использованием карты клуба;
  •  изменение языка отображаемой информации;
  •  работа с мобильной версией модуля;
  •  настройка модуля
    •  Отображение/сокрытие недоступных ресурсов
    •  Автоматическое начисление абонемента при авторизации
    •  Работы в режиме солярия или режиме «солярий+инфотерминал»
  •  Отображение информации о доступности кабинок
  •  Отображение времени до перехода охлаждающейся кабинки в статус доступной
  •  Выбор клиентом свободной кабинки
  •  Выбор тарифа из доступных для клиента с указанием суммы, которая будет начислена на ФОЛИО
  •  Перевод выбранной кабинки в режим ожидания клиента
  •  Отображение инструкции пользования солярием или другой необходимой информации (текст настраивается, есть поддержка мультиязычности)
 
 

Установка

Здесь будут перечислены специфичные для интерактивного солярия настройки, общую информацию можно найти в описании модуля «Инфотерминал»
 
  •  Веб сервер:
    •  На веб сервер устанавливается ИнфоТерминал (см. мануал по Abonement-online)
    •  На странице настроек (/info/settings/) необходимо сделать следующие настройки:
      •  2.1 Использовать для мобильных устройств (телефон и планшет) – установить флаг, если планируется использовать планшеты
      •  3.1 Режим инфотерминала – установить режим «фитнес»
      •  12.1 Работа с солярием – выбрать режим работы: солярий или совмещенный
      •  12.2 Коды соляриев – необходимо указать коды ресурсов, являющихся соляриями (кабинками)
      •  12.3 Код абонемента для автоматического начиселения при авторизации клиента
      •  Отображать НЕДОСТУПНЫЕ кабинки для клиента – установить/снять флаг по необходимости
  • Настройка ПО Абонемент:
    • У ресурсов, являющихся кабинками необходимо установить флаг «Это солярий»
    • «Настройки»=>«общие параметры»=>двойной клик на организации=>«сервер». Необходимо указать ip адрес пк, на котором запущен GKHostConnect.
  •  Работа с контроллерами:
    •  На контроллеры солярия установить прошивку gk3_trn_3_0_0_16_solariy
    •  Схема подключения контроллеров описана в «Подключение солярия к ПО Абонемент.doc»
    •  Время нахождения контроллера в режиме ожидания задается в файле gkhostconnect.ini.

 [solary]

delay=0

0 - 5 минут; 1 - 15 минут; 2 - 30 минут; 3 - 60 минут

  •  В GKHostConnect для каждого контроллера задаются «время остывания солярия» и «ожидание клиента солярия» в секундах
  •  Демонстрационная схема подключения игрового контроллера в режиме солярия:

 
Тестирование проводилось на версиях ПО:
  •  Абонемент: 1.104
  •  Connecter: 1.35.0.7
Важно: для каждого планшета (или другого инфокиоска со считывателем) для корректной работы авторизации необходимо запускать свою копию Connecter-a и свой набор скриптов.
 
 

Описание работы:

Гостю в программе «Абонемент» продается абонемент на посещение солярия. Гость подходит к инфотерминалу и авторизуется с помощью идентификатора или путем ввода логина и пароля. После авторизации гостю предлагается выбрать одну из доступных в данный момент кабинок солярия. Когда гость выбрал кабинку, он переключается на экран выбора тарифа (одного из доступных в рамках его абонемента). После выбора тарифа ему показывается окно с итоговой информацией (кабинка, тариф (название), стоимость посещения) и инструкция (текст можно редактировать). Гостю предлагается либо подтвердить свой выбор, либо отменить. При подтверждении контроллер переводится в режим ожидания (время ожидания задается настройками). Т.е. ресурс уже занят, но тарификация не началась. После того как посетитель подготовился и зашел в кабинку солярия, он нажимает кнопку включения солярия. После этого начинается тарификация, т.е. солярий включился на установленное в программе Абонемент время. О включении солярия сигнализирует индикатор включения. После окончания тарификации контроллер разомкнет цепь и выключит солярий. При этом индикатор включения погаснет. Если же время ожидания истекло, а кнопка не была нажата, то тарификация не начинается, а ресурс в программе Абонемент становится свободным.
 
 
  •  Авторизация
    •  Ввод логина и пароля
 
 
или
 
  •  Вход с помощью идентификатора
 
 
  •  Просмотр и выбор одной из свободных кабинок, при наличии абонемента 
 
 
  •  Выбор тарифа из доступных в рамках абонемента
 
 
  •  Ознакомление с итоговой информацией (Кабинка, стоимость, название тарифа, инструкция пользования солярием)
 
 
  •  Подтверждение (перевод кабинки в режим ожидания клиента)
  •  Включение солярия непосредственно в кабинке и старт тарификации по кнопке
  •  Автоматическое отключение солярия и перевод кабинки в режим остывания по истечении времени, отведенного
Установка инфотерминала не исключает возможности работы с ресурсами через Абнемент- менеджер. Возможно бронирование кабинки непосредственно из программы. Для этого необходимо выбрать клиента, зайти в контроль присутствия и, выбрав соответствующую кабинку кликнуть по ней левой кнопкой мыши и выбрать один из доступных тарифов. Это, аналогично действиям в инфотерминале, приведет к переводу кабинки в режим ожидания клиента.
 

Планшет-инфотерминал в сборе.

 
 
 
 
 

Это очень интересно...

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

 

Примеры настроек decodecards.dll

Тут будет структурная схема 

Декодирование треков карт с использованием FastScript (fsdecodecard.upas)

 

Назначение 

С версии decodecards.dll 1.29 доступен новый способ декодирования (выдержка из version.txt):
1. Добавлен новый алгоритм декодирования
  CardDecodeType = FastScript
  Алгоритм декодирования программируется в функции decodecard во внешнем файле, задаваемым параметром fsUnit в секции [frf].
  В секции [frf] появился параметр
    fsUnit=fsdecodecard.upas
Таким образом, появилась возможность максимально тонкой настройки принципов декодирования как для Абонемент-TCPCardReader так и для gkhostconnect-GKHOST.
 
Содержимое файла fsdecodecard.upas (болванка из поставки):
function fsUnitVersion:integer;
begin
  result := 1;
end;

function DecodeCard(Track:string; var Code:integer):string;
begin
  Result := Track;
end;

begin

end.
Т.е. при считывании идентификатора, для его декодирования будет вызвана функция DecodeCard() из данного файла.
 
Входные параметры функции:
Track - полный трек полученный от считывателя (типа string),
Code - код типа идентификатора (типа integer, подлежит изменению в теле функции);
Выходные параметры функции:
Result - номер идентификатора представленный строкой, после получения должен безошибочно конвертироваться в Int64 (типа string).
 
В файле скрипта доступны все функции доступные в печатных формах абонемента, что позволяет облегчить написание и отладку скрипта.
Пример печатной формы для тестирования разрабатываемого скрипта см. в приложениях к статье.
 
 

Пример

Пример скрипта декодирования для считывателя штрихкодов подключечённого к контроллеру UCS, для работы со штрихкодами абонементов, возвращающего контрольный символ штрихкода в виде "<контрольный_символ>F":
(обсуждалoсь в задаче #144157)
function fsUnitVersion:integer;
begin
  result := 1;
end;

function DecodeCard(Track:string; var Code:integer):string;
var                                         //Объявление локальных переменных
i,summa,ltt:integer;
ttr:string;                        
symbolz:array of string;                                                          
begin

ttr:=trim(Track);                          //Обрезание трека, в случае попадания пробелов в начало или конец
ltt:=Length(trim(Track));                  //Получение длины обрезанного трека
 

  if(Uppercase(Track)='F5012345678900')    //Проверка на совпадение со спец штрихкодом - картой полного доступа
  then 
  begin
  result:='5012345678900';                 //Возвращается номер карты полного доступа прописанный в gkhostconnect
  Exit;
  end;            
  if(not (Uppercase(Copy(ttr,ltt,1))='F'))  //Если последний символ полученного трека не "F", т.е. штрихкод считался без контрольного символа Code39
  then
   begin              
     if (Copy(ttr,ltt-2,3)=MDCHECKSUM(Copy(ttr,1,ltt-3),1)) //Сравниваем предпологаемую контрольную сумму абонемента с имеющейся в треке
     then result:=Copy(ttr,1,ltt-3)                         //Если совпадают, то возвращаем номер абонемента
     else result:=track;                                    //Если не совпадают, то возвращаем номер как есть (например, если штрихкод - идентификатор специалиста)  
   end               
  else                                      //Если последний символ полученного трека - "F", то сравниваем предпоследний с контрольным символом согласно гост на штрихкод Code39
   begin
      symbolz:=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','-','.',' ','$','/','+','%'];   //Таблица контрольных символов Code39
      i:=1; summa:=0;                 
      while (i<ltt-1) do                   //высчитываем данные для получения контрольного символа
      begin
        summa:=summa+strtoint(Copy(ttr,i,1));
        inc(i);                                
      end;
   if (Uppercase(Copy(ttr,ltt-1,1))=symbolz[(summa mod 43)])   //Производим сравнение символа полученного в треке и высчитанного контрольного символа
   then
   begin               
     if (Copy(ttr,ltt-4,3)=MDCHECKSUM(Copy(ttr,1,ltt-5),1))    //Если совпадают, сравниваем контрольную сумму абонемента
     then
     result:=Copy(ttr,1,ltt-5)                                //Если действительно, данный штрихкод -номер абонемента с контрольной суммой абонемента и с контрольным символом Code39, возвращаем номер абонемента
     else
     result:=Copy(ttr,1,ltt-2)                                //Иначе возвращаем номер как есть, без контрольного символа Code39 (например, если штрихкод - идентификатор специалиста)
   end                  
   else             
   result:='0';                                              //Если контрольный символ не совпадает с рассчитаным по госту, возвращаем пустой трек (пресекаем дальнейшую обработку)                         
   end;
   
end;

begin

end.
 
ВложениеРазмер
Печатная форма для отладки разрабатываемого скрипта декодирования1.63 КБ

Из номера E565A21256805F получаем 21256805 (Matrix-III,Z-2 USB)

Задача декодировать E565A21256805F на Matrix-III RD-ALL или Z-2 USB  и получить 21256805

TcpCardReader

TcpCardReader.ini

[TCP]
PORT=7760
IP=0.0.0.0

[READER1]
COMPORT=9
COMPORTPARAMS=baud=4800 data=8 parity=N stop=1

Prefix=;
Postfix=?
 
decodecards.ini
[general]
usemask=1

[mask]
  card_em = E*

[cards.Card_em]
code=2
CardDecodeType = MASK
mask=*****dddddddd*

 

abonementmanager (папка exe)

decodecards.ini
[general] 
usemask=1 

[mask] 
card=* 

[cards] 

[cards.Card] 
CardDecodeType = mask 
mask=dddddddd 
code=2
abonementmanager.ini
[TCPCardReader]
  PORT=7760
  HOST=127.0.0.1

  UseTCPCardReader=1

 

Настройка decodecards для взаимодействия с Модулем управления турникетами GkHostConnect (с использованием карт Em-marine и считывателей IronLogic Matrix-III RD-ALL (IronLogic Z-2 USB))

TcpCardReader

Например, из трека полученного с кардридера: Em-Marine[5605] 185,05453 получить идентификатор 18505453.

TcpCardReader.ini

[TCP]
PORT=7760
IP=0.0.0.0

[READER1]
COMPORT=3
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?

;Использовать decodecards.dll
useDecodeCards=1
StartTermChars=M
FinishTermChars=#13;#10;#0;
 
decodecards.ini
[mask]
card = arine[*

[cards.Card]
ExcludedPrefix=arine[
code=2
CardDecodeType = LAST8

Abonementmanager (папка exe)

decodecards.ini
[general] 
usemask=1 

[mask] 
card=* 

[cards] 

[cards.Card] 
CardDecodeType = mask 
mask=dddddddd 
code=2
abonementmanager.ini
[TCPCardReader]
  PORT=7760
  HOST=127.0.0.1

  UseTCPCardReader=1

GkHostConnect

decodecards.ini
[general]
usemask=1
TrackResultLog=

[mask]
card = e*

[cards.Card]
ExcludedPrefix=e
code=2
CardDecodeType = MASK
mask=****dddddddd*

 

 

Настройка decodecards для взаимодействия с Модулем управления турникетами GkHostConnect (с использованием карт Mifare и считывателей IronLogic Matrix-III RD-ALL (IronLogic Z-2 USB))

TcpCardReader

 

Например, преобразовываем трек полученный с считывателя: Mifare [40CD941F] 205,37919 1K (0004,08) в следующий вид: 1087214623 (значение из квадратных скобок в десятичном представлении)

TcpCardReader.ini

[TCP]
PORT=7760
IP=0.0.0.0

[READER1]
COMPORT=3
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?

;Использовать decodecards.dll
useDecodeCards=1

StartTermChars=#$5D
FinishTermChars=?#13;#10;#0;
 
decodecards.ini
[mask]
card = *

[cards.Card]
code=2

Abonementmanager (папка exe)

decodecards.ini
[general] 
usemask=1 

[mask] 
card=* 

[cards] 

[cards.Card] 
code=2
abonementmanager.ini
[TCPCardReader]
  PORT=7760
  HOST=127.0.0.1

  UseTCPCardReader=1

GkHostConnect

decodecards.ini

 

[general]
usemask=1
TrackResultLog=

[mask]
card = *

[cards.Card]
code=2
CardDecodeType = MASK
mask=hhhhhhhh*

 

 

Настройка автоматического перевода смены в Абонемент и Установка текущей даты в качестве даты кассовой смены

Настройка автоматического перевода смены в Абонемент

Абонемент позволяет настроить автоматические запланированные переводы смены в определённое время.

Для этого используются: Планировщик Windows (или любой другой предпочитаемый планировщик), .bat файл и .sql файл запроса на перевод смены.

Подготовленные .bat и .sql файлы можно найти в поставке Абонемент по адресу FullversionVerXXX\utils\AUTOSHIFTCHANGE\

Содержание файла autoshiftchange.bat:

set isql="C:\Program Files (x86)\Firebird\Firebird_2_5\bin\isql.exe"
set inputfile=autoshiftchange.sql
%isql% -input %inputfile% 
 
Для корректной работы требуется удостоверится, что строка set isql указывает на isql.exe используемого FireBird.
Также для верности, можно прописать абсолютный путь к .sql файлу.
 
Содержание файла autoshiftchange.sql:
CONNECT 'C:\_UCS\_fitness\ibdata\FITNESS_TEST.FDB' USER 'ucs' PASSWORD 'ucs';
select * from sys$set_context('USER_SESSION','PRODUCT','ABONEMENT');
select * from sp_workshift_change(0,1,'&section=0&usesection=1&hotel=ТУТ ДОЛЖЕН БЫТЬ HOTELS.ID - ИДЕНТИФИКАТОР ОБЪЕКТА');
commit work;

Соответственно, для корректной работы требуется поправить адрес к файлу БД в которой требуется производить перевод смены, а также заменить "ТУТ ДОЛЖЕН БЫТЬ HOTELS.ID - ИДЕНТИФИКАТОР ОБЪЕКТА" на ID объекта (где можно увидеть данный id указанно на рис.1).

 

Рис.1 Вкладка общие параметры Абонемент. Крайнее правое поле - HOTELS.ID

 

Таким образом, при запуске даннного .bat файла на сервере будет запущена процедура перевода смены.

Рекоммендуется подключить запуск autoshiftchange.bat по расписанию через планировщик задач в нерабочее время объекта сразу после операции бэкапирования, и, в таком случае, смена будет переведена к началу рабочего дня.

 

Установка текущей даты в качестве даты кассовой смены

В случае длительных перерывов в работе объектов может понадобиться произвести перевод смены на текущую дату.
Для этого можно использовать специализированную процедуру XX_SHIFT_DODO.

Содержание файла XX_SHIFT_DODO.sql:


create procedure XX_SHIFT_DODO (PARAMSTR varchar(1024))
as
declare variable XINFO varchar(1024);
declare variable SHIFT integer;
declare variable SUCCESS smallint;
declare variable WORKSHIFT double precision; declare variable CURRSHIFT double precision; begin
  xinfo = paramstr;
  xinfo =
SetNamedParam(xinfo,'hotel',getnamedparamdefnum(paramstr,'hotel',1));
  shift = 0;
  CURRSHIFT = floor(d2dbl('now'));
  select WORKSHIFT from sp_get_workshift(:xinfo) into :WORKSHIFT;
  WORKSHIFT = snn(WORKSHIFT);
  while (WORKSHIFT < CURRSHIFT) do
  begin
    select SUCCESS from sp_workshift_change(:shift,1,:xinfo) into :SUCCESS;
    if (SUCCESS<> 1) then break;
    select WORKSHIFT from sp_get_workshift(:xinfo) into :WORKSHIFT;
    WORKSHIFT = snn(WORKSHIFT);
  end
end

 

Чтобы применить данную процедуру на базе, открываем IBExpert и запускаем скрипт в Script Executive:

Рис.2 Прбонемнение скрипта на БД

 

 

После чего находим данную процедуру в базе, открываем ее и выполняем (с параметром  ' '):

Рис.3 Выполнение процедуры

После выполнения процедуры не забываем нажать commit.

Итог: Дата ночного аудита соответствует календарной.

 

 

Операция перевода смены не обратима! ВАЖНО!

Ни в коем случае не проверять работоспособность связки на рабочей базе объекта!

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

Автоматизация аквапарка с помощью инфоплазмы

 

 

 

 

Общее описание функционирования схемы обслуживания клиентов

 
 

Оборудование и используемое ПО

Конфигурация считывателей:

Два бесконтактных считывателя карт IronLogic Z-2 USB либо IronLogic Matrix III RD-ALL

Используемое ПО:

1.      ПО «Абонемент» версии 1.128;

2.      TcpCardReader;

3.      TcpCardReaderGH (вместо службы gkHost);

4.      GkHostConnect (для контроля присутствия);

5.      InfoPlazma (информирование о входе/выходе, вместо турникета).

 

У кассира установлены: ПО «Абонемент», модуль «Инфоплазма» и 2 бесконтактных считывателя карт.

 

Возможный вариант автоматизации аквапарка без использования турникетов

Возможны две схемы обслуживания клиентов:

Разовое посещение одним человеком:

1.      Кассир продает абонемент в программе через функционал «Быстрая продажа»;

2.      Кассир прилепляет браслет клиенту с помощью первого считывателя (см. Рис.1);

3.      Прикладывает данный браслет ко второму считывающему устройству для старта мероприятия (отметка о проходе). О том, что началась тарификация, кассиру сигнализирует модуль «Инфоплазма» (загорается зеленый цвет). «Инфоплазма» выглядит как маленькое окно, которое запускается на том же рабочем месте, что и абонемент (см. Рис.2);

При выходе/доплате клиента - кассир прикладывает браслет ко второму считывателю;

4.      Два варианта событий:

а) Клиент не превысил время, штраф за превышение не начислен. Информация о том, что клиенту доступен выход, сигнализирует «Инфоплазма» (загорается зеленый цвет). Клиент выходит. Ресурс закрывается. Идентификатор открепляется. Обслуживание завершается. (см. Рис.2);

б) Клиент превысил время нахождения в аквапарке. Информация о том, что клиенту не доступен выход, сигнализирует также «Инфоплазма» (загорается красный цвет) (См. Рис.3). Кассир находит клиента в ПО «Абонемент» (прикладывает его карту к считывателю №1), на вкладке «Быстрая продажа» он приостанавливает тарификацию и оплачивает долг клиента. Отмечает выход клиента прикладывая карту к считывателю №2. О том, что клиенту доступен выход, сигнализирует модуль «Инфоплазма» (загорается зеленый цвет). Клиент выходит. Ресурс закрывается. Идентификатор открепляется. Обслуживание завершается.

                           

Рис.2                                                                                                                                                                       Рис.3

 

Разовое посещение группой людей:

1. Кассир выбирает в быстрой продаже столько абонементов, сколько пришло людей;

2. Прежде чем оплатить кассир в быстрой продаже нажимает галочку «трансфер абонементов на плательщика»;

3. Кассир прикрепляет браслеты клиентам при помощи считывающего устройства №1. Кассир прикрепляет столько браслетов, сколько абонементов в чеке;

Далее обслуживание производится по аналогии с вариантом обслуживания: «Разовое посещение одним человеком».

 

Для реализации такой схемы потребуется следующее:

Тип

Наименование

Расходы

   

Кол-во

Цена

Итого

ПО

Модуль управления турникетов

1

15 000 *

15 000

ПО

Плазма монитор

3

15 000 *

45 000

Обор-е

Считыватель

6

5 200 *

31 200

Работы

Работы по подключению

3

5 000 *

15 000

Работы

Доработка шаблона плазмы

1

5 000 *

5 000

       

111 200

 

" * " - Стоймость актуальна на 01.06.2017г.

 

Конфигурация параметров в модулях ПО "Абонемент"

Ссылка с рабочей сборкой Аквапарка:  ftp://ftpint.ucs.ru/Abonement/Samples/Aquapark with module Infoflazma.7z

Абонемент (Abonementmanager.exe)

1) Ключевые параметры в [abonementmanager.ini]:
[database]
  dbname=127.0.0.1/3080:D:\_IBDATA\FITNESS_FANT.FDB
  dbuser = ucs
  DBPassword = oQKH8n0BFUE=

[TCPCardReader]
  PORT=7760
  HOST=127.0.0.1
; Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
  UseTCPCardReader=1

2) Содержание [decodecards.ini]:
[general]
usemask=1
TrackResultLog=

[cards]
  CardPrefix   =
  StaffCardPrefix        = y
  RegularCardPrefix = z
  PDSCardPrefix   = x
  FirstSignEquallyAsLetterA = 0

[cards.Card]
  CardDecodeType = mask
  mask=dddddddddddddd
  bitmask=$7FFFFFFF
  code=2

[cards.RegularCard]
code=22

[cards.StaffCard]
code=21

[cards.PDSCard]
code=24

TcpCardReader (tcpcardreader.exe)

1) Ключевые параметры в [tcpcardreader.ini]:
[application]
AutoStart = 1
AutoHide = 1
[TCP]
PORT=7760
IP=0.0.0.0
[READER1]
COMPORT=6
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
Prefix=;
Postfix=?

;Использовать decodecards.dll
useDecodeCards=1
StartTermChars=M
FinishTermChars=?#13;#10;#0;
 
2) Ключевые параметры в [decodecards.ini]:
[general]
usemask=1

[mask]
  card_EM= arine[*
  card_MI= ifare[*

[cards]
  CardPrefix   = 05015005

[cards.cardREPLACECARDNO]
  ExcludedPrefix=
  code=2
  CardDecodeType = REPLACECARDNO
  NewCardNo = 5678956

[cards.ARRAYOFBYTES]
  CardDecodeType = MASK
  mask=*cccc*
  bitmask=$7FFFFFFF
  MaskType=ARRAYOFBYTES
  code=2

[cards.Card2]
ExcludedPrefix=778=12345678=
code=2
mask=hhhhhhhh*
bitmask=$7FFFFFFF

[cards.Card]
ExcludedPrefix=05015005
code=2
CardDecodeType = MASK
mask=ddd
bitmask=$FFFFFFFF

DecodeTypeEx = 0

[cards.card_EM]
ExcludedPrefix=arine[
code=2
CardDecodeType = LAST9

[cards.card_MI]
ExcludedPrefix=ifare[
code=2
CardDecodeType = MASK
mask=hhhhhhhh*

[cards.RegularCard]
code=22

[cards.StaffCard]
code=21

[cards.PDSCard]
code=24

TcpCardReaderGH (tcpcardreader.exe)

1) Ключевые параметры в [tcpcardreader.ini]:
[application]
AutoStart = 1
AutoHide = 1
[TCP]
PORT=7766
IP=0.0.0.0
[READER1]
COMPORT=1
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
Prefix=> 2058 CARD 0
Postfix=
useDecodeCards=1
StartTermChars=M
FinishTermChars=?#13;#10;#0;

[TCPCARDREADER]
Prefix=#59;
Postfix=#63;
useDecodeCards=1
StartTermChars=;
FinishTermChars=?#13;#10;#0;

2) Содержание [decodecards.ini]:
[general]
usemask=1
TrackResultLog=
[mask]
  card_EM= arine[*
  card_MI= ifare[*
  card = 05015005*
  card2= 778=12345678=*
  cardfile=file://cards.txt
[cards]
  CardPrefix   = 05015005
  CardPrefix   = 750=
  CardPrefix   = 778=999999999=
  CardPrefix   = 778=123456789=
  StaffCardPrefix        =  778=87121234=
  StaffCardPrefix        = 778=201050001
  RegularCardPrefix = 778=444444444=
  PDSCardPrefix   = 811q
[cards.cardREPLACECARDNO]
  ExcludedPrefix=
  code=2
  CardDecodeType = REPLACECARDNO
  NewCardNo = 5678956
[cards.ARRAYOFBYTES]
  CardDecodeType = MASK
  mask=*cccc*
  bitmask=$7FFFFFFF
  MaskType=ARRAYOFBYTES
  code=2
[cards.Card2]
ExcludedPrefix=778=12345678=
code=2
mask=hhhhhhhh*
bitmask=$7FFFFFFF
[cards.Card]
ExcludedPrefix=05015005
code=2
CardDecodeType = MASK
mask=ddd
bitmask=$FFFFFFFF

[cards.card_EM]
ExcludedPrefix=arine[
code=2
CardDecodeType = LAST9
[cards.card_MI]
ExcludedPrefix=ifare[
code=2
CardDecodeType = MASK
mask=hhhhhhhh*
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24

Модуль GKHostConnect (gkhostconnect.exe)

1) Содержание [decodecards.ini]:
[general]
usemask=1
TrackResultLog=
[mask]
  card_all = *
[cards.card_all]
code=2
CardDecodeType = MASK
mask=ddddddddddd

[cards]
  CardPrefix   = 05015005
  CardPrefix   = 750=
  CardPrefix   = 778=999999999=
  CardPrefix   = 778=123456789=
  StaffCardPrefix        =  778=87121234=
  StaffCardPrefix        = 778=201050001
  RegularCardPrefix = 778=444444444=
  PDSCardPrefix   = 811q

[cards.cardREPLACECARDNO]
  ExcludedPrefix=
  code=2
  CardDecodeType = REPLACECARDNO
  NewCardNo = 5678956

[cards.ARRAYOFBYTES]
  CardDecodeType = MASK
  mask=*cccc*
  bitmask=$7FFFFFFF
  MaskType=ARRAYOFBYTES
  code=2

[cards.Card2]
ExcludedPrefix=778=12345678=
code=2
mask=hhhhhhhh*
bitmask=$7FFFFFFF

[cards.Card]
ExcludedPrefix=05015005
code=2
CardDecodeType = MASK
mask=ddd
bitmask=$FFFFFFFF

DecodeTypeEx = 0

[cards.RegularCard]
code=22

[cards.StaffCard]
code=21

[cards.PDSCard]
code=24
 
 
2) Содержание [sheltergkhost.ini]:
[tourniquet_0]
number=Аква
device=32
relay=88
direction=0
guesttype=0
identtype=0
IgnoreLastSymbolAtBarCode=0
devicetype=0
entranceState=41
exitState=42
BothDirectionState=43
CmdForAccessDenied=00
CheckDirect=1
ProhibitExitIfMinusBalance=1
ProhibitExitIfPositiveBalance=0
ProhibitExitIfProkatExist=0
ProhibitExitIfIssuedCompleteExist=0
DeactivateCardByExit=1
ActivateCardForShkaff=0
Immediately_to_finish_event=0
RESOLVEDDELAYBETWEENENTRANCE=0
TIMEOUTBETWEENENTRANCEANDEXIT=0
Grouppass=0
GenEventWhenAccessIsAllowed=1
AbonCodesForDeactivateCardByExit=
AbonCodesForNotDeactivateCardByExit=
VipCodesNotForDeactivateCard=
Duration_of_cooling_of_a_sun_deck=0
WaitDuration=0
ProhibitExitIfNoCardRead=1
DisableTraceIntermediateGuestbalance=0
CloseResourcesWhenEntrance=
CloseResourcesWhenExit=
allaccesscards=
IPCamURL=
IPCamLogin=
IPCamPassword=
VipCodesWhenExit=
VipCodesWhenEnter=
ProhibitVipCodesWhenEnter=
ProhibitVipCodesWhenExit=
SearchDiaryForInfoTerminal=0
SolaryProtocolVersion=0
WelcomeStr=Поднесите        браслет
ToBlockWhenAccessDenied=1
DefaultPKCodeForEmptyCard=
RequiryDiaryStaffWhenEntering=0
UsePrinterAfterEntrance=0
UsePrinterAfterExit=0
AnotherCardOwnerCanNotCreateEvent=0
AccessDeniedForAnotherCardOwner=0
ProhibitExitIfNotLastVisit=0
ProhibitExitIfLastVisit=0
AfterEventReportName=
UseChildOffset=1
CheckBalanceClosedResourcesWhenEntrance=0
AbonCodesForCloseResourcesWhenEntrance=
AbonCodesForCloseResourcesWhenExit=
AbonCodesWhenExit=
ProhibitAbonCodesWhenExit=
NeedCheckAccessBySQL=0
SQLFORCHECKACCESS=
SQLFORPASS=
CanAutoActivateAbonement=0
ExtraCheckAccessForExitBySQL=
AttendanteTimeOutAfterExit=0
3) Содержание [gkhostconnect.ini]:
[AppService]
;Имя сервиса
DisplayName = UCS Служба GKHOSTConnect
;Внутреннее имя сервиса (одно слово. Только латинские символы и цифры. Начинается с буквы)
ServiceName = UCSGKHOSTConnect
Description = Служба-интерфейс контроля доступа UCSGKHOSTConnect

[AppService.Dependencies]

[Application]
AutoHide=0

[log]
name=.\log\gkhostconnect.log
level=30
debuglevel=30
ByMonthes=1
ByDays=1
BYHOURS=1

[LOCK.SERVER]
  TCPHost = 127.0.0.1
  TCPPort = 1111

[general]
  Program           = UCS Shelter
  EnterpriseTitle   = Фитнесс-центр
  EnterPriseAddress = Москва
  EnterprisePhone  =  777-77-77

need_reload_all_dict=0

[database]
   dbname=127.0.0.1/3080:D:\_IBDATA\FITNESS_FANT_128.FDB
;dbname=aqua/3080:D:\_UCS\_FITNESS\IBDATA\FITNESS_TEST.FDB 
dbuser = ucs
dbcharset = WIN1251
DBPassword = oQKH8n0BFUE=

[devices]
CheckTurnDirect=0
TurniquetTimeOut=10
ToProcessAllCharsInCard=1
NoProcessedCardsNo=CF

[gkhost]
host=127.0.0.1
port=7766
local=0
CanSendData=1

[child]
CategCode=checkin,дет,
cmdOffset=12
DeactivateCardByExit=1
AbonCode=

[solary]
delay=0

[lockcontrol]
dllname=C:\Projects\DELPHI7\GKHOSTCONNECT\GKHOSTCONNECT2\mitucs.dll

[welcome]
delay=10
text=Поднесите        браслет

[tcpserver]
port=5560
ip=0.0.0.0
enabled=0

[udpserver]
ip=0.0.0.0
port=57145
enabled=0

[messages]
ProhibitMinusBalance = - у Вас долг
ProhibitPositiveBalance = - У Вас положительный баланс
[locker_parser]
  Mask = ********LL
         ABCDEF1201 
  Names = Names = &Locker=L
[Описание параметров Card_parser]
  Names = &Locker=L
  &Locker=L  - признак открытого (0) или закрытого (1) шкафчика

[FRF]
NotUseDisplay2Text=0
[Localization]
CurrentLanguage=default

ИнфоПлазма (Monitor.exe)

1) Содержание [MonitorSettings.xml]:
<Monitor>
        <Forms>  
                <Form left="0" top="0" Width="100" Height="50" Caption="Инфо" ID="1" BorderStyle="0" WindowState="0">
                        <ZOrder>-1</ZOrder>
                        <ShowPanel>0</ShowPanel>
                        <Periodicity>1</Periodicity>
                        <SQLText>
select first 1 IIF(getnamedparamdef(paramstr,'AccessGranted','0')=1,'lightgreen','red') cl
from access_control_log
where action_type='card' and idroom=1
and   1/24/60/60>d2dbl('now')-regdate
order by regdate desc
                        </SQLText>
                        <XSLT>plazma.xsl</XSLT>
                        <HTML>cache\plazma.html</HTML>
                        <HIDECURSOR>0</HIDECURSOR>
                        <FormID>1</FormID>
<FORM_FOLDER>cache\Photo</FORM_FOLDER>
                </Form>                
        </Forms>
</Monitor>
2) Содержание [plazma.xml]:
<?xml version="1.0" encoding="WINDOWS-1251" ?>
<xsl:stylesheet 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://user.com/namespace"
  version="2.0"
>
<xsl:template match="/">
<header>
  <META http-equiv="Content-Type" CONTENT="text/html; charset=WINDOWS-1251" />
</header>
<xsl:for-each select="RecordSet/Record">
<body > 
<xsl:attribute name="BGCOLOR">              
                <xsl:value-of select="CL"/>
            </xsl:attribute>
</body>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
 

Автоматизация батутной арены с помощью инфоплазмы

 

 

 

 

 

Автоматизация батутной арены с помощью инфоплазмы

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

Техническое обеспечение объекта

Рабочее место, Сервер

Intel Pentium G4400,3.3ГГц, 8 ГБ DDR4, 500 Гб, Microsoft Windows (Пример:https://www.oldi.ru/catalog/element/0500424/)
Для подключения устройств работающих по RS232 устанавливаем контроллер PCI-E to RS232.
Важно чтобы материнская плата поддерживала  установку дополнительных плат  расширения  PCI-E или PCI (Пример:https://www.oldi.ru/catalog/element/0208927/)

Монитор Samsung S22D300NY (Пример:http://www.oldi.ru/catalog/element/0283785/). Блок бесперебойного питания ,клавиатура, мышь.

Локальная сеть Ethernet Устанавливаем 8-ми портовый коммутатор TP-LINK TL-SG108. (Пример:http://www.oldi.ru/catalog/element/0218467/)

 

Входная группа

Турникет-трипод TTR-07.1 с автоматической «Антипаникой» 1 шт
NES-100-12, Блок питания стабил. 12В; 8,5А; степень защиты IP20 для турникетов серии PERCo-TTR-07 1 шт
Анкер оригинал PERCo PFG IR M10*15 , болт для крепления калитки и турникета PERCo 4 шт
Игровой контроллер Ethernet UCS 2 шт
Считыватель IronLogic Matrix III RD-ALL 2 шт
Программное обеспечение «Модуль интерфейс с турникетом» 1 шт

К месту установки турникета требуется подводка 2 сетевых проводов UTP5 от коммутатора:

- 1 провод ПВС 2*1,5 для питания турникета 12В от места установки блока питания
- 1 провод UTP5 от места установки блока ручного управления

ИнфоМонитор

Плазменная панель подключается как второй монитор через HDMI кабель.
Программное обеспечение «Инфоплазма». Настройка под требования Заказчика.

Для ИнфоМонитора (под частный случай его применений на батутных аренах) разработан специализированный скрипт, который необходимо применить к БД "Абонемент" (через IBExpert->Script Execute) перед его использованием:

create or alter procedure SPR_MONITOR_GNOM (
    RCODE_LIKE varchar(10))
returns (
    N integer,
    FULLNAME D_LARGESTR,
    NUMBER D_LARGESTR,
    GUEST integer,
    IDROOM integer,
    D_FINISHDATE double precision,
    NUMBER_NOMER D_LARGESTR)
as
declare variable FIRSTDIARY_STARTDATE double precision;
declare variable ABONEMENT_PACKAGE integer;
begin
  N=1;
  for
select  distinct g.fullname,d.guest,d.idroom from diary d
        inner join rooms r on r.id = d.idroom
        left join guests g on g.id = d.guest
        left join users u on u.guest = g.id and u.enabled = 1
        left join staff sf on sf.guest = g.id and sf.enabled = 1
        where  d.status=1
        and  r.number like :RCODE_LIKE
        and u.id is null
        and sf.id is null
        and g.enabled=1
  into :fullname,:guest,:idroom do
  begin
  for
    select min(d.startdate), d.abonement_package from diary d
    where d.idroom = :idroom and d.guest = :guest and d.status =1
    group by d.abonement_package
    into :firstdiary_startdate,:abonement_package do
   begin
    select first (1) d.startdate + p.diaryduration-5/24/60,'№'||a.number||' '||:fullname||' '||info from diary d
    left join abonement_packages ap on ap.id = d.abonement_package and ap.enabled = 1
    left join packages p on p.id = ap.package and p.enabled = 1
    left join rooms r on r.id = d.idroom
    left join abonements a on a.id=ap.abonement
    where d.abonement_package = :abonement_package
      and r.id = :idroom
    order by d.id 
    into :d_finishdate, number_nomer;
    suspend;
    N=mod(N,2) +1;
  end
  end
end

Внешний вид модуля "ИнфоПлазма" используемой на батутной арене

Рис.2.  Фотография ИнфоПлазмы используемой на батутной арене

Основы работы кассира в ПО "Абонемент"

1.1. Регистрация клиента. "Список клиентов" -> "Добавить клиента":

 

1.2. Продажа абонемента "Посещение 1 час". "Профайл клиента" -> "Фолио" -> "Быстрый чек" -> "F12" -> "Наименование абонемента":

 

1.3. Отметка клиента о прибытии (в ручном режиме). "Профайл коиента" -> "Контроль присутствия" -> "Ресурс "Вход"":

 

1.4. Аналогичный функционал возможно реализовать и с помощью турникета. Если у клиента есть штраф за превышение времени, турникет выпустит клиента, но клиенту необходимо будет пройти на кассу. На кассе необходимо найти клиента с помощью браслета и считывающего устройства, зайти в: "Контроль присутствия" -> "Ресурс «Вход»"-> "Приостановить тарификацию":

 

1.5. Далее оплатить штраф:

 

1.6.Бронирование мероприятий на шахматке. "Список клиентов" -> "Добавить клиента" (Обязательные поля отмечены цветом):

 

1.7.Создание индивидуального мероприятия. "Шахматка мероприятий" -> "Выбор даты\времени и кабинета" -> Двойной клик левой кнопкой мыши:

 

 

Примеры создания абонементов в ПО "Абонемент"

2.1. Разовое посещение. Карточка типа абонемента:

2.2. Карточка тарифа:

2.3. Карточка услуги №1:

2.4. Карточка услуги №2:

2.5. Детализация стоимости от расписания:

3.1.Абонемент на 4 посещения. Карточка типа абонемента:

3.2.Карточка тарифа:

3.3.Карточка услуги:

 

FAQ

Кассир продает на один из браслетов услугу (абонемент). Далее посетитель прислоняет к считывателю браслет и проходит через турникет на батут, также с этого момента начинается повременная тарификация.

Вопрос: по одному браслету могут проходить несколько клиентов?
Ответ: по одному браслету будет проходить один клиент.

Этот браслет должен отображаться на экране (который будет установлен на арене), с временем начала и временем конца. После окончания времени, на мониторе выделится название браслета, будет подсвечено определенным цветом. Чтобы посетители и тренеры обращали внимание на данную информацию.
Если у клиента закончилось время, он прислоняет браслет к считывателю, проходит через турникет, повременная тарификация останавливается.
Кассир, получив от клиента браслет, выводит его из системы для продажи следующему посетителю. А также, для того чтобы кассир мог отследить через сколько и у какого браслета закончится время.

Использование Абонемент в качестве ПДС системы для r_keeper 7

Описание

Рис.1 Принципиальная схема взаимодействия r_keeper с Абонемент, как с ПДС системой.

 

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

В данной связке, из Абонемент во внешнюю систему (r_keeper) будет передана информация: ФИО гостя, текущая скидка гостя.

Из внешней системы, в Абонемент будут переданы информация о потратах гостя во внешней системе (r_keeper), о факте применённой скидки и возможно пополнение бонусного счёта в Абонемент.

 

Доступные операции:

Получение информации по карте в  r_keeper, происходит также как и для прочих ПДС систем - карту считывают в главном меню / на окне информация по ПДС карте / в режиме редактирования заказа.

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

При оплате заказа с указанием данной карты происходит передача информации о сумме потрат и о факте применённой скидки.

 

Настройка

Конфигурация FarCards

Используется Farcards версии 6.04

В рабочую директорию FarCards необходимо добавить ConvertFC6to5.dll, ConvertFC6to5.ini, SH_CARDS2.dll, sh_cards2.ini. (Доступны в прикреплённых файлах данной статьи и по пути Fullversion\_INTERFACE\PDS\SH_Cards в поставке Абонемент версии 138 и выше)

В FarCards.ini установить:

[FarServer]
Type = 1
DLL=ConvertFC6to5.dll

В ConvertFC6to5.ini установить:

[dll]
dllname=SH_CARDS2.dll

Основные настройки связи с Абонемент настраиваются в  sh_cards2.ini. Пример содержания:

[DATABASE]
;Данные подключения к БД Абонемент
dbname=192.168.1.100/3080:D:\_UCS\FITNESS\IBDATA\FITNESS.FDB
dbuser = ucs
DBPassword = oQKH8n0BFUE=

[PROFILE]
;  Диапазоны номеров воспринимаемых как

;  Номер карты гостя
   LockCardRange = 1-2147483646
;  Номер комнаты
;  RoomRange  = 1-999
;  Номер фолио
;  FolioRange = 1000-999999

;  (Более не используется)
;  DiscCardRange = 10000000-99999999
;Префиксы добавляемые r_k (не актуально)
;  DiscCardAddPrefix = 77777770
;  LockCardAddPrefix = 0
;  RoomAddPrefix     = 5550
;  FolioAddPrefix    = 22220
;Префикс добавляемый Абонемент (не актуально)
;  FolioPrefix = 0

;  Код скидки передаваемый по умолчанию (если у клиента нет текущих скидок, передаваться будет данный код)
  defaultdiscountcode =11

  ;;Для r_k 7 не изменять
  NeedConvertIdent = 1
  AutoShelterConnect = 1
  ;;Интерпретировать достигнутый уровень как текущий. С версии 1.0.0.2
  UseLevelDiscountCodeAsCurrentDiscountCode=1
  ;Проверять наличие карты при интерпретации достигнутого уровня как текущего. По умолчанию 0-не проверять. С версии 1.0.0.3
  CheckCardAvailability = 0

[child]
;Код категории детских абонементов
CategCode=Дет.
;Код неплательщика для отображения в r_keeper для детских абонементов
RKUnpay = 10

[Adult]
;Код неплательщика для прочих клиентов
RKUnpay = 12

[rk]
;Передавать информацию только для присутствующих гостей
onlyattendance=0
;Настройка кодировки
CharToOemHolder=0
[Localization]
CurrentLanguage=default

 

 

Как это выглядит:

На рис. 2-3 в Абонемент заведён гость, к данному гостю прикреплён идентификатор с типом "Гостевая карта", и назначена текущая скидка "r_keeper discount 10%" с кодом "7".

Рис.2 Гость в Абонемент, и прикреплённый к нему идентификатор

Рис.3 Текущая скидка гостя в Абонемент

В r_keeper заведена скидка с кодом равным коду скидки в Абонемент. В данном примере, скидка 10% с кодом "7" показана на рис. 4.

Вся информация получаемая по карте гостя при считывании её на кассе r_keeper представлена на рис. 5.

Рис. 4 Свойства скидки в r_keeper

Рис.5 Информация по карте полученная из Абонемент

История транзакций клиента с участием ПДС карты будет доступна на вкладке "ПДС-транзакции" в детализации гостя в Абонемент. Пример такой детализации представлен на рис.6.

Рис.6 История использования карты ПДС

 

ВложениеРазмер
Сборка библиотек FarCards2.42 МБ

Как проверить стабильность сетевого подключения командой ping

Как проверить стабильность сетевого подключения командой ping

В ходе работы с ПО "Абонемент", специалисты часто сталкиваются с проблемами в работе сетевой инфраструктуры.
При наличии неисправностей в работе сети, в ПО "Абонемент" в свою очередь могут возникнуть проблемы с соединением с БД "Абонемент", с пробитием чеков на рабочем месте и т.д.
Для диагностики сетевого подключения можно использовать проверочный скрипт ping.bat, работающий в фоновом режиме и формирующий в текстовый файл "1.txt" лог следующего вида:

...
DD.MM.YYYY HH:MM:SS: Ответ от XX.XXX.XXX.XXX: число байт=32 время=Nмс TTL=NNN
DD.MM.YYYY HH:MM:SS: Ответ от XX.XXX.XXX.XXX: число байт=32 время=Nмс TTL=NNN
DD.MM.YYYY HH:MM:SS: Ответ от XX.XXX.XXX.XXX: число байт=32 время=Nмс TTL=NNN
...

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

Применение скрипта

Скрипт ping.bat имеет следующий вид:

@echo off
setlocal
1>nul chcp 866
:1
1>nul timeout /t 1
for /l %%i in (0,1,9) do (
for /f "tokens=*" %%j in ('"ping -n 1 ya.ru | findstr "TTL=""') do (
if %%i geq 9 goto:1
call:2 %%j
))
goto:eof
:2
1>nul chcp 1251
1>>1.txt echo %date% %time%: %*
1>nul chcp 866

Вместо выделенного значения подставляем IP-Адрес Сервера БД "Абонемент" и запускаем скрипт.
Как вариант использования, ping.bat можно поставить в Автозагрузку или создать задачу в планировщике заданий MS Windows.

 

ВложениеРазмер
ping.zip351 байт

Перевод ПО "Абонемент" на иностранный язык

 

Перевод ПО "Абонемент" на иностранный язык

Для перевода ПО "Абонемент" на иностранный язык, используются "*.sql" скрипт для базы данных и файл локализации с расширением "lng" который необходимо расположить в директории установки ПО "Абонемент": "../exe/lng/".
 

Скрипт для БД "Абонемент"

Внимание!!! Скрипт выполняется на чистой базе данных ПО "Абонемент" актуального релиза, в случае если его необходимо применить к базе с клиентами или иных частных случаях - необходимо сообщить об этом в Техническую поддержку ПО "Абонемент" для согласования изменений в скрипте.

Для применения скрипта (пример: Translate_DB_to_English.sql ) к БД Абонемент, необходимо произвести действия указанные в инструкции по ссылке: http://support.ucs.ru/ru/node/8732 (см. Пример выполнения скрипта перевода базы на английский язык).
Выполнится скрипт, после чего появится информационное сообщение о его успешном выполнении (В случае если скрипт выполнится с ошибками - необходимо сообщить об этом в Техническую поддержку ПО "Абонемент" для ее устранения).
После выполнения перечисленных выше действий - закрываем IBExpert.

 

Файл локализации для ПО "Абонемент"

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

 

Рис.1. Запускаем ПО "Абонемент", на нижней панели интерфейса выбираем из выпадающего списка "Язык" наш файл локализации (например: SM_ENGLISH_129).

 

Рис.2. После чего видим, что наш интерфейс перевелся на иностранный язык.

Готово.

Уважаемые коллеги (дилеры)!

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

Мы учтем ваши предложения и скорректируем файлы локализации в следующих релизах.

Заранее благодарим!

Удаление логов из БД "Абонемент"

 

Удаление логов из БД "Абонемент"

  При продолжительном использовании ПО "Абонемент" работающего в связке с утилитами gkHost и GkHostConnect (модуль управления турникетами), вся информация о каждой попытке прохода сохраняется в таблице Access_Control_Log, которая может достигать больших размеров (порядка нескольких гигабайт).

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

  На Рисунках 1,2,3 отражена последовательность действий в программе IBExpert для уточнения размера служебного файла (имеется ли смысл в применении данного скрипта).

Рис.1 "Заходим в программу IBExpert, щелкаем левой кнопкой мыши (один раз) по алиасу нашей рабочей базы в списке "Database Explorer", далее  нажимаем "Services" -> "Database Statistics";

Рис.2 "Откроется окно в котором нужно будет нажать на кнопку "Retrieve Statistics";

Рис.3 "Далее будет выведена статистика базы, переходим на вкладку "Tables" и обращаем внимание на колонку "Size, bytes".

 

Соответственно из "Рис.3" видим - файл ACCESS_CONTROL_LOG занимает 4.8 Гб, понимаем, что применение скрипта в данном случае актуально.

Удаление логов взаимодействия оборудования с БД "Абонемент"

Скрипт состоит из 2 частей ("*.bat" и "*.sql"):

Содержание файла "AutoDelete_Access_Control_Log.bat":

set isql="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\isql.exe"  
set sqlPath=%~dp0
set sqlFile=%sqlPath%AutoDelete_access_control_log.sql
%isql% -input %sqlFile% 

Содержание файла "AutoDelete_Access_Control_Log.sql":

/*Удаляет логи взаимодействия с оборудованием.
Оставляет только последние 90 дней*/
CONNECT '127.0.0.1/3080:D:\_FITNESS\IBData\FITNESS.FDB' USER 'ucs' PASSWORD 'ucs';
delete from access_control_log acl where acl.regdate < d2dbl('now') - 90;
commit work;

Удаление логов действий пользователей из БД "Абонемент" до заданной даты

Совместно со скриптом указанным выше, возможно (на усмотрение Заказчика) удаление логов действий пользователей в БД "Абонемент".

Содержание файла "AutoDelete_IBHistory_Log.bat":

set isql="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\isql.exe"  
set sqlPath=%~dp0
set sqlFile=%sqlPath%AutoDelete_IBHistory_Log.sql
%isql% -input %sqlFile% 

Содержание файла "AutoDelete_IBHistory_Log.sql":

/*Удаляет логи до заданной даты. */ 
CONNECT '127.0.0.1/3080:D:\_FITNESS\IBData\FITNESS.FDB' USER 'ucs' PASSWORD 'ucs';
delete from sys_history;
delete from sys$log sl where sl.regdate<d2dbl('ДД.ММ.ГГГГ');
commit work;

Вся история изменений до ДД.ММ.ГГГГ будет удалена.

Скрипт AutoDelete_IBHistory_Log.sql, как и в случае AutoDelete_Access_Control_Log.sql, можно настроить на периодическое выполнение через "Планировщик задач" MS Windows.

При выполнении скрипта отдавайте себе отчет, что вносимые изменения необратимы! Рекомендовано все скрипты выполнять изначально на тестовой БД!

 
* - В строках выделенных желтым цветом необходимо указать путь к вашей базе.
  После выполнения "AutoDelete_Access_Control_Log.bat" необходимо будет сделать backup/restore (Чтобы изменился размер базы данных ПО "Абонемент").
 
 

Пример использования скрипта, в результате которого будет поддерживаться актуальная информация о проходах за последние 90 дней в таблице Access_Control_Log БД Абонемент(Создание задачи в "Планировщике задач" MS Windows):

***Данный пример, также актуален для использования скрипта AutoDelete_IBHistory_Log.sql***
Рис.4 "Заходим на сервере БД в <Планировщик заданий> MS Windows, переходим в списке  в <Библиотеку планировщика> (слева) и в списке <Действия> (справа) нажимаем <Создать задачу...>
 
Рис.5 На вкладке <Общие> указываем <Имя:> задачи и параметр <Настроить для:> - соответствующую операционную систему 
 
Рис.6 Переходим на вкладку <Триггеры>, нажимаем кнопку <Создать...> и указываем параметры триггера: "Ежедневно", "Повторять каждые: 1 дн.", "Включено" и нажимаем кнопку "ОК"
 
Рис.7 Переходим на вкладку <Действия>, нажимаем кнопку <Создать...> и указываем параметры действия: "Запуск программы", "Программа или сценарий: указываем путь к *.bat файлу" и нажимаем кнопку "ОК"
 
 
Рис.8 После создания действия, нажимаем кнопку  "ОК" - задача создана.

Выгрузка клиентов с фотографиями

Скрипт для выгрузки клиентов  с фотографиями ссылка на файл sql

Результатом работы данного скрипта будет: 

1) Формирование файла csv со списком клиентов.

2) Выгружено фотографии в файлы с расширением jpg. Наименование файлов равно ID  клиента в программе.
 

Исправление ошибки отображения кириллических шрифтов.

Данная ошибка является ошибкой ОС, а не конкретного ПО, поэтому наблюдается одновременно в интерфейсе разлиных программ (Abonementmanager, Freports и многих других): вместо русских символов мы видим множество знаков "?" или нечитаемые иероглифы. Вероятнее всего, это значит, что система (операционная) установлена криво, либо же устанавливалась изначально не русифицированная версия, например. 

Потребуется доступ к ПК с правами администратора, дальше действуем по инструкции:

  1. Запускаем редактор реестра: Пуск -> "Выполнить" и вводим regedit​            

Находим в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage строковый параметр1252, и меняем его значение на c_1251.nls

  1. В папке C:\WINDOWS\system32\ находим файлы С_1251.nls и С_1252.nls. Делаем их резервную копию. С_1251.nls дополнительно копируем в другое место и переименовываем в С_1252.nls

  2. Файл С_1252 в папке C:\WINDOWS\system32\ удаляем. Копируем измененную версию файла С_1252 в папку C:\WINDOWS\system32\.

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

  1.   Идём в Пуск -> Панель управления -> Язык и региональные установки -> Дополнительно. Выбраем в пункте "Текущий язык программ, не поддерживающий Юникод" пункт "Русский (Россия)". Если в данном пункте уже стоит русский язык, то может помочь установка английского языка, перезагрузка, установка русского снова, снова перезагрузка.

Загрузка клиентов из сторонних программ в Абонемент

Мы все чаще сталкиваемся с Заказчиками, которые переходят на использование программы Абонемент с других программных продуктов. Для таких Клиентов возможен перенос определенных данных.

В упрощенном режиме  XML файла загружаются следующие поля: ФИО, дата рождения, телефон, e-mail, пол... И служит лишь для того что бы сохранить список клиентов. Данные работы не требуют специфических навыков и могут быть выполнены инженером при установке программы Абонемент. Для этого используется утилита ImportAB.

Для тех Заказчиков, кто переходит с программы A&A возможен более детализированный (развернутый) режим. Загружаются такие сущности, как: справочники услуг, абонементов, групп абонементов. Информация о клиенте: персональные данные, абонементы, остатки по ПТ, остатки по балансам, все приобретенные услуги (детализация по услугам). Процесс загрузки из A&A , является более сложным, многозвенным процессом. Трудностей добавляет множество неоднозначностей хранящихся в базе A&A. Все они правятся в промежуточной базе конвертации. Под большинство ошибочных ситуаций уже разработаны скрипты коррекции. Но бывают моменты, которые необходимо править в индивидуальном порядке под конкретную базу данных. В связи с этим данный процесс загрузки требует высоко квалифицированных технических навыков и знания БД. Данные работы выполняют только сотрудники компании UCS, и только после согласования условий и сроков выполнения работ. Сперва, не менее 2 недель готовится тестовая база  с перекаченными данными. Затем. она устанавливается Заказчику и проводится обучение Абонементу. Время финального переноса данных из A&A в Абонемент может достигать до 6 часов и производится ночью перед запуском объекта. Этот процесс длителен и трудоемок, но только так можно получить переход от одной системы управления к другой без потери ключевых данных!

ImportAB. Импорт данных в базу Абонемента

При автоматизации уже работающих объектовчасто возникает задача по загрузке данных в базу данных Абонемент. Для загрузки не сложной структуры данных в комплек FullVersion входит утилита Import AB.

Для использования утилиты Import AB, предварительно нужно преобразовать данные в файл формата XML, это можно сделать с помощью функционала Excel.

В файле schema_abonement_load.txt, входящем в сборку утилиты, можно увидеть пример структуры передаваемых данных.

В случае, если необходимо добавить только имена, фамилии и отчества клиентов, структура упрощается:

Нашей целью будет перенести данные из excel файла в текст и придать им следующий вид для удобства:

Для этого откроем xls файл с данными и с помощью функции «СЦЕПИТЬ» прибавим необходимые префиксы/постфиксы:

После этого можно копировать получившиеся поля в xml файл и загружать его через importab.exe, используя стандартный angel.udl

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

1. Для начала необходимо в Excel создать и заполнить таблицу данных в соответствии со структурой данных. Используйте, пожалуйста, для этого пункт меню Вставка/Таблица (с заголовками).

2. Теперь откройте вкладку Разработчик, нажмите кнопку Источник и укажите файл-источник XML. При необходимости включите пункт меню Разработчик в Настройках Excel (Файл-Параметры-Настройка Ленты).

3. Сопоставьте элементы схемы и колонки таблицы, перетащив элементы на соответствующие заголовки колонок.

По факту нам нужно организовать XML файл следующей контрукции:

<ABONEMENT_LOAD><WORKTABLES><GUESTS><RECORDSET>
<RECORD> <NAME>Абржевич</NAME> <NAME1>Наталья</NAME1> <PHONES>89198741083</PHONES> <BIRTHDATE>19.05.1992</BIRTHDATE> </RECORD>
<RECORD> <NAME>Абрамов</NAME> <NAME1>Вадим</NAME1> <PHONES>89512353404</PHONES> <BIRTHDATE>14.12.1994</BIRTHDATE> </RECORD>
<RECORD> <NAME>Васин</NAME> <NAME1>Николай</NAME1> <PHONES>8-919-571-3669</PHONES> <BIRTHDATE>16.07.1973</BIRTHDATE> </RECORD>
</RECORDSET></GUESTS></WORKTABLES></ABONEMENT_LOAD>

4. И последний шаг: экспортировать данные таблицы в XML-файл с помощью контекстного меню. Встаньте на любую ячейку таблицы, нажмите правую кнопку мыши, выберите XML/Экспорт… и сохраните XML-файл под нужным именем. Сохраните Excel-файл для последующего редактирования и дополнения. 

Важно! Чтобы файл был в кодировке ANSI

Лицензирование. Модули Шелтер и Абонемент в ключе защиты

 

 

Модули Шелтер и Абонемент в ключе защиты

а также способ их лицензирования

 

Проект Модуль Наименование в прайсе Код l.ucs.ru  Наименование на l.ucs.ru Примечание
1 1 Все функции Connecter 232 Shelter модуль Абонемент-Коннектор ПО (полное API) Лицензируется по количеству одновременно запущенных экземпляров ПО
1 2 Абонемент-Онлайн 213 Shelter модуль Абонемент-Онлайн ПО Один модуль на объект
1 3 Инфо-киоск (с оплатой) 210 Shelter модуль Абонемент – Инфо-киоск ПО Лицензируется по количеству киосков на объекте
1 4 Инфо-киоск (без оплаты) Инфотерминал 203 Shelter модуль Абонемент – Инфотерминал ПО Лицензируется по количеству киосков на объекте
1 5 Монитор для тренера 200 Shelter модуль Абонемент-Монитор тренера ПО Лицензируется по количеству мониторов на объекте
1 6 Модуль управления солярием 202 Shelter модуль Абонемент - Интерактивный солярий ПО Лицензируется по количеству соляриев на объекте
1 7 Монитор для клиента (дисплей покупателя) 201 Shelter модуль Абонемент - Дисплей покупателя ПО Лицензируется по количеству мониторов на объекте
1 8 ------------------------------------------------------------------------------------     Один модуль на объект
1 9 Регулярные списания EFT (Абонемент) 306 Shelter модуль Абонемент - регулярные EFT списания Один модуль на объект
1 10 Интеграция с ПДС UDS Game 309 Shelter модуль Абонемент - Интерфейс с внешними ПДС (UDS Game) Один модуль на объект
1 11
Интерфейс с CRM 1C Битрикс
307 Shelter модуль Абонемент - интеграция с 1С Битрикс Один модуль на объект
1 12 Сервер статистики ServStat (Абонемент) 312 Shelter модуль Абонемент - Отчеты-онлайн ПО Одна лицензия на один сервер статистики БД

 


 


 

 

 


 

2 1 Cloudshelter      
2 2 Подписка на обновления для Shelter3      
2 3 Модуль очистки данных из базы Shelter      
2 4 Модуль интеграции Shelter с Wifi системой авторизации гостей      
2 5 Менеджер мероприятий     Лицензируется по количеству рабочих мест
2 6 Модуль Shelter Кубы      
2 7 ------------------------------------------------------------------------------------      
2 8 Монитор Ресурсов      
2 9 Горничные-мобайл(минибар)      
2 10 Медицина - (????Личный кабинет гостя Shelter????)      
2 11 Интерфейс РК-Шелтер   Shelter модуль интерфейс R-KEEPER ПО   
2 12 Интерфейс РК-Либра(Фиделио)   R-Keeper модуль Интерфейс к гостиничным системам ПО  

 


 


 

 

 


 

3 1 Шелтер-лайт (модуль 1 и 3)      
3 2 Шелтер-полная версия (модули 1, 2, 3)      
3 3 Отчеты      
3 4 Телефонный тарификатор      
3 5 Интернет-бронирование      
3 6 ПДС, CRM 310 Shelter модуль Абонемент - Интерфейс R-Keeper CRM (ПДС) ПО   
3 7 Выгрузка в XML (УФМС ПО Контур и Радиус)      
3 8 Банковский протокол  228 Shelter модуль Абонемент - Интерфейс Банковский протокол ПО Один модуль на объект
3 9 Горничные      Один модуль на объект
3 10 Channel manager (Wubook, Тревеллай, Нотабене)      
3 11 IP TV (Hoteza, Видеолюкс, Отрум...)      
3 12 Замковая система      

 


 


 

 

 


 

4 1 Абонемент 212 Shelter модуль Абонемент-Менеджер ПО Лицензируется по количеству одновременно запущенных экземпляров ПО
4 2 Интерфейс – турникет 217 Shelter модуль Интерфейс Абонемент-Турникет ПО  Один модуль на объект
4 3 Отчеты Абонемент 245 Shelter модуль Абонемент — Отчеты ПО Один модуль на объект
4 4 Интерфейс с Gantner, PocketKey, Metra 240
Shelter модуль Интерфейс Абонемент-Турникет + Gantner ПО
Один модуль на объект
4 5 Платежные системы Ассист, Робокасса, Резервмастер, CloudPayments 231 Shelter модуль Абонемент - Интерфейс связи с системой платежей Assist (Robokassa)ПО Один модуль на объект
4 6 Монитор контролера 211 Shelter модуль Абонемент- монитор контролера ПО Лицензируется по количеству одновременно запущенных экземпляров ПО
4 7 Инфо-плазма 236 Shelter модуль Абонемент- Инфоплазма ПО Лицензируется по количеству одновременно запущенных экземпляров ПО
4 8 ------------------------------------------------------------------------------------      
4 9

Доступ к базе сторонних программ (connecter) – кроме функций, защищенных 1.2-1.7, 4.5

(Больше не используется. Заменен на проект 1, модуль 1)

232 Shelter модуль Абонемент-Коннектор ПО (полное API)

Лицензируется по количеству одновременно запущенных экземпляров ПО

(подробнее про лицензирование Connecter см.статью о Connecter)

4 10 E-Mail и SMS рассылка (GuestAnnoncer) 229 Shelter модуль Абонемент - Интернет и СМС рассылка ПО Один модуль на объект
4 11 Интерфейс связи с Cognitivе, Regula (сканеры паспортов) 230
Shelter модуль Абонемент - Интерфейс к системе сканирования документов ПО
Один модуль на объект
4 12 Выгрузка в 1С 209
Shelter модуль Абонемент – интерфейс 1С:Бухгалтерия ПО
Один модуль на объект

 


 


 

 

 


 

5 1 Атол-Онлайн, CloudKassir 311
Shelter модуль Абонемент - Интерфейс Cloud ФР (Атол-онлайн, CloudKassir) ПО
Один модуль на объект
5 2 Абонемент - Прокат 302 Shelter модуль Абонемент - Прокат ПО  
5 3 Интеграция с Мобифитнес 308 Shelter модуль Абонемент - интеграция с Мобифитнесс Один модуль на объект
5 4 Мобильный турникет 315 Shelter модуль Абонемент - Мобильное приложение 'Мобильный Турникет' ПО Лицензируется по количеству одновременно работающих мобильных приложений.
5 5 Абонемент Lite 301 Shelter модуль Абонемент-Менеджер LITE Фитнесс ПО Один модуль на объект (2 рабочих места)
5 6 Интерфейс с внешними ПДС через FarCards 304 Shelter модуль Абонемент - Интерфейс с внешними ПДС через FarCards Один модуль на объект
5 7 Автозапуск мероприятий, работа с устройствами   Shelter модуль Абонемент — Автозапуск мероприятий, работа с устройствами Один модуль на объект
5 8
Интеграция с StoreHouse
303
Shelter модуль Абонемент — Интеграция с StoreHouse
Один модуль на объект
5 9 ------------------------------------------------------------------------------------      
5 10 ------------------------------------------------------------------------------------      
5 11 ------------------------------------------------------------------------------------      
5 12 ------------------------------------------------------------------------------------      
           
6 1 Shelter WEB      
6 2 Интерфейс Shelter с HotBot     Один модуль на объект
6 3 Модуль для Хостес (Ресторан)      
6 4 ------------------------------------------------------------------------------------      
6 5 ------------------------------------------------------------------------------------      
6 6 ------------------------------------------------------------------------------------      
6 7 ------------------------------------------------------------------------------------      
6 8 ------------------------------------------------------------------------------------      
6 9 ------------------------------------------------------------------------------------      
6 10 Горничные WEB      

 

Вывод печатной формы из Абонемент на ФР

Абонемент позволяет печатать произвольные печатные формы на фискальных регистраторах, в виде нефискальной печати.
 
Для этого необходимо в ini файле формы находящемся в папке exe\frf\ прописать в секции [HW] параметр PrinterType = 1
 
Таким образом данная форма, при нажатии на кнопку "Печать" будет выведена на печать на ФР.
 
 
Важно!
 
В таком случае, при выводе формы на печать, результат формирования печатной формы будет экспортирован в текст и после этого выведен на печать.
Соответственно, результат экспорта в текстовый формат может визуально отличаться от вида формы представленной при просмотре.
  • Следует принять к сведению, что, как правило, область печати большинства ФР печатающих на 8см бумаге, составляет 40 символов в строке.
  • Для получения более компактных результатов при выводе формы в текст, рекоммендуется использовать формы для FastReport 2.
  • Просмотреть как точно экспортировалась форма в текст можно в логе Абонемент. Поиск следует проводить по тексту "TMyFRReport.ExportToText".

 

Примеры форм разработанных для вывода на ФР, имеющиеся в поставке версии Абонемент 1.128: CheckInfo, prechecksmall, guestscheduleFR.

 

Прочие доступные параметры секции [hw] ini файлов печатных форм для печати на ФР.

Copies - количество печатаемых копий (по умолчанию - 1)
CutAfterEveryCopy - обрезать после каждой копии (1-отрезать, 0- не отрезать. По умолчанию - 0 ). Применяются для PrinterType=1
CutAfterLastCopy - обрезать после последней копии (1-отрезать, 0- не отрезать. По умолчанию - 0 ). Применяются для PrinterType=1

Последние два параметра имеет смысл использовать только на ФР, при установленном в настройках УДФР секции [Main] параметре CutAfterPrint = 0, и только на ФР, позволяющих подобную работу (АТОЛ, ШТРИХ). В таком случае, по умолчанию, после печати нефискальной информации лента отрезаться не будет. Отрезка будет производиться только при передаче соответствующих команд из Абонемент, генерация которых, для конкретной печатной формы, настраивается вышеописанными параметрами.

 

С версии Абонемент 129, в печатных формах доступны следующие функции:

 function PosPrintText(Text:string; CutAfterPrint:boolean):boolean  - Напечатать на ФР текст "Text". (Возможно печатать штрихкоды после текста использовав параметры универсального драйвера: EscBarcodeEnable = 1 и BarcodeBegin, BarcodeEnd)
 function PosPrintBarCode(BarCode,PreText,PostText:string):boolean  - Напечатать штрих-код на ФР, текст перед ним и текст после него. (Не рекомендуется к использованию. ФР вставляет клише между штрих-кодом и текстом.)
 function PosPrintCut():boolean - Отрезать чековую ленту.

Таким образом, из печатной формы можно посимвольно производить печать любых данных на ФР. 

Инструкция по обновлению ПО Абонемент

 

 

Обновление БД и ПО.

!!!ВНИМАНИЕ!!!

Перед проведением обновления у Заказчика, рекомендуем сначала проверить все у себя в офисе на сборке клиента.  Во избежание возникновения сбоев в работе ПО Абонемент, а так же безвозвратного повреждения рабочей версии программы и базы данных, необходимо сделать резервную копию БД и ПО В случае сбоя при обновлении уже на объекте, развернуть резервную копию, тем самым восстанавливая работоспособность объекта, после чего все проверить на копии.

0.Подготовка.

Проверяем текущую версию ПО и БД Абонемент. Сделать это можно при загрузке ПО, во время появления окна ввода логина и пароля пользователя:

 

Проверить версию ПО можно, выбрав пункт  меню "Сервис" -> "О программе":

Существует второй метод уточнить версию БД, но использовать его рекомендуется только в случае отсутствия данных об установленной версии ПО и БД, и невозможности произвести запуск ПО Абонемент. Запускаем IBEXPERT.exe и подключаемся к БД объекта (см. инструкцию), открываем procedures, там находим в самом низу SYS$VERSION_FITNESS, открываем данный параметр, и смотрим установленную версию БД.

Заходим в разархивированную папку актуальной версии FullVersion… , и находим там файл version.txt, в нём находится вся необходимая информация для обновления. Находим рекомендации по обновлению поиском в файле по номеру версии программы, которая установлена на данный момент.

1. Обновление базы.

1.1   Запускаем IBEXPERT.exe и подключаемся к БД объекта (см. инструкцию). Запускаем окно выполнения скриптов сочетанием Ctrl+F12. Проверяем, чтобы в верхней строке стояла галочка "Use current connect". В файле version.txt находим рекомендации по обновлению - поиск можно произвести по номеру версии программы.

Встречаются как *.sql файлы типа 1.115.sql, так и файлы developer.sql & housekeeping2.sql - разберем последние два. 

Housekeeping2.sql из папки updatesql нужно выполнить после обновления на 114-ую версию, после 116-ой - выполнить \HouseKeeping\SQL\HouseKeeping2.sql

developer.sql в идеальном случае (при обновлениях на одну-две версии) должен устанавливаться только один раз, самым последним по списку. Но на практике, при обновлениях со старых версий, его нужно выполнять несколько раз, так как иначе Вы увидите ошибки при выполнении остальных скриптов. По ссылке вы можете найти архив со всеми developer.sql от всех версий - для безошибочного обновления, нужно выполнять developer, соотвествующий каждой версии (как указано в version.txt).

Вы можете увидеть типовые проблемы, возникающие при неправильном использовании developer, в следующих задачах: #100605 или #100535.

ВНИМАНИЕ! В Файле developer.sql не должно быть следующих строк, если они есть и в обновляемой базе работает только ПО Абонмент, то их нужно удалить:

update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'D_1KMEMO' where (RDB$FIELD_NAME = 'STRVALUE') and (RDB$RELATION_NAME = 'DEFAULT_VALUES');
commit;
select * from sp_create_object('&Object=DROP_CONSTRAINT&Table=DEFAULT_VALUES&Name=IX_DEFAULT_VALUES_NAME');
commit;
select * from sp_create_object('&Object=CONSTRAINT&Table=DEFAULT_VALUES&Name=IX_DEFAULT_VALUES_REF_NAME&Params=REFTYPE,REF,NAME');
select * from sp_create_object('&Object=INDEX&Table=DEFAULT_VALUES&Name=IX_DEFAULT_VALUES_OLD_NAME&Params=NAME');
commit;

1.2   Возвращаемся к рекомендациям по обновлению начиная с текущей версии БД, открываем папку updatesql, и устанавливаем поочерёдно все *.sql файлы включая developer.sql & housekeeping2.sql, в том порядке, который мы определили на предыдущем шаге. ОШИБОК быть не должно!!! ВНИМАТЕЛЬНО отнеситесь к файлам developer.sql & housekeeping2.sql, установите их вовремя!!! 

1.3   При обновлении на некоторые версии, требуются обновления FireBird

1.4.  Если позволяет время, то рекомендуем после обновления провести backup-restore базы данных абонмент. Восстановленную после restore базу установить как рабочую. Более подробно о этой процедуре см тут.

1.5. При возникновении ошибки вида "This operation is not defined for system tables. unsuccessful metadata update. cannot delete. COLUMN DIARY.CALC_STARTTIME. there are 1 dependencies." отключите на время обновления логирование таблицы, указанной в ошибке (в данном случае - DIARY)

 

2. Обновление программы

2.1 Выписываем поочередно,  какие файлы, программы, DLL`ки и настройки необходимо менять при каждом переходе. Все одинаковые замены сводим до самой актуальной, и проводим обновление файлов, программ, DLL`ок и настроек. (Пример: обновляясь с версии 1.115 до 1.121, видим, что в рекомендациях к переходу на каждую из версий вверх требуется обновлять файл abonementmanager.exe, нам необходимо поменять его только один раз на версию 1.121.

2.2 Если требуется, выполните обновления служебных утилит gkhostconnect, TcpCardReader и д.р. которые заявлены при обновлении.

3. Проверка работоспособности обновлённой версии ПО и БД. 

3.1 Замените ПО и БД на рабочих местах на обновлённую версию, и произведите запуск ПО. В случае сбоя разверните на рабочем месте резервную копию для восстановления работоспособности, и повторите действия данной инструкции.

Печать формы "Карточка гостя" на принтере пластиковых карт

Печать формы "Карточка гостя" на принтере пластиковых карт

Описание

Данный отчет предназначен для печати на карте информации о клиенте и об абонементе.
Как правило, заказчик заказывает в типографии дизайн карты, в котором предусматривается свободное место для печати фотографии гостя, наименования абонемента и даты его окончания (куда мы печатаем перечисленные данные).
По умолчанию:
  - Печатаются поля: "Фамилия Имя", "Наименование абонемента", "Дата окончания";
  - Берется последний проданный абонемент клиента. 
 
Если необходимо распечатать другой абонемент клиента, то можно выбрать пункт "Другой абонемент клиента" и выбрать среди списка абонементов у клиента.
Данный отчет можно использовать для печати (двухсторонней) на пластиковых картах, ниже рассмотрим как это можно сделать.
 

Настройка

Данная форма поставляется в комплекте ПО "Абонемент" (/../FullVersionVer.../exe/frf/card_print.fr3), для ее работы требуются следующие файлы, при этом файлы card_print_d1_1.jpg, card_print_d1_2.jpg, card_print_d2_1.jpg, card_print_d2_2.jpg отвечают за дизайн печатаемой карточки, их можно видоизменять под собственные требования (при этом необходимо соблюдать размер рисунка и область отображения фотографии гостя):

Рис.1 Файлы требующиеся для работы формы

Для того, чтобы данная форма отображалась в ПО "Абонемент" на требуемой вкладке, в файле "/../exe/frf/frf.ini" в нужной секции необходимо прописать форму и отображаемое в ПО "Абонемент" название (в примере используется секция [1000] "Управление абонементом"):
 
 
Рис.2 Настройки файла Frf.ini (*)
 
* - При необходимости, можно указать другую секцию:
     [1001] - "Настройка", 
     [1000] - "Управление абонементом", 
     [1002] - "Ночной аудит", 
     [1003] - "Специалисты", 
     [1004] - "Все мероприятия", 
     [1005] - "Фолио кассы".
 
   Прочие секции frf.ini
     [2001] - таблица транзакций на фолио
     [2002] - Вкладка "Чеки" в "Ночном аудите" . Она же используется при регистрации платежей
 
ПО "Абонемент" работает с Windows принтерами и при печати карты изначально будет выбран принтер "По умолчанию".
В файле "card_print.ini" создаем секцию [hw] в которой указываем параметр "PrinterName=Название_принтера_пластиковых_карт" (например: "PrinterName=Evolis pm1h0000bs).
Параметр PrinterName - Наименование принтера, на котором должен распечатываться отчёт
Если PrinterName пустой или принтер не зарегистрирован в системе, то отчёт распечатывается на принтере по умолчанию.
 
Рис.3 Настройка секции [HW] в card_print.ini
 

Работа в ПО "Абонемент"

Запускаем ПО "Абонемент", выбираем клиента и переходим на вкладку "Абонементы":
 
Рис.4 ПО "Абонемент", вкладка "Абонементы"
 
Нажимаем на кнопку "Печатные формы" в левом верхнем углу, откроется окно выбора формы, выбираем форму "Карточка гостя" и нажимаем кнопку "Печать", откроется окно формы с информацией о госте и об абонементе:
 
Рис.5 Печатные формы
 
Рис.6 Окно формы с выбором параметров
 
После выбора нужного абонемента и указания требуемых параметров печати нажимаем кнопку "Сформировать", после чего - форма отправится на печать:
 
 
Рис.7 Внешний вид печатной формы
 
 
 

Логирование производимых действий с полями таблиц базы данных (IBHistory).

 

 

Для настройки логирования любых изменений в БД Абонемент используется утилита IBHistory.

Рис.1 Внешний вид утилиты IBHistory

Описание интерфейса

Внешний вид окна утилиты представлен на рис.1.

Кнопки:
    Сохранить конфигурацию базы
        Служит для внесения изменений в базу данных по завершению настройки логируемых полей
    Загрузить конфигурацию из cfg-файла
        Необходима для загрузки ранее сохраненной конфигурации
    Сохранить конфигурацию в cfg-файле
        Используется для сохранения текущих настроек, для дальнейшего экспорта.
    Обновить (перезагрузить из базы)
        Назначение не нуждается в комментариях.

В интерфейс так же имеются две таблицы, в которых перечислены все имеющиеся в выбранной БД таблицы в левой части, и их поля в правой.

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

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

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

Рис.2 Внешний вид утилиты IBHistory в процессе настройки

Колонка «название для отображения» служит для определения названия в колонке «параметр истории изменений» при просмотре истории.

В колонке «SQL-запрос для подмены» можно добавить sql-запросы, для преобразования значений, выводимых в лог в легко читаемом виде.

Например, при изменении скидки на абонемент (поле DISCOUNTID таблицы PACKAGE_KINDS) в полях старое и новое значение отобразятся ID скидки, не имеющие ничего общего с ее реальным размером.
Если же добавить в подмену запрос: 

select name from discounts where id=:param

То результатом будет не ID, а наименование скидки, что гораздо удобнее.
:param – переменная, которой присваивается изначальное значение (в данном примере ей присвоился DISCOUNTID)

 

Настройка логирования

Алгоритм настройки следующий:

  • В файле ibhistory.ini указать путь к базе.
  • Выставить флаги на таблицах, которые требуется логировать и их полях. Настроить названия для отображения, и при необходимости sql-запросы для подмены.
  • Если имеется готовый конфигурационный файл, то нажать кнопку "загрузить конфигурацию из cfg-файла" и выбрать его.
  • После завершения настройки нужно нажать кнопку "сохранить конфигурацию базы" и дождаться сообщения об успешном сохранении конфигурации.

С этого момента будет вестись логирование выбранных полей.

 

Просмотр лога

Есть несколько вариантов просмотра лога.
Он ведется в таблице SYS$LOG. Таким образом, первый вариант – смотреть изменения в IBExpert. Конечно, он не годится для обычного пользователя.

Второй вариант – кнопка «История изменений» в Абонементе.

Рис.3 Кнопка "Показать историю изменений"  в интерфейсе основного модуля Абонемент

ВАЖНО

История отображается только для выбранного объекта (т.е выбрав, например, тип абонемента, и нажав на кнопку "Показать историю изменений" мы видим только его историю, не других).

Рис.4 Просмотр лога изменений, на примере изменения названия объекта в общих параметрах

 

 

К сведению

К сожалению подробного описания соответствия таблиц и полей их назначения в Абонемент нет. Большая часть таблиц минимально описаны в данной вики.

Не рекомендуется включать логирование частоизменяемых таблиц (например: ACCESS_CONTROL_LOG), поскульку логирование изменения данных таблиц приведёт к увеличению скорости роста БД.

Очистка базы от издержек тестирования с сохранением настроек

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

Удалить всех клиентов, оплаты и кассовые смены, сохранив при этом все настройки абонементов, тарфов и пр., возможно.

Для этого нужно:

1. Запустить IBExpert, подключится к базе.

2. Запустить sqlEditor и выполнить следующий запрос:

select text from SPADM_CLEARUP_PREPARE('&CHECK_FIELDS_IN_WORKTABLES=1' ||'&CHECK_WORKTABLES=1' ||'&DELETE_STAFF=0' ||'&DELETE_USER=0');

3. Результатом выполнения запроса будет скрипт, который требуется выполнить в Script Executive. По окончании выполнения скрипта, база будет очищена в соответствии с указанными параметрами.

 

Примечание:

Если два первых параметра установлены в 1, то скрипт на выходе, очистит все действия из базы (оплаты, трансферы, посещения, клиенты), третий параметр отвечает за очистку списка специалистов, и четвёртый отвечает за удаление всех зарегистрированных пользователей Абонемент.

 

ВАЖНО

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

Для устранения данной проблемы требуется применить скрипт:

update pos p set p.shift = 1 where p.id = 1 and p.shift = 0

Или же, можно средствами Абонемента создать новый киоск и продолжать работу на нём, деактивировав имеющийся.

Скрипт очистки будет поправлен в ближайших версиях и данная процедура больше не понадобится.

Автоматическая привязка шкафчиков в Абонемент

Описание функционала

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

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

  • Клиенту был выдан браслет от шкафчика. Во время тренировки клиент каким-либо образом потерял браслет. Номер шкафчика клиент не помнит. В таком случае администратор может восстановить номер шкафчика путём пары кликов и открыть клиенту шкафчик мастер-ключом.
  • Клиент забыл дорогостоющую или крайне важную вещь в шкафчике. Шкафчик был освобождён При ежедневном обслуживании шкафчика вещей не было обнаружено. В таком случае можно будет восстановить историю использования данного шкафчика прочими клиентами, что позволит разрешить данную ситуацию.
 
Работает следующим образом: 
Каждый шкафчик заведен в программе, как ресурс с типом "шкафчик" с соотвествующим номером.
К каждому ресурсу привязывается ключ (браслет) от конкретного шкафчика.
В момент прикрепления к клиенту ключа от шкафчика (браслета) в программе соответсвующий ресурс становится занятым.
Соответственно, закрывается ресурс в момент открепления браслета от клиента.

 

 

Настройка

Для настройки данного функционала требуется:

Настроить ресурсы в Абонемент следующим образом:

Рис.1 Настройки - Карточка категории ресурса.

Рис.2 Настройки - Карточка типа ресурса.

  • Создать категорию ресурсов, с типом "Индивидуальная ячейка" (рис.1).
  • В данной категории создать тип ресурса. Не убирать галку с "Учитывать в присутствующих", для упрощения контроля (рис.2).

Рис.3 Настройки - Карточка  ресурса.

Рис.4 Настройки - Общие параметры.

Далее создать отдельный ресурс на каждый шкафчик. Для каждого шкафчика в поле "Бар-код" добавить считываемый Абонементом номер идентификатора ключа для данного шкафчика (рис.3).

В настройках, в общих параметрах поставить галку Идентификаторы -> "Отмечать присутствие при выдаче/изъятии идентификатора" (рис.4).

 

После завершения настроек в Абонемент требуется в IBEXPERT выполнить в script executive следующий скрипт:

execute procedure xx_fill_services_rooms_chayka(ROOMKIND,PHYSTYPE,DELETEPREV,'');
commit;
, где:
ROOMKIND       -  ID типа ресурса, которому принадлежат ресурсы шкафчиков;
PHYSTYPE        -  тип идентификаторов, к которому принадлежат идентификаторы - ключи от шкафчиков (2 - Гостевая карт );
DELETEPREV   -  удалить все прошлые записи о автоматически открываемых ресурсах (0 - не удалять, 1 - удалить) (1 - применяется в случае, если поменялся список ресурсов или были измененены уже имевшиеся ресурсы, 0 - в случае, если только добавляются новые ресурсы для контроля).
 
Пример скрипта для выполнения, в случае представленном на предыдущих приложенных скриншотах, представлен на рис.5.
 

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

 

Выполнение запросов к БД через BAT файл

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

Данное решение позволяет решить много небольших задач, по автоматизации некоторых действий в Абонемент. (Например автоматический перевод смены)

 

Для этого, вам понадобится правильно настроенный .bat файл, например следующего вида:

set mytime=%time%
set mydate=%date:~-10%
rem set mydate=%mydate:~6,4%%mydate:~3,2%%mydate:~0,2%
set mydt=%mydate% %mytime% 

set isql="C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe"
set inputfile=random_query.sql
set outputfile=result_random.txt

echo %mydt% >> %outputfile%

%isql% -input %inputfile% -output %outputfile%

Где:

set isql="C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe" - путь к рабочему экземляру утилиты isql из поставки FireBird;

set inputfile=random_query.sql - путь к файлу с подготовленным для выполнения запросом;

set outputfile=result_random.txt - путь к файлу результатов выполнения запросов.

 

Файл запроса random_query.sql  должен иметь следующий вид:

CONNECT '127.0.0.1/3080:C:\_UCS\FITNESS\IBDATA\FITNESS.FDB' USER 'ucs' PASSWORD 'ucs';

select count(id) from guests where regdate between (floor(d2dbl('now')-1)) and (floor(d2dbl('now')));

commit work;

Где:

'127.0.0.1/3080:C:\_UCS\FITNESS\IBDATA\FITNESS.FDB' - адрес БД, на которой необходимо выполнить запрос, далее текст выполняемого запроса.

 

Файлы описанные в данном примере позволяюют получить в текстовом файле датированные данные о количестве гостей зарегистрированных в БД за предыдущий день. Запуск .bat файла можно производить как вручную, так и любым доступным планировщиком.

 

Пример файла результата (result_random.txt):

30.07.2018 0:15:34,16  

       COUNT 
============ 
          10 

Другие доступные примеры можно найти в поставке Абонемент по пути FullVersion\_UTILS\_BAT\

Процедура прошивки купюроприёмников CashCodeSM

Порядок действий:

1. Отключить питание, СОМ. Снять кассету.

2. Снять защитную крышку под кассетой. (С надписью "lift here to open")

                      

 

3. Аккуратно отщёлкнуть разъём (рамку) для чипа (похож на разъём для сим карты).

 

4. Вставить чип в рамку. Закрыть и защёлкнуть рамку.

        

 

4. Подать питание на купюроприёмник.

6. Купюроприёмник начинает мигать (зелёный-красный). Дождаться, когда начнёт мигать одним цветом (красным) (около 40 секунд).

7. Отключить питание.

8. Изъять чип. Закрыть защитную крышку. Вернуть кассету на место. Подключить СОМ, подключить питание.

9. Из тестовой утилиты получить таблицу купюр (Get Bill Table). Вписать данные в параметры устройства в ядре киоска.

        

 

10. Запустить киоск (???)

11. Купюроприёмник принимает новые купюры (Profit!)

 

Важно!!!!

Независимо от протокола по которому купюроприёмник работал до прошивки, конечный протокол зависит от прописанного в новой прошивке.

(В случае, протестированной в офисе - купюроприёмник переводится в протокол CCNet)

Закрытие из iiko в Абонемент и Shelter

 

 

 

 

 

 

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

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

 

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

iiko при оплате на специальным платежом обращается к Connecter, который обращается к ShelterConnect.dll, которая работает с базой данных Абонемент.

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

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

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

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

Используются те же файлы, что и при интеграции с RKeeper 7, доступны тут

Настройки iiko

Выполняются специалистами, устанавливающими iiko (https://ru.iiko.help/articles/#!special-iiko/ucsshelter)

 

Настройки Connecter

  1. Выполнить стандартные настройки connecter
  2. connecter Должен быть настроен на БД, в которую будет осуществляться закрытие
  3. В секции [Charset] необходимо установить параметр UseUrlEncode=0
  4. Настроить секцию [HotelInterface]
    [HotelInter face]
    HotelInterFaceDllname=D:\connecter\SCRK6530.dll
    enabled=1
    FolioMask=0

Настройки ShelterConnect

[Database]
dbname=%Путь до БД Абонемент%
DBuser     = UCS
DBpassword = oQKH8n0BFUE=

[ExternalClient]
  ClientID      = 1
  IdentPhysType = 200
  ConvertOperationNeed = 1
  ToOEM = 1
  NeverRestrictTransaction = 1
  FolioMask = $04
  ShowBalance = 1
  ShowBalanceFirst = 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, выполнить закрытие на номер, проверить результат.

Интеграция Shelter (Fidelio) и Абонемент в разных базах.

 

 

 

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

Описание

Shelter настроен на первую базу данных и отвечает за автоматизацию гостиничного сектора. Абонемент настроен также на отдельную базу данных и отвечает за автоматизацию СПА сектора заведения. Две базы одновременно возможно использовать на одном физическом сервере под управлением одной СУБД FireBird.

Схема обслуживания клиента

Гость первоначально заселяется в Shelter, и ему автоматически создается фолио поселения. В случае, если гость не планирует использовать СПА услуги, то система Абонемент о нем ничего не узнает.  

Если гость заселен по тарифу с услугами СПА комплекса, то необходимо на карточке гостя (бумажный носитель) отметить эту информацию. Затем гость проходит на ресепшен СПА, где гостя должны повторно зарегистрировать - уже в Абонемент - вручную, и добавить гостю предопределенный абонемент с нулевой стоимостью на срок проживания гостя. В следующих версиях появится интерфейс  для автоматической регистрации гостя при заселении  в Shelter по тарифу для СПА. В Абонемент будет переноситься информация по анкетным данным гостя и создаваться абонемент на посещение. Так же будет автоматически проверяться, не выехал ли ещё гость, для своевременной деактивации абонемента на посещение СПА. Для такой ситуации, отдельная касса для Абонемента не нужна, но желательно подключить ролловый чековый принтер.

Если гость не планирует посещать гостиницу и оплачивать свои услуги там, то все данные о нём будут храниться в ПО Абонемент (со своей отдельной кассой). 

Механизм работы

  1. Регистрируем клиента в гостинице и создаем его фолио поселения в программе Shelter (рис.1).
  2. Клиент приходит в Фитнес и регистрируется в Абонемент. При оплате услуг выбираем специальный тип платежа - Закрытие на номер (рис.2).
  3. В поле номер карты вводим номер комнаты в котором проживает гость (рис.3), затем необходимо выбрать одного из проживающих в номере - (рис.4).
  4. После успешной транзакции в программе Shelter появится дополнительная услуга и эта сумма будет отображаться как "неоплаченные услуги" (рис.5).
  5. В программе Абонемент услуги стали оплачены специальным платежем (рис.6).

Рис.1 - Создание фолио в Шетлер (поселение гостя)

Рис.2 Выбор типа оплаты

Рис.3 Выбор номера\фолио - Вводим номер комнаты/Прикладываем карту (в случае, если требуется использовать ключ от номера (идентификатор в Shelter) для закрытия из Абонемента) - Для выбора фолио, нужно перед номером поставить точку "." или букву F ("F" или "f").

Рис.4 Выбор гостя из проживающих в номере.

Рис.5 Фолио гостя в Гостинице после закрытия на номер.

Рис.6 Фолио гостя в Абонементе после закрытия на номер.

Настойки

  1. Устанавливаем сервер блокировок версии 2.3 вместо 2.1 (переводим работающие программы на него). Инструкция по настройке LockServer.
  2. Устанавливаем connecter (из базовой поставки FullVersion).
  3. Заводим в абонементе новый тип оплаты (см.рис.5)

Рис.7 Создание вида платежа

  1. abonentmanager.ini
[HotelInterface] 
UseConnecter=1
; Ссылка на connecter
UrlConnecter=http://127.0.0.1:7780
; Идентификатор транзакции. По умолчанию = -1. Если TransactionID меньше нуля, то передаются ID (идентификатор) типа оплаты.
TransactionID=5
useutf=1

TransactionID в данном случае - это та же переменная, возможные значения которой указаны слева от знака равно в секции [TranslateOperation] ShelterConnect.ini - справа от знака равно там указан соответствующий тип операции в Shelter (бар, ресторан, тд). TransactionID это ID, а не КОД типа оплаты (в данном случае - Закрытия на номер). Если соответствие не задано, возникает ошибка SCRK6/5.3: Error 208. Unsubstituted client operation 77 (тут 77 - айди типа оплаты).

  1. Connecter.ini

Параметры секции [charset] вкупе с useutf=1 выше отвечают за настройки кодировки и могут меняться - подробнее об этом - в конце статьи. Для подключения к интерфейсу Фиделио нужно использовать PMS_Ifc.dll (настройка производится по аналогии с настройкой интеграции Fidelio и R-Keeper, более подробно см. статью "Интеграция RK6 с гостиничной системой "Opera" ("Fidelio")": http://support.ucs.ru/ru/node/4469).

[LOCK.SERVER]
Project = 4
Module = 3
[HotelInterface] 
; Использовать dll гостиничных интерфейсов в connecter'е 
enabled=1 
; Путь к dll гостиничного интерфейса (должна быть в каталоге запуска connecter.exe) 
HotelInterFaceDllname=D:\_UCS\Connecter\SCRK6530.dll 
[charset] 
encoding=UTF-8 
dbencoding=windows-1251 
UseUrlEncode=0
  1. ShelterConnect.ini

Внимание! При изменении ini файлов shelterconnect, необходим перезапуск обеих утилит (АМ и Connecter).

Для работы требуется libiconv2.dll - можно найти в папке LIB базовой поставки FullVersion

[SCRK6]
 UseDetails = 0
 UseSuperDetails = 1
 RoomInfoMode = 3
[ExternalClient]
 ClientID      = 1
 IdentPhysType = 200
 ConvertOperationNeed = 1
 ToOEM = 1
 NeverRestrictTransaction = 1
 FolioMask = $04
 ShowBalance = 1
 ShowBalanceFirst = 1
[Database]
;путь до базы
  dbname = 127.0.0.1/3080:D:\_UCS\IBDATA\SHELTER.FDB
[TranslateOperation]
   909 = 301

В секции [TranslateOperation] необходимо задать строку XX=YYY где XX это код (id) типа оплаты "Закрытие на номер", который задаётся внутри программы (рис.7 в инструкции). В случае, если Вы хотите передавать именно его, нужно выставить в abonementmanager.ini TransactionID=-1. Иначе, нужно выставить любую цифру от нуля до 90, не_соответствующую другим типам оплаты, и в ShelterConnect.ini выставить соответствие ей. 

Тоесть, если параметр равен минус единице, то передаётся число 765 из инструкции, и в ShelterConnect.ini должно стоять, например, 765 = 301. 301 - код услуги в Шелтере.
Если поставить TransactionID = 77 , то в ShelterConnect.ini нужно поставить, например, 77 = 301. Результат будет одинаковым.
 

Использование идентификатора гостя из Shelter

 
Также, возможно закрывать на номер гостя, используя вместо номера комнаты гостя - его идентификатор.
Для этого при запросе номера комнаты (идентификатора), необходимо предъявить идентификатор гостя, прикреплённый к нему в Shelter.
При нажатии на кнопку оплаты, будет произведена проверка наличия гостя по данному идентификатору в Shelter.
 
Для корректной работы данного функционала, требуется чтобы следующий параметр в ShelterConnect.ini принял значение id допустимого вида идентификаторов в Shelter.
[ExternalClient]
  IdentPhysType = 200

Настройка кодировки

Параметры, отвечающие за кодировку, следующие (приводится пример с настройкой, подходящей большинству установленных объектов):

connecter.ini :

[charset]
encoding=UTF-8
dbencoding=windows-1251
UseUrlEncode=0

Для данных целей всегда должно быть UseUrlEncode=0

ShelterConnect.ini:

[ExternalClient]
  ToOEM = 1

abonementmanager.ini:

[HotelInterface]
useutf=1

Встречающиеся ошибки и их решения

При вводе номера комнаты (при совершении оплаты) ошибка System Error может обозначать то, что данная комната не заселена. Вывод этой ошибки будет изменён в ближайших версиях. 
Проверить, что означает конкретная ошибка такого рода можно в логах connecter.ini. Например, SCRK6/5.3: Error 210. Room 1101 was not checked-in.
 
При воде номера комнаты (при совершении оплаты) ошибка "Интерфейс Connecter вернул неопределённую ошибку" означает, что пришедший в Абонемент результат был не в ожидаемой кодировке. Попробуйте изменить параметр useutf в abonementmanager.ini.
 

Отслеживание автоматического запуска приложений с помощью StarterA1

 
 

StarterA1.exe

Файлы программы лежат в папке \FullVersionVer...\UTILS

Данная программа отслеживает, запущено ли приложение, и запускает его при необходимости. Имеется возможность использовать следующие параметры запуска:
Отслеживаются приложения, которые настраиваются в ini-файле, в секции [tasks.XXX] , где XXX - номер приложения от 0 до 100.
 [tasks.XXX]
   exename = C:\Projects\DELPHI7\GKHOSTCONNECT\GKHOSTCONNECT2\gkhostconnect.exe             ;Путь до исполняемого файла. Всегда следует использовать полный (абсолютный) путь. Именно этот файл служба ищет в процессах
   enabled=1                                                                                ;0 - не отслеживать этот exe, 1 - отслеживать. По умолчанию enabled=0 - не запускать
   parameters=                                                                              ;Параметры командной строки для запуска exe
   CommandLine=C:\Projects\DELPHI7\GKHOSTCONNECT\GKHOSTCONNECT2\gkhostconnect.exe dodo

Порядок работы службы

  1. Служба каждую секунду проверяет секции [tasks.XXX]
  2. Анализирует параметр enabled. Если enabled=1, то см.п.3
  3. Служба ищет в процессах процесс exename
  4. Если НЕ находит, то анализирует параметры CommandLine, exename и parameters.
  5. Если CommandLine НЕ пустой, то служба пытается запустить его. Если CommandLine пустой, то служба создаёт строку  exename + parameters и пытается запустить её.
    
Параметр DelayAfterStart в секции [tasks.XXX] - отвечает за задержку после успешного запуска (в миллисекундах). По умолчанию равен нулю.
[tasks.XXX]
  DelayAfterStart=3000

Примеры использования

Рекомендуется создавать отдельную копию утилиты для контроля запуска каждой необходимой программы. Для удобства, внутри ini-файла следует изменять имя и описание Службы. Например:

[Main]
DisplayName = UCS Служба StarterA1                             ;Имя сервиса - отображается в графе "Имя" в "Службах"
ServiceName = StarterA1_1                                      ;Внутреннее имя сервиса (одно слово. Только латинские символы и цифры. Начинается с буквы)
Description = UCS StarterA1 - ServerT1                         ;Описание сервиса - отображается в графе "описание" в "службах"

Неполный список утилит, которым требуется контроль автоматического запуска:

Выбор замков для шкафчиков.

 

Принципиально существует 2 вида замков для шкафчиков:

Некоторые системы позволяют программировать замок и задавать любой из этих режимов.

Нумерованные.

Все браслеты прикреплены к своим шкафчикам. При обслуживании гостя на ресепшен, посетителю уже выдают браслет от конкретного шкафчика.

Со свободным выбором.

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

Интеграция системы ISD Метра и системы Абонемент

http://www.metraservice.ru/

Клиенту на ресепшен выдают браслет «Метра» и прикрепляют его в Абонементе как идентификатор. Гость пытается пройти через турникет, если вход разрешен, и турникет его пропускает, то номер данного браслета автоматически заносится в белый список системы Метра. Все браслеты из белого списка могут открывать шкафчик.

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

Дополнительно ночью автоматически срабатывает программа, которая очищает весь белый список. Это нужно т.к. гости могли выйти минуя турникет.

Если гость потерял браслет, то его нужно вручную (по фамилии) найти в системе Абонемент и посмотреть номер данного браслета. Скорее всего, нужно зайти в систему Метра через WEB интерфейс и осуществить поиск по данному номеру. Узнать номер шкафчика.

Интеграция с PassTech  ZP200 

(http://www.pocketkey.ru/e-lektronny-e-zamki/)

Используется формат Mifare. На ресепшен можно использовать считыватель IronLogic Z2 и прикреплять к гостю серийный номер. Когда гость входит в зону раздевалки, он выбирает свободный открытый шкафчик.

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

Для этого на турникете должен быть установлен специальный считыватель  ACR122S. На контроллере турникета установлена специальная прошивка gk3_trn_3_0_0_55_ACR122. Тестировалось только на замке ZP-200R.

Интеграция с замками IronLogic (Не реализовано)

http://ironlogic.ru/il.nsf/htm/ru_Z495EHT

Предполагаемая схема работы (Аквапарк):

При продаже абонемента на посещение, в момент прикрепления идентификатора (браслета) мы делаем доработку и реализовываем протокол работы со считывателем RF-1996.  На браслет всегда записывается LimitLocks = 1, а ID карты сохраняем как идентификатор гостя.

На турникетах на вход установлены контроллеры UCS и считыватели Matrix III RD-All в режиме RS232. Проверяется: разрешено ли посещение и гость проходит штатным образом. Начитается тарификация.

Выход. При выходе гость подходит к турникету, снимает браслет и передает его в окошко кассиру. Кассир прикладывает браслет к считывателю  RF-1996. Мы проверяем закрыт или открыт шкафчик (параметр CountBorrow), если нет закрытых шкафов, то устанавливаем параметр  LimitLocks = 0 и у себя в программе ставим ID данной карты в очередь на выход. Если шкафчик занят, то в очередь на выход браслет добавлен не будет и гостю нужно будет сходить открыть шкафчик.  Кассир сразу же прикладывает браслет гостя к другому считывателю Matrix III RD-All, который подключен к контроллеру и турникета на выход, происходит проверка условий выхода в ПО абонемент, а так же находится ли данный браслет в очереди на выход или нет. Если браслет не в очереди, значит кассир не приложила к первому считывателю и турникет не откроется на выход. Так же предлагаем установить дополнительный считыватель на сам турникет и подключить его к контроллеру на выход — через него будут ходить только сотрудники. Для реализации схемы выхода требуются доработки. Также у кассира на выход установлен модуль инфоплазма, в которой отображаем почему запрещен выход.