6 declare(strict_types=1);
37 private $stockSaveProcessor;
47 parent::__construct($context);
48 $this->stockSaveProcessor = $stockSaveProcessor;
56 $resultRedirect = $this->resultRedirectFactory->create();
60 $this->messageManager->addErrorMessage(
__(
'Wrong request.'));
61 $this->processRedirectAfterFailureSave($resultRedirect);
62 return $resultRedirect;
73 private function processSave(
83 $stockId = $this->stockSaveProcessor->process($stockId,
$request);
85 $this->messageManager->addSuccessMessage(
__(
'The Stock has been saved.'));
86 $this->processRedirectAfterSuccessSave($resultRedirect, $stockId);
87 }
catch (NoSuchEntityException $e) {
88 $this->messageManager->addErrorMessage(
__(
'The Stock does not exist.'));
89 $this->processRedirectAfterFailureSave($resultRedirect);
90 }
catch (ValidationException $e) {
91 foreach ($e->getErrors() as $localizedError) {
92 $this->messageManager->addErrorMessage($localizedError->getMessage());
94 $this->processRedirectAfterFailureSave($resultRedirect, $stockId);
95 }
catch (CouldNotSaveException $e) {
96 $this->messageManager->addErrorMessage($e->getMessage());
97 $this->processRedirectAfterFailureSave($resultRedirect, $stockId);
98 }
catch (InputException $e) {
99 $this->messageManager->addErrorMessage($e->getMessage());
100 $this->processRedirectAfterFailureSave($resultRedirect, $stockId);
101 }
catch (Exception $e) {
102 $this->messageManager->addErrorMessage(
__(
'Could not save Stock.'));
103 $this->processRedirectAfterFailureSave($resultRedirect, $stockId ??
null);
105 return $resultRedirect;
114 private function processRedirectAfterSuccessSave(Redirect $resultRedirect,
int $stockId)
117 $resultRedirect->
setPath(
'*/*/edit', [
122 $resultRedirect->setPath(
'*/*/new', [
126 $resultRedirect->setPath(
'*/*/');
136 private function processRedirectAfterFailureSave(Redirect $resultRedirect,
int $stockId =
null)
138 if (
null === $stockId) {
139 $resultRedirect->setPath(
'*/*/new');
141 $resultRedirect->setPath(
'*/*/edit', [
__construct(Context $context, StockSaveProcessor $stockSaveProcessor)
elseif(isset( $params[ 'redirect_parent']))
setPath($path, array $params=[])