Форум по программам и оборудованию > > >

Вывод информации при покупке более определенной суммы на версии 57

21.07.2018 18:40


[ОТВЕТИТЬ]
18.06.2014 15:54
Kathrisius
 
Здравствуйте, уважаемые форумчане!
Отдел маркетинга поставил задачу: При совершении покупки на сумму 2000 рублей и более, в конце чека или на отдельном слипе необходимо, чтобы выходила информация:
«Прими участие в акции!» Выиграй один из сотен призов!
Не подскажите как это можно реализовать? Только через редактирование печатных форм (LUA)? Может уже есть готовый скрипт? Как я понимаю нужно редактировать форму receipt.lua , я в этом пока полный профан. На УКМ пересел совсем недавно.
Заранее благодарю!
18.06.2014 15:55
Kathrisius
 
Забыл добавить, версия УКМ 4.0 57sp1.
18.06.2014 17:26
Павел Сосновских
 
При редактировании lua-скриптов, особенно receipt.lua, нужно быть очень аккуратным. Синтаксическая ошибка в коде и мнгновенно все кассы не работают. Поэтому я бы посоветовал:
1. выбрать время, когда поменьше народу и нет(почти нет) поставок/переоценок
2. приостановить работу на одной из касс("выгнать" кассира)
3. все остальные кассы отключить от сети, чтобы они не видели сервер
4. внести изменения в код
5. проверить работу на этой 1ой кассе
6. работает -> остальные кассы подключаем обратно
не работает -> откатываемся
перед правкой кода сохраняем резервные копии этого кода

Код в receipt.lua можно, например, так - в функции
function print_receipt_footer(__footer, __print_data) добавить:
Код:
			text = text .. ukm.center("СПАСИБО ЗА ПОКУПКУ!",width," ") .. "\n";
			if(__footer.receipt.subtotal.amount>=ukm.currency(2000)) then
				text = text .. ukm.center("Прими участие в акции!",width," ") .. "\n";
				text = text .. ukm.center("Выиграй один из сотен призов! ",width," ") .. "\n";
			end
Строка с "СПАСИБО ЗА ПОКУПКУ!" там уже есть
Сейчас не на чем проверить, поэтому описанные меры предосторожности предлагаю соблюсти
18.06.2014 17:33
Kathrisius
 
Павел, огромное спасибо, что так оперативно ответили! Буду пробовать по вашей схеме т.к. тестовую кассу начальник не дает(((
Значит, код добавляю после строчки text = text .. ukm.center("СПАСИБО ЗА ПОКУПКУ!",width," ") .. "\n"; ?
18.06.2014 19:33
Павел Сосновских
 
да, хотя возможны и другие варианты...
23.06.2014 09:17
Vasiliy_S
 
Незачем так делать, ибо потом и не вспомнишь, что где убирать, хотя можно и комментировать изменения - Вообщем тут смотри сам.
Обязательно сохрани оригинал скрипта!!!!
Сделай акцию с купонами, на которых будет выходить инфа, НО скорее всего эти купоны будут воровать кассиры.
Если тебе нужно, чтобы просто печаталась инфа об акции, как я у тебя спросил в своей ветке, то добавь текст после Спасибо за покупку!
Если надо чтобы после определенной суммы печаталась еще инфа, то это другой коленкор. Вообщем подробнее опиши, что хочешь!
09.02.2015 18:12
manhant
 
Здравствуйте, у меня похожая ситуация.
Необходимо в УКМ реализовать акцию:
Клиент делает покупку свыше 500 рублей и в чеке печатается сообщение о скидке на следующую покупку на определенный список товара. У кассира будет штрих код которым она будет пробивать скидку при предоставлении чека с сообщение о скидке.
Просьба помочь добавить сообщение о скидке на следующую покупку в receipt_.lua и при этом печаталось только при покупке свыше 500 рублей.
Используем версию УКМ 63.

Спасибо.
10.02.2015 07:05
Mtirt
 
А может просто настроить печать купонов? Зачем обязательно в чеке это делать?
10.02.2015 09:50
manhant
 
Необходим просто вывод информации в чеке, а на купонах можно просто вывести сумму скидки.
10.02.2015 10:11
Mtirt
 
Что у вас не получается то?
Печать купонов настроить?
Предоставление скидки?
Вывод в чеке?
Что сделали и что не работает?
10.02.2015 10:16
manhant
 
Печать купонов я знаю как настроить, но это не подходит. Предоставление скидки я так же знаю как настроить.
Мне необходимо, что бы после того, как будет сделана покупка свыше допустим 500 рублей, то в чеке будет выводиться информация например: "Предоставьте данный чек при следующей покупки и получите скидку на рыбу 50%".
10.02.2015 10:22
Mtirt
 
Так написано в третьем сообщении этой ветки что и куда надо добавить...
Вы это сделали? Что именно в этом сообщении непонятно?
10.02.2015 10:35
manhant
 
Так вот пробовал добавить:
text = text .. ukm.center("СПАСИБО ЗА ПОКУПКУ!",width," ") .. "\n"; Как и описано, после данного текста, добавил следующее:
if(__footer.receipt.subtotal.amount>=ukm.currency(500))
text = text .. ukm.center("Прими участие в акции!",width," ") .. "\n";
end
На кассе вылетает много ошибок, возможно я не туда добавил.
10.02.2015 10:41
Mtirt
 
Какие именно ошибки?
В принципе, можно на кассу не ходить, можно попробовать открыть чек в web-e сервера.
10.02.2015 10:47
manhant
 
Ошибка такая:
2015_02_02_13_53_10/ukm/libtv/cdynamictext.cpp(23) draw: При исполнении скрипта 'ukm.lua' произошла ошибка: std::runtime_error: 'При исполнении скрипта 'register.lua' произошла ошибка: std::runtime_error: 'При исполнении скрипта 'receipt.lua' произошла ошибка: [string "receipt.lua"]:1048: 'then' expected near 'text'''
09:32:16: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-HEAD-
10.02.2015 10:56
Mtirt
 
Надо:
if(__footer.receipt.subtotal.amount>=ukm.currency(500)) then
10.02.2015 11:22
manhant
 
Добавил, все заработало, большое спасибо.
10.02.2015 13:51
manhant
 
Появился еще один вопрос: возможно ли такое же сообщение выводить в купоне? Т.е. данное сообщение печаталось и в чеке, и в купоне после определенной суммы. Что бы допустим покупатель не отдавал свой чек, для получения скидки, а предъявлял купон с таким же сообщением.
10.02.2015 14:11
Mtirt
 
Тупо добавить этот текст
Код:
text = text .. ukm.center("Прими участие в акции!",width," ") .. "\n";
в купон, т.е. discount_coupon.lua ???
10.02.2015 14:24
manhant
 
В таком случае же всегда будет печататься данное сообщение?
Да, в discount_coupon_.lua
10.02.2015 14:26
Mtirt
 
Всегда, когда будет печататься купон.
Но ты же выше написал, что печать купонов умеешь настраивать.
Я поняла, что ты можешь настроить, чтобы купон печатался, если сумма чека больше 500 рублей.
10.02.2015 14:30
manhant
 
Да, уже настраиваю. Спасибо
13.02.2015 15:44
manhant
 
Добрый день.
В общем настроить купоны обычные не получается на 61-63 версиях УКМ, так как в нем что-то поломалось и перестали его поддерживать, ответ от разработчиков.
Создал скидку на чек по времени и сумме, указал от какой суммы печатать информацию, в режиме работы вкл сообщение кассиру и установил получать текст сообщений из lua, в сообщение указал: get_discount_message_text
Попытался добавить:
function get_discount_message_text(__discount_data, __discount)
text = text .. ukm.center("Предоставьте данный чек",width," ") .. "\n";
text = text .. ukm.center("И получите скидку 50%",width," ") .. "\n";
text = text .. ukm.center("НА КУЛИНАРИЮ",width," ") .. "\n";
end

После этого вылетело сообщение: 10:53:30: 0x00000634: WARNING: debug#C:\DEVEL\build-HEAD-2015_02_02_13_53_10\libukm\cdiscount_result_message.cpp(137) CDiscountResultMessage::display_message: No matching overload found, candidates: string center(string const&,int,string)

Просьба помочь разобраться, возможно ли вообще такое сделать, что бы после чека печаталось сообщение с обрезкой, чтобы клиент мог предоставить его при следующей покупке?
13.02.2015 16:19
OlegON
 
Сообщение об ошибке традиционное - задаешь в функции либо не то количество переменных, либо переменные не того типа.
16.02.2015 07:23
Mtirt
 
Я подозреваю что в get_discount_message_text не определена переменная width.
16.02.2015 15:55
Mtirt
 
Попробуйте так:
Код:
 
function get_discount_message_text(__discount_data, __discount)
local width = printer:get_width();
text = text .. ukm.center("Предоставьте данный чек",width," ") .. "\n";
text = text .. ukm.center("И получите скидку 50%",width," ") .. "\n";
text = text .. ukm.center("НА КУЛИНАРИЮ",width," ") .. "\n";
end
18.02.2015 11:36
manhant
 
Спасибо за помощь.
Я решил использовать суммовые купоны, убрал не нужную информацию и все подошло.
Опции темы


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

 

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