• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/conversionhandlers.php
  • Класс: BitrixSaleInternalsConversionHandlers
  • Вызов: ConversionHandlers::onGenerateInitialData
static function onGenerateInitialData(Date $from, Date $to)
{
	$data = array();

	// 1. Payments

	$result = CSaleOrder::GetList(
		array(),
		array(
			'PAYED'        => 'Y',
			'CANCELED'     => 'N',
			'>=DATE_PAYED' => $from,
			'<=DATE_PAYED' => $to,
		),
		false,
		false,
		array('LID', 'DATE_PAYED', 'PRICE', 'CURRENCY')
	);

	while ($row = $result->Fetch())
	{
		$day = new DateTime($row['DATE_PAYED']);
		$sum = Utils::convertToBaseCurrency($row['PRICE'], $row['CURRENCY']);

		if ($counters =& $data[$row['LID']][$day->format('Y-m-d')])
		{
			$counters['sale_payment_add_day'] += 1;
			$counters['sale_payment_sum_add'] += $sum;
		}
		else
		{
			$counters = array(
				'sale_payment_add_day' => 1,
				'sale_payment_sum_add' => $sum,
			);
		}
	}

	// 2. Orders

	$result = CSaleOrder::GetList(
		array(),
		array(
			'CANCELED'      => 'N',
			'>=DATE_INSERT' => $from,
			'<=DATE_INSERT' => $to,
		),
		false,
		false,
		array('LID', 'DATE_INSERT', 'PRICE', 'CURRENCY')
	);

	while ($row = $result->Fetch())
	{
		$day = new DateTime($row['DATE_INSERT']);
		$sum = Utils::convertToBaseCurrency($row['PRICE'], $row['CURRENCY']);

		if ($counters =& $data[$row['LID']][$day->format('Y-m-d')])
		{
			$counters['sale_order_add_day'] += 1;
			$counters['sale_order_sum_add'] += $sum;
		}
		else
		{
			$counters = array(
				'sale_order_add_day' => 1,
				'sale_order_sum_add' => $sum,
			);
		}
	}

	// 3. Cart

	$result = CSaleBasket::GetList(
		array(),
		array(
			'>=DATE_INSERT' => $from,
			'<=DATE_INSERT' => $to,
		),
		false,
		false,
		array('LID', 'DATE_INSERT', 'PRICE', 'CURRENCY', 'QUANTITY')
	);

	while ($row = $result->Fetch())
	{
		$day = new DateTime($row['DATE_INSERT']);
		$sum = Utils::convertToBaseCurrency($row['PRICE'] * $row['QUANTITY'], $row['CURRENCY']);

		if ($counters =& $data[$row['LID']][$day->format('Y-m-d')])
		{
			$counters['sale_cart_add_day'] += 1;
			$counters['sale_cart_sum_add'] += $sum;
		}
		else
		{
			$counters = array(
				'sale_cart_add_day' => 1,
				'sale_cart_sum_add' => $sum,
			);
		}
	}

	// Result

	unset($counters);

	$result = array();

	foreach ($data as $siteId => $dayCounters)
	{
		$result []= array(
			'ATTRIBUTES'   => array('conversion_site' => $siteId),
			'DAY_COUNTERS' => $dayCounters,
		);
	}

	return $result;
}