Расчет маржи валовой прибыли на основе себестоимости продукции и выручки от продаж в XBRL

Позвольте мне начать со слов благодарности за то, что нашли время, чтобы прочитать это.

Я создаю документ XBRL, используя Altova Stylevision. Я правильно ввел таксономию XBRL и так далее. Я создаю несколько круговых диаграмм, чтобы показать 1, доход от продаж для трех компаний и % дохода от продаж, которым владеет каждая компания, от всей суммы. Я делаю то же самое с валовой прибылью.

Мой счет COGS — 400020, а мой счет доходов от продаж — 800000.

Следующий код используется для разделения трех компаний, которые я сравниваю:

for $i in distinct-values($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail/gl-cor:identifierReference/gl-cor:identifierCode) return $i

Следующий код вычисляет доход от продаж

sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount)

Следующий код вычисляет % от общего дохода от продаж для каждой компании.

round-half-to-even(sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/
gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' and  gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount) 

div sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000'  ]/gl-cor:amount)
* 100, 1)

Следующий код вычисляет валовую прибыль

sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount)
-sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='400020' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount)

Код, по сути, представляет собой сумму моего счета доходов от продаж на компанию в текущее время - сумму моего счета стоимости проданных товаров на компанию в текущее время.

Весь этот код выше работает, ура!

Когда я подсчитываю маржу валовой прибыли, моя голова взрывается, ха-ха. Я думал, что смогу сделать что-то похожее на код % от общего дохода от продаж, но я просто не могу этого понять.

Это код, который у меня есть, но он неправильно рассчитывает % валовой прибыли.

round-half-to-even(sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount)
-sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='400020' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount))

div sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' ]/gl-cor:amount)
- sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='400020' ]/gl-cor:amount) * 100, 1

Я думаю, что проблема в том, что я делю сумму своей учетной записи доходов - учетную запись COGS, но тег div находится только перед частью отчета о доходах. Однако, как бы я ни пытался написать оператор, я получаю сообщение об ошибке, которое даже не вернет результат, если я не наберу его таким образом. Результаты, которые он выводит, представляют собой % от сотен тысяч и второй процент от 1 для каждой компании. Очевидно, что он должен выводить только один процент для каждой компании, что в сумме составляет три процента.

Я не совсем уверен, что делать дальше, и я очень надеюсь, что это просто синтаксическая ошибка, но любая помощь с синтаксисом или переписывание оператора приветствуется!

Спасибо, Джоэл


person Joel    schedule 01.12.2013    source источник


Ответы (1)


В предикате ваших выражений XPath вы должны использовать переменную =$i вместо =current() для сравнения с фактической компанией в цикле for.

Надеюсь это поможет.

person Bill Velasquez    schedule 02.12.2013
comment
Хорошо, я полагаю, что изменил то, о чем вы говорите, но я получаю сообщение об ошибке, в котором говорится, что трансформация не удалась. Я изменил первый раздел на следующий: Правильно ли это? Round-Half-To-Even(sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor :account/gl-cor:accountMainID='800000' и gl-cor:identifierReference/gl-cor:identifierCode=$i ]/gl-cor:amount) -sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries /gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='400020' и gl-cor:identifierReference/gl-cor:identifierCode=$i]/gl-cor:amount )) - person Joel; 05.12.2013