Введение

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

Как правило, ПДС устанавливается в качестве дополнения к системе  R-Keeper,  но может работать и как самостоятельное ПО.

Состав системы

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

  • Сервер карт (CARDSERV)  - основное приложение системы, управляет базой данных и  обеспечивает взаимодействие с клиентами ПДС
  • Редактор карт (PCARDS) -  приложение для управления справочниками системы и получения базовой отчетности

Также в состав системы входят дополнительные (необязательные) модули:

  • Ретранслятор запросов (FARCARDS)  - универсальный модуль, предназначенный для организации различных схем работы - в большинстве случаев используется независимо от основных модулей ПДС для организации связи со сторонними системами
  • Синхронизация серверов карт (SYNCARD)  - приложение для синхронизации головной и локальных серверов карт в распределенной схеме ПДС
  • Импорт карт (CARDIMP)  - приложение для пакетной загрузки карт в стандартном формате импорта (CSV)
  • Информация по карте (CARDINFO)  - приложение для получения информации по карте
  • Обслуживание БД сервера карт (DATACUT) -  приложение для уменьшения размера базы данных за счет компоновки старых транзакций
Примечание: Все модули ПДС устанавливаются и работают под управлением Windows

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

Для работы модуля "Редактор карт" (PCARDS) требуется аппаратный ключ защиты Guardant Stealth II (USB), подготовленный специальным образом.

Дополнительное лицензирования ни со стороны ПДС, ни стороны R-Keeper не требуется.

Сервер карт (CARDSERV)

Назначение сервера карт

В функции сервера карт входит управление базой данных и обеспечение взаимодействия с клиентами системы ПДС (кассовая система или другое ПО, в том числе стороннее)

Состав сервера карт

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

  • База данных в формате UDB -  card.udb
  • Исполняемый файл сервера Cardserv.exe
  • Конфигурационный файл сервера CARDSERV.INI
  • Библиотеки связи (RTCP.DLL, RLOCAL.DLL, RNBOPEN.DLL и т.д.)
  • Утилита для обновление базы данных до соотв. версии - Cardup.exe

Установка сервера карт

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

Архив содержит полностью  рабочую сборку ПДС, не нужно ничего ставить дополнительно.

Обновление сервера карт

Для обновление версии сервера карт необходимо:

  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDSERV дистрибутив актуальной версии севера карт
  • скопировать утилиту  Cardup.exe из подкаталога дистрибутива \UPGRADE в рабочий каталог сервера карт
  • остановить сервер карт
  • сделать резервную копию базы данных card.udb
  • запустить утилиту Cardup.exe и выполнить обновление БД
  • скопировать новую версию сервера карт Cardserv.exe из подкаталога дистрибутива \CARDSERV в рабочий каталог сервера карт
Примечание: При обновлении сервера карт рекомендуется также обновлять набор используемый библиотек связи, загрузить который можно с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/netdll.7z 

Настройка сервера карт

Все параметры сервера карт хранятся в конфигурационном файле CARDSERV.INI

По-умолчанию,  CARDSERV.INI содержит минимальный набор параметров, далее рассмотрены все возможные параметры и их описание:

[DB]                - секция параметров базы данных
File = card.udb     - файла базы данных сервера карт
DayBound = 4:00     - время границы суток - значение, которое сервер учитывает при проверке различных временных ограничений (срок действия карт, лимиты и т.д.), а также использует при построении отчетов
XML
Примечание: Рекомендуется указывать значение времени суток, когда кассовый сервер уже закрыл день, а новая кассовая смена еще не открыта. Для предприятий, работающих круглосуточно, логично использовать астрономическую границу суток - 00:00
  


Backup =            - путь для сохранения автоматического бекапа базы CARD.UDB. Если не указан, будет выполняться в том же каталоге, где находится рабочая БД 

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

BackupCount = 2      - количество файлов автоматического бекапа, после достижения указанного значения файлы автоматически перезаписываются
WeekStart = 7        - параметр указывающий серверу карт день начала недели. Используется для карт с недельными ограничениями, может принимать след. значения: 1 - пн 2 - вт, 3 - ср, ... 7 - вск
Bonus =              - если указать значение DISCOUNT, номер (идентификатор) бонуса карты будет равен номеру (идентификатору) ее скидки. Подробнее о данном параметре см. ниже
MinRest =            - если указать сумму в этой настройке, то остаток денег на карте будет считаться нулевым, если он меньше этой суммы.
IgnoreStopDate = No  - если = YES, то срок действия карт неограничен.
Log = 2              - Уровень лог-файла. 0 - редкие события. 1 - факты запросов. 2 - подробности некоторых запросов

[LinkDLL]            - секция параметров поддержки библиотек связи
1 = RNetBios         - поддержка канала связи через протокол NetBios
2 = RNBOpen          - поддержка специального канала связи через протокол NetBios, используется только для кассовой системы R-Keeper v6
3 = RTcp             - поддержка канала связи через протокол TCP/IP
XML
  
Примечание: Модули связи загружаются и инициализируются в том же порядке, как указаны в секции [LinkDLL]
Примечание: Рекомендуется в секции [LinkDLL] указывать только необходимые библиотеки связи. После запуска сервера требуется некоторое время (5-20 сек) для инициализации всех подключаемых модулей связи

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


[RNetBios]          ; секция параметров для модуля связи NETBIOS
Server = PCSERV      ; уникальное (в пределах локальной сети) регистрозависимое сетевое NETBIOS-имя сервера карт

[RNBOpen] ; секция параметров для модуля связи RNBOPEN
Server = ASERV ; уникальное (в пределах локальной сети) регистрозависимое сетевое NETBIOS-имя сервера карт, используется ТОЛЬКО для подключения  кассовой системы R-Keeper v6
[RTcp] ; секция параметров для модуля связи RTCP
Port =  - порт TCP/IP для входящих подключение, любой уникальный свободный/открытый сетевой порт для связи через него с сервером карт. Обычно от 3000 до 5000. 

[RLocal] ; секция параметров для модуля связи RLOCAL
Port = 0 - порт для локальных подключений, можно указать произвольное число
XML
Особенности использования модулей связи
  • При подключении модулей связи, использующих протокол NetBios (RNBOPEN.DLL и NETBIOS.DLL), следует учитывать, что модули будут загружаться на всех номерах адаптеров NetBIOS, найденных в ОС Windows - это приводит к некоторым задержкам при запуске сервера карт. Если сервер карт настроен на одновременную поддержку различных модулей связи, рекомендуется в секции [LinkDLL] указывать модули с поддержкой NetBIOS в конце списка
  • При установке сервера карт на 64-х битную ОС модули связи с поддержкой NetBIOS будут работать некорректно - модуль NETBIOS можно заменить модулями RTCP и/или RLOCAL, для модуля RNBOPEN замены нет, но начиная с версии  кассы 6.102 есть возможность настроить альтернативное подключение по протоколу TCP/IP, использую модуль связи RTCP

Таким образом, при установке сервера карт на 64-х битную версии ОС Windows, целесообразно использовать всего два модуля связи: RTCP (для всех удаленных подключений, включая кассу и кассовый сервер) и RLOCAL (для всех локальных подключений)

Запуск сервера карт

Запуск CARDSERV.EXE возможен как в качестве приложения, так и в качестве службы (сервиса)

Для запуска сервера карт не требуется сторонних компонентов, включая BDE. Также для запуска сервера карт не требуется ключ защиты и/или лицензия

Режим запуска определяется ключем:

  • /DESKTOP        - запуск сервера как приложения
  • /INSTALL        - установка сервера в качестве службы (сервиса)
  • /UNINSTALL      - удаление установленной службы (сервиса) сервера

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

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

  • Вкладка "Database" - общие сведения
  • Вкладка "Connects" - список подключившихся клиентов
  • Вкладка "Protocols" - список библиотек связи с параметрами и состоянием. Если сервер запущен как приложение, будет доступно Popup-меню для закрытия (Shutdown)

При установке сервера карт в ОС Windows 7 (и выше) и запуске в качестве службы,  в системном трее иконка отображаться не будет

Параметр Bonus=DISCOUNT

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

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

Схема работы:

  • в модуле "Редактор" (RK6) или в менеджерской станции RK7 создаются бонусы, необходимые для формирования уровней
  • в модуле "Редактор" (RK6) или в менеджерской станции RK7 создаются виртуальные (или реальные - в завимости от ситуации) скидки с кодами, в точности соотв. кодам бонусов, созданных на предыдущем этапе
  • в редакторе карт создаются составные скидки по тем правилам, по которым должны работать будущие составные бонусы, при этом в качестве скидок для каждой составной скидки применяются специально созданные скидки
  • в редакторе карт для карт назначаются составные скидки

Особенности использования:

  • сервер карт всегда будет возвращать и код скидки и код бонуса, которые будут одинаковыми при использовании параметра Bonus=DISCOUNT - таким образом теряется гибкость в управлении скидками
  • отключить использование скидок по карте нельзя - если скидка не нужна, необходимо сделать ее нулевой

Пример минимальной конфигурации сервера

В минимальной конфигурации (поддержка только модуля связи RTCP) CARDSERV.INI выглядит следующим образом:

[DB]                   
File = card.udb        
DayBound = 4:00        
Backup =               
IgnoreStopDat e= No    
BackupCount = 2        
WeekStart = 7          
Log = 2                

[LinkDLL]              
1 = RTcp               

[RTcp]                 
Port = 3456            
XML

Пример содержимого каталога \CARDSERV после установки:

CARDSERV.EXE           - исполняемый файл сервера карт
CARDSERV.INI           - конфигурационный файл сервера карт
CARD.UDB               - база данных сервера карт
RTCP.DLL               - модуль связи с использованием TCP-протокола
XML
Пример конфигурации сервера для подключения по разным портам TCP/IP

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

Т.к. в параметрах библиотеки Rtcp.dll можно указать только одно значение порта, применяем "обходное" решение  - библиотеку Rtcp.dll копируем в необходимом кол-ве под разными именами, например Rtcp1.dll, Rtcp2.dll и настраиваем сооотв. образом  CARDSERV.IN:

....          

[LinkDLL]             
1 = RTcp1              
2 = RTcp2
3 = RTcp3

[RTcp1]
Port = 1111

[RTcp2]
Port = 2222

[RTcp3]
Port = 3333
XML
  
Важно: В секции [LinkDLL] должна соблюдаться последовательная нумерация библиотек связи

Редактор карт

Назначение редактора карт

Редактор карт (PCARDS) является основным пользовательским модулем в составе ПО ПДС и предназначен для создания и управления базой карт (счетов). Также в модуле доступна базовая отчетность по системе ПДС.

  • Логин по умолчанию:  ucs.   Если подходит, попробуйте  1
  • Пароль по умолчанию:  ucs.   Если подходит, попробуйте 

Установка редактора карт

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

Для запуска редактора карт требуется лицензионный ключ защиты Novex Guardant II

В скачанном ранее архиве есть редактор карт. Для его запуска откройте приложение PCARDS.EXE

Настройка редактора карт

Конфигурация редактора карт хранится в файле RKEEPER.INI.

Примечание: Значения параметров в файле RKEEPER.INI регистронезависимы, за исключение параметров, в которых указываются NETBIOS-имена.

Пример конфигурационного файла:

[Common]                 - основной раздел.
Alias1 = d:\RK6\DB       - путь к таблицам справочников менеджерской базы RK6 .
Alias2 = d:\RK6\DB       - путь к накопительной базе RK6 (ARK6.UDB).
EditFRF = YES            - вкл/выкл дизайнер печатных форм отчетов Fast Report.
Language=.RUS            - локализация. Язык по умолчанию - RUS/ENG.

[PCards]                 - раздел редактора карт.
CSLinkDLL = RTcp         - указание используемой библиотеки связи редактора карт для связи с сервером карт. Библиотека указывается баз расширения.
CSLinkGate = 1           - номер клиента DLL, потом добавлять эту цифру в параметры DLL.
DBF = ANSI               - кодировка в DBF-файлах при экспорте данных из CARD.UDB. - ANSI или OEM.
SaveLogin=YES            - сохранять имя пользователя в окне входа в программу.
Login=ucs                - пользователь по умолчанию.
Birthday=0               - Режим построения отчета по дням рождений. 0 - учитывается заданный год. 1 - не учитывается заданный год.
ShowExport=1             - Показывать пункт "Экспорт" в счетах - 1 или нет - 0.
Font = Antica            - Можно указать используемый шрифт.
Guardant  =   $232D7F11  - Можно указать ключ с лицензией. предваряется значком $. Если в конце номера есть - h, то этот символ обычно не вписывается.
XML
  
Примечание: ID ключа определяется диагностической утилитой, входящей в состав драйвера Guardant (Панель управления\Драйверы Guardant)
Примечание: В каждой секции для библиотек связи может быть определено несколько групп параметров с различными значениями. Группа параметров определяется числом, которое указывается после имени параметра и может принимать значение от 1 до 16. Например, Server1  - 1-я группа, Server2 - 2-я группа и т.д. 
[RTcp]                   ; раздел настроек выбранного модуля связи.
Client1 = Person_Cards   ; любая строка, уникальная среди клиентов сервера по TCP.
Server1 = 127.0.0.1      ; IP-адрес сервера - можно узнать, запустив на сервере из командной строки ipconfig /all (входит в состав Windows).
Port1 = 3456             ; номер порта, указанный на сервере CARDSERV в CARDSERV.INI.
XML
Пример настройки подключения Редактора карт к Серверу карт через  NETBIOS:
............

[PCards]
CSLinkDLL = RNetbios           ; используемый модуль связи 
CSLinkGate = 1

[RNetbios]                     
Server1 = PCSERV               ; NETBIOS-имя сервера карт
Client1 = PCARDS_CLIENT        ; NETBIOS-имя клиента, должно быть уникальным в сети.
Adapter1 = 0                   ; если не указывать, возьмет первый существующий.
XML
Импорт карт из текстового файла

В приложении PCards есть возможность выполнять импорт списка карт из текстового файла (CSV) установленного формата.

Операция импорта доступна в меню по правому клику мыши в режиме отображения счетов (Файл ⇒ Счета):

Рис. Операция импорта карт из текстового файла

Требования к текстовому файлу — соответствие формату CSV

  • кодировка файла ANSI (Windows)
  • каждая отдельная строка соответствует одной карте
  • в каждой строке несколько полей, разделенных запятыми
  • если запятая требуется в содержимом поля, поле надо заключить в двойные кавычки (например, "ул. Мира, д. 10")

  • если в содержимом поля требуются кавычки, то все эти кавычки надо удвоить и всё поле надо заключить в кавычки. Например, название подразделения ООО "Ромашка"  должно быть указано так "ООО ""Ромашка"""


Как работает процедура импорта:

  • если карты еще нет на сервере, для нее создается новый счет
  • если счет с такой картой уже есть, его свойства изменяются


Описание полей для каждой записи файла:
 
 1. Номер карты
 2. Срок действия карты - дата в ТЕКУЩЕМ ФОРМАТЕ WINDOWS. Если ОС русская, то формат должен быть:  ДД.ММ.ГГГГ, например:  12.08.2020.
 3. Номер скидки - число от 0 до 99  (опциональное поле)
 4. Номер бонуса - число от 0 до 99 (опциональное поле)
 5. День рождения - дата в ТЕКУЩЕМ ФОРМАТЕ WINDOWS (опциональное поле)
 6. Имя владельца карты —  Кавычек быть не должно!
 7. Тип карты ( опциональное поле , по умолчанию 0):
      0 - ручное пополнение без ограничения оплат
      1 - автоматическое пополнение без ограничения оплат
      2 - автоматическое пополнение с лимитом оплат на один день
      3 - автоматическое пополнение с лимитом оплат на неделю
      4 - автоматическое пополнение с лимитом оплат на месяц
      5 - ручное пополнение с лимитом оплат на один день
      6 - ручное пополнение с лимитом оплат на неделю
      7 - ручное пополнение с лимитом оплат на месяц
 8. Сумма лимита оплат (опциональное поле)
 9. Телефон первый (опциональное поле)
10. Телефон второй (опциональное поле)
11. E-mail (опциональное поле)
12. Название подразделения.  (опциональное поле). В этом поле  важен регистр  и  не должно быть кавычек.  Подразделение должно существовать.
    Если название не указано либо указанное подразделение не найдено, новый счет создается в текущем, а если счет уже существует, его  подразделение не меняется
    Если счет уже есть и находится в другом подразделении, он переносится в указанное подразделение, если оно существует
13. Тип ограничения скидки ( опциональное поле , по умолчанию 0):
     0 - без ограничений
     2 - лимит скидки на один день
     3 - лимит скидки на неделю
     4 - лимит скидки на месяц
14. Сумма лимита скидки (опциональное поле)
15. Название дисконтного уровня. Используется, если поле 3 (номер скидки) пустое (опциональное поле)
16. Сумма кредита для карт с ручным пополнением (опциональное поле)
17. Флаг "Изъять карту": 0-снять, 1-выставить, пусто - не менять (опциональное поле)
18. Адрес (опциональное поле)
19. Дата выдачи карты - дата в ТЕКУЩЕМ ФОРМАТЕ WINDOWS (опциональное поле,  с версии 3.27.02 )
 
Пример содержимого текстового файла для импорта карт:

1023,31.12.2007,5,10,02.02.2002,Иванов Иван Иванович
1024,01.01.2008,2,1,05.11.1980,А.Б.Сидоров,1
1027,12.03.2007,2,,,Алексей Толстой,4,5000,222-22-22,,tolstoy@test.su,Тест
2,17.08.2020,10,,05.03.1970,В.Я. Бирюков,,,,biryukov@mail.ru,Мое подразделение

Пакетное начисление средств

В приложении PCards есть возможность выполнять импорт операций начисления средств из текстового файла (CSV) установленного формата.

Операция импорта доступна в меню по правому клику мыши в режиме отображения счетов (Файл ⇒ Счета):

Рис. Операция импорта операций из текстового файла

Требования к текстовому файлу — соответствие формату CSV

  • кодировка файла ANSI (Windows)
  • каждая отдельная строка соответствует одной операции
  • в каждой строке несколько полей, разделенных запятыми
  • если запятая требуется в содержимом поля, поле надо заключить в двойные кавычки (например, "Зачисление дотации, ноябрь")
  • если в содержимом поля требуются кавычки, то все эти кавычки надо удвоить и всё поле надо заключить в кавычки, например, "Зачисление от компании ООО ""Ромашка"""

Описание полей для каждой записи файла:
1. Номер карты - число от 1 до 999999999
2. Сумма средств,  может быть отрицательной
3. Описание операции  (опциональное поле)
 
Пример содержимого текстового файла для импорта операций:

1023, 550.00
1024, 1745.25, Доначисление за ноябрь
1027, 0.50, Автоматический бонус
2, -25, Штраф за разбитую посуду

Подключение считывателя карт

Для более удобной работы с картами в приложении PCARDS можно подключить внешний считыватель, например:

  • считыватель магнитных карт
  • считыватель бесконтактных карт
  • сканер штрих-кодов 

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

Общий список драйверов можно посмотреть на фтп  ftp://ftp.ucs.ru/r-keeper/versions/COM_READ.  В каждом каталоге для конкретного устройства есть несколько подкаталогов  \CARDREAD, \COMCARD, WINCAS и т..д - в подкаталоге \CARDREAD находятся драйвера для поддержки данной модели считывателя в приложении PCARDS

Для установки драйвера необходимо:

  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/COM_READ требуемый драйвер
  • распаковать содержимое архива в рабочий каталог PCARDS
  • настроить конфигурационный файл CardRead.ini  (описание параметров драйвера см. в файле README.TXT)

Пример конфигурационного файла CardRead.ini для считывателя СРЧ-125 (/COM_READ/RFIDUCS3/CARDREAD):

[Options]
Port=COM1 - название COM-порта
Bits=28   - кол-во используемых бит из номера карты 16..40
Mode=0    - 0-"длинный" номер c карты, 1-"составной" номер
XML
  

Универсальный драйвер из каталога  ftp://ftp.ucs.ru/r-keeper/versions/COM_READ/STANDARD/CARDREAD поддерживает работу с любым считывателем, который подключается в COM-порт (или любой другой интерфейс, драйвер которого позволяет эмулировать работу через виртуальный COM-порт) и отправляет считанные данные напрямую в порт.

В редакторе карт PCARDS поддержка считывателя отображается специальным изображением - считывание карты поддерживается в режиме редактирования (создания) счета и в режиме поиска карты:

Рис. Считывание карты в режиме редактирования счета

Рис. Считывание карты в режиме поиска

Настройки связи с r_keeper_7

Для работы связки ПДС и r_keeper_7 необходимо добавить на кассовый сервер интерфейс, через который кассовая станция будет получать информацию по карте клиента

Для этого выбираем нужный кассовый сервер, переходим во вкладку "Устройства" и после нажатия правой кнопкой мыши выбираем "Список драйверов". Находим драйвер "PDS interface" и переносим во вкладку "Устройства". Далее необходимо прописать уникальное имя в строке "PDS Server name".

При необходимости можно заполнить или настроить остальные параметры интерфейса:

Параметр

Описание

Значение по умолчанию

PDS Server NameСетевое имя PDS-сервера
Currency Rate Class CodeКод класса ставок валюты ПДС1 - класс национальной валюты
Tax CodeКод налога1
Call TimeoutТаймаут обращения к серверу ПДС в секундах120
Maximal Discount Value

Интерпретация нулевого значения лимита скидки, возвращаемого сервером карт:

    • Discount limit spent totally — лимит скидки полностью исчерпан
    • No limits — игнорировать лимит скидки.
Discount limit spent totally
Defaulter Type Code as

Интерпретация кода неплательщика:

    • Defaulter type code — использовать как код типа неплательщика
    • Currency subaccount base — добавка к номеру субсчета, т.е. для разных карт будут добавляться разные числа (коды) к номеру субсчета
Defaulter type code
Look Up Card By Mail Addr

Настройка перекодировки строковых идентификаторов карты:

    • No - не использовать перекодировку
    • Yes, error on not found - использовать перекодировку, выдавать ошибку если перекодировка не сработала
    • Yes, try as card code on not found - использовать перекодировку, если не сработала перекодировка то использовать введенное значение как код карты
No
Mail Addr Type Kind

Тип перекодировки кода карты (1 - email)

1
Pass All Receipts XML data

Условие отправки данных по чекам:

    • By script - отправлять только те чеки, которые удовлетворяют условию описанному в скрипте (скрипт "Условие отправки заказа" из справочника "Скрипты")
    • On special pays, if possible - отправлять только те чеки, в которых есть скидка/оплата валютой данного интерфейса. Игнорировать ошибки при передаче данных чека во внешнюю систему
    • On special pays, always (fail if impossible)- отправлять только те чеки, в которых есть скидка/оплата валютой данного интерфейса. Выдавать ошибку, если не удалось отправить данные чеков во внешнюю систему
    • Yes, if possible - отправлять все чеки. Игнорировать ошибки при передаче данных чека во внешнюю систему
    • Yes, always (fail if impossible) - отправлять все чеки. Выдавать ошибку, если не удалось отправить данные чеков во внешнюю систему
By script
Authorize before transaction

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

    • Compatible - совместимый режим 
    • No authorization calls - вызов не требуется
    • Check card status before receipt - вызов выполняется перед печатью чека
Compatible 

Pass All Bills XML data

Условие отправки данных по пречека:

    • By script - отправлять данные только по тем пречекам, которые удовлетворяют условию описанному в скрипте (скрипт "Условие отправки заказа" из справочника "Скрипты")
    • No - не отправлять данные во внешнюю систему при печати пречека
    • Yes - отправлять данные по всем распечатанным пречекам
No

После этого необходимо привязать данный интерфейс к логическому. Для этого открываем вкладку "Сервис - Интерфейсы" и создаем копию предустановленного интерфейса "Персональная дисконтная система" и в разделе файлы библиотек выбираем ранее созданный "PDS interface"

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

Настройка MCR алгоритма

Если вы хотите проверить работу ПДС в действии, но карты для проверки нет — можно проверить работу с помощью ввода с клавиатуры.

  1. Создайте MCR-алгоритм типа  обработка по маске
  2. В поле  Объект укажите привязанный ранее интерфейс. В нашем случае это  ПДС
  3. В поле  Типы устройств  выберите:
    1. Клавиатура
    2. Магнитная карта
  4. В поле  Маска обработки укажите маску. В нашем случае это 4 цифры —  iiii
  5. В поле  Область  выберите  Интерфейс
  6. Активируйте алгоритм и сохраните

Запустите кассу и создайте заказ.

Нажмите кнопку  Ввод с клавиатуры  и введите номер существующей карты в соответствие с  маской обработки

Если сервер запущен, карта существует и не просрочена — на экране появится информация о ней.

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

Ретранслятор запросов FARCARDS

Приложение FARCARDS является ретранслятором - оно принимает запросы от клиентов (например, от кассовой системы) и передает эти запросы либо к серверу персональных карт (CARDSERV) либо во внешнюю (стороннюю систему), а также возвращает клиентам ответы от сервера карт или внешней системы.

Особенность FARCARDS заключается в отсутствии каких-либо встроенных механизмов хранения информации о персональных картах.

Взаимодействие с внешней системой обеспечивается специальной интерфейсной библиотекой, реализованной согласно спецификации FARCARDS.

Установка FARCARDS

Установка выполняется по аналогии с установкой сервера карт:

  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/FARCARDS дистрибутив актуальной версии ретранслятора
  • создать каталог, например UCS\PDS\FARCARDS и скопировать в него содержимое дистрибутива
  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/netdll.7z  архив с библиотеками связи и распаковать содержимое архива в рабочий каталог FARCARDS

Настройка FARCARDS

Параметры FARCARDS хранятся в конфигурационном файле FARCARDS.INI.

Секция общих параметров:

[FarServer]
Type = 0    ;    режим работы ретранслятора, см. ниже
DLL = RTcp  ;   наименование библиотеки связи для подключения к CardServ либо библиотеки для связи с внешней системой
; Примечание: в режиме Type=0 библиотека RTcp не может присутствовать в секции [LinkDLL]. При запуске FARCARDS проверяет эту ситуацию и при необходимости автоматически корректирует FARCARDS.INI
Log = 0          ; уровеень детализации лог-файла (0..3)
Gate = 1         ; номер параметров, используется в секции параметров библиотеки, указанной в параметре DLL
CloseMins = 5    ; таймаут отключения от CardServ после отключения последнего клиента (мин), 0 - отключается сразу.

; Секция для перечисления библиотек связи

[LinkDLL]
1 = RNBOpen
2 = RLocal
3 = pds_netk

; Секции с параметрами библиотек связи
[RTcp]
Client1 = Remote Resto
Server1 = 127.0.0.1
Port1 = 2222
[RNBOpen]
Server = AServ
[RLocal]
Port = 1
[pds_netk]
NetServerName=FarCards
ininame=netk.ini
XML
  

В макетах печати есть бэнд "Субсчета", в котором можно выводить всю доступную информацию по привязанным счетам к карте. Если там нет потрат, то их никак не увидеть.
За отображение потрат в окне "Информация о клиенте" отвечают параметры:

HasUnitInfo=1
Show_AccountTypes=1
XML


Далее укажите в Show_AccountTypes  ID счета потрат, которые можно увидеть в конфигураторе

Режимы работы FARCARDS

FARCARDS может работать в двух режимах, которые определяются значение параметра Type в секции [FarServer]

Режим Type = 0

В этом режиме FARCARDS подключается к серверу карт CARDSERV и передает ему все запросы клиентов (например,  кассовых серверов) и возвращает ответы.

Фактически этот режим утратил актуальность в связи с появлением более функциональной конфигурации распределенной ПДС (SYNCARD), а также возможости кассового сервера R-Keeper v6 подключаться к серверу карт через протокол TCP/IP (начиная с версии 6.102)

Пример использования режима Type = 0:

  • имеется ресторан с работающей системой персональных карт ПДС
  • есть второй ресторан (территориально в другом месте), где необходимо использовать эти же карты
  • при обеспечении связи по TCP/IP между ресторанами, во втором ресторане можно использовать FARCARDS в режиме Type = 0
  • обращение к FARCARDS для кассовых серверов во втором ресторане будет "прозрачным", как к обычному CARDSERV, а FARCARDS по TCP/IP будет связываться с сервером карт в первом ресторане и ретранслировать весь обмен информацией
  • таким образом, FARCARS выступит в качестве промежуточного звена между кассовыми серверами и сервером карт:
  RKCLIENT ⇔ RKSERVER ⇔ FARCARDS ⇔ LAN\WAN ⇔ CARDSERV

Пример настройки FARCARDS.INI для режима Type = 0:

[FarServer]
Type = 0
DLL = RTcp       ; библиотека для связи с CARDSERV
Log = 0
Gate = 1
CloseMins = 5

; Секция для перечисления библиотек связи

[LinkDLL]
1 = RNBOpen
2 = RLocal
3 = pds_netk

; Секция параметров для связи с удаленным сервером карт:

[RTcp]
Client1 = Дальний Ресторан ; любое уникальное название клиента FARCARDS
Server1 = 192.168.0.99     ; IP-адрес удаленного сервера кар
Port1 = 3456               ; порт удаленного сервера карт для подключение по TCP/IP

; секции с параметрами библиотек связи

[RNBOpen]
Server = AServ

[RLocal]
Port = 1

[pds_netk]
NetServerName=FarCards (имя PDS Server name - интерфейса добавленного на кассовый сервер)
ininame=netk.ini
XML
  

После запуска FARCARDS в режиме Type = 0 в графическом интерфейсе на закладке  Server отображается статус подключения к серверу карт:

Рис. Ошибка при подключении к серверу карт

 Рис. Подключение к серверу карт установлено успешно

При успешном подключении FARCARDS к серверу карт в графическом интерфейсе сервера карт на закладке "Connects" отобразится подключение (если параметр CloseMins отличен от нуля, иначе подключение будет кратковременным):

Рис. Статус подключения FARCARDS к удаленному серверу карт

Режим Type = 1

В этом режиме FARCARDS передает запросы своих клиентов в подключаемую интерфейсную библиотеку и возвращает клиентам результат ее работы.

В режиме Type=1 FARCARDS выступает в роли сервера (аналогично CARDSERV), но логика работы с персональными картами реализуется в интерфейсной библиотеке (и/или во внешней системе, доступ к которой обеспечивает интерфейсная библиотека).

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

Пример использования режима Type = 1:

  • Заказчик имеет собственную информационную систему для управления персональными данными сотрудников и/или гостей (это может быть как простая система лояльности, так и система управления предприятием класса ERP)
  • Заказчику необходимо использовать существующую систему совместно с кассовым ПО R-Keeper.
  • Заказчику передается спецификация для разработки интерфейсной библиотеки (Extdll.txt) и дистрибутив FARCARDS

В режиме Type=1 клиентами FARCARDS могут быть только кассовая система  r_keeper_7  и утилита  CARDINFO.

Кроме связи со сторонними системами, FARCARDS в режиме Type=1 используется для связи кассовой системы R-Keeper c другим ПО Компании ЮСИЭС:

  • R-Keeper CRM   - система управления стратегий взаимодействия с клиентами
  • Shelter ПДС        - дисконтная система на базе ПО Shelter
  • Абонемент        -   универсальная система управления
  • Премьера           - система автоматизаци кинотеатров

Пример настройки FARCARDS.INI для режима Type = 1:

[FarServer]
Type = 1                     
DLL = ExtDLL29.dll ; название интерфейсной библиотеки
Gate = 1           
Log = 3
XMLCP=1251         ; установка кодовой страницы для XML-данных

[LinkDLL]
1 = RTCP
2 = RNBOpen
3 = pds_netk


; секции с параметрами библиотек связи:

[RNBOpen]
Server = AServ

[RLocal]
Port = 1

[pds_netk]
NetServerName=FarCards
ininame=netk.ini
XML
  
Примечание: Кроме настройки конфигурационного файла FARCARDS.INI может потребоваться настройка параметров интерфейсной библиотеки - см. документацию, поставляемую с библиотекой

После запуска FARCARDS в режиме Type = 1 в графическом интерфейсе на закладке Server отображается статус подключенной интерфейсной библиотеки:

Ошибка при загрузке интерфейсной библиотеки

Интерфейсная библиотека загружена успешно

Запуск FARCARDS

Запуск FARCRDS возможен как в качестве приложения, так и в качестве службы. Для запуска FARCARDS не требуется ключ защиты и/или лицензия

Примечание: При использовании режима Type =1 запуск FARCARDS может зависеть от сторонних компонентов - см. требования к интерфейсной библиотеке

Режим запуска определяется ключем:

  • /DESKTOP      - запуск ретранслятора как приложения
  • /INSTALL        - установка ретранслятора в качестве службы. При установке ретранслятора карт в Windows 7 и выше в качестве службы, в системном трее иконка отображаться не будет
  • /UNINSTALL   - удаление установленной службы (сервиса) ретранслятора

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

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

  • Вкладка "Server" - общие сведения
  • Вкладка "Chanels" - список подключившихся клиентов
  • Вкладка "DLL" - список библиотек связи с параметрами и состоянием. Если ретранслятор запущен как приложение, будет доступно Popup-меню для закрытия (Shutdown)

Распределенная ПДС

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

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

Возможные области применения:

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

Преимущества использования:

  • не требуется наличие постоянной связи между рестораном и головным сервером карт
  • вся информация дублируется - в каждом удаленном ресторане фактически создается резервная копия головной базы, причем достаточно актуальная
  • в случае поломки любой базы данных и восстановления ее из резервного архива, все изменения и транзакции, созданные с момента создания резервного архива, попадут в базу после синхронизации
Примечание: Поддержка распределенной ПДС реализована с версии сервера карт CARDSERV 7.01

Схема работы

В конфигурации с распределенной ПДС всегда есть один  головной  (центральный) сервер карт и один или несколько  локальных  (подчиненных) серверов.

Головной сервер, как правило, находится в центральном офисе, а локальные сервера разнесены по удаленным объектам.  Синхронизация между серверами осуществляется через протокол TCP/IP, при этом не важно, как именно реализован сетевой канал - достаточное условие для синхронизации - возможность подключения к головному (или промежуточному) серверу по IP-адресу и порту.

Cтандартная схема работы:

Касса ⇔ LAN 
   Локальный CARDSERV ⇔ LAN 
  
   SYNCARD ⇔ WAN (INTERNET) ⇔ Головной CARDSERV

Дополнительно можно включать промежуточные сервера карт (в любом количестве), например:

Касса ⇔ LAN 
  ⇔ Локальный CARDSERV 
  ⇔ LAN 
  ⇔ SYNCARD ⇔ WAN (Mobile 3G INTERNET) ⇔ Промежуточный CARDSERV 
  ⇔ LAN 
  ⇔ SYNCARD ⇔ WAN (ISP INTERNET) ⇔ Головной CARDSERV

Конфигурация распределенной ПДС

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

Сервер карт (CARDSERV) может работать в  четырех  режимах:

  • Одиночный
  • Головной
  • Локальный
  • Промежуточный  (локальный+головной).

Режим работы сервера зависит от метки в базе данных CARD.UDB. Метка проставляются при первом подключении синхронизатора SYNCARD - если SYNCARD не используется, меток в базе нет (одиночный сервер).

Важно: Один раз проставленная метка остается в базе данных НАВСЕГДА!

Варианты преобразования меток:

  • Одиночный сервер можно сделать Головным (в любой момент)
  • Одиночный сервер можно сделать Локальным (подчиненным), только если его база данных пустая
  • Локальный сервер можно сделать Промежуточным (т.е. локальным+головным)
  • Головной сервер сделать Промежуточным  нельзя .

Таким образом, наращивать дерево серверов можно по одному серверу, подключая его как Локальный к работающему Головному, Промежуточному либо к Локальному (тогда он станет Промежуточным) серверу.

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

Важно: Редактировать данные с помощью редактора карт PCARDS можно только на серверах в режиме Одиночный или Головной. На Локальном и Промежуточном серверах возможен только просмотр данных и отчетов.
Примечание: Узнать, в каком режиме работает сервер карт, можно из приложения PCARDS - "Справка" \ "О программе" \ "Доступ"  - Полный, Головной, Нижний, Транзитный. Режим работы сервера также отображается на иконке сервера карт: H - Головной, L - Локальный

Недопустимые действия 

В таблице ниже описаны недопустимые действия с базой данных сервера карт, последствия, к которым они приводят и способы их разрешения:

Выполняемые действияСледствиеСпособ разрешения
Копирование базы данных сервера карт из одного локального ресторана в другой и подключение их к одному (общему) Головному серверуПолная рассинхронизация данных!
  • Если требуется запустить новый ресторан, надо взять чистую (пустую) базу данных из дистрибутива
  • Если база данных поломалась, надо заменить ее на целую архивную копию этой же базы либо на чистую (пустую) базу из дистрибутива *
Если в локальном ресторане попробовать использовать непустую базу, которая не является Локальной, SYNCARD не станет с ней работать

 Сообщение об ошибке:

"Can not mark [Local] as Local DB because it is not empty" .

  • Если требуется запустить новый ресторан, надо взять чистую (пустую) базу данных из дистрибутива
  • Если база данных поломалась, надо заменить ее на целую архивную копию этой же базы либо на чистую (пустую) базу из дистрибутива *
Если в локальный ресторан скопировать пустую базу данных головного сервера, SYNCARD не станет с ней работать

 Сообщение об ошибке:

 "Can not mark [Local] as Local DB because it is Head DB"

  • Если требуется запустить новый ресторан, надо взять чистую (пустую) базу данных из дистрибутива
  • Если база данных поломалась, надо заменить ее на целую архивную копию этой же базы либо на чистую (пустую) базу из дистрибутива *
Если на Головной сервер скопировать Локальную базу из ресторана, SYNCARD не станет с ней работать. Кроме того, редактор карт PCARDS не позволит редактировать данные в этой БД

 Сообщение об ошибке:

"Can not mark [Head] as Head DB because [Local] DB is not empty"

  • Если сломалась Головная база данных, надо заменить ее на целую архивную копию этой же базы либо на чистую (пустую) базу из дистрибутива *
Примечание: Архивные копии базы данных CARD.UDB сервер карт создает автоматически один раз в сутки (см. примечание выше).

Установка SYNCARD

Перед установкой SYNCARD предполагается, что выполнены следующие условия:

  • в рабочей конфигурации уже имеется Головной  или  Одиночный сервер карт
  • между Локальным и Головным (Одиночным) серверами имеется связь по TCP/IP (например, VPN с возможностью подключения по IP-адресу и порту к компьютеру, на котором запущен и работает Головной сервер)

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

  • установить локальный  сервер карт, если сервер карт был установлен ранее и уже использовался, необходимо установить пустую базу CARD.UDB
  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/SYNCARD  дистрибутив актуальной версии SYNCAD (историю изменений версии можно проверить в файле HISTORY.TXT)
  • распаковать содержимое архива, например в каталог \UCS\PDS\SYNCARD
  • в этот же каталог скопировать библиотеку связи RTcp.DLL (сборка актуальных версий библиотек связи на FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/netdll.7z )
Примечание: Учитывая замечание относительно библиотеки RLOCAL.DLL, для связи SYNCARD и локального сервера карт необходимо использовать только RTcp.DLL, даже если оба сервера находятся на одном ПК.

Далее необходимо настроить основной конфигурационный файл  SYNCARD.INI:

[Options]                    - Секция общих параметров 
Period = 10                  - период синхронизации в минутах (через сколько минут после успешного обмена будет следующий сеанс связи)

[Local]                      - Секция настроек связи с Локальным сервером карт
DLL = RTcp                   - DLL для связи с локальным сервером карт
Gate = 1                     - номер параметров DLL связи

[Head]                       - Секция настроек связи с Головным сервером карт
DLL = RTcp                   - DLL для связи с Головным сервером карт
Gate = 2                     - номер параметров DLL связи
Modem = 0                    - использование модема (более точно - установление связи через соединение Windows): 0 - не использовать, 1 - всегда использовать, 2 - использовать только при отсутствии прямой связи
TryLink = 1                  - работает только при Modem = 2 - количество неудачных попыток прямой связи до начала дозвона через модем

[Modem]                      - Секция настроек модемной связи
PBEntry = 3GMobile           - название соединения, созданное в Windows
User =                       - указание пользователя для аутентификации
Psw =                        - указание пароля для аутентификации
Domain =                     - указание домена для аутентификации

[Rtcp]                       - Секция параметров для библиотеки связи
Client1 = SYNCARD            - уникальное имя клиента для подключения к головному серверу карт
Server1 = 192.168.0.1        - IP-адрес для подключения к головному серверу карт 
Port1 = 5555                 - порт для подключения к головному серверу карт

Client2 = SYNCARD            - уникальное имя клиента для подключения к локальному серверу карт
Server2 = 127.0.0.1          - IP-адрес для подключения к локальному серверу карт
Port2 = 4444                 - порт для подключения к локальному серверу карт                 
XML
Запуск  SYNCARD.EXE  выполняется с ключами:
/INSTALL    - установка в качестве службы (рекомендуется)
/UNINSTALL  - удаление установленной службы
/DESKTOP    - запуск в качестве приложения
CODE
После первого запуска SYNCARD базы получат все необходимые метки автоматически и при наличии связи между серверами произойдет синхронизация данных.

Дополнительные приложения

CARDINFO - информация по карте

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

Может использоваться совместно с редактором карт PCards или как отдельное приложение в составе ПДС, дополнительная лицензия или ключ защиты не требуется.

Примечание: С версии CARDINFO 1.10 поддерживается работа со считывателем карт (настройка аналогична PCARDS)

Использование совместно с PCards

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

  • скопировать с фтп  ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDINFO  дистрибутив актуальной версии приложения и распаковать его содержимое в рабочий каталог PCards
  • на рабочем столе создать ярлык для запуска приложения
  • при необходимости подключить считыватель карт, настройка аналогична PCARDS
Примечание: Приложение CARDINFO для поддержки считывателей карт использует те же драйвера, что и PCARDS - если PCARDS уже настроен на поддержку считывателя карт, дополнительная настройка SYNCARD не требуется.

Использование в качестве отдельного приложения

Для использования в качестве отдельного приложения в составе ПДС необходимо:

  • скопировать с фтп ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDINFO  дистрибутив актуальной версии приложения
  • распаковать содержимое архива, например в каталог \UCS\PDS\CARDINFO
  • скопировать в рабочий каталог приложения библиотеку связи - рекомендуется использовать  RTCP.DLL
  • если необходимо отображать название скидок, скопировать в рабочий каталог приложения соответствующую библиотеку PCGET.DLL и библиотеки, необходимые для ее работы (см. описание настройки PCARDS)
  • создать или скопировать файл RKEEPER.INI  и настроить параметры (аналогично PCARDS):
[PCards]
CSLinkDLL  = RTcp      - имя библиотеки связи
CSLinkGate = 1         - номер клиента (добавляется к параметрам библиотеки связи)

[RTCP]
Client1 = CARDINFO     - уникальное имя клиентв для подключения к серверу карт
Server1 = 127.0.0.1    - IP-адрес сервера карт
Port1 = 3030           - TCP-порт для подключения к серверу карт
CODE
  
  • на рабочем столе создать ярлык для запуска приложения
  • при необходимости подключить считыватель карт, настройка  аналогична PCARDS

Импорт списка карт


Приложение CARDIMP используется для загрузки на сервер карт списка карт из текстового файла установленного формата.
 
Формат текстового файла в точности соотв. формату файла для импорта списка карт в приложении PCards
 
Для установки CARDIMP необходимо:
 

  • загрузить с FTP  ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/CARDIMP дистрибутив актуальной версии приложения
  • распаковать содержимое архива, например в каталог \UCS\PDS\CARDIMP
  • скопировать в рабочий каталог приложения библиотеку связи - рекомендуется использовать RTCP.DLL
  • создать файл CARDIMP.INI и настроить параметры :
[Options]
LinkDLL = RTcp     - имя библиотеки связи

[RTcp]
Client1 =          - уникальное имя клиента для подключения к серверу карт
Server1 =          - IP-адрес сервера карт
Port1 =            - TCP-порт для подключения к серверу карт
XML
  


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

Cardimp.exe Login Password FileName


где

  • Login           - имя пользователя для авторизации на сервере карт
  • Password   - пароль пользователя для авторизации на сервера карт
  • FileName   - имя импортируемого файла со списком карт

Обслуживание базы данных


Если файл базы данных сервера карт (CARD.UDB) слишком большой, с помощью приложения DATACUT можно скомпоновать старые транзакции, по которым не нужны детальные отчеты.
 
Принцип работы приложения:

  • транзакции в удаляемом периоде, изменяющие остаток средств, будут суммированы в одну транзакцию для каждого счета
  • остальные транзакции этого периода будут удалены
  • вся остальная информация в БД останется без изменений
  • после создания новой БД, старая БД не удаляется, а переименовывается в файл вида BEFORE_CUT_yyyy-mm-dd, где yyyy-mm-dd - дата, до которой было произведено удаление транзакций


Важно: Приложение не позволяет удалять транзакции в БД за последние 90 дней.
Важно: При использовании распределенной ПДС (SYNCARD) перед удалением транзакций вcе базы данных дерева серверов должны быть синхронизированы (последняя синхронизация не более 90 дней назад).


 
Для использования приложения необходимо:

  • загрузить с FTP ftp://ftp.ucs.ru/r-keeper/versions/PERSCARD/DATACUT  дистрибутив актуальной версии приложения
  • распаковать содержимое архива в рабочий каталог сервера карт CARDSERV
  • остановить сервер карт CARDSERV
  • запустить приложение и дождаться успешной обработки БД
  • запустить сервер карт CARDSERV и проверить работу