• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/deal/paymentsrepository.php
  • Класс: Bitrix\Crm\Deal\PaymentsRepository
  • Вызов: PaymentsRepository::loadPaymentStages
protected function loadPaymentStages(array $dealIds) : array
{
	$result = [];

	$paymentRepository = Sale\Repository\PaymentRepository::getInstance();

	$dbRes = Order\PaymentCollection::getList([
		'select' => ['ID', 'DEAL_ID' => 'DEAL_BINDING.OWNER_ID'],
		'filter' => [
			'@DEAL_ID' => $dealIds,
		],
		'order' => ['ORDER_ID' => 'desc', 'ID' => 'desc'],
		'runtime' => [
			new Entity\ReferenceField(
				'DEAL_BINDING',
				Binding\OrderEntityTable::class,
				[
					'=this.ORDER_ID' => 'ref.ORDER_ID',
					'=ref.OWNER_TYPE_ID' => new DB\SqlExpression(\CCrmOwnerType::Deal)
				],
				['join_type' => 'inner']
			)
		]
	]);
	while ($payment = $dbRes->fetch())
	{
		if (isset($result[$payment['DEAL_ID']]))
		{
			continue;
		}

		$paymentObject = $paymentRepository->getById($payment['ID']);
		if ($paymentObject)
		{
			$result[$payment['DEAL_ID']] = Workflow\PaymentWorkflow::createFrom($paymentObject)->getStage();
		}
	}

	return $result;
}