- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/controller/order.php
- Класс: BitrixSaleControllerOrder
- Вызов: Order::listAction
public function listAction(PageNavigation $pageNavigation, array $select = [], array $filter = [], array $order = []): Page
{
$select = empty($select) ? ['*'] : $select;
$order = empty($order) ? ['ID' => 'ASC'] : $order;
$runtime = [
new BitrixMainEntityReferenceField(
'PERSON_TYPE',
'BitrixSaleInternalsPersonType',
array('=this.PERSON_TYPE_ID' => 'ref.ID')
),
new BitrixMainEntityReferenceField(
'STATUS_TABLE',
'BitrixSaleInternalsStatusTable',
array('=this.STATUS_ID' => 'ref.ID')
)
];
$registry = Registry::getInstance(Registry::REGISTRY_TYPE_ORDER);
/** @var SaleOrder $orderClass */
$orderClass = $registry->getOrderClassName();
$orders = $orderClass::getList(
[
'select'=>$select,
'filter'=>$filter,
'order'=>$order,
'offset'=>$pageNavigation->getOffset(),
'limit'=>$pageNavigation->getLimit(),
'runtime'=>$runtime
]
)->fetchAll();
return new Page('ORDERS', $orders, function() use ($select, $filter, $runtime)
{
$registry = Registry::getInstance(Registry::REGISTRY_TYPE_ORDER);
/** @var SaleOrder $orderClass */
$orderClass = $registry->getOrderClassName();
return count(
$orderClass::getList(['select'=>$select, 'filter'=>$filter, 'runtime'=>$runtime])->fetchAll()
);
});
}