Форум OlegON > Программы и оборудование для автоматизации торговли > Другие вопросы

Альтернативный прайсчекер. : Другие вопросы

29.03.2024 7:39


25.09.2009 01:36
baggio
 
Цитата:
Vovantus Конечно, цену правильнее брать из выгрузок для кассы..
не соглашусь ни с Коневым ни с тобой... цена должна быть РЕАЛЬНОЙ т.е. ценой сформированной актом переаценки...

все остальное от лукавого... мало того... ПЧ должен брать цены с базы напрямую...
ИМХО
25.09.2009 01:43
MirProd
 
5 копеек по поводу синхронности цен: можно брать последнюю цену из истории до момента старта последней загрузки касс, например:
Код:
select c.article,
	max(ph.price) keep (dense_rank last order by ph.eventtime) price
from smpricehistory ph,
	smdepots d,
	smcard c,
	smstoreunits bc
where ph.eventtime<=d.cashloadstart
	and ph.storeloc=d.depid
	and ph.article=c.article
	and bc.barcode ='2200001'
	and c.article=bc.article
	and (bc.quantity=1 OR bc.quantity is Null)
group by c.article
25.09.2009 02:14
Vovantus
 
Цитата:
baggio цена должна быть РЕАЛЬНОЙ т.е. ценой сформированной актом переаценки...
цена должна быть одинаковой и на кассе и в базе, так правильнее сказать. брать цену из выгрузок нужно в том случае, если переодически пропадает связь с БД, у нас такое бывает иногда. в этом случае, всё завязано на магазин и правильнее брать данные именно из выгрузок, т.к. связи с БД может и не быть вовсе. вот и формируется своего рода условие на логику прайсчекера: если нет связи с БД, берём данные из последней выгрузки, кроме оперативных остатков. но я бы, пока, не заморачивался с такими условиями и считаю, что данные нужно брать из БД. в последствии, можно будет дописать необходимый функционал, чтобы брать данные из кассовых выгрузок, при условии, что нет связи с БД.
26.09.2009 20:45
OlegON
 
Я свой информер писал больше для того, чтобы понять, каким образом можно вытащить картинки из базы СМ и отображать пользователям, собирался продавать, но как-то забил, поскольку за деньги это невостребованный софт, а там, где я работал, не нужно было. Считаю в корне неверной идею с написанием такого софта под винду. И вовсе не потому, что фанатею в последнее время от Линукса. Просто мое мнение, что под ним это дело будет более стабильно работать, а проверки пиратки все таки могут быть. Согласен с Vovantus, что надо дергать данные из базы в первую очередь, а потом какие-то нюансы с кассами мутить. Не потому, что парадокс парадоксально глючит, а потому, что фактически законная цена в магазине та, что установлена в ТС, а потом уже надо разбираться, почему ее нет на ценнике и кассе (это следствие невыполнения приказа директора об изменении цены, например). ТЗ от konst неплохое, продуманное, хотя по опыту никаких "бондюэлей" не надо, запрос отстреливается моментально... Вопрос номер 2, который надо продумать - наполнение базы. Кто будет писать грамотные описания товара и картинки делать? У меня этот проект, да и еще пара зародившихся интернет-магазинов захлебнулись отчасти из-за этого... Некому контент было делать. А так да, запросы в базу, сигнал об отсутствии связи с извинениями... Может и будут пользоваться...
26.09.2009 21:02
OlegON
 
Цитата:
Mtirt А если к ней еще колонки подключить !
Можно не только показывать, но и рассказывать о товаре.
Угу, только еще надо будет экономически обосновать выгоду от приобретения или использования достаточно большого количества машинок, либо изначально закладываться, что используешь ты ее в самых крупных нескольких магазах, что убивает само ощущение эффективности. У меня пример - в "Перекрестке", куда я часто заглядываю, эта самая мультимедия висит над каждой кассой... "Баннерная слепота", уже давно, даже не помню, когда я в последний раз на это смотрел. А в целом, для чего они вообще не понял. Т.е. тратиться на железки, софт и обслуживание... В финансовом выражении это пшик, хоть и выглядеть будет забавно. Покупателя этим не завлечешь, а большинство и не будут уметь пользоваться... Хорошо, если колонки не свистнут... А ставить, торговую площадь расходовать... Если админу в радость - можно и motion под Linux привинтить, чтобы загоралось, ругалось, когда покупатель подходил и его в кадре показывало...
27.09.2009 14:30
konst
 
вот еще одна возможная функция ПЧ - INFO-Portal

т.к. в нашей сети авторизация кассиров осуществляется с помощью бэйджиков с ШК..
а также аналогичные бэйджи есть у администрации магазинов, а у остальных продавцов есть просто бэйджи с ФИО и должностью… (остается только добавить ШК). То можно организовать с помощью прайс-чекера доступ сотрудников к различным сервисам компании… например – табеля рабочего времени, график работы, экран успеваемости, обратная связь с руководством компании (необходима клавиатура как минимум) и т.п.
там где я раннее описывал бейджи с управляющими ШК – их можно заменить на личные бэйджи продавцов-кассиров… при этом вести логии выполняемых операций на ПЧ…
ну и самых активных – например поощрять…
27.09.2009 14:39
konst
 
вот что я хотел добавить... при разработке ПО, как наверное и везде
работает закон Паретто
20% усилий - дают 80% результата...
т.е. на первом этапе необходимо поставить перед собой МАКСимально возможные... может быть даже не достижимые цели...
а уже во время разработки, оценив трудозатраты и отдачу, где-то упростить алгоритмы, немного увеличить погрешность, часть функций вообще отложить до лучших времен...
в итоге можно довольно быстро получить необходимый результат...
и площадку для дальнейшего развития...
27.09.2009 14:47
konst
 
Откуда брать данные для ПЧ?
1. тупо из БД СМ+
2. в СМ+ добавить еще одну кассу и соответственно брать выгрузки кассового модуля и …
2a. хранить аналогично УКМ-2
2b. организовать локальную БД и грузить в нее.
3. развернуть стандартный модуль контроля цен СМ+ и организовать взаимодействие с ним.
При этом всю остальную информацию, отсутствующую в пунктах 2а, 2б и 3 дополнительно выдергивать из БД СМ+.
Все три варианта не идеальны… у всех есть свои + и -.
Первый - самый простой в реализации…
Остальные сложнее, но самое главное не один из них не дает 100% соответствия розничной цены в ПЧ и на кассе… к сожалению.
19.04.2012 10:32
anderson
 
Требуется:
Неттоп с креплениями на заднюю часть монитора.
Монитор 19" и более.
Многоплоскостной сканер в разрыв клавиатуры, настроенный на "Enter" после чтения ШК.
УКМ4
Сканер крепится на стену\колонну, монитор чуть выше (на уровне глаз) повернутый на 90 градусов (т.е. вертикально).
На неттоп устанавливаем линукс (настраиваем поворот изображения на 90 гр. + добавляем в автозапуск файрфокс с расширением autohide, чтобы запускался из коммандной строки в полноэкранном режиме).
Где-нибудь поднимаем web-server, можно даже на самом неттопе. В файрофоксе настраиваем домашнюю страницу (price.php) со след. кодом:
Цитата:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="ru" />
<meta http-equiv="refresh" content="10;url=адрес веб-сервера\price.php" />
<title>Название магазина - Прайсчекер</title>
<style type="text/css">
<!--
.text {
font-family: sans-serif;
font-weight: bold;
font-size: 36px;
color: #909;
}

.name {
font-family: sans-serif;
font-weight: bold;
font-size: 36px;
color: #F60;
}
.price {

font-family: sans-serif;
font-weight: bold;
font-size: 100px;
color: #690;
}
.error {

font-family: sans-serif;
font-weight: bold;
font-size: 36px;
color: #F00;
}
-->
</style>
<table width="100%" cellspacing="0" cellpadding="0" align="center">
<tr><td width="100%" ><table width="100%" cellspacing="0" cellpadding="0" align="center" valign="center" >
<tr><td width="100%" align="center" valign="center">
<img src="logo.png">
<body onLoad="document.getElementById('id_barcode').focus()">
<form onKeyPress="keychecker(event)" action='price.php' method=get>
<p>
<input name='barcode' id='id_barcode'>
</p>
</form>
<p class="text">Чтобы узнать цену товара, поднесите его штрихкод к сканеру
</td></tr></table></td></tr></table>


<script>
function keychecker( e )
{
if( e == null ) e = event;
if( e.keyCode == 13 )
{
var cod = document.getElementById('id_barcode').value.toString();
if( cod.substr(0,2) == "22" ) //Первые две цифры весового ШК
document.getElementById('id_barcode').value = cod.substr(0,cod.length-6);
document.forms[0].submit();
}
}
</script>

<table width="100%" cellspacing="0" cellpadding="0" align="center">
<tr><td width="100%" ><table width="100%" cellspacing="0" cellpadding="0" align="center" valign="center" >
<tr><td width="100%" align="center" valign="center">
<?php

header ("Content-type: text/html;charset=UTF-8");

if (isset ( $_GET ["barcode"] ) )
{
$mysql_database="ukmserver"; //Имя базы данных в переменную
$mysql_username="root"; //Имя пользователя базы данных
$mysql_password=""; //Пароль пользователя базы данных
$mysql_host="ukm-server"; //Сервер базы данных
$sql = " SELECT a.name, b.price FROM trm_in_var C \n" //Запрос к БД
. " LEFT JOIN trm_in_items A ON A.id=C.item\n" //Запрос к БД
. " LEFT JOIN (SELECT * FROM trm_in_pricelist_items WHERE pricelist_id=1 OR pricelist_id=6) B ON B.item=c.item\n" //Запрос к БД
. " WHERE C.id='". $_GET["barcode"] ."'\n" //Запрос к БД
. ""; //Запрос к БД

$link = mysql_connect($mysql_host, $mysql_username, $mysql_password) //Соединение с MySQL
or die ("Невозможно подключиться к MySQL ");

mysql_query ("set character_set_client='utf8'"); //Кодировочки
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");


mysql_select_db ($mysql_database) // Выбор Базы данных
or die ("Невозможно выбрать БД ");

$result = mysql_query($sql); //Результат запроса в result

if(!$result) //Debug ошибок
{
echo "Возникла ошибка - ".mysql_error()."<br>";
echo $sql;
exit();
}



if( mysql_num_rows($result) > 0) //Проверка на пустой ввод
{
$row = mysql_fetch_array($result);
while ($row)
{
echo "<br><br><SPAN class=name>".$row["name"]."</SPAN><br><br><SPAN class=price>".substr($row["price"],0,-2)." руб.</SPAN>";
//echo "<p class='message'>Наименование:</p>" <SPAN class=message>.$row["name"].</SPAN> " <br>Цена: ".substr($row["price"],0,-2)." руб."; //Вывод результата запроса
$row = mysql_fetch_array($result);
}
}
else
{
echo "<br><br><span class=error>Товар не найден, обратитесь к продавцу</span>";
}

}
?>
</td></tr></table></td></tr></table>

</body>
</html>
При желании можно запихнуть в код рекламу итп. Если что непонятно - задавайте вопросы.
19.04.2012 14:07
akonev
 
раз есть укм4 - web-сервер поднимать уже не обязательно. можно на его апач и засунуть.
все равно без самого укм4 работать не будет. реализация до первого запуска будет почти мгновенная.
правда, локальный web-сервер позволяет выдавать диагностику. плюс заметный.

кто слаб в линуксе - может на винде то же самое проделать.

у кого нет укм4, но есть см2000 - может поиграть с выгрузкой на кассу укм4, она через промежуточную MySQL базу реализована, сам укм4 не нужен.

в целом идея очень понравилась.
Часовой пояс GMT +3, время: 07:39.

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