![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-gift-message/Model/ |
<?php /** * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GiftMessage\Model; use Magento\Framework\Exception\CouldNotSaveException; use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\State\InvalidTransitionException; use Magento\Framework\Exception\NoSuchEntityException; /** * Order gift message repository object. */ class OrderRepository implements \Magento\GiftMessage\Api\OrderRepositoryInterface { /** * Order factory. * * @var \Magento\Sales\Model\OrderFactory */ protected $orderFactory; /** * Store manager interface. * * @var \Magento\Store\Model\StoreManagerInterface */ protected $storeManager; /** * Gift message save model. * * @var \Magento\GiftMessage\Model\Save */ protected $giftMessageSaveModel; /** * Message helper. * * @var \Magento\GiftMessage\Helper\Message */ protected $helper; /** * Message factory. * * @var \Magento\GiftMessage\Model\MessageFactory */ protected $messageFactory; /** * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\GiftMessage\Model\Save $giftMessageSaveModel * @param \Magento\GiftMessage\Helper\Message $helper * @param MessageFactory $messageFactory */ public function __construct( \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\GiftMessage\Model\Save $giftMessageSaveModel, \Magento\GiftMessage\Helper\Message $helper, \Magento\GiftMessage\Model\MessageFactory $messageFactory ) { $this->orderFactory = $orderFactory; $this->giftMessageSaveModel = $giftMessageSaveModel; $this->storeManager = $storeManager; $this->helper = $helper; $this->messageFactory = $messageFactory; } /** * @inheritdoc */ public function get($orderId) { /** @var \Magento\Sales\Api\Data\OrderInterface $order */ $order = $this->orderFactory->create()->load($orderId); if (!$this->helper->isMessagesAllowed('order', $order, $this->storeManager->getStore())) { throw new NoSuchEntityException( __("Either no order exists with this ID or gift message isn't allowed.") ); } $messageId = $order->getGiftMessageId(); if (!$messageId) { throw new NoSuchEntityException( __('No item with the provided ID was found in the Order. Verify the ID and try again.') ); } return $this->messageFactory->create()->load($messageId); } /** * @inheritdoc */ public function save($orderId, \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage) { /** @var \Magento\Sales\Api\Data\OrderInterface $order */ $order = $this->orderFactory->create()->load($orderId); if (!$order->getEntityId()) { throw new NoSuchEntityException(__('No order exists with this ID. Verify your information and try again.')); } if (0 == $order->getTotalItemCount()) { throw new InputException( __("Gift messages can't be used for an empty order. Create an order, add an item, and try again.") ); } if ($order->getIsVirtual()) { throw new InvalidTransitionException(__("Gift messages can't be used for virtual products.")); } if (!$this->helper->isMessagesAllowed('order', $order, $this->storeManager->getStore())) { throw new CouldNotSaveException(__("The gift message isn't available.")); } $message = []; $message[$orderId] = [ 'type' => 'order', $giftMessage::CUSTOMER_ID => $giftMessage->getCustomerId(), $giftMessage::SENDER => $giftMessage->getSender(), $giftMessage::RECIPIENT => $giftMessage->getRecipient(), $giftMessage::MESSAGE => $giftMessage->getMessage(), ]; $this->giftMessageSaveModel->setGiftmessages($message); try { $this->giftMessageSaveModel->saveAllInOrder(); } catch (\Exception $e) { throw new CouldNotSaveException( __('The gift message couldn\'t be added to the "%1" order.', $e->getMessage()), $e ); } return true; } }