LiTiNuM Posted February 20, 2014 Share Posted February 20, 2014 Добрый день, Обращаюсь, уже даже, взываю к помощи опытных специалистов! Переделал invoice.tpl под товарный чек. Но нужно реализовать два условия: 1. Вывод полей условий и подписи в зависимости от того, есть ли у товара в заказе конкретный атрибут. 2. Вывести сумму прописью. Отступление: я только учусь, поэтому не пинайте сильно...)) Все проверки того, что выходит в счёт, провожу админке в Инвойсах по кн.Сгенерировать PDF. Версия Prest'ы 1.5.6.1 1. Есть счёт, в нём позиция. На этой позиции в таблице Order_Detail лежит определённый product_attribute_id, к примеру = 67. Мне нужно в условии {IF } сравнить атрибут в заказе со значениями. Например, у меня есть атрибуты 67, 65, 11, 22, 33. Я знаю, что под атрибуты 11, 22, 33 - должны выводиться одни условия, а для 65, 67 - другие. Условие такого: {if product_attribute_id == (набор значений), то так {else} вот так. {/if} (набор значений) - получить нужно SELECT'ом из БД. Я голову сломал в этой головоломке, мне бы понять: а) Саму переменную нужно вносить в class HTMLTemplateInvoice.php или же можно в самом шаблоне invoice.tpl её прописать, и задать ей значения из БД? б) Если в php, то куда, в самом начале её объявить public $attr, к примеру? в) Если в шаблоне, то, например, через {assign} или же блок {if} в котором будет что-то типа: $query = 'SELECT *** FROM *** WHERE ***; $result=mysql_query($query); while($attr=mysql_fetch_array($result)); } {if isset(($атрибут в заказе) && $атрибут в заказе == $r.result))} г) Атрибут заказа, как его определить в IF, например, $order_detail.product_attribute_id? 2. Есть функция PHP на перевод суммы в сумму_прописью. Куда лучше эту функцию поместить и как правильно к ней обратиться? Например, можно её в TOOLS засунуть, а в class HTMLTemplateInvoice.php вписать переменную, которая по этой функции берёт и обрабатывает сумму заказа, а потом в шаблоне просто вывести эту переменную в нужном месте {переменная_сумма_прописью}? Ребята, хотя бы направление для мыслей задайте, а то информации много, структура не до конца понятна, и реально мозг отключается от кучи инфы, в которой нужно выделить суть... Заранее благодарен! Link to comment Share on other sites More sharing options...
Kerm Posted February 20, 2014 Share Posted February 20, 2014 Насколько вижу там параметры каждого товара передаются через переменную $order_detail, нужно глянуть что она вообще выводит, например в шаблоне print_r сделать ей.. Или в пхп в файле где идет assign этой переменной $order_details: file_put_contents('filename.txt', print_r($order_details, true)); Путь к файлу лучше сделать относительно корня сайта, к примеру: /var/www/user/data/www/site.ru/filename.txt Там выведется массив, если в нем нету нужной инфы тогда нужно будет к mysql запросу добавить left join с определенным правилом чтобы подтянуть нужную информацию. Перевод суммы на пропись: http://habrahabr.ru/post/53210/ Link to comment Share on other sites More sharing options...
LiTiNuM Posted February 20, 2014 Author Share Posted February 20, 2014 Ой, спасибо! Функцию суммы прописью, я именно эту и нашёл давно, запихнул её в class -> HTMLTemplateInvoice Но не знал, что именно делать, она там и лежала. А Вы меня натолкнули на то, что всё должно быть очень просто, раз дали на неё ссылку...)) В общем, кому интересно: Присвоил данным двум функциям тип: public static function num2str($num)... public static function morph($n, $f1, $f2, $f5)... Далее в шаблоне TPL указал: {assign var=summp value=HTMLTemplateInvoice::num2str($order_invoice->total_paid_tax_incl)} {$summp} //вывел ИТОГОВУЮ стоимость заказа прописью (текстом) По вопросу №1, могу сказать: Вставил в шаблон {file_put_contents('file.txt', print_r($order_details, true))} Шаблон показал сумму 24740, что это, пока понять не могу... ощущение, что результат какой-то математики в таблице...)) Но ещё застрял здесь: {$link = mysql_connect('localhost', 'pandeonrf', 'tswpu8g7')} {if (!$link)}'КАРАУЛ'{/if} {mysql_select_db('pandeonrf', $link)} {if (!mysql_select_db('pandeonrf'))}'БАЗА ЕПТ'{/if} {$result=mysql_query("SELECT 67,65,86,111 FROM dual")} {if (!$result)}'ТАБЛИЦА'{/if} {$attr = mysql_fetch_array($result,MYSQL_BOTH)} Подскажите, как преобразовать данные, как правильно вывести в виде перечня значений (массива)? Я смотрю, как это делается в PHP, через while, но, млин, шаблон работает несколько иначе, со своими особенностями...)) Я хочу этот $attr затем сравнивать в IF со значением атрибута... когда определю, как этот атрибут сюда достать...) Можно, к примеру, второй SELEC'т сделать из таблицы, через id_order... вот думаю... Link to comment Share on other sites More sharing options...
Recommended Posts