/** * Init virtual grid records for entity * * @return $this */ protected function _initVirtualGridColumns() { parent::_initVirtualGridColumns(); $adapter = $this->_getReadAdapter(); $checkedFirstname = $adapter->getIfNullSql('{{table}}.firstname', $adapter->quote('')); $checkedLastname = $adapter->getIfNullSql('{{table}}.lastname', $adapter->quote('')); $this->addVirtualGridColumn('billing_name', 'sales_flat_order_address', array('billing_address_id' => 'entity_id'), $adapter->getConcatSql(array($checkedFirstname, $adapter->quote(' '), $checkedLastname)))->addVirtualGridColumn('order_increment_id', 'sales_flat_order', array('order_id' => 'entity_id'), 'increment_id')->addVirtualGridColumn('order_created_at', 'sales_flat_order', array('order_id' => 'entity_id'), 'created_at'); return $this; }
/** * Update related grid table after object save * * @param \Magento\Framework\Model\AbstractModel|\Magento\Framework\Object $object * @return \Magento\Framework\Model\Resource\Db\AbstractDb */ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object) { $resource = parent::_afterSave($object); if ($object->hasDataChanges() && $object->getOrder()) { $gridList = array('Magento\\Sales\\Model\\Resource\\Order' => 'entity_id', 'Magento\\Sales\\Model\\Resource\\Order\\Invoice' => 'order_id', 'Magento\\Sales\\Model\\Resource\\Order\\Shipment' => 'order_id', 'Magento\\Sales\\Model\\Resource\\Order\\Creditmemo' => 'order_id'); // update grid table after grid update foreach ($gridList as $gridResource => $field) { $this->_salesResourceFactory->create($gridResource)->updateOnRelatedRecordChanged($field, $object->getParentId()); } } return $resource; }
/** * @param \Magento\Framework\App\Resource $resource * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory */ public function __construct(\Magento\Framework\App\Resource $resource, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory) { parent::__construct($resource, $dateTime, $eventManager, $eavEntityTypeFactory); }