Я новичок в magento 2, хотел бы объединить 2 существующие таблицы с небольшим количеством вычислений и показать их в сетке администратора.
Я сделал следующее через некоторое руководство с некоторыми изменениями, носетка не рендерится, это правильный способ сделать что-то подобное или есть какой-то более простой способ сделать это.
То, что я в основном хочу сделать, это получить общую сумму запаса, вычесть отложенный ордер и получитьреальное количество акций после вычета отложенных ордеров.
Controller / Adminhtml / Index / Index.php
<?php
namespace Test\StockChecker\Controller\Adminhtml\Index;
class Index extends \Magento\Backend\App\Action
{
protected $resultPageFactory = false;
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory
)
{
parent::__construct($context);
$this->resultPageFactory = $resultPageFactory;
}
public function execute()
{
try{
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->prepend((__('Stock Status')));
}
catch(Exception $e){
$this->messageManager->addError($e);
}
return $resultPage;
}
}
etc / di.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
<type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
<arguments>
<argument name="collections" xsi:type="array">
<item name="karl_stockchecker_listing_data_source" xsi:type="string">Test\StockChecker\Model\ResourceModel\Index\Collection</item>
</argument>
</arguments>
</type>
<virtualType name="Test\StockChecker\Model\ResourceModel\Index\Collection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
<arguments>
<argument name="mainTable" xsi:type="string">product_entity</argument>
<argument name="resourceModel" xsi:type="string">Magento\Catelog\Model\ResourceModel\Product</argument>
</arguments>
</virtualType>
</config>
Model / ResourceModel/Index/Collection.php
class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
protected $_idFieldName = 'post_id';
protected $_eventPrefix = 'test_stockchecker_index_collection';
protected $_eventObject = 'index_collection';
/**
* Define resource model
*
* @return void
*/
protected function _construct()
{
$this->_init('Magento\Catelog\Model\ResourceModel\Product', 'Magento\Order\Model\Order');
}
}
view / adminhtml / layout / test_stockchecker_index_index.php
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
<update handle="styles"/>
<body>
<referenceContainer name="content">
<uiComponent name="test_stockchecker_index_listing"/>
</referenceContainer>
</body>
</page>
view / admin_html / ui_component / test_stockchecker_index_2020 *.*