Новости: Скачать веб оснастку с драйвером и сервером драйвера можно тут http://icecash.ru:8181/dIceWWW.tar.bz2 Скрипты создания mysql таблиц тут http://icecash.ru:8181/dIceMysql.tar.bz2 Образ диска установщика кассы на debian 6 http://icecash.ru:8181/IceCash.iso redeyser@gmail.com 09/06/2015 IceCash v 3.014 Драйвер штрих-м и сервер для этого драйвера. Драйвер я немного дописал. Это давно не обновлялось: ----------------------------------------------------------------- Здесь вы найдете: 1. Драйвер для штрих-М 2.Сервер этого драйвера для управления фискальником и кассой. 3.php оснастка для рабочего места кассира 4.клиент для автоматического обмена прайсами и обновления программы. ФРК управляется драйвером kkmdrv.KKM через объект frk.frk. Сам frk помещается в демон dIceCash и там инициализируется. В dIceCash также помещается объект dbIce - база данных mysql (транзакции, прайс, настройки) и сокетный клиент для ограниченного (в данном случае одного) количества активных пользователей. Для тестов работы сервера и ФРК можно использовать сокетного клиента cIceCash, предварительно набрав все команды в текстовый файл: Команда должна иметь вид: <Номер кассы>;<объект назначения>;<команда>;<параметр1>;<параметр2>,... Объекты назначения: db - база данных, frk - фискальник, frkr - фискальник (запросы без результата), self - собственные. db - запросы к базе данных (найти товар по коду, найти дисконтную карту, провести транзакцию скидки) frk - запросы к ФРК, они направляются напрямую в объект frk через метод parsingCmd, при этом необходимые транзакции пишутся в базу данных автоматически frkr - запросы на получение номера текущего чека, статуса объекта frk self - изменение переменной, отвечающей за режим работы без ФРК, а также команды загрузки-выгрузки обменных файлов в формате Штрих-М. Для запросов frk, пересылается клиенту ответ от фискальника (0 - операция прошла успешно, err - ошибка фискальника) ПРИМЕР: echo "1;frk;connect;/dev/ttyS0;115200" >txt echo "1;frk;disconnect" >>txt ./dIceCash.py & cat txt | ./cIceCash.py Можно использовать просто telnet (только в этом случае будет действовать ограничение на один открытый коннект, до тех пор пока вы не отключитесь): ПРИМЕР: telnet localhost 7171 1;frk;connect;/dev/ttyS0;115200 Таким образом можно управлять фискальником через сеть, посредством сервера dIceCash. Может у кого возникнет желание написать сетевого консольного клиента? Также можно подключить несколько клиентов, если это необходимо к одному фискальнику через демон dIceCash. В этом случае, образуется очередь подключения, так как есть ограничение на количество активных клиентов. Клиент же должен сначала подготовить весь чек, затем обратится к демону и дождавшись своей очереди, соединится и напечатать весь чек. Затем отсоединиться и освободить очередь. Ожидание очереди происходит автоматически, если пользоваться клиентом cIcecCash. В данном случае используется WEB клиент (PHP на стороне сервера) для взаимодействия с сервером dIceCash. 1. Базовые исходники kkmdrv.py и надстройка frk.py ------------------------------------------------------------------------------- В основе работы с ФРК ШТРИХ-М лежит написанный объект-драйвер неким Dmitry Shamov <demmsnt@gmail.com>, взятый отсюда: http://sourceforge.net/projects/pyshtrih/. Использовался только файл "kkmdrv.py" версии 1.0.4. В драйвер были добавлены некоторые, функции, возможно автор внесет их в новую версию. Описание драйвера: Для удобства, был создан файл frk.py и одноименный объект, который включает в себя базовый объект kkmdrv.KKM. frk __init__ только задает начальные свойства (пароли, порт, скорость порта) connect создает объект KKM, открывает порт, опрашивает регистратор. disconnect закрывает порт. Все используемые методы объекта KKM вынесены в объекте frk и помещены в обработку исключений. В некоторых методах сокращены параметры для удобства (setDate setTime ...) Добавлены методы в базовый драйвер и вынесены в frk: cut - отрезка чека renull - технологическое обнуление open_box - открытие ящика writesets - запись трёх настроек ФРК (автообнуление наличности, автоотрезка чека, автоокрытие ящика) writesets_text - запись трёх строк в заголовке чека (12,13,14 строка в настройках текста в чеке) frk также содержит метод parsingCmd, который получает универсальные параметры для использования собственных методов. Таким образом с ФРК можно работать например так: D=frk(kkmdrv.DEFAULT_PASSWORD,kkmdrv.DEFAULT_ADM_PASSWORD,'/dev/ttyS0',115200) D.connect() D.writesets(1,1,1) D.openCheck(0) D.Sale(2,20,'PIVO ZVERSKOE') D.closeCheck(100,10,20) D.disconnect Или так: D=frk(kkmdrv.DEFAULT_PASSWORD,kkmdrv.DEFAULT_ADM_PASSWORD,'/dev/ttyS0',115200) D.connect() D.parsingCmd('open_check',[0]) D.parsingCmd('sale',[float(1),float(20.5),"PIVASIK"]) D.parsingCmd('close_check',[float(100),float(10),float(20)])
banan-smarthome/IceCash
IceCash. Касса Linux. Рабочее место кассира под linux с использованием web интерфейса. С драйвером к Штрих-М ФРК.
PHP