• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/abstractcheck.php
  • Класс: BitrixSaleCashboxAbstractCheck
  • Вызов: AbstractCheck::getEntities
public function getEntities()
{
	if ($this->entities)
	{
		return $this->entities;
	}

	$registry = Registry::getInstance($this->fields['ENTITY_REGISTRY_TYPE']);

	if ($this->fields['ORDER_ID'] > 0)
	{
		$orderId = $this->fields['ORDER_ID'];
	}
	elseif ($this->fields['PAYMENT_ID'] > 0)
	{
		/** @var Payment $paymentClassName */
		$paymentClassName = $registry->getPaymentClassName();
		$dbRes = $paymentClassName::getList([
			'filter' => [
				'ID' => $this->fields['PAYMENT_ID']
			]
		]);
		$data = $dbRes->fetch();
		$orderId = $data['ORDER_ID'];
	}
	elseif ($this->fields['SHIPMENT_ID'] > 0)
	{
		/** @var Shipment $shipmentClassName */
		$shipmentClassName = $registry->getShipmentClassName();
		$dbRes = $shipmentClassName::getList([
			'filter' => [
				'ID' => $this->fields['SHIPMENT_ID']
			]
		]);
		$data = $dbRes->fetch();
		$orderId = $data['ORDER_ID'];
	}
	else
	{
		throw new MainSystemException();
	}

	if ($orderId > 0)
	{
		$orderClassName = $registry->getOrderClassName();

		/** @var Order $order */
		$order = $orderClassName::load($orderId);
		if ($order)
		{
			if ($this->fields['PAYMENT_ID'] > 0)
			{
				$payment = $order->getPaymentCollection()->getItemById($this->fields['PAYMENT_ID']);
				if ($payment)
				{
					$this->entities[] = $payment;
				}
			}

			if ($this->fields['SHIPMENT_ID'] > 0)
			{
				$shipment = $order->getShipmentCollection()->getItemById($this->fields['SHIPMENT_ID']);
				if ($shipment)
				{
					$this->entities[] = $shipment;
				}
			}
		}
	}

	return $this->entities;
}