• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/update/order/dealgenerator.php
  • Класс: Bitrix\Crm\Update\Order\DealGenerator
  • Вызов: DealGenerator::getUnbindingActiveOrdersCount
static function getUnbindingActiveOrdersCount() : int
{
	$query = new Main\Entity\Query(Sale\Internals\OrderTable::getEntity());

	$query->registerRuntimeField(
		'',
		new Main\Entity\ExpressionField(
			'CNT',
			'COUNT(*)'
		)
	);

	$query->registerRuntimeField('',
		new Main\Entity\ReferenceField(
			'ENTITY_BINDING',
			Crm\Binding\OrderEntityTable::getEntity(),
			[
				'=ref.ORDER_ID' => 'this.ID',
			],
			[
				'join_type' => 'LEFT'
			]
		)
	);

	$query
		->setSelect(['CNT'])
		->whereNotIn(
			'STATUS_ID',
			[
				Crm\Order\OrderStatus::getFinalStatus(),
				Crm\Order\OrderStatus::getFinalUnsuccessfulStatus()
			]
		)
		->whereNull('ENTITY_BINDING.ORDER_ID')
	;

	$data = $query->fetch();
	if ($data)
	{
		return $data['CNT'];
	}

	return 0;
}