52 parent::__construct($context);
66 $resultRedirect = $this->resultRedirectFactory->create();
68 if (!empty(
$data[
'comment_text'])) {
72 $this->creditmemoLoader->setOrderId($this->
getRequest()->getParam(
'order_id'));
73 $this->creditmemoLoader->setCreditmemoId($this->
getRequest()->getParam(
'creditmemo_id'));
74 $this->creditmemoLoader->setCreditmemo($this->
getRequest()->getParam(
'creditmemo'));
75 $this->creditmemoLoader->setInvoiceId($this->
getRequest()->getParam(
'invoice_id'));
79 throw new \Magento\Framework\Exception\LocalizedException(
80 __(
'The credit memo\'s total must be positive.')
84 if (!empty(
$data[
'comment_text'])) {
86 $data[
'comment_text'],
87 isset(
$data[
'comment_customer_notify']),
88 isset(
$data[
'is_visible_on_front'])
95 if (isset(
$data[
'do_offline'])) {
97 if (!
$data[
'do_offline'] && !empty(
$data[
'refund_customerbalance_return_enable'])) {
98 throw new \Magento\Framework\Exception\LocalizedException(
99 __(
'Cannot create online refund for Refund to Store Credit.')
104 \
Magento\Sales\Api\CreditmemoManagementInterface::class
106 $creditmemo->getOrder()->setCustomerNoteNotify(!empty(
$data[
'send_email']));
109 if (!empty(
$data[
'send_email'])) {
113 $this->messageManager->addSuccessMessage(
__(
'You created the credit memo.'));
115 $resultRedirect->setPath(
'sales/order/view', [
'order_id' =>
$creditmemo->getOrderId()]);
116 return $resultRedirect;
118 $resultForward = $this->resultForwardFactory->create();
119 $resultForward->forward(
'noroute');
120 return $resultForward;
123 $this->messageManager->addErrorMessage($e->getMessage());
125 }
catch (\Exception $e) {
126 $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
127 $this->messageManager->addErrorMessage(
__(
'We can\'t save the credit memo right now.'));
129 $resultRedirect->setPath(
'sales/*/new', [
'_current' =>
true]);
130 return $resultRedirect;
foreach($creditmemo->getAllItems() as $creditmemoItem) $creditmemoManagement
__construct(Action\Context $context, \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader $creditmemoLoader, CreditmemoSender $creditmemoSender, \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory)