70 lines
2.5 KiB
PHP
Executable File
70 lines
2.5 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace JR\NetSuite\Controller\Adminhtml\OrderQueue;
|
|
|
|
use Magento\Framework\Exception\LocalizedException;
|
|
|
|
class Save extends \Magento\Backend\App\Action
|
|
{
|
|
|
|
protected $dataPersistor;
|
|
|
|
/**
|
|
* @param \Magento\Backend\App\Action\Context $context
|
|
* @param \Magento\Framework\App\Request\DataPersistorInterface $dataPersistor
|
|
*/
|
|
public function __construct(
|
|
\Magento\Backend\App\Action\Context $context,
|
|
\Magento\Framework\App\Request\DataPersistorInterface $dataPersistor
|
|
) {
|
|
$this->dataPersistor = $dataPersistor;
|
|
parent::__construct($context);
|
|
}
|
|
|
|
/**
|
|
* Save action
|
|
*
|
|
* @return \Magento\Framework\Controller\ResultInterface
|
|
*/
|
|
public function execute()
|
|
{
|
|
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
|
|
$resultRedirect = $this->resultRedirectFactory->create();
|
|
$data = $this->getRequest()->getPostValue();
|
|
if ($data) {
|
|
$id = $this->getRequest()->getParam('order_queue_id');
|
|
|
|
$model = $this->_objectManager->create(\JR\NetSuite\Model\OrderQueue::class)->load($id);
|
|
if (!$model->getId() && $id) {
|
|
$this->messageManager->addErrorMessage(__('This Order Queue no longer exists.'));
|
|
return $resultRedirect->setPath('*/*/');
|
|
}
|
|
|
|
$model->setData($data);
|
|
|
|
try {
|
|
$model->save();
|
|
$this->messageManager->addSuccessMessage(__('You saved the Order Queue.'));
|
|
$this->dataPersistor->clear('jr_netsuite_order_queue');
|
|
|
|
if ($this->getRequest()->getParam('back')) {
|
|
return $resultRedirect->setPath('*/*/edit', ['order_queue_id' => $model->getId()]);
|
|
}
|
|
return $resultRedirect->setPath('*/*/');
|
|
} catch (LocalizedException $e) {
|
|
$this->messageManager->addErrorMessage($e->getMessage());
|
|
} catch (\Exception $e) {
|
|
$this->messageManager->addExceptionMessage($e, __('Something went wrong while saving the Order Queue.'));
|
|
}
|
|
|
|
$this->dataPersistor->set('jr_netsuite_order_queue', $data);
|
|
return $resultRedirect->setPath('*/*/edit', ['order_queue_id' => $this->getRequest()->getParam('order_queue_id')]);
|
|
}
|
|
return $resultRedirect->setPath('*/*/');
|
|
}
|
|
} |