Получаем
список заказов через ORM (D7)
со всеми свойствами заказа, в том числе и пустыми, с возможностью
фильтрации и
сортировки списка
по свойству заказа.
При этом заказы в результате
не дублируются.
| Код |
|---|
CModule::IncludeModule('sale');
$arSelect = array('ID');
$arRuntime = array();
$dbProperties = \Bitrix\Sale\Internals\OrderPropsTable::getList(array('select' => array('CODE')));
while ($arProperty = $dbProperties->fetch()) {
$sCode = $arProperty['CODE'];
$arSelect["PROPERTY_{$sCode}_VALUE"] = "PROPERTY_{$sCode}.VALUE";
$arRuntime["PROPERTY_{$sCode}"] = new \Bitrix\Main\Entity\ReferenceField("PROPERTY_{$sCode}",
'\Bitrix\Sale\Internals\OrderPropsValueTable', array(
'=this.ID' => 'ref.ORDER_ID',
'=ref.CODE' => new \Bitrix\Main\DB\SqlEx * pression('?', $sCode),
));
}
$dbOrders = \Bitrix\Sale\Internals\OrderTable::getList(array(
'order' => array('PROPERTY_EMAIL_VALUE' => 'asc'),
'filter' => array('!PROPERTY_EMAIL_VALUE' => ''),
'select' => $arSelect,
'runtime' => $arRuntime,
));
while ($arOrder = $dbOrders->fetch()) {
var_export($arOrder);
}
|