• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgenerator/dataprovider/product.php
  • Класс: Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Product
  • Вызов: Product::__construct
public function __construct($data, array $options = [])
{
	if(is_array($data) && !empty($data))
	{
		$this->id = (int)$data['ID'];
		$data['PRICE_RAW'] = $data['PRICE'];
		$taxRate = isset($data['TAX_RATE']) ? (double)$data['TAX_RATE'] : 0.0;
		if($data['TAX_INCLUDED'] === 'Y')
		{
			$data['PRICE_EXCLUSIVE'] = \CCrmProductRow::CalculateExclusivePrice($data['PRICE'], $taxRate);
		}
		else
		{
			$data['PRICE_EXCLUSIVE'] = $data['PRICE'];
			$data['PRICE'] = \CCrmProductRow::CalculateInclusivePrice($data['PRICE_EXCLUSIVE'], $taxRate);
		}

		if(!isset($data['DISCOUNT_RATE']) || empty($data['DISCOUNT_RATE']))
		{
			$data['DISCOUNT_RATE'] = Discount::calculateDiscountRate(($data['PRICE_EXCLUSIVE'] + $data['DISCOUNT_SUM']), $data['PRICE_EXCLUSIVE']);
		}
		$data['PRICE_NETTO'] = $data['PRICE_EXCLUSIVE'] + $data['DISCOUNT_SUM'];

		if(!isset($data['PRICE_BRUTTO']))
		{
			if($data['DISCOUNT_SUM'] <= 0)
			{
				$data['PRICE_BRUTTO'] = $data['PRICE'];
			}
			else
			{
				$data['PRICE_BRUTTO'] = \CCrmProductRow::CalculateInclusivePrice($data['PRICE_NETTO'], $taxRate);
			}
		}

		if($data['TAX_INCLUDED'] === 'Y')
		{
			$data['PRICE_RAW_NETTO'] = $data['PRICE_BRUTTO'];
		}
		else
		{
			$data['PRICE_RAW_NETTO'] = $data['PRICE_NETTO'];
		}
	}

	parent::__construct($data, $options);
}