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

Добавление инфы в чек после активации акции : УКМ-4

20.04.2024 1:59


13.01.2014 13:03
Vasiliy_S
 
Добрый день, дорогие однофорумчане!
Облазил весь форум инфы не нашел.
Вообщем озадачил маркетинг такой задачкой:
При сумме свыше 2000 р. чтобы печаталась информация непосредственно в чеке: "Можете обменять этот чек на подарок."
Для купона у меня есть шаблон, но надо печать именно в чеке, не купоном.
Я в lua полный профан, но попытался написать элементарное правило в receipt.lua :

if discount.name == "Подарок" then
text = text .. ukm.center("Вы стали участником акции ПОДАРОК",width," ") .. "\n";
end

Касса вроде проглотила, но после напечатания половины чека, появляется окно с текстом: attempt to index global "discount" (a nil value)

Подскажите, в какую сторону мне "идти"? В распространенные места посылать не надо:)
13.01.2014 13:04
Vasiliy_S
 
Добавлю, что сервак с кассой тестовые. Версия УКМа 55.
13.01.2014 15:35
vdm
 
А точнее место, где ты вписал свой код?

В print_receipt_close (у меня v49) есть подходящее место, можно прицепить свой текст туда (не проверено)
Код:
 ..................
        for i = 0, __core.discounts:size()-1 do
            local discount = __core.discounts:at(i);
            for j=0,discount.gifts:size()-1 do
                local gift = discount.gifts:at(j);  
                text = text .. ukm.adjustment("Подарок", gift.itemname, width, ".") .. "\n";
            end
            if __core.items:getdiscount(discount):is_initialized() and __core.items:getdiscount(discount):get():sign() ~= 0 then
              if discount.name == "Подарок" then
                text = text .. ukm.center("Вы стали участником акции ПОДАРОК",width," ") .. "\n";
             end
           end
        end
..................
14.01.2014 05:28
Vasiliy_S
 
Я наверное ввел вас в заблуждение, "Подарок" - Так называется маркетинговая акция, это не "gift".
т.е. при пробитии чека свыше 2000 р. активируется акция "Подарок"(можно назвать хоть как). Акцию я создал заранее, суть акции в выводе на монитор кассира сообщения, что выдайте подарок покупателю и печати в чеки инфы, что покупатель стал участником акции ПОДАРОК и как его забрать.
Проблема в том, что они хотят печатать прямо в чеке, а не купоном.

Свой блок я вставил в print_receipt_footer.
14.01.2014 09:48
vdm
 
Я понимаю разницу и приведенный мной код не зависит от наличия gift в чеке.

У тебя ошибка "переменная discount пустая". Т.е. скорее всего она используется в блоке, где просто не определена.
Выложи полный код или попробуй то что я предложил.
14.01.2014 11:02
Tiger
 
В качестве предложения:

1. В скрипте receipt в теле функции print_hard_subtotal объявить локальную переменную, присвоив значение __hard_subtotal.receipt.subtotal.amount. Думаю с типом придется поиграться, например так
Цитата:
sum=tostring(__hard_subtotal.receipt.subtotal.amount)
2. И затем по условию sum больше 2000 руб. напечатать
Цитата:
text = text .. ukm.center("!!!!! АКЦИЯ - ПОДАРОК !!!!!",width," ") .. "\n";
15.01.2014 07:01
Vasiliy_S
 
Вчера перепробовал все варианты, кроме последнего, ничего не получалось:)
Сегодня с чистого листа начал делать все заново и О Алилуя!!! Все получилось:) Вот такой блок получился:

function print_receipt_close(__core, __print_data)
local printer = ukm.get_printer(ukm.printer_type_master());
if printer then
local text = "";
local width = printer:get_width();
for i = 0, __core.discounts:size()-1 do
local discount = __core.discounts:at(i);
for j=0,discount.gifts:size()-1 do
local gift = discount.gifts:at(j);
text = text .. ukm.adjustment("Подарок", gift.itemname, width, ".") .. "\n";
end
if discount.name == "Подарок" then
text = text .. ukm.center("Вы стали участником акции ПОДАРОК",width," ") .. "\n";
end
end
__print_data:add(text, ukm.printer_type_master());
end
end
15.01.2014 07:07
Vasiliy_S
 
Блин, рано обрадовался:( Он на всех чеках печатает про подарок:)
17.01.2014 06:23
Vasiliy_S
 
Приведенный выше блок работает. Просто акция действительно применялась на все чеки, в ВЕБке Маркетинг - Перечень скидок - в Параметрах скидки - вкладка Дополнительно поставили Сумма чека > 2000
Спасибо всем кто помог.
18.06.2014 16:27
Kathrisius
 
Цитата:
Vasiliy_S Приведенный выше блок работает. Просто акция действительно применялась на все чеки, в ВЕБке Маркетинг - Перечень скидок - в Параметрах скидки - вкладка Дополнительно поставили Сумма чека > 2000
Спасибо всем кто помог.
Добрый день, Василий!
Подскажите, пожалуйста, после какой строчки в receipt.lua вы добавили свой код? отдел маркетинга поставил точно такую же задачу- при сумме чека более 2000р. в конце чека должна печататься рекламная информация. Вот, ломаю голову над этим.))
Заранее благодарю!
Часовой пояс GMT +3, время: 01:59.

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