forum.bitel.ru http://forum.bitel.ru/ |
|
Как узнать присутствие позиции в счете http://forum.bitel.ru/viewtopic.php?f=14&t=3079 |
Страница 1 из 1 |
Автор: | borisk [ 27 окт 2009, 12:56 ] |
Заголовок сообщения: | Как узнать присутствие позиции в счете |
Добрый день! Подскажите, пожалуйста, не могу сообразить. Мне хочется печатать определенный шаблон только если в счете присутствует определенная наработка, можно ли такое сделать? Например: если наработка по телефонии > 0, то печатаем шаблон детализации звонков. |
Автор: | rix [ 27 окт 2009, 13:05 ] |
Заголовок сообщения: | Re: Как узнать присутствие позиции в счете |
Настройка в типе документа Цитата: create.only.when.pos.positive=x,y,...,z - создание счета\счета-фактуры только в том случае, если указанные позиции с кодами x,y,...,z положительны. не решает проблему? |
Автор: | borisk [ 27 окт 2009, 13:53 ] |
Заголовок сообщения: | Re: Как узнать присутствие позиции в счете |
Нет, не решает, так как у меня один общий документ по всем услугам, а не отдельные счета на каждую услугу. |
Автор: | Jimson [ 28 окт 2009, 17:14 ] |
Заголовок сообщения: | Re: Как узнать присутствие позиции в счете |
речь как я понимаю о том как в XSL проверить условие и в случае его истинности запустить темплейт с детализацией ? вариантов масса вот мой кусок вызова детализации Код: <xsl:template name="VOIP_DETAIL"> <!-- Суммарное время звонков по договору и субдоговорам для проверки на наличие активных логинов (код модуля 4). --> <xsl:variable name="summary_query" select="concat(' SELECT sum(session_time) AS duration FROM contract JOIN log_session_4_', $mysql_date_suffix, ' AS log ON (contract.id = log.cid AND log.session_time > 0) WHERE contract.id = ', /data/bill/@cid, ' OR contract.scid = ', /data/bill/@cid )" /> <xsl:variable name="summary" select="sql:select( $summary_query )" /> <xsl:variable name="duration" select="format-number($summary/row[1]/@duration, '0.00', 'zero')" /> <xsl:if test="$detail_voip_style != 'NONEED' and $duration > 0 "> <fo:page-sequence master-reference="portrait2" initial-page-number="1" force-page-count="no-force"> <fo:static-content flow-name="PageHeader"> <fo:block xsl:use-attribute-sets="text6_right"> страница <fo:page-number /> из <fo:page-number-citation ref-id="endofvoip" /> </fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:value-of select="counter:set( 'voip_page_fill', '27.0' )" /> <xsl:call-template name="VOIP_LOGIN_DETAIL" /> <fo:block id="endofvoip" /> </fo:flow> </fo:page-sequence> </xsl:if> </xsl:template> вы можете просто сделать foreach по элементу /bill/pos и найти позицию с требуемым ID, сумма этой позиции будет условием |
Автор: | borisk [ 30 окт 2009, 10:33 ] |
Заголовок сообщения: | Re: Как узнать присутствие позиции в счете |
Спасибо. Что селект можно сделать и по его результату посмотреть я догадался. А вот про for-each bill/pos забыл. Попробую. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |