getInvoice(); if (!$invoice) { /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */ $resultForward = $this->resultForwardFactory->create(); $resultForward->forward('noroute'); return $resultForward; } try { $invoiceManagement = $this->_objectManager->get(\Magento\Sales\Api\InvoiceManagementInterface::class); $invoiceManagement->setCapture($invoice->getEntityId()); $invoice->getOrder()->setIsInProcess(true); $this->_objectManager->create( \Magento\Framework\DB\Transaction::class )->addObject( $invoice )->addObject( $invoice->getOrder() )->save(); $this->messageManager->addSuccessMessage(__('The invoice has been captured.')); } catch (\Magento\Framework\Exception\LocalizedException $e) { $this->messageManager->addErrorMessage($e->getMessage()); } catch (\Exception $e) { $this->messageManager->addErrorMessage(__('Invoice capturing error')); } /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); $resultRedirect->setPath('sales/*/view', ['invoice_id' => $invoice->getId()]); return $resultRedirect; } }