diff --git a/vendor/magento/module-sales-archive/Observer/ArchiveGridAsyncUpdateObserver.php b/vendor/magento/module-sales-archive/Observer/ArchiveGridAsyncUpdateObserver.php new file mode 100644 index 000000000000..a577f245e032 --- /dev/null +++ b/vendor/magento/module-sales-archive/Observer/ArchiveGridAsyncUpdateObserver.php @@ -0,0 +1,76 @@ +config = $config; + $this->archive = $archive; + $this->globalConfig = $globalConfig; + } + + /** + * Handles asynchronous update of the updated entity + * + * @param EventObserver $observer + * @return void + */ + public function execute(EventObserver $observer) + { + if (!$this->config->isArchiveActive()) { + return $this; + } + $creditmemo = $observer->getEvent()->getCreditmemo(); + $order = $creditmemo->getOrder(); + if ($order->getId() && $this->globalConfig->isSetFlag('dev/grid/async_indexing')) { + $connection = $this->archive->getConnection(); + $connection->update( + $this->archive->getArchiveEntityTable('order'), + [self::STATUS => $order->getStatus()], + $connection->quoteInto($order->getIdFieldName() . '= ?', $order->getId()) + ); + } + } +} diff --git a/vendor/magento/module-sales-archive/etc/adminhtml/events.xml b/vendor/magento/module-sales-archive/etc/adminhtml/events.xml index b9d3cdf35285..8cdbe7231832 100644 --- a/vendor/magento/module-sales-archive/etc/adminhtml/events.xml +++ b/vendor/magento/module-sales-archive/etc/adminhtml/events.xml @@ -21,4 +21,7 @@ + + +