123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Sales\Model\ResourceModel\Collection;
- /**
- * Flat sales abstract collection
- *
- * @api
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- * @since 100.0.2
- */
- abstract class AbstractCollection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection
- {
- /**
- * @var \Magento\Framework\DB\Select
- */
- protected $_countSelect;
- /**
- * @var \Magento\Framework\Api\SearchCriteriaInterface
- */
- protected $searchCriteria;
- /**
- * Set select count sql
- *
- * @param \Magento\Framework\DB\Select $countSelect
- * @return $this
- */
- public function setSelectCountSql(\Magento\Framework\DB\Select $countSelect)
- {
- $this->_countSelect = $countSelect;
- return $this;
- }
- /**
- * get select count sql
- *
- * @return \Magento\Framework\DB\Select
- */
- public function getSelectCountSql()
- {
- if (!$this->_countSelect instanceof \Magento\Framework\DB\Select) {
- $this->setSelectCountSql(parent::getSelectCountSql());
- }
- return $this->_countSelect;
- }
- /**
- * Check if $attribute is \Magento\Eav\Model\Entity\Attribute and convert to string field name
- *
- * @param string|\Magento\Eav\Model\Entity\Attribute $attribute
- * @return string
- * @throws \Magento\Framework\Exception\LocalizedException
- */
- protected function _attributeToField($attribute)
- {
- $field = false;
- if (is_string($attribute)) {
- $field = $attribute;
- } elseif ($attribute instanceof \Magento\Eav\Model\Entity\Attribute) {
- $field = $attribute->getAttributeCode();
- }
- if (!$field) {
- throw new \Magento\Framework\Exception\LocalizedException(__('We cannot determine the field name.'));
- }
- return $field;
- }
- /**
- * Add attribute to select result set.
- * Backward compatibility with EAV collection
- *
- * @param string $attribute
- * @return $this
- */
- public function addAttributeToSelect($attribute)
- {
- $this->addFieldToSelect($this->_attributeToField($attribute));
- return $this;
- }
- /**
- * Specify collection select filter by attribute value
- * Backward compatibility with EAV collection
- *
- * @param string|\Magento\Eav\Model\Entity\Attribute $attribute
- * @param array|int|string|null $condition
- * @return $this
- */
- public function addAttributeToFilter($attribute, $condition = null)
- {
- $this->addFieldToFilter($this->_attributeToField($attribute), $condition);
- return $this;
- }
- /**
- * Specify collection select order by attribute value
- * Backward compatibility with EAV collection
- *
- * @param string $attribute
- * @param string $dir
- * @return $this
- */
- public function addAttributeToSort($attribute, $dir = 'asc')
- {
- $this->addOrder($this->_attributeToField($attribute), $dir);
- return $this;
- }
- /**
- * Set collection page start and records to show
- * Backward compatibility with EAV collection
- *
- * @param int $pageNum
- * @param int $pageSize
- * @return $this
- */
- public function setPage($pageNum, $pageSize)
- {
- $this->setCurPage($pageNum)->setPageSize($pageSize);
- return $this;
- }
- /**
- * Create all ids retrieving select with limitation
- * Backward compatibility with EAV collection
- *
- * @param int $limit
- * @param int $offset
- * @return \Magento\Eav\Model\Entity\Collection\AbstractCollection
- */
- protected function _getAllIdsSelect($limit = null, $offset = null)
- {
- $idsSelect = clone $this->getSelect();
- $idsSelect->reset(\Magento\Framework\DB\Select::ORDER);
- $idsSelect->reset(\Magento\Framework\DB\Select::LIMIT_COUNT);
- $idsSelect->reset(\Magento\Framework\DB\Select::LIMIT_OFFSET);
- $idsSelect->reset(\Magento\Framework\DB\Select::COLUMNS);
- $idsSelect->columns($this->getResource()->getIdFieldName(), 'main_table');
- $idsSelect->limit($limit, $offset);
- return $idsSelect;
- }
- /**
- * Retrieve all ids for collection
- * Backward compatibility with EAV collection
- *
- * @param int $limit
- * @param int $offset
- * @return array
- */
- public function getAllIds($limit = null, $offset = null)
- {
- return $this->getConnection()->fetchCol($this->_getAllIdsSelect($limit, $offset), $this->_bindParams);
- }
- /**
- * Get search criteria.
- *
- * @return \Magento\Framework\Api\SearchCriteriaInterface|null
- */
- public function getSearchCriteria()
- {
- return $this->searchCriteria;
- }
- /**
- * Set search criteria.
- *
- * @param \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria
- * @return $this
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function setSearchCriteria(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria = null)
- {
- $this->searchCriteria = $searchCriteria;
- return $this;
- }
- /**
- * Get total count.
- *
- * @return int
- */
- public function getTotalCount()
- {
- return $this->getSize();
- }
- /**
- * Set total count.
- *
- * @param int $totalCount
- * @return $this
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function setTotalCount($totalCount)
- {
- return $this;
- }
- /**
- * Set items list.
- *
- * @param \Magento\Framework\Api\ExtensibleDataInterface[] $items
- * @return $this
- */
- public function setItems(array $items = null)
- {
- if (!$items) {
- return $this;
- }
- foreach ($items as $item) {
- $this->addItem($item);
- }
- return $this;
- }
- }
|