Просмотр полной версии : Непонятная работа бонусных карт
Maxim8112
18.06.2014, 18:15
Внедрили наконец бонусные карты и началось у нас веселье. В большинстве случаев бонусы нормально начисляются на проводимую карточку. Но иногда бывает такое - забиваем заказ, проводим бонусной картой и раз, кипер посчитал нам скидку 10%, а бонусы не прибавил никуда. Удаляем, пробуем заново - та же беда. Считает, что провели скидочной картой и все. А вот на третий раз, к примеру, может все сходу получиться. Провели картой и получили сразу на нее бонусы. Притом такая карта завтра может и с первого раза отработать, что и вовсе непонятно. В связи с этим вопрос, откуда берется эта непонятная скидка и почему она тут вообще появляется? Ну никак логику не можем понять...
А где же версии используемых программ, где логи с дисконтной системы?
Maxim8112
18.06.2014, 23:36
Версия менеджера ресторана 6.86. Версия PC Cards 3.10a. В логах PC Cards вообще нет ничего интересного, лишь статистика запуска и закрытия самой программы. Забыл сказать, что специально для бонусных карт создана нулевая скидка на все категории блюд и на вкладке Скидки у карты, эта скидка выбрана. То есть вроде бы как все нормально.
1. Старенькое все. С тех пор много багов было исправлено. Обновиться бы. Но! Я о таких багах не слышал, так что - вряд ли.
2. Может и железо мудрить, надо загрузиться в ДОС и покатать карту в командной строке. Считыватель умирает, на других дорожках на карте что-нибудь закодировано и пр.
3. Надо смотреть свойства скидок, возможно, есть скидка в чеке, которая конфликтует со скидкой, привязанной к бонусной карте (нулевой).
Maxim8112
19.06.2014, 00:37
Скидок на чек вообще нет ни одной, только что посмотрел.
Бонусная карта не может работать без нулевой скидки.
Бонус зачислить вообще не возможно без скидки
В логах PC Cards вообще нет ничего интересного, лишь статистика запуска и закрытия самой программы.
Конечно там ни чего не будет, т.к. PCards скидок не дает т.к. является клиентом, нужно курить сервера логи Cardserver
Версия менеджера ресторана 6.86.
Староватая версия
Rus75lan
20.06.2014, 08:52
смотрите категории, на которые начисляются бонусы.
Maxim8112
21.06.2014, 21:50
нежданно возникла новая проблемка. Изначально заказывали бонусные карты в количестве 1000 штук с нумерацией начиная с 1500. В итоге там менеджеры напутали и сделали обычную нумерацию, начиная с первого номера. И бухгалтера не могут ввести бонусную карту с номером, например, 10, так как в базе уже есть персональская карта с таким номером. Звонили в Датакрат разбираться, там сказали чего вы мол кипишите. Бонусные карты закодированы в другом диапазоне от персональских карт и все тип-топ. Говорят, что можно номера любые вводить, а не только номер самой карты. Так это же неудобно и непонятно какая это конкретно карта с таким номером. Вы что думаете?
так как в базе уже есть персональская карта с таким номером
Что Вы называете персональской картой?
Говорят, что можно номера любые вводить, а не только номер самой карты.
Какая-то непонятная фраза.
Персональские карты кодируются просто 4 цифры, допустим, ;4444?
Карты для ПДС (и неважно, бонусные они, скидочные - это только настройками определяется) кодируются по специальному шаблону ;778=XXXXXXXXX=NNNN?, где XXXXXXXXX - код ресторана, а NNNN - номер карты.
Нестандартная кодировка приводится к шаблону через fixlen. С определенной версии появилась возможность с помощью специальной dll использовать и персональские в качестве карт ПДС, но это изврат и скорее для случаев кривой кодировки.
Внимание, вопрос - как закодированы Ваши "бонусные" карты?
Maxim8112
22.06.2014, 16:43
Как сказала менеджер Датакрата, бонусные карты у нас закодированы в диапазоне с 0001 по 1000. А персональскими картами мы называем личные карты сотрудников, которые ими делаю скидки, к примеру. Вот сейчас открыл ПДС и сделал скриншоты, чтобы было более понятно, что мы не понимаем.
2865
Тут видно, что этому сотруднику была выдана в свое время скидочная карта, на которой был указан номер 150 сзади. Именно с этим номером его и внесли в базу.
Теперь берем новую бонусную карту, видим сзади ее номер 150 и заводим ее:
2866
Как результат, появляется ошибка о конфликте номеров карт, что и понятно в принципе:
2867
Понятно, что Датакрат сейчас не сознаются и не будут перепрограммировать карты, но и работать ведь так нельзя. Вот как теперь тут быть?
1. Считать с новых и старых карт, что конкретно на них закодировано.
2. Если кодировка хоть как-то различается, то настраивать через fixlen, конкретно через параметр addcode.
3. Если кодировка старых и новых карт идентична, то либо перепрописывать новые карты, либо отказываться от старых карт и использовать только новые.
Maxim8112
22.06.2014, 23:53
1. Считать с новых и старых карт, что конкретно на них закодировано.
2. Если кодировка хоть как-то различается, то настраивать через fixlen, конкретно через параметр addcode.
3. Если кодировка старых и новых карт идентична, то либо перепрописывать новые карты, либо отказываться от старых карт и использовать только новые.
Скорее всего кодировка у них различная, но точно проверю уже завтра. А как именно настраивать через fixlen?
Получается, что карты кодируются по специальному шаблону ;778=XXXXXXXXX=NNNN, где последние четыре символа это и есть номера карт. В нашем случае N будет от 0001 до 1000. Я правильно понимаю? В заглавном топике прочитал, что параметр AddCode - (не более LongInt, по умолч - 0 ) прибавляется к результирующему номеру после маскирования. Как именно выглядит в этом случае строка с этим параметром? Туда добавляется еще одна цифра и их становится пять, или как?
---------- Добавлено в 22:53 ---------- Предыдущее сообщение было размещено в 21:57 ----------
Хм... посмотрел RKEEPER6.INI на станции кассира и немного остался в замешательстве...
Network=ON
ServerName=SERV01
APServer=AServ
RePrintCheck=ON
HiResolution=2
COLOR=ON
256Color=ON
Colors=2
InternalZ = OFF
PrintFinalCheck = OFF
EKLZPrinter = FRMC.DLL
FRMC_0 = 1
FRMC_C1 = 1-4999
FRMC_C2 = 5000-9999
FRMC_Log = ON
FP1_Port = 1
FP1_Psw = AERF
FP1_Pay1 = 1
FP1_Pay2 = 2
FP1_Pay3 = 0
FP1_Pay4 = 0
FP1_Log = ON
FP1_OneLine = OFF
FP1_OneName =
FP1_AltName = OFF
FP2_Port = 2
FP2_Psw = AERF
FP2_Pay1 = 1
FP2_Pay2 = 2
FP2_Pay3 = 0
FP2_Pay4 = 0
FP2_Log = ON
FP2_OneLine = OFF
FP2_OneName =
FP2_AltName = OFF
comport3baud=9600
comport4baud=9600
PERSON_MASK = 165350001*NNNN
Etherjet_Name = POOL
Etherjet_BLOCKADDR = 192.168.1.124
Вообще в упор не вижу здесь параметров ни FIX_LEN_MASK, ни FIX_LEN_Card.
Для начала узнайте кодировку карт. Исходя из кодировки можно будет подсказать, что делать дальше.
Maxim8112
23.06.2014, 09:01
Узнали кодировку... Мда, печально.
Карта старая с номером 0140: ;778=165350001=0140?
Карта новая с номером 0101: ;778=165350001=0101?
Получается, что карты закодированы одинаково?
Узнали кодировку... Мда, печально.
Карта старая с номером 0140: ;778=165350001=0140?
Карта новая с номером 0101: ;778=165350001=0101?
Получается, что карты закодированы одинаково?
Решение есть, перекодировать новые карты. Обратиться в любую контору работающую с пластиковыми картами.
Maxim8112
23.06.2014, 12:33
Все, договорились с Датакратом на перекодировку карт. Всем спасибо за подсказки )
Карта старая с номером 0140: ;778=165350001=0140?
Карта новая с номером 0101: ;778=165350001=0101?
Получается, что карты закодированы одинаково?
Одинаково, но так и не понял, в чем проблема: правильно закодированы же. Или Вам сделали тот же диапазон номеров, что и раньше был?
Powered by vBulletin® Version 4.2.6 LTS Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot