[ОТВЕТИТЬ]
Опции темы
22.03.2016 12:29  
cb
Здравствуйте. Необходимо вывести некоторую информацию в чек из кассовой бд Мysql.
В доке нашел встроенный класс connection, но использовать его в конструкции um.query(cl_connection, text_sql) не получается. Также падает с ошибкой если передавать напрямую параметры соединения с базой. Есть вариант подключить длл в луа и через нее ходить к бд.
Кто-нибудь подключался из Lua к кассовой бд?
 
22.03.2016 23:26  
Павел Сосновских
не раз обсуждалось, запросы в бд можно строить только в отчете по внешним скриптам и больше нигде
есть довольно много информации, которую можно вытаскивать в чек
не вся она документирована
что именно нужно?
 
23.03.2016 08:35  
paradox
Пришлось заново регистроваться из-за низкой кармы.

Нужно вывести 2 текста в чек receipt.lua.
1 произвольный текст из таблицы из бд mysql
2 применную скидку (%), а не расчитанную скидку которая была получилась в чеке. Эта скидка которая грузиться в "Персональная скидка на классикатор УКМ 2,0", вот этот фактический процент и надо вывести в чеке.

Я нашел отчет в котором написаны селекты к базе через класс вот такой конструкцией ukm.query(__rep:get_conn(), text_select).
Нашел Класс connection – класс соединение с базой данных. Но так как методы класса не документированны, дальше дело не пошло.
 
23.03.2016 15:55  
Павел Сосновских
классы query, connection и прочие подобные работают только в reports_ext.lua и больше нигде.
в receipt.lua они не работают
произвольный текст можно, но не из таблицы.
что-то можно сделать с помощью скидок, если в "результат работы" скидки сделать "Вывести сообщение в чек"
можно подробней? текст разный на разных кассах/в разных магазинах?
в чеке по-умолчанию выводится и процент из настроек с указанием, что он "возможный", и фактически рассчитанный
возможно не влезает в чек или что-то изменено
какая версия укм?
 
24.03.2016 08:44  
paradox
По тексту. То есть в receipt.lua я не смогу писать селекты к мускл, чтобы потом вывести результаты запроса в чек?

По скидке. Есть группа скидок "Персональная скидка на классикатор УКМ 2,0", в эту группу грузяться дисконтные карты из Супермага, у этих диск/карт есть фактический процент скидки. При печати чека выводиться расчитанная скидка, а нужно выводить фактическую скидку.

63 сп 10
Миниатюры
Нажмите на изображение для увеличения
Название: ukm.JPG
Просмотров: 82
Размер:	241.0 Кб
ID:	7139  
 
24.03.2016 16:46  
Павел Сосновских
да, селекты писать в чеке не получится. я уже 2 раза об этом сказал.

про процент. чтобы устранить недопонимание.
допустим, в чеке 2 товара, оба по 50р., но один из них акционный и на него скидка не распространяется
сумма чека без скидок 100р.
карта на 7% - запрошенная скидка - 7% - 7р
реально из-за наличия мин. цены скидка составит 3,5% - 3,5р - реальная скидка

вам надо вывести 7% или 3.5%?
 
"Спасибо" Павел Сосновских от:
25.03.2016 05:57  
paradox
7%
 
25.03.2016 11:31  
Павел Сосновских
так по-умолчанию он должен выводиться
1ая строка с картинки:
Код:
text = text .. ukm.adjustment("Скидка: " .. ukm.rightpad(ukm.left(discount.name, width-28),width-28,".") .. " " .. ukm.dbl2str(__hard_subtotal.receipt.items:getrealpercent_dbl(discount),0,"",2,"0") .. "% ", tostring(__hard_subtotal.receipt.items:getdiscount(discount)), width-1, ".") .. "\n";
слово "Скидка: ", потом название скидки, запрошенный процент, фактическая сумма скидки

2ая:
Код:
text = text .. ukm.rightpad(ukm.left(properties_iterator:at(ukm.core.field_discount_client_name), width - ukm.str_len(human_modificator) - 2) .. ", " .. human_modificator, width, " ") .. "\n";
то, что написано в колонке имя в скидке, склеенные: слова "Возможная скидка", запрошенный процент, символ "%"
Миниатюры
Нажмите на изображение для увеличения
Название: disc.jpg
Просмотров: 83
Размер:	62.5 Кб
ID:	7149   Нажмите на изображение для увеличения
Название: receipt.jpg
Просмотров: 107
Размер:	57.7 Кб
ID:	7150  
Вложения
Тип файла: 7z receipt.lua.7z (7.0 Кб, 36 просмотров)
 
25.03.2016 14:14  
paradox
Понял. В понедельник попробую, но когда я работал с модификатором он падал в ошибку
 
28.03.2016 12:52  
paradox
Благодарю за наводку. Вот, если кто-нибудь тоже будет искать

local properties_iterator = ukm.map.int.string.iterator(discount.properties);
if properties_iterator:at(ukm.core.field_discount_modificator) ~= "" then
local modificator = properties_iterator:at(ukm.core.field_discount_modificator);
text = text .. ukm.adjustment(modificator, " ", width, " ") .. "\n";
end
 
 
Опции темы



Часовой пояс GMT +3, время: 03:06.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.