[ОТВЕТИТЬ]
18.09.2009 10:18
Vovantus
 
Давно уже мыслил на тему установки прайсчекера (а то и нескольких) в помещении магазина. Но останавливает убогая функциональность и капризность решений от С+. Может, есть смысл придумать что-нить другое? Например, взять обычный системный блок от PC и поставить туда какую-нить простенькую версию винды. Под неё написать програмку, которая будет получать данные со сканера ШК и, затем, запуливать их определённым запросом в базу. То что вернулось - выводим на экран. Я споткнулся на первом шаге - не смог получить данные с ком-порта. Второй шаг - отправить их запросом в базу. Думаю, с этим проблем не возникнет, учитывая большое количество знатоков оракла Далее, думается мне, полученные в ответ данные можно скидывать в текстовый файл и, после, раздербанивать его на кусочки. Выводить информацию на экран из текстового файла я придумаю как. В итоге, делим задачу на части:

1. получить данные из ком-порта, к которому подключён сканер.
2. сформировать запрос и запулить его в базу.
3. получить ответ на запрос в виде текстового файла.
4. раздербанить текстовый файл и подготовить данные для отображения.
5. вывести информацию на экран.

Может, есть готовое решение? Если нет, то хочу узнать, кто будет участвовать в разработке программной части прайсчекера?
18.09.2009 10:26
Mtirt
 
Посмотри СМ-Информер olegona.
18.09.2009 10:34
Vovantus
 
Цитата:
Mtirt Посмотри СМ-Информер olegona.
1. Он у меня не запустился. Подозреваю, что в него зашита какая-то проверка времени, как в оптимайзере.
2.
Цитата:
В настоящее время поддерживаются только сканеры в разрыве клавиатуры,
передающие перевод строки в конце кода.
.. не прокатывает, у меня сканер подключается к ком-порту.
3. Олег изначально разрабатывал её в целях продажи. Я предлагаю сваять что-нить безплатное.
18.09.2009 11:18
baggio
 
есть у меня более менее готовое решение...
интересует железки которые собираешься использовать...
18.09.2009 13:25
Vovantus
 
Цитата:
baggio есть у меня более менее готовое решение...
интересует железки которые собираешься использовать...
железки самые что ни есть обычные: сканер в ком-порт, системник на базе x86 процессора, монитор и винда домашняя какая-нить. Ни клавы, ни мышки не будет.
18.09.2009 13:34
Vovantus
 
З.Ы. Ну и оракловый клиент там, тоже, будет жить. Чтобы запросы в базу пулять.
18.09.2009 15:10
baggio
 
Я же говорю есть готовое решение...
единственное расчитывал в своё время на тач скрин и как кассу... т.е. возможность нефискальной продажи...
интерфейс более менее настраиваемый... только вот руки не дошли печать этикеток и ценников сделать....
19.09.2009 01:30
Vovantus
 
Цитата:
baggio Я же говорю есть готовое решение...
Выкладывай своё решение, посмотрим что у тебя там
20.09.2009 11:34
akonev
 
если не подойдет и будешь писать сам, то с com-портом придется немного побороться.
винда блокирует прямой доступ к нему. но практически для любого языка можно нагуглить решение.

альтернативный вариант - повесить софтинку, в которой это уже решено, чтобы она мониторила com и эмулировала ввод с клавиатуры. например, вот эту http://www.olegon.ru/showpost.php?p=25368&postcount=10
есть в запасниках еще какая-то аналогичная.
настроишь на сканере какие-нить префиксы-суффиксы и будешь по ним отлавливать штрихкод

имхо, лучше не лезть напрямую в базу, а подбирать файлы выгрузки на кассы. чтобы не показывало то, что на кассе все равно не отобьется.
21.09.2009 04:35
Vovantus
 
Цитата:
Andrew_Konev имхо, лучше не лезть напрямую в базу, а подбирать файлы выгрузки на кассы. чтобы не показывало то, что на кассе все равно не отобьется.
Не могу понять, как ты кассу привязал к прайсчекеру Тупо стоит комп, на нём сканер, берём товар, пикаем, специальный запросик летит в базу, в ответ получаем цену и остаток по текущему МХ. Типа так.
21.09.2009 08:49
akonev
 
Цитата:
Vovantus Не могу понять, как ты кассу привязал к прайсчекеру Тупо стоит комп, на нём сканер, берём товар, пикаем, специальный запросик летит в базу, в ответ получаем цену и остаток по текущему МХ. Типа так.
Причем цену может получить ту, которая только что установилась переоценкой и еще не выгружалась на кассы.

Хорошо, если цена увеличилась этой переоценкой. если уменьшилась - покупатель будет неприятно удивлен при расчете (касса же еще не знает, что надо продавать дешевле).

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

Решать, конечно же, надо "по месту" исходя из сочетания софта и организации работы. В каких-то раскладах твой вариант будет лучше.
21.09.2009 09:03
Vovantus
 
Цитата:
Andrew_Konev Решать, конечно же, надо "по месту" исходя из сочетания софта и организации работы. В каких-то раскладах твой вариант будет лучше.
Думается мне, что у нас прайсчекер чаще будет использоваться продавцами, чем покупателями. Да и вытащить остатки из табличек УКМ2 не представляется возможным, насколько мне известно.

На данный момент я топчусь на месте, не могу получить данные с ком-порта, при считывании товара сканером ШК. Думается мне, нужно писать что-то своё. Открывать нужный порт и отслеживать на нём данные. Либо, искать уже готовую утилиту.
21.09.2009 09:28
akonev
 
не надо тянуть данные из табличек укм2. хотя и это возможно.

надо прописать еще одну кассу под названием "чекер" и грузить ее вместе с остальными. можно в том же формате, можно в тексте, если с ним работать проще окажется.

а искать утилю не надо. я ж выше дал ссылку на пост, где я такую выкладывал.
но com себе забрать можно. можно самому, можно через библиотечки готовые. надо тока поискать "калитки"
21.09.2009 09:43
Vovantus
 
Цитата:
Andrew_Konev надо прописать еще одну кассу под названием "чекер" и грузить ее вместе с остальными. можно в том же формате, можно в тексте, если с ним работать проще окажется.
разве СМ выгружает для УКМ2 остатки по МХ? Да даже если и выгружает, то вытащить их не так просто, как получить ответ на запрос из базы. Для этого нуна использовать сторонние утилиты, а это усложняет в результате задачу.
21.09.2009 10:32
akonev
 
неа. не выгружает. просто изначально ты не уточнял, что хочешь остатки.
в таком раскладе да, надо самому писать и лезть именно в базу. тем более, если оно больше для персонала, чем для покупателя.
22.09.2009 05:16
Vovantus
 
Итак, по первому этапу моего плана. Нашёл нужные мне исходники, сижу переделываю под себя. Самое главное, что читать данные с определённого ком-порта уже получается. Осталось написать обработку, которая будет отрезать от них суффикс и префикс. После этого можно переходить к второму этапу. Там понадобится ваша помощь.
22.09.2009 06:39
Vovantus
 
Всё, первый этап завершён. Штриховой код, переданный сканером, получен и может использоваться. Теперь дело за знатоками оракла, нужно сформировать определённый запрос в базу. В идеале, ответ должен состоять из двух частей и записываться в два разных файла, без названия строк и столбцов, чистые цифры. В первом файле - цена, во-втором файле - оперативные остатки. Если есть какие-нить умные мысли по поводу второго и третьего этапов, прошу высказывать.
22.09.2009 07:12
Vovantus
 
Вношу корректировки по 2 и 3 пунктам. Фактически, запросов, содержащих полученный на первом этапе ШК, должно быть четыре и, соответственно, на каждый должен быть создан отдельный файл, в котором будет храниться: название карточки, артикул, розничная цена, оперативные остатки. Уже потом, на четвёртом этапе, я буду извлекать данные из этих файлов и формировать информацию для вывода в форму.
22.09.2009 12:43
Pyatak
 
Вот запрос, который практически всё что нужно вернет:
Код:
SELECT c.article, 
       c.name,
       p.price,
       m.abbrev,
       NVL(c.country,'Россия') as country,
       NVL(q.quantity,0) as quantity
  FROM supermag.smcard c,
       supermag.smprices p,
       supermag.sameasurement m,
       supermag.smstoreunits bc,
       supermag.smgoods q
 WHERE bc.barcode =( :barcode )

   AND c.article=p.article
   AND c.article=bc.article
   AND (bc.quantity=1 OR bc.quantity is Null)
   AND c.idmeasurement=m.id(+)
   AND c.article=q.article(+)
   AND p.storeloc=( :location ) AND p.pricetype=( :prtype )
   AND q.storeloc(+) = ( :location )
23.09.2009 04:07
Vovantus
 
Цитата:
Pyatak Вот запрос, который практически всё что нужно вернет
а можно сформировать запрос так, чтобы на определённый ШК вернулось одно единственное значение, например артикул, но без заголовков столбцов?
23.09.2009 13:36
akonev
 
ну дак просто выкидывай лишнее.
скидываю в с:\article.txt ариткул по штрихкоду 2200001
Код:
SET HEADING OFF;
SPOOL c:\article.txt;

SELECT c.article
  FROM supermag.smcard c,
       supermag.smstoreunits bc
 WHERE bc.barcode ='2200001'
   AND c.article=bc.article
   AND (bc.quantity=1 OR bc.quantity is Null);

SPOOL OFF;
/
это было сохранено в c:\123.sql и скормлено sqlplus по @c:\123;
23.09.2009 14:30
konst
 
А давайте совместными усилиями разработаем свой собсвтенный прайсчекер...
1. опишем требования к железу...
2. разработаем совместно ТЗ на само ПО
3. кто-нибудь это все соберет..
4. потестим
5. доработаем
6. и выложим здесь на форуме!
лично я готов поучасвтвовать в п. 1-2-4-5
по-идее должно получитьс что-то такое
п.1 и 2 - 1 неделя
п.3 - 1 неделя
п. 4 - пару недель...
п. 5 - еще неделя...
т.е. приблизительно через месяц - проект будет готов...
24.09.2009 06:01
Vovantus
 
Цитата:
Andrew_Konev это было сохранено в c:\123.sql и скормлено sqlplus по @c:\123;
Работает! Но есть неприятный момент. Помимо, собственно, артикула, в файле дофига пробелов и несколько переводов строки. Пока не пробовал извлечь артикул из текстовика, но думаю придётся писать отдельню обработку, что бы ненужные пробелы убирать.
24.09.2009 06:13
Vovantus
 
Цитата:
konst А давайте совместными усилиями разработаем свой собсвтенный прайсчекер...
А для чего тема создана, по твоему? Я, конечно, не обладаю профессиональными навыками программирования, но написать простенькую утилитку смогу. Сейчас сложность состоит только в запросах, их я писать не умею. Но лёд тронулся, благодаря Андрею. Осталось написать форму, в которую будут выводится данные и доработать логику. Графики не будет. Скомпилированный исполняемый файлик весит меньше метра, а если его ещё и упаковать, то несколько сотен килобайт в итоге получится. Главное, чтобы в ужатом виде антивирусы на него не ругались. Тормазов в работе, думается, не будет. Все настройки будут хранится в ini-файле. Вот, в кратце, и всё моё представление.
24.09.2009 06:47
konst
 
ТЗ - Прайс-Чекер - ПЧ

Железо –
Любой ПК.. (начиная от P-III как вариант) 256Mb памяти, винт
Монитор
Сканер ШК
ОС – WinXP (хотя интересно было бы реализовать все это в Linux)

Доступные для вывода на экран данные
Артикул
Наименование (полное, краткое)
Страна
Цена
Изображение товара
Ед. измерения
Альтернативная ед. измерения
Остатки
Дополнительные характеристики (например состав для салатов, сорта для вин и т.д.)
(свободный список доп характеристик товара, по названию в СМ)
Название сети/магазина
Логотип
Адрес магазина и др. контактные данные…..

Настройки
Все настройки хранить в ini-файле для удобства внесения изменений…
Вкл/выкл показа любой характеристики из списка выше
Разрешение экрана
Интервал отображения информации о товаре
Интервал последующего отображения приглашения к новому сканированию
Настройки рекламных модулей и пр.
Путь к файлу с логотипом сети/магазина (или жестко указать каталог)
Тип сканера (RS/KB)
Номер ком порта для сканера
Может быть префиксы/суффиксы… но лучше без них…
Имя БД – можно тупо из tnsnames.ora
(может быть попробовать сделать вообще без ораклового клиента…)
Время выключения – например закрытие магазина
Как следствие – для включения необходим компьютер с матерью у которой в БИОСе есть настройки где указывается время включения ПК, ну или как вариант – кто-то из сотрудников пробежал – повключал…

Описание работы
Основная функция ПЧ
подходит покупатель и сканирует товар
(если товар весовой, сортный или набор – отдельное описание….)
На экран выводится запрашиваемая информация….. (описать вид экрана)
Для весового – дополнительно вес и стоимость…
Для набора – состав и стоимость….
Если ШК не найден или отсутствует цена – то какое-нибудь сообщение с глубочайшими извинениями… Как вариант с какой-нибудь мокрым котенком или щенком чтобы у покупателя не возникало негативного отношения….
Как вариант можно что-то рекламного характера как на терминалах QIWI
«Может быть во время запроса к БД… какой нибудь Бондюэль будет парус поднимать»

Альтернативные режимы работы
1. Пока ПЧ простаивает можно крутить рекламу – слайд-шоу из картинок, роликов и т.п., лежащих в определенном каталоге, как вариант ПЧ самостоятельно проверяет определенный каталог на сервере или FTP-сервер куда выкладываются новые рекламные материалы + списки воспроизведения
Периодически между картинками появляется инструкция по использованию ПЧ
Так же в момент простоя – вывод на экран текущего времени – для удобства сотрудников магазина, ну и заодно чтобы экран не выгорал…

2. печать ценников – может быть не сама печать, а как вариант
a. продавец переводит ПЧ в режим «Печать ценников»
b. последовательно сканирует товары, на которые надо напечатать ценники…
c. после сканирования переводит ПЧ в режим «ПЧ»
d. перевод из режима в режим осуществляется например сканированием управляющих ШК (заламинированные бэйджи…)
e. ПЧ формирует файлик аналогичный ТСД и сам выкладывает… или оператор магазина забирает
f. На основании данного файла печатает в СМ ценники и передает в торговый зал….

3. инвентаризация – что-то аналогичное инвентаризации на кассе.

4. заказ товара из подсобки. Если ценники с ШК, то можно просканить и ценник

5. на этом фантазия закончилась...

(нужно ли подключать клавиатуру с мышью, хотя USB-клава может решить часть вопросов…)

Управление с помощью бэйджа пластиковая карта с двух сторон управляющие ШК
1-я сторона – переключатель режимов
2-я сторона – возврат в режим ПЧ.

вот набросал на скорую руку... давайте обсуждать!
24.09.2009 06:55
Vovantus
 
Цитата:
konst вот набросал на скорую руку... давайте обсуждать!
Думается мне, ты об этом ТЗ давно думал Вообще, он тянет на платный проект. Либо, другой вариант. Кто-то уже сталкивался с подобным и готов доделать/переделась свой проект.
24.09.2009 07:40
Vovantus
 
Выглядеть будет очень скромно. Общий вид такой:
24.09.2009 09:50
Shlong
 
konst Да ты просто генератор идей... Понравилась идея с рекламой и картинками с часами, т.к. если разобраться то ПЧ по крайней мере у меня покупатеои пользуются мало, больше наверное продавцы, а так в режиме простоя эта коробочка могла бы и привлекать рекламой, объявлениями о скидках, поздравлениями с профессианальными да и прочими праздниками, вобщем можно было бы дать людям кучу позитива :viannen_01:
24.09.2009 09:52
Mtirt
 
А если к ней еще колонки подключить !
Можно не только показывать, но и рассказывать о товаре.
24.09.2009 10:05
akonev
 
Цитата:
Vovantus Работает! Но есть неприятный момент. Помимо, собственно, артикула, в файле дофига пробелов и несколько переводов строки. Пока не пробовал извлечь артикул из текстовика, но думаю придётся писать отдельню обработку, что бы ненужные пробелы убирать.
ты меня пугаешь :)
попытался вспомнить языки, в которых не было бы готовых функций TRIM...
сразу вспомнился только ассемблер. утрирую, конечно, но...


Опции темы


Часовой пояс GMT +3, время: 18:09.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.