Files
ltsecurityinc/app/code/JR/NetSuite/Controller/Adminhtml/Location/Save.php
T

70 lines
2.4 KiB
PHP
Executable File

<?php
/**
* Copyright © All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace JR\NetSuite\Controller\Adminhtml\Location;
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('location_id');
$model = $this->_objectManager->create(\JR\NetSuite\Model\Location::class)->load($id);
if (!$model->getId() && $id) {
$this->messageManager->addErrorMessage(__('This Location no longer exists.'));
return $resultRedirect->setPath('*/*/');
}
$model->setData($data);
try {
$model->save();
$this->messageManager->addSuccessMessage(__('You saved the Location.'));
$this->dataPersistor->clear('jr_netsuite_location');
if ($this->getRequest()->getParam('back')) {
return $resultRedirect->setPath('*/*/edit', ['location_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 Location.'));
}
$this->dataPersistor->set('jr_netsuite_location', $data);
return $resultRedirect->setPath('*/*/edit', ['location_id' => $this->getRequest()->getParam('location_id')]);
}
return $resultRedirect->setPath('*/*/');
}
}