getInvoice(); if (!$invoice) { /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */ $resultForward = $this->resultForwardFactory->create(); return $resultForward->forward('noroute'); } try { $invoice->cancel(); $invoice->getOrder()->setIsInProcess(true); $this->_objectManager->create( \Magento\Framework\DB\Transaction::class )->addObject( $invoice )->addObject( $invoice->getOrder() )->save(); $this->messageManager->addSuccessMessage(__('You canceled the invoice.')); } catch (\Magento\Framework\Exception\LocalizedException $e) { $this->messageManager->addErrorMessage($e->getMessage()); } catch (\Exception $e) { $this->messageManager->addErrorMessage(__('Invoice canceling error')); } /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); $resultRedirect->setPath('sales/*/view', ['invoice_id' => $invoice->getId()]); return $resultRedirect; } }