Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Member Functions
Collection Class Reference
Inheritance diagram for Collection:
Collection Collection AbstractCollection OrderSearchResultInterface Collection SearchResultsInterface AbstractCollection AbstractDb SourceProviderInterface Collection ArrayInterface CollectionDataSourceInterface OptionSourceInterface ArgumentInterface

Public Member Functions

 setDateRange ($from, $to)
 
 addOrderedQty ($from='', $to='')
 
 setStoreIds ($storeIds)
 
 setOrder ($attribute, $dir=self::SORT_ORDER_DESC)
 
 getSelectCountSql ()
 
- Public Member Functions inherited from Collection
 __construct (\Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DB\Helper $coreResourceHelper, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Sales\Model\Order\Config $orderConfig, \Magento\Sales\Model\ResourceModel\Report\OrderFactory $reportOrderFactory, \Magento\Framework\DB\Adapter\AdapterInterface $connection=null, \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource=null)
 
 checkIsLive ($range)
 
 isLive ()
 
 prepareSummary ($range, $customStart, $customEnd, $isFilter=0)
 
 getDateRange ($range, $customStart, $customEnd, $returnObjects=false)
 
 addItemCountExpr ()
 
 calculateTotals ($isFilter=0)
 
 calculateSales ($isFilter=0)
 
 setDateRange ($fromDate, $toDate)
 
 setStoreIds ($storeIds)
 
 groupByCustomer ()
 
 joinCustomerName ($alias='name')
 
 addOrdersCount ()
 
 addRevenueToSelect ($convertCurrency=false)
 
 addSumAvgTotals ($storeId=0)
 
 orderByTotalAmount ($dir=self::SORT_ORDER_DESC)
 
 orderByOrdersCount ($dir=self::SORT_ORDER_DESC)
 
 orderByCustomerRegistration ($dir=self::SORT_ORDER_DESC)
 
 orderByCreatedAt ($dir=self::SORT_ORDER_DESC)
 
 getSelectCountSql ()
 
 addCreateAtPeriodFilter ($period)
 
- Public Member Functions inherited from Collection
 __construct (\Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DB\Helper $coreResourceHelper, \Magento\Framework\DB\Adapter\AdapterInterface $connection=null, \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource=null)
 
 addItemCountExpr ()
 
 getSelectCountSql ()
 
 addAddressFields ()
 
 addFieldToSearchFilter ($field, $condition=null)
 
 addAttributeToSearchFilter ($attributes, $condition=null)
 
 addBillingAgreementsFilter ($agreements)
 
- Public Member Functions inherited from AbstractCollection
 setSelectCountSql (\Magento\Framework\DB\Select $countSelect)
 
 getSelectCountSql ()
 
 addAttributeToSelect ($attribute)
 
 addAttributeToFilter ($attribute, $condition=null)
 
 addAttributeToSort ($attribute, $dir='asc')
 
 setPage ($pageNum, $pageSize)
 
 getAllIds ($limit=null, $offset=null)
 
 getSearchCriteria ()
 
 setSearchCriteria (\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria=null)
 
 getTotalCount ()
 
 setTotalCount ($totalCount)
 
 setItems (array $items=null)
 
- Public Member Functions inherited from Collection
 __construct (\Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, Snapshot $entitySnapshot, \Magento\Framework\DB\Adapter\AdapterInterface $connection=null, \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource=null)
 
 fetchItem ()
 
- Public Member Functions inherited from AbstractCollection
 __construct (\Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection=null, \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource=null)
 
 getMainTable ()
 
 setMainTable ($table)
 
 getSelect ()
 
 addFieldToSelect ($field, $alias=null)
 
 addExpressionFieldToSelect ($alias, $expression, $fields)
 
 removeFieldFromSelect ($field, $isAlias=false)
 
 removeAllFieldsFromSelect ()
 
 setModel ($model)
 
 getModelName ()
 
 setResourceModel ($model)
 
 getResourceModelName ()
 
 getResource ()
 
 getTable ($table)
 
 getAllIds ()
 
 join ($table, $cond, $cols=' *')
 
 setResetItemsDataChanged ($flag)
 
 resetItemsDataChanged ()
 
 save ()
 
 __sleep ()
 
 __wakeup ()
 
- Public Member Functions inherited from AbstractDb
 __construct (EntityFactoryInterface $entityFactory, Logger $logger, FetchStrategyInterface $fetchStrategy, \Magento\Framework\DB\Adapter\AdapterInterface $connection=null)
 
 getResource ()
 
 addBindParam ($name, $value)
 
 getIdFieldName ()
 
 setConnection (\Magento\Framework\DB\Adapter\AdapterInterface $conn)
 
 getSelect ()
 
 getConnection ()
 
 getSize ()
 
 getSelectCountSql ()
 
 getSelectSql ($stringMode=false)
 
 setOrder ($field, $direction=self::SORT_ORDER_DESC)
 
 addOrder ($field, $direction=self::SORT_ORDER_DESC)
 
 unshiftOrder ($field, $direction=self::SORT_ORDER_DESC)
 
 addFieldToFilter ($field, $condition=null)
 
 distinct ($flag)
 
 load ($printQuery=false, $logQuery=false)
 
 loadWithFilter ($printQuery=false, $logQuery=false)
 
 fetchItem ()
 
 getData ()
 
 resetData ()
 
 loadData ($printQuery=false, $logQuery=false)
 
 printLogQuery ($printQuery=false, $logQuery=false, $sql=null)
 
 addFilterToMap ($filter, $alias, $group='fields')
 
 __clone ()
 
 joinExtensionAttribute (JoinDataInterface $join, JoinProcessorInterface $extensionAttributesJoinProcessor)
 
 getItemObjectClass ()
 
 __sleep ()
 
 __wakeup ()
 
- Public Member Functions inherited from Collection
 __construct (EntityFactoryInterface $entityFactory)
 
 addFilter ($field, $value, $type='and')
 
 addFieldToFilter ($field, $condition)
 
 getFilter ($field)
 
 isLoaded ()
 
 getCurPage ($displacement=0)
 
 getLastPageNumber ()
 
 getPageSize ()
 
 getSize ()
 
 getFirstItem ()
 
 getLastItem ()
 
 getItems ()
 
 getColumnValues ($colName)
 
 getItemsByColumnValue ($column, $value)
 
 getItemByColumnValue ($column, $value)
 
 addItem (\Magento\Framework\DataObject $item)
 
 getAllIds ()
 
 removeItemByKey ($key)
 
 removeAllItems ()
 
 clear ()
 
 walk ($callback, array $args=[])
 
 each ($objMethod, $args=[])
 
 setDataToAll ($key, $value=null)
 
 setCurPage ($page)
 
 setPageSize ($size)
 
 setOrder ($field, $direction=self::SORT_ORDER_DESC)
 
 setItemObjectClass ($className)
 
 getNewEmptyItem ()
 
 distinct ($flag)
 
 loadData ($printQuery=false, $logQuery=false)
 
 load ($printQuery=false, $logQuery=false)
 
 loadWithFilter ($printQuery=false, $logQuery=false)
 
 toXml ()
 
 toArray ($arrRequiredFields=[])
 
 toOptionArray ()
 
 toOptionHash ()
 
 getItemById ($idValue)
 
 getIterator ()
 
 count ()
 
 getFlag ($flag)
 
 setFlag ($flag, $value=null)
 
 hasFlag ($flag)
 
 __sleep ()
 
 __wakeup ()
 
- Public Member Functions inherited from SourceProviderInterface
 getIdFieldName ()
 
 addFieldToFilter ($attribute, $condition=null)
 
- Public Member Functions inherited from OrderSearchResultInterface
 getItems ()
 
 setItems (array $items=null)
 
- Public Member Functions inherited from SearchResultsInterface
 getSearchCriteria ()
 
 setSearchCriteria (\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
 
 getTotalCount ()
 
 setTotalCount ($totalCount)
 

Protected Member Functions

 prepareBetweenSql ($fieldName, $from, $to)
 
- Protected Member Functions inherited from Collection
 _getSalesAmountExpression ()
 
 _prepareSummaryLive ($range, $customStart, $customEnd, $isFilter=0)
 
 _prepareSummaryAggregated ($range, $customStart, $customEnd)
 
 _getRangeExpression ($range)
 
 _getRangeExpressionForAttribute ($range, $attribute)
 
 _getTZRangeOffsetExpression ($range, $attribute, $from=null, $to=null)
 
 _getTZRangeExpressionForAttribute ($range, $attribute, $tzFrom='+00:00', $tzTo=null)
 
 _calculateTotalsLive ($isFilter=0)
 
 _calculateTotalsAggregated ($isFilter=0)
 
 getTotalsExpression ( $storeId, $baseSubtotalRefunded, $baseSubtotalCanceled, $baseDiscountCanceled)
 
 _initInitialFieldsToSelect ()
 
- Protected Member Functions inherited from Collection
 _construct ()
 
 _getAllIdsSelect ($limit=null, $offset=null)
 
 _addAddressFields ()
 
- Protected Member Functions inherited from AbstractCollection
 _attributeToField ($attribute)
 
 _getAllIdsSelect ($limit=null, $offset=null)
 
- Protected Member Functions inherited from Collection
 beforeAddLoadedItem (\Magento\Framework\DataObject $item)
 
- Protected Member Functions inherited from AbstractCollection
 _construct ()
 
 _initSelect ()
 
 _initSelectFields ()
 
 _getInitialFieldsToSelect ()
 
 _initInitialFieldsToSelect ()
 
 _init ($model, $resourceModel)
 
 _beforeLoad ()
 
 _afterLoad ()
 
- Protected Member Functions inherited from AbstractDb
 _setIdFieldName ($fieldName)
 
 _getItemId (\Magento\Framework\DataObject $item)
 
 _renderFilters ()
 
 _renderFiltersBefore ()
 
 _translateCondition ($field, $condition)
 
 _getMappedField ($field)
 
 _getMapper ()
 
 _getConditionSql ($fieldName, $condition)
 
 _getConditionFieldName ($fieldName)
 
 _renderOrders ()
 
 _renderLimit ()
 
 _beforeLoad ()
 
 beforeAddLoadedItem (\Magento\Framework\DataObject $item)
 
 _toOptionArray ($valueField=null, $labelField='name', $additional=[])
 
 _toOptionHash ($valueField=null, $labelField='name')
 
 _afterLoadData ()
 
 _afterLoad ()
 
 _logQuery ($sql)
 
 _reset ()
 
 _fetchAll (Select $select)
 
 _initSelect ()
 
- Protected Member Functions inherited from Collection
 _setIsLoaded ($flag=true)
 
 _addItem ($item)
 
 _getItemId (\Magento\Framework\DataObject $item)
 
 _renderFilters ()
 
 _renderOrders ()
 
 _renderLimit ()
 
 _toOptionArray ($valueField='id', $labelField='name', $additional=[])
 
 _toOptionHash ($valueField='id', $labelField='name')
 

Additional Inherited Members

- Data Fields inherited from Collection
const SORT_ORDER_ASC = 'ASC'
 
const SORT_ORDER_DESC = 'DESC'
 
- Protected Attributes inherited from Collection
 $_isLive = false
 
 $_salesAmountExpression
 
 $_scopeConfig
 
 $_storeManager
 
 $_localeDate
 
 $_orderConfig
 
 $_reportOrderFactory
 
- Protected Attributes inherited from Collection
 $_idFieldName = 'entity_id'
 
 $_eventPrefix = 'sales_order_collection'
 
 $_eventObject = 'order_collection'
 
 $_coreResourceHelper
 
- Protected Attributes inherited from AbstractCollection
 $_countSelect
 
 $searchCriteria
 
- Protected Attributes inherited from Collection
 $entitySnapshot
 
- Protected Attributes inherited from AbstractCollection
 $_model
 
 $_resourceModel
 
 $_resource
 
 $_fieldsToSelect = null
 
 $_initialFieldsToSelect = null
 
 $_fieldsToSelectChanged = false
 
 $_joinedTables = []
 
 $_mainTable = null
 
 $_resetItemsDataChanged = false
 
 $_eventPrefix = ''
 
 $_eventObject = ''
 
 $_eventManager = null
 
- Protected Attributes inherited from AbstractDb
 $_conn
 
 $_select
 
 $_idFieldName
 
 $_bindParams = []
 
 $_data = null
 
 $_map = null
 
 $_fetchStmt = null
 
 $_isOrdersRendered = false
 
 $_logger
 
 $extensionAttributesJoinProcessor
 
- Protected Attributes inherited from Collection
 $_items = []
 
 $_itemObjectClass = \Magento\Framework\DataObject::class
 
 $_orders = []
 
 $_filters = []
 
 $_isFiltersRendered = false
 
 $_curPage = 1
 
 $_pageSize = false
 
 $_totalRecords
 
 $_isCollectionLoaded
 
 $_flags = []
 
 $_entityFactory
 

Detailed Description

@SuppressWarnings(PHPMD.DepthOfInheritance) @api

Since
100.0.2

Definition at line 21 of file Collection.php.

Member Function Documentation

◆ addOrderedQty()

addOrderedQty (   $from = '',
  $to = '' 
)

Add ordered qty's

Parameters
string$from
string$to
Returns
$this

Definition at line 51 of file Collection.php.

52  {
53  $connection = $this->getConnection();
54  $orderTableAliasName = $connection->quoteIdentifier('order');
55 
56  $orderJoinCondition = [
57  $orderTableAliasName . '.entity_id = order_items.order_id',
58  $connection->quoteInto("{$orderTableAliasName}.state <> ?", \Magento\Sales\Model\Order::STATE_CANCELED),
59  ];
60 
61  if ($from != '' && $to != '') {
62  $fieldName = $orderTableAliasName . '.created_at';
63  $orderJoinCondition[] = $this->prepareBetweenSql($fieldName, $from, $to);
64  }
65 
66  $this->getSelect()->reset()->from(
67  ['order_items' => $this->getTable('sales_order_item')],
68  [
69  'ordered_qty' => 'order_items.qty_ordered',
70  'order_items_name' => 'order_items.name',
71  'order_items_sku' => 'order_items.sku'
72  ]
73  )->joinInner(
74  ['order' => $this->getTable('sales_order')],
75  implode(' AND ', $orderJoinCondition),
76  []
77  )->where(
78  'order_items.parent_item_id IS NULL'
79  )->having(
80  'order_items.qty_ordered > ?',
81  0
82  );
83  return $this;
84  }
$connection
Definition: bulk.php:13

◆ getSelectCountSql()

getSelectCountSql ( )
Returns
Select
Since
100.2.0

Definition at line 122 of file Collection.php.

123  {
124  $countSelect = clone parent::getSelectCountSql();
125 
126  $countSelect->reset(Select::COLUMNS);
127  $countSelect->columns('COUNT(DISTINCT order_items.item_id)');
128 
129  return $countSelect;
130  }
const COLUMNS
Definition: Select.php:48

◆ prepareBetweenSql()

prepareBetweenSql (   $fieldName,
  $from,
  $to 
)
protected

Prepare between sql

Parameters
string$fieldNameField name with table suffix ('created_at' or 'main_table.created_at')
string$from
string$to
Returns
string Formatted sql string

Definition at line 140 of file Collection.php.

141  {
142  return sprintf(
143  '(%s BETWEEN %s AND %s)',
144  $fieldName,
145  $this->getConnection()->quote($from),
146  $this->getConnection()->quote($to)
147  );
148  }

◆ setDateRange()

setDateRange (   $from,
  $to 
)

Set Date range to collection

Parameters
int$from
int$to
Returns
$this

Definition at line 30 of file Collection.php.

31  {
32  $this->_reset()->addAttributeToSelect(
33  '*'
34  )->addOrderedQty(
35  $from,
36  $to
37  )->setOrder(
38  'ordered_qty',
39  self::SORT_ORDER_DESC
40  );
41  return $this;
42  }

◆ setOrder()

setOrder (   $attribute,
  $dir = self::SORT_ORDER_DESC 
)

Set order

Parameters
string$attribute
string$dir
Returns
$this

Definition at line 107 of file Collection.php.

108  {
109  if (in_array($attribute, ['orders', 'ordered_qty'])) {
110  $this->getSelect()->order($attribute . ' ' . $dir);
111  } else {
112  parent::setOrder($attribute, $dir);
113  }
114 
115  return $this;
116  }

◆ setStoreIds()

setStoreIds (   $storeIds)

Set store filter to collection

Parameters
array$storeIds
Returns
$this

Definition at line 92 of file Collection.php.

93  {
94  if ($storeIds) {
95  $this->getSelect()->where('order_items.store_id IN (?)', (array)$storeIds);
96  }
97  return $this;
98  }

The documentation for this class was generated from the following file: