Победил эту тему.
Спасибо поддержке - отрезку научили делать.
А вот посчитать количество купонов как в прошлый раз - не удалось. Пришлось дооолго и мучительно читать инет про ЛУА.
Засада была в расчете количества купонов.
Напрямую
Код:
curItogo=__rep.receipt_amount;
поделить не получилось - оно-ж не число.
Стал преобразовывать в число: два часа
Код:
ttt=tonumber(curItogo);
выдавала nil.
В конце концов разобрался: все дело в том, что эта функция не могла определить что это число из-за того, что там была точка, а не запятая. Победил так:
Код:
curItogo=string.gsub(curItogo,"%p",",");
(это отдельная песня с этими регулярными выражениями - что-бы разобраться в них надо немало "поллитров" откушать *102 )
Вот что получилось в результате:
Код:
--Модуль печати купонов
--Чек-скидка типа купон
function print_discount_coupon(__rep, __print_data)
local printer = ukm.get_printer(ukm.printer_type_master());
if printer then
local text = "";
local width = printer:get_width();
curItogo=__rep.receipt_amount;
curItogo=string.gsub(curItogo,"%p",",");
local ttt=0.0;
ttt=tonumber(curItogo);
Delit=700.00;
KolKuponov = math.floor(ttt/Delit);
for NomerKupona=1,KolKuponov,1 do
text = text .. "\n";
text = text .. ukm.center("АКЦИЯ КАКАЯ-то!",width, " ") .. "\n";
text = text .. ukm.center("КУПОН НА НЕСКОЛЬКО РУБЛЕЙ РУБ",width, " ") .. "\n";
text = text .. ukm.center("Периуд действия купона:",width, " ") .. "\n";
text = text .. ukm.center("с НАЧНЕТСЯ по ЗАКОНЧИТСЯ",width, " ") .. "\n\n";
text = text .. ukm.center("БЕЗ ЧЕКА - НЕДЕЙСТВИТЕЛЕН!",width, " ") .. "\n\n";
text = text .. "****************************************\n";
text = text .. ukm.rightpad("Выдан по чеку " .. __rep.pos .. "." .. tostring(ukm.get_shift_number()) .. "." .. tostring(__rep.receipt_number), width, " ") .. "\n";
text = text .. ukm.rightpad("Сумма чека " .. __rep.receipt_amount, width, " ") .. "\n";
text = text .. ukm.rightpad("Купон номер " .. tostring(NomerKupona) .. " из "..tostring(KolKuponov), width, " ") .. "\n";
text = text .. "****************************************\n";
text = text .. hw_command_cut;
__print_data:add(text, ukm.printer_type_master());
text = "";
end
end
end
З.Ы. Нашел в commands.lua параметры hw_command_double_weight и hw_command_single_weight, при попытке применить их "в лоб", так-же как и отрезка чеков - слегка обломался

Рассуждая логически - это Если случайно знаете как - черканите.