Несколько рабочих мест - одна ЧПМ

60 views
Skip to first unread message

AndrewKo

unread,
Jan 12, 2012, 3:18:00 AM1/12/12
to openbravoposru
Добрый день!

Рассматриваю такое применение openbravoposru.
Задача - имеется торговая точка с тремя продавцами-консультантами.
Каждый продавец-консультант закреплён за компьютером с установленным
openbravoposru. Используется общая база MySQL на одном из компьютеров
(или на отдельном компьютере). Имеется одна чекопечатающая машина что-
то вроде ККМ Элвес-М, Элвес Микро, Меркурий 130 или 180 или
аналогичная. Всё оборудование для торговой точки будет покупаться
после того как будет обкатано решение.
Вопрос - каким образом можно настроить печать с нескольких рабочих
мест на одной ЧПМ?
Есть-ли готовое решение или нужно прикручивать свои скрипты?
Заодно посоветуйте недорогую ККМ только для печати чеков (ЭКЛЗ вроде
как для упрощёнки не нужна).
Не пинайте ногами за возможно глупые вопросы т.к. я ранее не работал с
openbravoposru

Заранее благодарен за ответ.
С Уважением, Андрей Корнев.

KostqN

unread,
Jan 12, 2012, 3:30:57 AM1/12/12
to openbravoposru
Сильно не пинайте но попробую ответить
Где то читал что печать можно
для это вам необходимо пробросить com порт, как это сделать решений
много и зависит от ОС.
я на Ubuntu пробрасывал порты с помощью remserial и это правда были не
ККМ, а чековые принтеры.
по поводу поддержки оборудования вам лучше сходить http://code.google.com/p/openbravoposru/
и там посмотреть

AndrewKo

unread,
Jan 12, 2012, 3:37:37 AM1/12/12
to openbravoposru
ОС - linux.
По поводу проброса портов существует одна маленькая неприятность -
никто не гарантирует что не будет одновременной отправки на печать с
нескольких мест. В результате каша. Т.е. нужно корректно отрабатывать
каждую отправку на печать т.е. делать свой менеджер печати с очередью
исполнения заданий. Или я не прав?

On 12 янв, 12:30, KostqN <kos...@gmail.com> wrote:
> Сильно не пинайте но попробую ответить
> Где то читал что печать можно
> для это вам необходимо пробросить com порт, как это сделать решений
> много и зависит от ОС.
> я на Ubuntu пробрасывал порты с помощью remserial и это правда были не
> ККМ, а чековые принтеры.

> по поводу поддержки оборудования вам лучше сходитьhttp://code.google.com/p/openbravoposru/

DMG

unread,
Jan 12, 2012, 6:19:03 AM1/12/12
to openbravoposru
Если вам нужна именно ЧПМ, то найдите такую, которую можно подключить
в систему как принтер.

AndrewKo

unread,
Jan 12, 2012, 1:30:23 PM1/12/12
to openbravoposru
Небольшая идея.

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

Конечно решение с очередью печати например через CUPS (как вариант lpr/
lpd) привлекательна простотой реализации но, к сожалению, решение не
универсальное т.к. опять-же придётся писать свой драйвер принтера для
конкретного типа оборудования.

В правильном-ли направлении я двигаюсь?

Gennady Kovalev

unread,
Jan 13, 2012, 4:30:55 AM1/13/12
to openbra...@googlegroups.com
12.01.2012 22:30, AndrewKo пишет:

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

--
Геннадий Ковалёв,
Генеральный директор компании "Бигур",
http://www.bigur.ru/

AndrewKo

unread,
Jan 13, 2012, 5:53:44 AM1/13/12
to openbravoposru
Почему я хотел привязаться к JavaPOS так это для того что-бы
использовать стандартные драйвера которые уже есть в openbravopos.
Т.е. будет некая прослойка между сетевым интерфейсом и стандартным
драйвером openbravopos. Прослойка слушает определённый порт на сетевом
интерфейсе, ставит задания в очередь и отправляет каждое из заданий в
драйвер оборудования.
Таким образом будет универсальность т.к. можно будет использовать
любой из существующих в openbravopos драйверов, в том числе и через
javaPOS но уже в качестве клиента для интерфейса с оборудованием
которое имеет драйвера javaPOS.

Gennady Kovalev

unread,
Jan 13, 2012, 6:11:39 AM1/13/12
to openbra...@googlegroups.com
13.01.2012 14:53, AndrewKo пишет:

> Почему я хотел привязаться к JavaPOS так это для того что-бы
> использовать стандартные драйвера которые уже есть в openbravopos.

Ну так кроме драйверов JavaPOS есть еще другие драйверы. Лучше уж
сделать прослойку, которая другие тоже поддерживает. То есть и JavaPOS
и, например, Штрих-ФР.

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

> Таким образом будет универсальность т.к. можно будет использовать
> любой из существующих в openbravopos драйверов, в том числе и через
> javaPOS но уже в качестве клиента для интерфейса с оборудованием
> которое имеет драйвера javaPOS.

Да-да. Вот это здорово будет.

AndrewKo

unread,
Jan 13, 2012, 7:54:46 AM1/13/12
to openbravoposru

On 13 янв, 15:11, Gennady Kovalev <g...@bigur.ru> wrote:
> 13.01.2012 14:53, AndrewKo пишет:
>
> > Почему я хотел привязаться к JavaPOS так это для того что-бы
> > использовать стандартные драйвера которые уже есть в openbravopos.
>
> Ну так кроме драйверов JavaPOS есть еще другие драйверы. Лучше уж
> сделать прослойку, которая другие тоже поддерживает. То есть и JavaPOS
> и, например, Штрих-ФР.

Вы меня не совсем поняли. В принципе почти так и будет.
1. На дочерних машинах указывается драйвер javapos у которого имя
устройства вроде VirtualPOSPrinter. В конфигурации этого устройства
прописывается адрес хоста и порт на котором слушает диспетчер очереди
печати.
2. на головной машине указывается драйвер javapos с именем устройства
например POSPrinterQueue в конфигурации которого прописан порт на
котором он слушает и РЕАЛЬНЫЙ драйвер оборудования которому он
посылает данные - например тот-же shtrihfr либо любой другой драйвер
из существующих.

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

AndrewKo

unread,
Feb 29, 2012, 9:55:18 AM2/29/12
to openbravoposru
Всем добрый день!

Сделал некое подобие XML-RPC сервера (пока нет очереди сообщений).
Так-же сделал реализацию клиента в драйверах ФР OBPru.
Результат (первое число - уникальный ID сообщения):
Simple XML-RPC Server started on port 8080
1: __default__.beginReceipt[1665534395, sale, Администратор]
2: __default__.printMessage[1665534395, Акция совместно с]
3: __default__.printMessage[1665534395, нашими партнёрами]
4: __default__.printMessage[1665534395, ]
5: __default__.printMessage[1665534395, Скидка 10% на первичный]
6: __default__.printMessage[1665534395, приём в медцентре]
7: __default__.printMessage[1665534395, "И вас вылечим"]
8: __default__.printMessage[1665534395, ]
9: __default__.printMessage[1665534395, Акция до: 31/3/2012]
10: __default__.printMessage[1665534395, ========================]
11: __default__.printMessage[1665534395, .]
12: __default__.printMessage[1665534395, .]
13: __default__.printLine[1665534395, Bolzano 50ml, 0.2, 2.0, 1]
14: __default__.printTotal[1665534395, К оплате по чеку:, 0.2, cash]
15: __default__.endReceipt[0]

Теперь требуется интеграция с драйверами ФР которые уже существуют в
OBPru.
Сделать можно двумя способами:
1. встроить XML-RPC сервер непосредственно в OBPru который будет
работать на "материнском" компьютере;
2. запускать отдельно.

Первый вариант не совсем понятно как запускать тот самый сервер что-бы
не конфликтовал с самим OBPru, а второй вариант потребует переделки
драйверов ФР.
Хочу получить совет от специалистов как лучше сделать.

Reply all
Reply to author
Forward
0 new messages