|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / app / code / Makarovsoft / Email / Controller / Adminhtml / Message / |
Filename | /home/dev2.destoffenstraat.com/app/code/Makarovsoft/Email/Controller/Adminhtml/Message/Save.php |
Size | 6.94 kb |
Permission | rwxrwxrwx |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 06-Apr-2021 18:06 |
Last accessed | 22-Aug-2025 09:16 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
namespace Makarovsoft\Email\Controller\Adminhtml\Message;
use Magento\Framework\Registry;
use Magento\Sales\Model\Order;
use Makarovsoft\Email\Controller\Adminhtml\Message;
use Magento\Framework\Stdlib\DateTime\Filter\Date;
use Makarovsoft\Email\Model\MessageFactory;
use Magento\Backend\Model\Session;
use Magento\Backend\App\Action\Context;
use Magento\Backend\Model\View\Result\RedirectFactory;
use Magento\Framework\Exception\LocalizedException;
use Makarovsoft\Email\Model\Message\Image as ImageModel;
use Makarovsoft\Email\Model\Message\File as FileModel;
use Makarovsoft\Email\Model\Upload;
use Magento\Backend\Helper\Js as JsHelper;
use Magento\Sales\Model\ResourceModel\Order\CollectionFactory as OrderCollectionFactory;
use Magento\Customer\Model\ResourceModel\Customer\CollectionFactory as CustomerCollectionFactory;
class Save extends Message
{
/**
* message factory
* @var \Makarovsoft\Email\Model\MessageFactory
*/
protected $messageFactory;
/**
* image model
*
* @var \Makarovsoft\Email\Model\Message\Image
*/
protected $imageModel;
/**
* file model
*
* @var \Makarovsoft\Email\Model\Message\File
*/
protected $fileModel;
/**
* upload model
*
* @var \Makarovsoft\Email\Model\Upload
*/
protected $uploadModel;
/**
* @var \Magento\Backend\Helper\Js
*/
protected $jsHelper;
/**
* @param JsHelper $jsHelper
* @param Session $backendSession
* @param Date $dateFilter
* @param ImageModel $imageModel
* @param FileModel $fileModel
* @param Upload $uploadModel
* @param Registry $registry
* @param MessageFactory $messageFactory
* @param RedirectFactory $resultRedirectFactory
* @param Context $context
*/
public function __construct(
JsHelper $jsHelper,
ImageModel $imageModel,
FileModel $fileModel,
Upload $uploadModel,
Registry $registry,
MessageFactory $messageFactory,
RedirectFactory $resultRedirectFactory,
Date $dateFilter,
Context $context,
MessageFactory $factory,
CustomerCollectionFactory $customerCollectionFactory,
OrderCollectionFactory $orderCollectionFactory
)
{
$this->jsHelper = $jsHelper;
$this->imageModel = $imageModel;
$this->fileModel = $fileModel;
$this->uploadModel = $uploadModel;
$this->orderFactory = $orderCollectionFactory;
$this->customerFactory = $customerCollectionFactory;
parent::__construct($registry, $messageFactory, $resultRedirectFactory, $dateFilter, $context);
}
/**
* run the action
*
* @return \Magento\Backend\Model\View\Result\Redirect
*/
public function execute()
{
$data = $this->getRequest()->getPost('message');
$resultRedirect = $this->resultRedirectFactory->create();
if ($data) {
$data = $this->filterData($data);
$message = $this->initMessage();
$message->setData($data);
$products = $this->getRequest()->getPost('products', -1);
if ($products != -1) {
$message->setProductsData($this->jsHelper->decodeGridSerializedInput($products));
}
$this->_eventManager->dispatch(
'makarovsoft_email_message_prepare_save',
[
'message' => $message,
'request' => $this->getRequest()
]
);
try {
$orders = $message->getData('order_id');
$data = $message->getData();
if ($orders != '') {
$ids = explode(',', $orders);
$orders = $this->orderFactory->create()->addFieldToFilter('entity_id', ['in' => $ids]);
/* @var $order Order */
foreach ($orders as $order) {
$data['order_id'] = $order->getId();
$data['customer_id'] = !$order->getCustomerIsGuest() ? $order->getCustomerId() : null;
$this->messageFactory->create()->addData($data)->addData(['order' => $order])->save();
}
}
$customers = $message->getData('customer_id');
if ($customers != '') {
$ids = explode(',', $customers);
$orders = $this->customerFactory->create()->addFieldToFilter('entity_id', ['in' => $ids]);
foreach ($orders as $order) {
$data['customer_id'] = $order->getId();
$this->messageFactory->create()->addData($data)->addData(['customer' => $order])->save();
}
}
$to = $message->getData('to');
if ($to) {
$to = explode(PHP_EOL, $to);
foreach ($to as $r) {
$data['to'] = $r;
$this->messageFactory->create()->addData($data)->save();
}
}
// $message->save();
if ($message->getData('instant')) {
$this->messageManager->addSuccess(__('The message has been sent.'));
} else {
$this->messageManager->addSuccess(__('The message has been queued.'));
}
$this->_getSession()->setMakarovsoftEmailMessageData(false);
if ($this->getRequest()->getParam('back')) {
$resultRedirect->setPath(
'makarovsoft_email/*/edit',
[
'message_id' => $message->getId(),
'_current' => true
]
);
return $resultRedirect;
}
$resultRedirect->setPath('makarovsoft_email/*/');
return $resultRedirect;
} catch (LocalizedException $e) {
$this->messageManager->addError($e->getMessage());
} catch (\RuntimeException $e) {
$this->messageManager->addError($e->getMessage());
} catch (\Exception $e) {
$this->messageManager->addException($e, __('Something went wrong while saving the message.'));
}
$this->_getSession()->setMakarovsoftEmailMessageData($data);
$resultRedirect->setPath(
'makarovsoft_email/*/edit',
[
'message_id' => $message->getId(),
'_current' => true
]
);
return $resultRedirect;
}
$resultRedirect->setPath('makarovsoft_email/*/');
return $resultRedirect;
}
}
namespace Makarovsoft\Email\Controller\Adminhtml\Message;
use Magento\Framework\Registry;
use Magento\Sales\Model\Order;
use Makarovsoft\Email\Controller\Adminhtml\Message;
use Magento\Framework\Stdlib\DateTime\Filter\Date;
use Makarovsoft\Email\Model\MessageFactory;
use Magento\Backend\Model\Session;
use Magento\Backend\App\Action\Context;
use Magento\Backend\Model\View\Result\RedirectFactory;
use Magento\Framework\Exception\LocalizedException;
use Makarovsoft\Email\Model\Message\Image as ImageModel;
use Makarovsoft\Email\Model\Message\File as FileModel;
use Makarovsoft\Email\Model\Upload;
use Magento\Backend\Helper\Js as JsHelper;
use Magento\Sales\Model\ResourceModel\Order\CollectionFactory as OrderCollectionFactory;
use Magento\Customer\Model\ResourceModel\Customer\CollectionFactory as CustomerCollectionFactory;
class Save extends Message
{
/**
* message factory
* @var \Makarovsoft\Email\Model\MessageFactory
*/
protected $messageFactory;
/**
* image model
*
* @var \Makarovsoft\Email\Model\Message\Image
*/
protected $imageModel;
/**
* file model
*
* @var \Makarovsoft\Email\Model\Message\File
*/
protected $fileModel;
/**
* upload model
*
* @var \Makarovsoft\Email\Model\Upload
*/
protected $uploadModel;
/**
* @var \Magento\Backend\Helper\Js
*/
protected $jsHelper;
/**
* @param JsHelper $jsHelper
* @param Session $backendSession
* @param Date $dateFilter
* @param ImageModel $imageModel
* @param FileModel $fileModel
* @param Upload $uploadModel
* @param Registry $registry
* @param MessageFactory $messageFactory
* @param RedirectFactory $resultRedirectFactory
* @param Context $context
*/
public function __construct(
JsHelper $jsHelper,
ImageModel $imageModel,
FileModel $fileModel,
Upload $uploadModel,
Registry $registry,
MessageFactory $messageFactory,
RedirectFactory $resultRedirectFactory,
Date $dateFilter,
Context $context,
MessageFactory $factory,
CustomerCollectionFactory $customerCollectionFactory,
OrderCollectionFactory $orderCollectionFactory
)
{
$this->jsHelper = $jsHelper;
$this->imageModel = $imageModel;
$this->fileModel = $fileModel;
$this->uploadModel = $uploadModel;
$this->orderFactory = $orderCollectionFactory;
$this->customerFactory = $customerCollectionFactory;
parent::__construct($registry, $messageFactory, $resultRedirectFactory, $dateFilter, $context);
}
/**
* run the action
*
* @return \Magento\Backend\Model\View\Result\Redirect
*/
public function execute()
{
$data = $this->getRequest()->getPost('message');
$resultRedirect = $this->resultRedirectFactory->create();
if ($data) {
$data = $this->filterData($data);
$message = $this->initMessage();
$message->setData($data);
$products = $this->getRequest()->getPost('products', -1);
if ($products != -1) {
$message->setProductsData($this->jsHelper->decodeGridSerializedInput($products));
}
$this->_eventManager->dispatch(
'makarovsoft_email_message_prepare_save',
[
'message' => $message,
'request' => $this->getRequest()
]
);
try {
$orders = $message->getData('order_id');
$data = $message->getData();
if ($orders != '') {
$ids = explode(',', $orders);
$orders = $this->orderFactory->create()->addFieldToFilter('entity_id', ['in' => $ids]);
/* @var $order Order */
foreach ($orders as $order) {
$data['order_id'] = $order->getId();
$data['customer_id'] = !$order->getCustomerIsGuest() ? $order->getCustomerId() : null;
$this->messageFactory->create()->addData($data)->addData(['order' => $order])->save();
}
}
$customers = $message->getData('customer_id');
if ($customers != '') {
$ids = explode(',', $customers);
$orders = $this->customerFactory->create()->addFieldToFilter('entity_id', ['in' => $ids]);
foreach ($orders as $order) {
$data['customer_id'] = $order->getId();
$this->messageFactory->create()->addData($data)->addData(['customer' => $order])->save();
}
}
$to = $message->getData('to');
if ($to) {
$to = explode(PHP_EOL, $to);
foreach ($to as $r) {
$data['to'] = $r;
$this->messageFactory->create()->addData($data)->save();
}
}
// $message->save();
if ($message->getData('instant')) {
$this->messageManager->addSuccess(__('The message has been sent.'));
} else {
$this->messageManager->addSuccess(__('The message has been queued.'));
}
$this->_getSession()->setMakarovsoftEmailMessageData(false);
if ($this->getRequest()->getParam('back')) {
$resultRedirect->setPath(
'makarovsoft_email/*/edit',
[
'message_id' => $message->getId(),
'_current' => true
]
);
return $resultRedirect;
}
$resultRedirect->setPath('makarovsoft_email/*/');
return $resultRedirect;
} catch (LocalizedException $e) {
$this->messageManager->addError($e->getMessage());
} catch (\RuntimeException $e) {
$this->messageManager->addError($e->getMessage());
} catch (\Exception $e) {
$this->messageManager->addException($e, __('Something went wrong while saving the message.'));
}
$this->_getSession()->setMakarovsoftEmailMessageData($data);
$resultRedirect->setPath(
'makarovsoft_email/*/edit',
[
'message_id' => $message->getId(),
'_current' => true
]
);
return $resultRedirect;
}
$resultRedirect->setPath('makarovsoft_email/*/');
return $resultRedirect;
}
}