Изменение шаблонов документов

Материал из ISPWiki

Перейти к: навигация, поиск

Любой документ биллинга, который вы можете открыть для печати (счета, договоры и т.д.), это результат XSLT преобразования XML-документа с данными и шаблона документа, представленного в XSLT формате.

При изменении шаблонов документов существует несколько тонкостей, которые необходимо знать:

  • Посмотреть XML структуру документа с данными (список полей, которые можно использовать в шаблоне) можно добавив к URL функции печати параметр "out=xml"

Например, у меня это выглядит так:

https://localhost/manager/billmgr?func=credit.print&elid=102&out=xml
  • Каждый шаблон должен быть валидным XSLT документом (подробнее описано на http://www.w3.org/TR/xslt )
  • В тексте шаблона встречаются такие строки
<xsl:template match="invoice[@template='doc_2']">  

цифра 2 - это код шаблона, при создании своих шаблонов необходимо использовать свой код шаблона

  • Если вам не достаточно имеющихся полей, вы можете расширить их список (см. Добавление своих полей)
  • Файлы шаблонов документов физически хранятся в директории
/usr/local/ispmgr/etc/docs/
  • Поставляемые изначально версии всегда можно взять в директории
/usr/local/ispmgr/etc/dist/docs/

Внимание

Для шаблона счета в xml должно быть указано payment в строке

<xsl:template match="payment[@template='doc_1']">

Для шаблона акта выполненных работ должно быть указано invoice

<xsl:template match="invoice[@template='doc_2']">

Если в настройках компании в качестве шаблона счета указать шаблон с invoice (или наоборот, для шаблона акта указать шаблон с payment), то шаблон работать не будет, все данные будут выведены в одну строку.

Пример

Добавить ставку налога в Акте компании в раздел Итого:

<xsl:if test="items/item/taxrate != ">
       <tr class="total">
           <td class="desc">В том числе НДС <xsl:value-of select="items/item/taxrate"/>%</td>
               <td class="amount"><xsl:value-of select="taxamount"/></td>
        </tr>
</xsl:if>

Пример изменения валюты

В шаблонах счетов по умолчанию сумма прописью генерируется в рублях. Чтобы изменить на гривны меняем стороку

<xsl:value-of select="mgr:strsum(amount)"/>

на

<xsl:value-of select="mgr:strsum(amount, 'UAH')"/>
Была ли эта информация полезной? Да | Нет
Личные инструменты