CAllCrmInvoice::RebuildStatistics

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CAllCrmInvoice
  4. RebuildStatistics
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_invoice.php
  • Класс: \CAllCrmInvoice
  • Вызов: CAllCrmInvoice::RebuildStatistics
static function RebuildStatistics(array $IDs, array $options = null)
{
	$dbResult = self::GetList(
		array(),
		array('@ID' => $IDs, 'CHECK_PERMISSIONS' => 'N')
	);

	if(!is_object($dbResult))
	{
		return;
	}

	if(!is_array($options))
	{
		$options = array();
	}

	$forced = isset($options['FORCED']) ? $options['FORCED'] : false;
	$enableHistory = isset($options['ENABLE_HISTORY']) ? $options['ENABLE_HISTORY'] : true;
	$enableSumStatistics = isset($options['ENABLE_SUM_STATISTICS']) ? $options['ENABLE_SUM_STATISTICS'] : true;

	while($fields = $dbResult->Fetch())
	{
		$ID = (int)$fields['ID'];
		//--> History
		if($enableHistory && ($forced || !Bitrix\Crm\History\InvoiceStatusHistoryEntry::isRegistered($ID)))
		{
			$created = isset($fields['DATE_INSERT']) ? $fields['DATE_INSERT'] : '';
			$createdTime = null;
			try
			{
				$createdTime = new Bitrix\Main\Type\DateTime(
					$created,
					Bitrix\Main\Type\DateTime::convertFormatToPhp(FORMAT_DATETIME));
			}
			catch(Bitrix\Main\ObjectException $e)
			{
			}

			$modified = isset($fields['DATE_UPDATE']) ? $fields['DATE_UPDATE'] : '';
			$modifiedTime = null;
			if($modified !== '')
			{
				try
				{
					$modifiedTime = new Bitrix\Main\Type\DateTime(
						$modified,
						Bitrix\Main\Type\DateTime::convertFormatToPhp(FORMAT_DATETIME));
				}
				catch(Bitrix\Main\ObjectException $e)
				{
				}
			}

			if($createdTime && $modifiedTime && $createdTime->getTimestamp() !== $modifiedTime->getTimestamp())
			{
				Bitrix\Crm\History\InvoiceStatusHistoryEntry::register(
					$ID,
					$fields,
					array('IS_NEW' => false, 'TIME' => $modifiedTime)
				);
			}
			elseif($createdTime)
			{
				Bitrix\Crm\History\InvoiceStatusHistoryEntry::register(
					$ID,
					$fields,
					array('IS_NEW' => true, 'TIME' => $createdTime)
				);
			}
		}
		//<-- History

		//--> Statistics
		if($enableSumStatistics && ($forced || !Bitrix\Crm\Statistics\InvoiceSumStatisticEntry::isRegistered($ID)))
		{
			Bitrix\Crm\Statistics\InvoiceSumStatisticEntry::register($ID, $fields, array('FORCED' => $forced));
		}
		//<-- Statistics
	}
}

Добавить комментарий