12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Sales\Model\ResourceModel\Order\Status;
- /**
- * Flat sales order status history collection
- *
- * @author Magento Core Team <core@magentocommerce.com>
- */
- class Collection extends \Magento\Sales\Model\ResourceModel\Collection\AbstractCollection
- {
- /**
- * Internal constructor
- *
- * @return void
- */
- protected function _construct()
- {
- $this->_init(\Magento\Sales\Model\Order\Status::class, \Magento\Sales\Model\ResourceModel\Order\Status::class);
- }
- /**
- * Get collection data as options array
- *
- * @return array
- */
- public function toOptionArray()
- {
- return $this->_toOptionArray('status', 'label');
- }
- /**
- * Get collection data as options hash
- *
- * @return array
- */
- public function toOptionHash()
- {
- return $this->_toOptionHash('status', 'label');
- }
- /**
- * Join order states table
- *
- * @return $this
- */
- public function joinStates()
- {
- if (!$this->getFlag('states_joined')) {
- $this->_idFieldName = 'status_state';
- $this->getSelect()->joinLeft(
- ['state_table' => $this->getTable('sales_order_status_state')],
- 'main_table.status=state_table.status',
- ['state', 'is_default', 'visible_on_front']
- );
- $this->setFlag('states_joined', true);
- }
- return $this;
- }
- /**
- * Add state code filter to collection
- *
- * @param string $state
- * @return $this
- */
- public function addStateFilter($state)
- {
- $this->joinStates();
- $this->getSelect()->where('state_table.state=?', $state);
- return $this;
- }
- /**
- * Define label order
- *
- * @param string $dir
- * @return $this
- */
- public function orderByLabel($dir = 'ASC')
- {
- $this->getSelect()->order('main_table.label ' . $dir);
- return $this;
- }
- }
|