• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgenerator/dataprovider/order.php
  • Класс: Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Order
  • Вызов: Order::calculateTotalFields
protected function calculateTotalFields()
{
	$order = $this->getOrder();
	if(!$order)
	{
		return;
	}

	foreach($this->getTotalFields() as $placeholder => $field)
	{
		if(isset($field['FORMAT']) && (!isset($field['FORMAT']['WORDS']) || $field['FORMAT']['WORDS'] !== true))
		{
			$this->data[$placeholder] = 0;
		}
	}

	foreach($this->products as $product)
	{
		$this->data['TOTAL_RAW'] += $product->getRawValue('PRICE_RAW_SUM');
		$this->data['TOTAL_DISCOUNT'] += $product->getRawValue('QUANTITY') * $product->getRawValue('DISCOUNT_SUM');
	}

	$taxes = $this->loadTaxes();
	foreach($taxes as $tax)
	{
		$this->data['TOTAL_TAX'] += $tax->getRawValue('VALUE');
	}

	$this->data['TOTAL_QUANTITY'] = array_sum($order->getBasket()->getQuantityList());
	$this->data['TOTAL_SUM'] = $order->getPrice();
	$this->data['TOTAL_BEFORE_TAX'] = $this->data['TOTAL_SUM'] - $this->data['TOTAL_TAX'];
	$this->data['TOTAL_BEFORE_DISCOUNT'] = $this->data['TOTAL_BEFORE_TAX'] + $this->data['TOTAL_DISCOUNT'];
	$this->data['PRICE_DELIVERY'] = $order->getDeliveryPrice();
}