А вдруг кому-то пригодится. Если так не считаете - прибейте тему.
А дело было так: придумали маркетологи акцию - за каждую полную тыщу в ИТОГО покупателю дается ШТУК (а моем случае это был КУПОН), который потом можно тем или иным макаром применить. Т.е. у покупателя товаров на 3456 руб, то выдается 3 КУПОНА, 1234 - 1 КУПОН и т.д.
Вот как я это реализовал. Может кому пригодится
А если подскажут, как это сделать более "изящно" - буду рад посмотреть...
Пихаем этот кусок "кода" в скрипт receipt.lua функция print_hard_subtotal
Код:
if string.len("К ОПЛАТЕ:." .. ukm.leftpad(tostring(__hard_subtotal.receipt.subtotal.amount), 14, ".") .. " ", width, " ") < (width + 1) then
text = text .. ukm.leftpad("К ОПЛАТЕ:." .. ukm.leftpad(tostring(__hard_subtotal.receipt.subtotal.amount), 14, ".") .. " ", width, " ") .. "\n";
-- *************************************************************************************************************
-- ПЕЧАТЬ ИНФОРМАЦИИ О КУПОНАХ
text=text.."\n".."\n";
local tempStr=tostring(__hard_subtotal.receipt.subtotal.amount);
local t1=string.sub(tempStr,1,1);
local t2=string.sub(tempStr,2,2);
local t3=string.sub(tempStr,3,3);
local t4=string.sub(tempStr,4,4);
local t5=string.sub(tempStr,5,5);
local t6=string.sub(tempStr,6,6);
local Poz=0;
if t1=="." then
Poz=1;
end;
if t2=="." then
Poz=2;
end;
if t3=="." then
Poz=3;
end;
if t4=="." then
Poz=4;
end;
if t5=="." then
Poz=5;
end;
if t6=="." then
Poz=6;
end;
local KolvoKuponov=0;
if Poz==5 then
KolvoKuponov=t1+0;
else
if Poz==6 then
KolvoKuponov=(t1..t2)+0;
end;
end;
-- собственно печать количества купонофф
text = text .. ukm.center("!!!!! ВНИМАНИЕ - АКЦИЯ !!!!!",width," ") .. "\n";
text = text .. ukm.center("C _______ до ____________",width," ") .. "\n";
text = text .. ukm.center("Количество купонов - "..KolvoKuponov ,width," ") .. "\n";
text = text .. ukm.center("ЧТО-ТО О ПРИМЕНЕНИИ КУПОНОВ" ,width," ") .. "\n";
text=text.."\n".."\n";
-- *************************************************************************************************************
else
text = text .. ukm.rightpad("К ОПЛАТЕ:.", width, ".") .. "\n";
text = text .. ukm.leftpad(tostring(__hard_subtotal.receipt.subtotal.amount) .. " " ,width, ".") .. "\n";
-- *************************************************************************************************************
-- ПЕЧАТЬ ИНФОРМАЦИИ О КУПОНАХ
text=text.."\n".."\n";
local tempStr=tostring(__hard_subtotal.receipt.subtotal.amount);
local t1=string.sub(tempStr,1,1);
local t2=string.sub(tempStr,2,2);
local t3=string.sub(tempStr,3,3);
local t4=string.sub(tempStr,4,4);
local t5=string.sub(tempStr,5,5);
local t6=string.sub(tempStr,6,6);
local Poz=0;
if t1=="." then
Poz=1;
end;
if t2=="." then
Poz=2;
end;
if t3=="." then
Poz=3;
end;
if t4=="." then
Poz=4;
end;
if t5=="." then
Poz=5;
end;
if t6=="." then
Poz=6;
end;
local KolvoKuponov=0;
if Poz==5 then
KolvoKuponov=t1+0;
else
if Poz==6 then
KolvoKuponov=(t1..t2)+0;
end;
end;
-- собственно печать количества купонофф
text = text .. ukm.center("!!!!! ВНИМАНИЕ - АКЦИЯ !!!!!",width," ") .. "\n";
text = text .. ukm.center("C _______ до ____________",width," ") .. "\n";
text = text .. ukm.center("Количество купонов - "..KolvoKuponov ,width," ") .. "\n";
text = text .. ukm.center("ЧТО-ТО О ПРИМЕНЕНИИ КУПОНОВ" ,width," ") .. "\n";
text=text.."\n".."\n";
-- *************************************************************************************************************
end
if __hard_subtotal.receipt.type == ukm.core.goods_receipt then