app/Customize/Service/OrderOptionsService.php line 108

Open in your IDE?
  1. <?php
  2. namespace Customize\Service;
  3. use Doctrine\ORM\EntityManager;
  4. use Eccube\Entity\Order;
  5. use Psr\Container\ContainerInterface;
  6. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  7. class OrderOptionsService
  8. {
  9.     /**
  10.      * @var ContainerInterface
  11.      */
  12.     protected $Container;
  13.     /**
  14.      * @var SessionInterface
  15.      */
  16.     protected $Session;
  17.     /**
  18.      * @var EntityManager
  19.      */
  20.     protected $EntityManager;
  21.     /**
  22.      * @var CartService
  23.      */
  24.     protected $CartService;
  25.     /**
  26.      * @var OrderHelper
  27.      */
  28.     protected $OrderHelper;
  29.     public function __construct(
  30.         ContainerInterface    $Container,
  31.         SessionInterface      $Session,
  32.         CartService           $CartService,
  33.         OrderHelper           $OrderHelper
  34.     )
  35.     {
  36.         $this->Container $Container;
  37.         $this->Session $Session;
  38.         $this->EntityManager $this->Container->get('doctrine.orm.entity_manager');
  39.         $this->CartService $CartService;
  40.         $this->OrderHelper $OrderHelper;
  41.     }
  42.     /**
  43.      * @return Order|null
  44.      */
  45.     public function getPurchaseProcessingOrder()
  46.     {
  47.         if ($preOrderId $this->CartService->getPreOrderId()) {
  48.             if ($Order $this->OrderHelper->getPurchaseProcessingOrder($preOrderId)) {
  49.                 return $Order;
  50.             }
  51.         }
  52.         return null;
  53.     }
  54.     public function initializeOrderOptions($keyOrder $order null)
  55.     {
  56.         // TODO:
  57.     }
  58.     public function addOrderOptions($key$valueOrder $order null)
  59.     {
  60.         if ($order === null && !($order $this->getPurchaseProcessingOrder())) {
  61.             return false;
  62.         }
  63.         //
  64.         $options $order->getOptionsAsArray();
  65.         //
  66.         $options[$key] = $value;
  67.         //
  68.         $order->setOptionsAsArray($options);
  69.         //
  70.         $this->EntityManager->persist($order);
  71.         $this->EntityManager->flush();
  72.         //
  73.         return true;
  74.     }
  75.     public function getOrderOptions($key nullOrder $order null)
  76.     {
  77.         if ($order === null && !($order $this->getPurchaseProcessingOrder())) {
  78.             return null;
  79.         }
  80.         //
  81.         if (!($options $order->getOptionsAsArray())) {
  82.             $options $this->_GetLmOrderOption();
  83.         }
  84.         //
  85.         if ($key === null) {
  86.             return $options;
  87.         } else {
  88.             return isset($options[$key]) ? $options[$key] : null;
  89.         }
  90.     }
  91.     public function _GetLmOrderOption($Name null)
  92.     {
  93.         $Data $this->Session->get('Lm_Order_Option_Session');
  94.         return is_null($Name) ? $Data : ($Data[$Name] ?? null);
  95.     }
  96. }