• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/integration/manager/statistic.php
  • Класс: BitrixSaleExchangeIntegrationManagerStatistic
  • Вызов: Statistic::getListByParams
protected function getListByParams($provider)
{
	$this->deleteOldEffectedRows();

	$startDate = $this->getStatisticsStartDate()
		->toString();

	CTimeZone::Disable();

	$providerFields = $this->prepareParamsByProviderFields($provider);

	if(is_null($providerFields['LAST_DATE_UPDATE']))
	{
		$time = $startDate;
	}
	else
	{
		$lastDateUpdate = strtotime($providerFields['LAST_DATE_UPDATE']);
		$time = DateTime::createFromTimestamp($lastDateUpdate)
			->toString();
	}

	$filter['>=DATE_UPDATE'] = $time;
	$filter['=RUNNING'] = 'N';

	$logs = $this->exchange->getEffectedRows(
		$time,
		EntityType::ORDER,
		ManagerExport::EXCHANGE_DIRECTION_EXPORT);

	$r = OrderTable::getList([
		'order'=>['DATE_UPDATE'=>'ASC'],
		'filter'=>$filter,
		'limit' => static::STATISTIC_IMPORT_PACKAGE_LIMIT
	]);

	while($res = $r->fetch())
	{
		if($this->exchange->isEffected($res, $logs))
		{
			continue;
		}

		$res['AMOUNT'] = $res['PRICE'];
		$res['STATUS'] = $this->resolveStatusId($res);
		$res['ENTITY_ID'] = $res['ID'];
		$res['PROVIDER_ID'] = $providerFields['ID'];

		$this->collection->addItem(
			Item::create(
				Order::createFromArray($res))
				->setInternalIndex($res['ID'])
		);

		$this->addEffectedRows($res);
	}

	CTimeZone::Enable();

	return $this;
}