public function __construct(Order $order, DTOBuilderFactoryInterface $dtoBuilderFactory)
 {
     $this->entity = $order;
     $this->dtoBuilderFactory = $dtoBuilderFactory;
     $this->entityDTO = $this->getEntityDTO();
     $this->setId();
     $this->setTime();
     $this->entityDTO->referenceNumber = $this->entity->getReferenceNumber();
     $this->entityDTO->externalId = $this->entity->getExternalId();
     $this->entityDTO->totalItems = $this->entity->totalItems();
     $this->entityDTO->totalQuantity = $this->entity->totalQuantity();
     $this->entityDTO->discountNames = $this->entity->getDiscountNames();
     $this->entityDTO->status = $this->dtoBuilderFactory->getOrderStatusTypeDTOBuilder($this->entity->getStatus())->build();
     if ($this->entity->getShippingAddress() !== null) {
         $this->entityDTO->shippingAddress = $this->dtoBuilderFactory->getOrderAddressDTOBuilder($this->entity->getShippingAddress())->build();
     }
     if ($this->entity->getBillingAddress() !== null) {
         $this->entityDTO->billingAddress = $this->dtoBuilderFactory->getOrderAddressDTOBuilder($this->entity->getBillingAddress())->build();
     }
     if ($this->entity->getTotal() !== null) {
         $this->entityDTO->total = $this->dtoBuilderFactory->getCartTotalDTOBuilder($this->entity->getTotal())->withAllData()->build();
     }
     if ($this->entity->getShipmentRate() !== null) {
         $this->entityDTO->shipmentRate = $this->dtoBuilderFactory->getShipmentRateDTOBuilder($this->entity->getShipmentRate())->build();
     }
     if ($this->entity->getTaxRate() !== null) {
         $this->entityDTO->taxRate = $this->dtoBuilderFactory->getTaxRateDTOBuilder($this->entity->getTaxRate())->build();
     }
     foreach ($this->entity->getShipments() as $shipment) {
         $this->entityDTO->shipments[] = $this->dtoBuilderFactory->getShipmentDTOBuilder($shipment)->build();
     }
 }
Beispiel #2
0
 public function testAddShipmentChangesOrderStatusToPartiallyShipped()
 {
     $orderItem = $this->dummyData->getOrderItem();
     $orderItem->setQuantity(2);
     $shipment = $this->dummyData->getShipment();
     $this->dummyData->getShipmentItem($shipment, $orderItem, 1);
     $order = new Order();
     $order->addOrderItem($orderItem);
     $this->assertFalse($order->getStatus()->isPartiallyShipped());
     $order->addShipment($shipment);
     $this->assertTrue($order->getStatus()->isPartiallyShipped());
 }