PDA

Просмотр полной версии : Проблема со скидками.......



Чакипер
21.07.2008, 13:25
Народ помогите пожалуйста!!!!!
Оченя надо.........
Настроил ПДС прописал скидку 5%.......
картой провожу
скидка не осуществляется....
Что делать....
может дело в кодировке карты
она должна соответствовать коду ресторана.
Напишите поподробнее пожалуйста
как мне настроить эти скидки
оченя надо.......

SH
21.07.2008, 14:29
Проверьте, как намагничена карта, в ДОСе.
Должно быть: 778=код ресторана=номер карты
Недавно столкнулись с нерабочими картами как раз из-за неправильного намагничивания.

Чакипер
21.07.2008, 16:41
Напиши пожалуйста поподробнее
как посмотреть через DOS
как намагничена карта

SH
21.07.2008, 20:10
Грузите любую станцию без загрузки кипера (закомментируйте rkeeper6.exe в autoexec.bat). Как увидите командную строку - катайте карту, увидете, что на ней намагничено.
Как вариант, если с досом у Вас плохо и есть отдельная клавиатура с читалкой - цепляете к компу, открываете текстовый либо табличный редактор и катаете карту.

Чакипер
22.07.2008, 11:01
Карта намагниченна таким образом.
ж778код_ресторанакод_карты
цифры пишутся слитно.без пробела.
знака равно нету. как правильно должна быть намагниченна карта?

St@rch
22.07.2008, 12:25
Персональные Дебетовые карты: (использует CARDSERV)

778=xxxxxxxx=yyyyy

где 778 - ID, что это персональная дисконтная
(дебетовая, платежная, клубная)карта.

= - разделитель

xxxxxxxx - восьмизначный код ресторана из
SYSTEM.DB, что находится на кассовом
сервере в DATABASE. На карточку заносится
БЕЗ ТОЧКИ (в SYSTEM.DB xxxx.xxxx ).
Если открыть SYSTEM.DB с помощью
SETCODAT.EXE, то это шестой пункт.

yyyyy - код карты, который и заносится в
PCARDS.EXE. Max 8 цифр, но в приципе
желательно max 5

SH
22.07.2008, 14:16
Знак "равно" должен быть. У Вас неправильно закодированы карты. Воспользуйтесь fixlen.dll:

Модуль реализован в виде DLL файла FIX_LEN.DLL.
Необходимо скопировать данную DLL на все кассы и официантские станции в папку EXTENS, которая находится в рабочей папке RKCLIENT.
В RKEEPER6.INI, на каждой кассе и официантской станции, добавить строку с «маской» ваших карт. Формат записи:

FIX_LEN_MASK=12**NNNN

Где, FIX_LEN_MASK – имя переменной. Если DLL переименовали, то вместо FIX_LEN, пишется новое имя DLL.

12, в данном случае, а вообще любые цифры от 0 до 9 – постоянный идентификатор. Может находиться в любых местах, но на всех ваших картах одинаковый.

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

N – любые цифры от 0 до 9, общее количество не более 9. Программа данные символы будет воспринимать как номер карты.

Примеры:

1.Есть карта с записью на второй дорожке 34910431234, где первый, второй и пятый символы – постоянные. Последние два символа и третий ничего не значат. Номер содержится в четвертом и с шестого по девятый символах. Запись в RKEEPER6.INI для этих карт:

FIX_LEN_MASK=34*N0NNNN**

2.Карта проще – 7002345. Где 7 – постоянный символ на всех подобных картах. Номер – остальные символы. Запись в RKEEPER6.INI для этих карт:

FIX_LEN_MASK=7NNNNNN

Можно, кстати, ограничить в RKEEPER номера карт при помощи маски. Для вышеприведенной карты, например. Мы хотим, что бы в RKEEPER-е работали карты только с 0 во втором символе. Тогда маска такая:

FIX_LEN_MASK=70NNNNN

Все.

Чакипер
23.07.2008, 09:10
Слушай у меня вот так
ж778кодресторана(8 знаков)кодкарты(6 знаков)
все ли правильно и что это за ж перед 778

Чакипер
23.07.2008, 10:48
И почему код карты 6 знаков...............

St@rch
23.07.2008, 11:18
fix_len позволяет "натянуть" любую маску ПДС карты...

пример:
имеем карты вида: 1230001123, 1230002123, 1230003123 ... 1239999123

fix_len.dll позволит нам прописать и такие карты ПДС, где 778 и вовсе нет...

FIX_LEN_MASK = 123NNNN123


буква "Ж" - это видимо префикс ";" зашиваемый в карты (ничего в себе не несущий)

SH
23.07.2008, 11:41
Слушай у меня вот так
ж778кодресторана(8 знаков)кодкарты(6 знаков)
все ли правильно и что это за ж перед 778

Нет, я же написал. Не правильно. Нет разделителя (равно) и скорее всего неверно намагничен символ ";" - вместо него "ж".

SH
23.07.2008, 11:43
Код карты может быть шестизначным.
Вам нужен fix_len. Инструкцию читайте ранее. Настроить надо так:
FIX_LEN_MASK = *код_ресторанаNNNNNN

Чакипер
23.07.2008, 12:13
Может быть (ж) все таки верно
просто у меня стоит puntoswitcher
и при катании карты он считывает ;
как букву ж или наоборот

SH
23.07.2008, 12:17
Ну, fix_len нужен по-любому, а я для дого и прописал * в начале, чтобы символ был не важен.
А пунтосвитчер при прокатывании можно и отключить. Чтобы точно знать, что у Вас на карте!

St@rch
23.07.2008, 13:48
ж778кодресторана(8 знаков)кодкарты(6 знаков)

FIX_LEN_MASK = 778кодресторана(8 знаков)NNNNNN

; - не прописывается... это ПРЕФИКС, он не учитывается

SH
23.07.2008, 14:37
ммм... если там вместо ";" все-таки закодирована "ж", то боюсь, что она за префикс не покатит. Придется учитывать.

Чакипер
24.07.2008, 14:54
Следующая проблема
Намагнитил карты по принципу
778=xxxxxxxxx=yyyyyy
толку то
завожу стол делаю заказ провожу картой
вылезает ошибка
нет соединения
с карт сервером
что делать помогите

SH
24.07.2008, 16:09
нууу...
сервер кассовый где находится? На сервере правильно указан сервер карт?
Сервер карт вообще запущен?

Чакипер
25.07.2008, 08:25
Кассовый сервер находится на станции бармена.........

Чакипер
25.07.2008, 11:22
Напишите пожалуйста подробные настройки
Сервера карт..........
Сервер карт идет с автозапуском и висит всегда в трее
Он запускается на менеджерской станции.
И почему тогда карты персонала он без проблем видит
и читает а дисконтные не хочет (нет соединения с сервером карт)
В R-keeper reports он выдает
Сервер карт: не найден
NB Error 14H Server not found:PCServ

SH
25.07.2008, 14:45
Потому что карты персонала работают не через сервер карт. Сервер карт нужен только для дисконта.

По настройке, ловите полный мануал:

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

Инсталляция:
1.Копируем из инсталляции папку CARDSERV куда-нибудь, например в RK6 или просто на диск “C”. В нее (CARDSERV) копируем из инсталляционной папки PERSCARD\DLL все дллельки, которые там есть.
2.Копируем из инсталляционной папки PERSCARD\PCARDS в RK6 все файлы и каталоги, которые там есть (кроме BILLIARD и NULL), заменяя существующие файлы. Туда же, в RK6, копируем из инсталляционной дир. DLL все дллельки, за исключением RNBOPEN.DLL.
3.Открываем в ново созданной дир. CARDSERV файл CARDSERV.INI и настраиваем его следующим образом:

[DB]
File = card.udb
DayBound=4:00
Backup = BACK

[LinkDLL]
1 = RNBOpen
2 = RNetBios
3 = RLocal
4 = RTcp

[RNBOpen]
Server = AServ

[RNetBios]
Server = PCSERV

[RTcp]
Port = 3456

[RLocal]
Port = 0 (это цифра НОЛЬ)

Где: BACK – это папка для бэкапа базы. Можно назвать по-другому.
AServ и PCSERV – это имена сервера (CARDSERV) по протоколам RNBOpen и RNetBios. Имена должны состоять из латинских букв или цифр. Размер букв ВАЖЕН. Данные имена не должны присутствовать ни где больше в данной компьютерной сети. То есть так НЕ ДОЛЖНЫ называться ни один компьютер, ни кассовый сервер и т.д. Другими словами имена сервера должны быть УНИКАЛЬНЫЕ.
3456 – порт TCP/IP. Можно указать любой свободный, начиная с 1024. Вообще протокол RTcp используется, только если на компьютере есть TCP/IP. Если его нет, то раздел [RTcp] и 4 = RTcp можно удалить.

RLocal используется только если CARDSERV и “Reports Rkeeper”, а также PCards находятся на одном компьютере.
RNBOpen – протокол, только для КАССОВОГО сервера. Соответственно там, где стоит CARDSERV, обязательно должен стоять сетевой протокол NetBeui.

4.Открываем RKEEPER.INI в RK6 (на “менеджерском” компьютере) и настраиваем его в зависимости от конфигурации.

4.1 Если CARDSERV.EXE запускается там же, где находится “Менеджерская”, то файл RKEEPER.INI настраиваем так:

[Common]
Alias1 = c:\rk6\db
Alias2 = c:\rk6\db

[PCards]
CSLinkDLL = RLocal
CSLinkGate = 1

[Reports]
CSLinkDLL = RLocal
CSLinkGate = 2

[RLocal]
Port1 = 0 (это цифра НОЛЬ)
Client1 = PersonCard
Port2 = 0 (это цифра НОЛЬ)
Client2 = Report

4.2 Если CARDSERV.EXE запускается на отдельной машине (например на сервере), то файл RKEEPER.INI настраиваем так:

[Common]
Alias1 = c:\rk6\db
Alias2 = c:\rk6\db

[PCards]
CSLinkDLL = RNetBios
CSLinkGate = 1

[Reports]
CSLinkDLL = RNetBios
CSLinkGate = 2

[RNetBios]
Server1 = PCSERV
Client1 = PersonCard
Server2 = PCSERV
Client2 = Report

Где: Alias1 и 2 указывает туда же, куда соответствующие Alias-ы в RKEEPER6.INI на “Менеджерском” компьютере в RK6.
Server1, 2 (именно то, что после знака “=”) – имя сервера CARDSERV по протоколу RNetBios из CARDSERV.INI
Client1, 2 (именно то, что после знака “=”) – имена клиентов. Имена клиентов могут быть любые, но УНИКАЛЬНЫЕ.

Иногда бывает, что при подключении PCards пишет о невозможности подключения к серверу. Мол, сервер не найден. Тогда может вам понадобится добавление строк Adapter1, 2 и т.д. в раздел [RNetBios]. Тогда раздел будет выглядеть так:

[RNetBios]
Server1 = PCSERV
Client1 = PersonCard
Adapter1=3
Server2 = PCSERV
Client2 = Report
Adapter2=3

Цифра после “=”, это номер адаптера по протоколу NetBeui (Lana num).
Если у вас Windows NT, 2000 или XP, то поиск номера можно производить, используя утилиту Nba-find.exe из инст. дир. KACCA\SERVER\32-NT\NBA.
Там есть ее описание.
Если у вас Win 9X или Me, то там номер 0, 7, ну или 6. Так же можно найти при помощи Редактора Реестра (Regedit.exe). По разделу HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NetBios находим “ncacn_nb_nb0”. Значение этого параметра и будет нужный номер адаптера.
Утилита Nba-find.exe в Windows 9X или Me работает не коректно!

5.В заключении настройка на кассовом сервере. В директории, где находится кассовый сервер, открываем RKEEPER6.INI (если его там нет, то создаем) и добавляем туда строку:

APServer=AServ (здесь после “равно” пишется имя сервера CARDSERV для RNBOpen из CARDSERV.INI).

Если сервер на NT, то это, скорее всего дир. RKSERVER. Если сервер на кассе, то файл RKEEPER6.INI в рабочей дир. RKCLIENT.

6.При использовании карт, как “Платежные”, необходимо в “Редакторе Rkeeper” создать новую валюту в группе “PrePay” (Безнал. оплаты). Назвать ее можно как угодно, например “Клубная карта”. Данное название будет фигурировать в чеке. На закладке “Авторизация” необходимо выбрать “БОНУС КАРТА”
.
7.На картах, используемых “ПДС”, находится код ресторана (помимо другой информации). Если не знаете код ресторана из SYSTEM.DB, откройте его с помощью SETCODAT.EXE и перепишите себе (или пропишите новый код ресторана) по пункту номер 6 в SETCODAT. В SYSTEM.DB код должен быть через точку после 4 цифры (1234.5678). Этот же код должен быть на платежных (скидочных) картах этого ресторана, причем слитно, без точки.

8.Ярлык для CARDSERV.EXE следует засовывать в Автозагрузку только для WIN NT или WIN 2000. Для WIN95 или 98 - нажать правую кнопку мыши на закладке Database в открытом CADSERVER-е и выбрать Autostart.

9.Если необходимо иметь одну базу карт(CARD.UDB) на два и более
ресторанов, то можно воспользоваться новым сервером FARCARDS.EXE, описание которого, а так же сам он, находятся в PERSCARD\FARCARDS.
Для нашего варианта использовать режим (type) 1.

Апгрэйд.
Файл UP_ROSIN.EXE используется только в ресторанах РОСИНТЕР-а!!!

Перед апгрейдом необходимо сохранить старую директорию CARDSERV, на всякий случай!

Если в ресторане уже стоит CARDSERV.EXE, то необходимо сделать следующие действия:

1.Выключить работающий CARDSERV (открыть CARDSERV, выбрать закладку Protocols, в любом месте “сетки” с протоколами нажать правую кнопку мышки и выбрать shutdown).

2.Заменить DLL файлы связи на новые везде, где они есть. Имеется в виду
RNetBios.dll и так далее.

3.Заменить на новый CARDSERV.EXE.

4.Заменить на новые PCARDS.EXE, PCARDS.DAT, а лучше, скопировать все, что находится в новой директории PERSCARD\PCARDS.

5.Скопировать файлы DOPPEL.EXE и CARDUP.EXE из новой директории PERSCARD\UPGRADE в директорию, где находится CARDSERV.EXE.

6.Запустить DOPPEL.EXE и выполнить его.

7.Запустить CARDUP.EXE и выполнить его.

8.Запустить CARDSERV.EXE.

9.Работать дальше.

10.Необходимо иметь в виду, что файлы могут быть разбросаны в разных местах. Например, PCARDS.EXE в директории RK6, CARDSERV.EXE вообще может находиться на другом компьютере.



Особый случай при апгрэйде. Используется, при апгрэйде ОЧЕНЬ старой версии RKEEPER-а. Таких версий в ресторанах практически уже не осталось. Но на всякий случай:

В ресторане мог стоять старый сервер “Платежных карт” ( PCSERVER.EXE ). Узнать это можно несколькими способами:
a.В RKEEPER6.INI на кассовом сервере присутствует строка APServer=
b.Есть ярлык этого экзешника, а также запущенное окно
c.Спросить у персонала
Этот апгрэйд описан у Шашкова А. в директории PERSCARD\UP-OLD инсталляции в файле README.TXT. Там же смотреть, если старого сервера “Платежных карт” не было, а есть только “Дисконтные карты”.

Далее некоторые дополнения в “Приложении”.

ПРИЛОЖЕНИЕ

Если есть желание подключить “PCards” и “Отчеты” по разным сетевым протоколам (NetBeui и TCP/IP), то файл RKEEPER.INI в RK6 может выглядеть так:

Допустим, PCards подключается по TCP/IP, а Reports(отчеты) по NetBeui. Тогда RKEEPER.INI, может быть такой:

[Common]
Alias1 = c:\rk6\db
Alias2 = c:\rk6\db

[PCards]
CSLinkDLL = RTcp
CSLinkGate = 1

[Reports]
CSLinkDLL = RNetBios
CSLinkGate = 2

[RTcp]
Server1 = 196.196.196.10 (это IP адрес компьютера, где запускается CARDSERV.EXE). Сюда можно написать и имя компьютера
Port1 = 3456
Client1 = PersonCard

[RNetBios]
Server2 = PCSERV
Client2 = Report

Если в CSLinkDLL используются разные протоколы (так как выше), можно в CSLinkGate не использовать разные номера и соответственно в Client, Server, Port, Adapter.

И последнее:

Если PCards находится на одном компьютере, а “Менеджерская” с “Reports” на другом, то в RK6 достаточно отредактировать RKEEPER.INI, который там уже есть и имеет вид примерно такой:

[Reports]
CSLinkDLL=RTcp
CSLinkGate=1

[RTcp]
Server1 = 192.192.192.23
Port1 = 3456
Client1 = Reports

Просто Reports берет Alias-ы из RKEEPER6.INI в RK6. Ну и конечно надо обязательно присутствие соответствующей CSLinkDLL дллельки связи, RLocal, RNetBios и т.д. В файле RKEEPER.INI, который находится вмести с PCards, в этом случае, не должно быть раздела [Reports] и конечно информация о сервере и клиенте должна быть только для PCards:

[Common]
Alias1 = \\manager\menu6
Alias2 = \\manager\menu6

[PCards]
CSLinkDLL = RNetBios
CSLinkGate = 1

[RNetBios]
Server1 = PCSERV
Client1 = PersonCard



Все.
© А. Метелица 06.03.2003

Чакипер
28.07.2008, 11:36
Все. всем спасибо огромное. Все сделал. Нашел в чем косяк был. это в криворукости предыдущих инженеров.

тема закрыта