Exemple #1
0
 /**
  * Add events log to a collection
  * The collection id field is used without corellation, so it must be unique.
  * DESC ordering by event will be added to the collection
  *
  * @param \Magento\Framework\Data\Collection\Db $collection
  * @param int $eventTypeId
  * @param int $eventSubjectId
  * @param int $subtype
  * @param array $skipIds
  * @return $this
  */
 public function applyLogToCollection(\Magento\Framework\Data\Collection\Db $collection, $eventTypeId, $eventSubjectId, $subtype, $skipIds = [])
 {
     $idFieldName = $collection->getResource()->getIdFieldName();
     $derivedSelect = $this->getReadConnection()->select()->from($this->getTable('report_event'), ['event_id' => new \Zend_Db_Expr('MAX(event_id)'), 'object_id'])->where('event_type_id = ?', (int) $eventTypeId)->where('subject_id = ?', (int) $eventSubjectId)->where('subtype = ?', (int) $subtype)->where('store_id IN(?)', $this->getCurrentStoreIds())->group('object_id');
     if ($skipIds) {
         if (!is_array($skipIds)) {
             $skipIds = [(int) $skipIds];
         }
         $derivedSelect->where('object_id NOT IN(?)', $skipIds);
     }
     $collection->getSelect()->joinInner(['evt' => new \Zend_Db_Expr("({$derivedSelect})")], "{$idFieldName} = evt.object_id", [])->order('evt.event_id ' . \Magento\Framework\DB\Select::SQL_DESC);
     return $this;
 }
 /**
  * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
  * @param \Psr\Log\LoggerInterface $logger
  * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy
  * @param \Magento\Framework\App\Resource $resource
  */
 public function __construct(\Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\App\Resource $resource)
 {
     $this->_setIdFieldName('primary_id');
     parent::__construct($entityFactory, $logger, $fetchStrategy, $resource->getConnection('review_read'));
     $this->_summaryTable = $resource->getTableName('review_entity_summary');
     $this->_select->from($this->_summaryTable);
     $this->setItemObjectClass('Magento\\Review\\Model\\Review\\Summary');
 }
 /**
  * @param EntityFactory $entityFactory
  * @param Logger $logger
  * @param FetchStrategyInterface $fetchStrategy
  * @param ManagerInterface $eventManager
  * @param Order $resource
  * @param \Magento\Store\Model\Resource\Store\CollectionFactory $storeCollectionFactory
  * @param \Magento\Store\Model\StoreManagerInterface $storeManager
  */
 public function __construct(EntityFactory $entityFactory, Logger $logger, FetchStrategyInterface $fetchStrategy, ManagerInterface $eventManager, Order $resource, \Magento\Store\Model\Resource\Store\CollectionFactory $storeCollectionFactory, StoreManagerInterface $storeManager)
 {
     $this->_eventManager = $eventManager;
     $this->_orderResource = $resource;
     $this->_storeCollectionFactory = $storeCollectionFactory;
     $this->_storeManager = $storeManager;
     parent::__construct($entityFactory, $logger, $fetchStrategy, $this->_orderResource->getReadConnection());
 }
Exemple #4
0
 public function testToOptionHash()
 {
     $data = [10 => 'test'];
     $adapterMock = $this->getMock('Zend_Db_Adapter_Pdo_Mysql', ['select', 'query'], [], '', false);
     $selectMock = $this->getMock('Magento\\Framework\\DB\\Select', [], ['adapter' => $adapterMock]);
     $adapterMock->expects($this->once())->method('select')->will($this->returnValue($selectMock));
     $this->fetchStrategyMock->expects($this->once())->method('fetchAll')->with($selectMock, [])->will($this->returnValue([$data]));
     $objectMock = $this->getMock('Magento\\Framework\\Object', ['addData', 'setIdFieldName', 'getData'], []);
     $objectMock->expects($this->once())->method('addData')->with($data);
     $objectMock->expects($this->any())->method('getData')->will($this->returnValueMap([[null, null, 10], ['name', null, 'test']]));
     $this->entityFactoryMock->expects($this->once())->method('create')->with('Magento\\Framework\\Object')->will($this->returnValue($objectMock));
     $this->collection->setConnection($adapterMock);
     $this->collection->loadData(false, false);
     $this->collection->loadData(false, false);
     $this->assertEquals($data, $this->collection->toOptionHash());
 }
Exemple #5
0
 /**
  * Retrieve number of loaded stores
  *
  * @return int
  */
 public function countStores()
 {
     return sizeof($this->_stores->getItems());
 }
 /**
  * Remove item from collection by item key
  *
  * @param mixed $key
  * @return $this
  */
 public function removeItemByKey($key)
 {
     if (isset($this->_items[$key])) {
         unset($this->_itemsById[$this->_items[$key]->getId()]);
     }
     return parent::removeItemByKey($key);
 }
Exemple #7
0
 /**
  * Redeclare after load method for specifying collection items original data
  *
  * @return $this
  */
 protected function _afterLoad()
 {
     parent::_afterLoad();
     foreach ($this->_items as $item) {
         $item->setOrigData();
         if ($this->_resetItemsDataChanged) {
             $item->setDataChanges(false);
         }
     }
     $this->_eventManager->dispatch('core_collection_abstract_load_after', array('collection' => $this));
     if ($this->_eventPrefix && $this->_eventObject) {
         $this->_eventManager->dispatch($this->_eventPrefix . '_load_after', array($this->_eventObject => $this));
     }
     return $this;
 }