PDA

Просмотр полной версии : Чтение текущего открытого заказа с кассы по сети



Ilne
12.02.2014, 19:37
Добрый день!

Подскажите, можно ли как-то с кассы получить текущий открытый заказ программно?
Т.е. нужно с компьютера, который находится в той же сети, что и касса, получить текущий открытый заказ на кассе (список уже заказанного, его стоимость и кол-во). В какой базе касса это хранит, и получится ли получить доступ по сети к это базе? (Интересует и касса для DOS и для WINDOS).

---------- Добавлено в 18:37 ---------- Предыдущее сообщение было размещено в 18:17 ----------

Если текущий открытый заказ хранится не только на станции, но и на сервере, то конечно читать надо с сервера.

SH
12.02.2014, 19:44
Подскажите, можно ли как-то с кассы получить текущий открытый заказ программно?
Легко и дешево - у нас не получилось.
Решили через вызов заказа на станции официанта и распознавание экрана.
Хотя у нас было принципиальное условие, не ломать серверный протокол. Так что обойти - может быть, и можно.

---------- Добавлено в 18:44 ---------- Предыдущее сообщение было размещено в 18:42 ----------


получится ли получить доступ по сети к это базе?
Кажется, даже для чтения надо делать себе локальную копию.


В какой базе касса это хранит
orders.*

Ilne
12.02.2014, 20:35
Спасибо за помощь. Вообщем хочу сказать, что в реальном времени читать информацию о текущем открытом заказе на кассе нельзя. Запустил кассу, открыл стол - набил пять товаров, нажал на кассе "RESET" (на системнике). Касса перезагрузилась и мой заказ пустой. Повторил несколько раз, чтобы убедиться. Вывод: касса сохраняет в базу не в реальном времени. Смысла читать из базы нет.

okis
12.02.2014, 23:02
А если попробовать с параметром LocalStoreCheck = ON ?

sibgaba
13.02.2014, 07:29
Вывод: касса сохраняет в базу не в реальном времени. Смысла читать из базы нет.
Верный вывод. Пока не сохранили или не оплатили заказ, никто, кроме кассы, о нем ничего не знает.


А если попробовать с параметром LocalStoreCheck = ON ?
Вот это уже верный ход мысли. Но во первых это 100% хранится на клиенте, во вторых никто еще не раскурил в каком месте (хотя и не особо пытались)

SH
13.02.2014, 11:32
во вторых никто еще не раскурил в каком месте
Там вроде бы бинарник, аналогичный фискальному, создается.

okis
13.02.2014, 19:32
Но во первых это 100% хранится на клиенте

Ну так вопрос то был:


можно ли как-то с кассы получить текущий открытый заказ программно?


Любая касса - это клиент, и только иногда сервер.

mnekin
13.02.2014, 23:30
Ну опять же заказ сохраниться локально и в базе когда нажмешь кнопочку сохранить и закрыть.
А при варианте до сохранения нажать кнопочку ресет, локально на диске ничего не будет

okis
13.02.2014, 23:50
Ну опять же заказ сохраниться локально и в базе когда нажмешь кнопочку сохранить и закрыть.
А при варианте до сохранения нажать кнопочку ресет, локально на диске ничего не будет

При включенном параметре еще как будет:

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

sibgaba
14.02.2014, 12:29
С самого начала темы, меня не покидало ощущение что решение должно быть. И таки да, оно есть...

Говоря о том что эти данные 100% на клиенте - я имел ввиду то что их придется забирать в DOS шары. Это не то что бы особая проблема, но не всегда тривиально.

А теперь о хорошем.
Идея такая: Настраиваем на кассе дисплей покупателя. Самого дисплея может и не быть, он нам и не нужен. Суть в том что при включенном дисплее, как только кассир вносит в стол блюдо, соответствующая строчка кидается в СОМ порт. Там будет название, количество и цена (или сумма).

Далее нужно просто перехватить поток с COM порта и направить его в файл. Файл кстати может лежать и на сетевом ресурсе, что бы его можно было проще стащить...

100% готового решения как это сделать у меня нет, но все инструменты для этого вроде бы имеются.
1. Утилита prn2file (в том числе выложена тут на форуме). Она умеет перехватывать поток из LPT порта и писать его в файл. Эта часть работает.
2. Основная проблема перенаправить поток из СОМ в LPT. Есть мысля сделать это при помощи команды mode COM2 LPT1 - перенаправляет COM2 в LPT1 (или наоборот mode LPT1 COM2 нужно, я все никак не могу запомнить какой параметр указывается первым). COM2 это порт на который мы настроили Дисплей покупателя. LPT1 должен существовать (и он существует, т.к. на нем ключ висит)

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

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

Brambrulet
18.02.2014, 14:12
Вроде есть утилитка, которая превращает кассы в ftp-сервера. Возможно стоит подумать о содержимом того самого файлика (аналогичного фискальному)

А для чего вообще вся эта бодяга?

Andy
18.02.2014, 21:54
Brambrulet
а фиг тебе скажут - у них какая-то разработка (под заказчика) для www
блюдуть коммерческую тайну :)
там несколько исполнителей (для 6 и 7 версии) в итоге что-то должно получится удобоваримое

mnekin
19.02.2014, 13:26
Есть утилита на фтп UCS и называется RKFTP и она бесплатная и работает нормально.