getOrderElements() 공개 메소드

public getOrderElements ( ) : array
리턴 array
예제 #1
0
 /**
  * @param OrderInterface  $order
  * @param BasketInterface $basket
  *
  * @return BasketInterface
  */
 public function transformIntoBasket(OrderInterface $order, BasketInterface $basket)
 {
     $event = new OrderTransformEvent($order);
     $this->eventDispatcher->dispatch(TransformerEvents::PRE_ORDER_TO_BASKET_TRANSFORM, $event);
     // we reset the current basket
     $basket->reset(true);
     $basket->setCurrency($order->getCurrency());
     $basket->setLocale($order->getLocale());
     // We are free to convert !
     foreach ($order->getOrderElements() as $orderElement) {
         /*
          * @var $orderElement OrderElementInterface
          */
         $provider = $this->productPool->getProvider($orderElement->getProductType());
         $manager = $this->productPool->getManager($orderElement->getProductType());
         $product = $manager->findOneBy(array('id' => $orderElement->getProductId()));
         if (!$product) {
             continue;
         }
         $basketElement = $provider->createBasketElement($product, $orderElement->getOptions());
         $basketElement->setQuantity($orderElement->getQuantity());
         $provider->basketAddProduct($basket, $product, $basketElement);
     }
     $basket->setCustomer($order->getCustomer());
     $basket->buildPrices();
     $event = new BasketTransformEvent($basket);
     $this->eventDispatcher->dispatch(TransformerEvents::POST_ORDER_TO_BASKET_TRANSFORM, $event);
     return $basket;
 }
 /**
  * Transforms an order into an invoice
  *
  * @param OrderInterface   $order
  * @param InvoiceInterface $invoice
  */
 public function transformFromOrder(OrderInterface $order, InvoiceInterface $invoice)
 {
     $event = new OrderTransformEvent($order);
     $this->eventDispatcher->dispatch(TransformerEvents::PRE_ORDER_TO_INVOICE_TRANSFORM, $event);
     $invoice->setName($order->getBillingName());
     $invoice->setAddress1($order->getBillingAddress1());
     $invoice->setAddress2($order->getBillingAddress2());
     $invoice->setAddress3($order->getBillingAddress3());
     $invoice->setCity($order->getBillingCity());
     $invoice->setCountry($order->getBillingCountryCode());
     $invoice->setPostcode($order->getBillingPostcode());
     $invoice->setEmail($order->getBillingEmail());
     $invoice->setFax($order->getBillingFax());
     $invoice->setMobile($order->getBillingMobile());
     $invoice->setPhone($order->getBillingPhone());
     $invoice->setReference($order->getReference());
     $invoice->setCurrency($order->getCurrency());
     $invoice->setCustomer($order->getCustomer());
     $invoice->setTotalExcl($order->getTotalExcl());
     $invoice->setTotalInc($order->getTotalInc());
     $invoice->setPaymentMethod($order->getPaymentMethod());
     $invoice->setLocale($order->getLocale());
     foreach ($order->getOrderElements() as $orderElement) {
         $invoiceElement = $this->createInvoiceElementFromOrderElement($orderElement);
         $invoiceElement->setInvoice($invoice);
         $invoice->addInvoiceElement($invoiceElement);
     }
     if ($order->getDeliveryCost() > 0) {
         $this->addDelivery($invoice, $order);
     }
     $invoice->setStatus(InvoiceInterface::STATUS_OPEN);
     $event = new InvoiceTransformEvent($invoice);
     $this->eventDispatcher->dispatch(TransformerEvents::POST_ORDER_TO_INVOICE_TRANSFORM, $event);
 }