Files
2026-09-15 10:26:34 +08:00

63 lines
2.1 KiB
PHP

<?php
namespace Stemcell\Customer\Controller\Adminhtml\Lab;
use Magento\Backend\App\Action\Context;
use Magento\Framework\App\Action\HttpPostActionInterface;
use Magento\Framework\Exception\LocalizedException;
use Stemcell\Customer\Api\Data\LabInterface;
use Stemcell\Customer\Api\Data\SalespersonInterface;
use Stemcell\Customer\Api\LabRepositoryInterface;
use Stemcell\Customer\Api\SalespersonRepositoryInterface;
class Save extends \Magento\Backend\App\Action implements HttpPostActionInterface
{
protected LabInterface $salesperson;
protected LabRepositoryInterface $salespersonRepository;
public function __construct(
Context $context,
LabInterface $salesperson,
LabRepositoryInterface $salespersonRepository
) {
parent::__construct($context);
$this->salesperson = $salesperson;
$this->salespersonRepository = $salespersonRepository;
}
public function execute()
{
$returnToEdit = false;
$salesperson = $this->getRequest()->getParam('lab');
$this->salesperson->setData($salesperson);
try {
$this->salespersonRepository->save($this->salesperson);
$this->messageManager->addSuccessMessage(__('Lab Data saved.'));
} catch (\Exception $e) {
$this->messageManager->addExceptionMessage($e);
$this->_getSession()->setLab($salesperson);
$returnToEdit = true;
}
$resultRedirect = $this->resultRedirectFactory->create();
if ($returnToEdit) {
if (isset($salesperson['salesperson_id'])) {
$resultRedirect->setPath(
'stemcell_customer/lab/edit',
['id' => $salesperson['salesperson_id'], '_current' => true]
);
} else {
$resultRedirect->setPath(
'stemcell_customer/lab/new',
['_current' => true]
);
}
} else {
$resultRedirect->setPath('stemcell_customer/lab/index');
}
return $resultRedirect;
}
}