Отображение в счёте для юридических лиц цены с НДС

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

Актуально для версии 2.9

Задача: нужно в счёте для юридических лиц выводить цену с указанным НДС.

Решение: редактируем шаблон, по которому выводится упомянутый выше счет. Находится он в файле \templates\demodizzy\xslt\sys-tpls\emarket-invoice.xsl.

Найдите в файле объявления следующих переменных:

<xsl:variable name="total_original_price" select="//property[@name='total_original_price']/value" />
<xsl:variable name="total_price" select="//property[@name='total_price']/value" />
<xsl:variable name="delivery" select="//property[@name='delivery_price']/value" />
<xsl:variable name="discount" select="$total_original_price + $delivery - $total_price" />

Вам необходимо эти переменные вырезать и вставить после строчки

<xsl:variable name="person" select="document(concat('uobject://', 
//property[@name='legal_person']/value/item/@id))/udata/object" />

чтобы не было проблем с областью видимости.

Далее нужно добавить следующие переменные:

1) НДС 18%:

<xsl:variable name="nds" select="0.18" />

2) получим значение первоначальной цены:

<xsl:variable name="price">
<xsl:value-of select="$total_price" />
</xsl:variable>

3) в этой переменной будет рассчитываться сам НДС в зависимости от цены:

<xsl:variable name="nds_count" select="$price * $nds" />

4) в этой переменной рассчитывается окончательная цена, с учетом НДС:

<xsl:variable name="price_nds" select="$price + $nds_count" />

Далее вносим изменения в сами ячейки квитанции. После строчки

<td colspan="5" align="right" valign="top"><b>В том числе НДС (18%):</b></td>

следует написать:

<td align="center" valign="top"><xsl:value-of select="format-number($nds_count, '#.##')" /></td>

это сформирует вывод значения, котрое мы получили в переменной в п.3.

После строчки

<td colspan="5" align="right" valign="top"><b>Всего к оплате:</b></td>

пишем:

<td align="right" valign="top"><xsl:value-of select="format-number($price_nds, '#.##')" /></td>

эта строка выведет значение, которое мы получили в переменной в п.4.

Затем в строчке

Всего наименований <xsl:value-of select="//property[@name='total_amount']/value" />, 
на сумму <xsl:value-of select="format-number(//property[@name='total_price']/value, '#.##')" /> руб.

и в строчке

<b>(<xsl:value-of select="php:function('sumToString', number(//property[@name='total_price']/value))" />)</b>

следует заменить //property[@name='total_price']/value на $price_nds, чтобы выводить сумму с учетом налога.