07.04.2016 09:25
paradox
 
Вы не знаете что делаете это конструкция или как её посмотреть.

properties_iterator:at(ukm.core.field_discount_modificator)
07.04.2016 19:27
Павел Сосновских
 
предыдущую строку тоже было бы не плохо указать
Код:
            local properties_iterator = ukm.map.int.string.iterator(discount.properties);
            if properties_iterator:at(ukm.core.field_discount_modificator) ~= "" then
                 local modif = "возможное значение ";
--выполнение парсинга значения модификатора, и преобразование сохранённых в базе значений в строковый вид для печати
                 local modificator = properties_iterator:at(ukm.core.field_discount_modificator);
                 local human_modificator = modificator_to_human(modificator);
Вся конструкция для текущей обрабатываемой скидки в цикле по скидкам в подитоге чека берет свойства этой скидки
Эти свойства можно посмотреть в trm_out_receipt_discount_properties.value (возможно это не всё, что выдается в discount.properties)
В указанном поле бывает довольно разнообразная информация в зависимости от алгоритма скидки
В properties_iterator эта информация сохраняется в таком виде, по которому можно организовывать итерации(для циклов, например)
Скорее всего это что-то типа именованного массива или, как почти все в lua, таблица, т.е. там есть набор пар "ключ-значение"
метод :at обращается к элементу с ключом ukm.core.field_discount_modificator и выдает значение этого элемента
если это значение не пусто, а оно не пусто далеко не для всех скидок, то оно обрабатывается и из него складывается строка типа:
"Возможная скидка 5,00%"
указанное "значение", кстати, тоже разбирается на префикс-значение-суффикс, но скорее всего это строка типа "-5%"

упд: функции, начинающиеся с "ukm." "зашиты" в сам укм и в луа только экспортированы, так что точно узнать, как они работают нельзя
Часовой пояс GMT +3, время: 14:14.

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