• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/paymentitemshipment.php
  • Класс: BitrixSaleControllerPaymentItemShipment
  • Вызов: PaymentItemShipment::listAction
public function listAction(PageNavigation $pageNavigation, array $select = [], array $filter = [], array $order = []): Page
{
	$select = empty($select) ? ['*'] : $select;
	$order = empty($order) ? ['ID' => 'ASC'] : $order;

	$filter['ENTITY_TYPE'] = PayableShipmentItem::getEntityType();

	$registry = Registry::getInstance(Registry::REGISTRY_TYPE_ORDER);
	/** @var PayableItemCollection $payableItemCollection */
	$payableItemCollection = $registry->get(Registry::ENTITY_PAYABLE_ITEM_COLLECTION);
	$paymentItems = $payableItemCollection::getList(
		[
			'select' => $select,
			'filter' => $filter,
			'order' => $order,
			'offset' => $pageNavigation->getOffset(),
			'limit' => $pageNavigation->getLimit(),
		]
	)->fetchAll();

	return new Page('PAYMENT_ITEMS_SHIPMENT', $paymentItems, function() use ($filter)
	{
		$registry = Registry::getInstance(Registry::REGISTRY_TYPE_ORDER);
		/** @var PayableItemCollection $payableItemCollection */
		$payableItemCollection = $registry->get(Registry::ENTITY_PAYABLE_ITEM_COLLECTION);

		return (int) $payableItemCollection::getList([
			'select' => ['CNT'],
			'filter' => $filter,
			'runtime' => [
				new ExpressionField('CNT', 'COUNT(ID)')
			]
		])->fetch()['CNT'];
	});
}