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

LUA, перенести статус чека из футера в хидер : УКМ-4

22.11.2024 21:36


02.04.2020 16:20
Добрый день.
Возможно кто-то сталкивался или знает решение.
Ситуация следующая:
- формируем чек продажи
- Окладываем чек
- УКМ на ФР печатает:
а) Шапку чека (номер чека и тип чека)
б) Передает в ФР состав чека
в) Сумму скидки
г) Аннулирует чек.
- Футер чека (отложенный) не печатается на ФР.

В итоге на чеке не понятно, был он отложен или аннулирован, пока не проверишь номер чека в отложенных чеках.

Пробовал в блок function get_recnumb(__header)
добавить стоку:
Код:
elseif __footer.result == ukm.footer.push then
recnumb = "ОТЛОЖЕН";
но УКМ не подхватывает проверку данных.

Пробовал еще так:
Код:
local footer_result = __footer:footer_result();
if footer_result == ukm.footer.push then
recnumb = "ОТЛОЖЕН";
В таком случае УКМ выдавал ошибку LUA, сообщал, что значение пустое.
Цитата:
attempt to index global '__footer' (a nil value)
02.04.2020 17:47
А откуда у вас в get_recnumb() взялся __footer, покажите. И функции footer_result() вроде нет в стандартных скриптах С+

Вообще, из заголовка до подвала можно добраться так: header.receipt.footer
И есть функция receipt.footer_exists()
03.04.2020 12:30
Не стоило мои примеры использовать как верные, я пытался решить задачу методом "тыка", проб и ошибок.
Спасибо за подсказку, помог способ: header.receipt.footer. Функцией "receipt.footer_exists()" так и не понял как воспользоваться, по этому ограничился первым вариантом.

Если у Вас есть какая-то документация по функциям и прочим прелестям использования LUA в УКМ и, Вы можете ей поделиться, буду благодарен.
03.04.2020 13:24
Цитата:
m1n1mal Функцией "receipt.footer_exists()" так и не понял как воспользоваться
Ошибка, не точка а двоеточие - receipt:footer_exists()
Посмотрите код в snapshot_receipt.lua, там кучка разных exists

Цитата:
m1n1mal Если у Вас есть какая-то документация
Ничего, кроме того что есть в свободном доступе (на ftp) C+
Использование сценариев на языке LUA в системе УКМ.pdf
05.04.2020 12:46
как то давно делал так :

function print_hard_subtotal(__hard_subtotal, __print_data)

....
--<отложенный чек
if __hard_subtotal.receipt.footer ~= nil then
if __hard_subtotal.receipt.footer.result == ukm.footer.push then
local printer = ukm.get_printer(ukm.printer_type_master());
if printer then
local text = "";
local width = printer:get_width();
text = text .. "ОТЛОЖЕННЫЙ ЧЕК" .. "\n";
text = text .. ukm.leftpad("-", width, "-") .. "\n";
__print_data:add(text, ukm.printer_type_master());
end
return;
end
end
-->отложенный чек
Часовой пояс GMT +3, время: 21:36.

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