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(); } }
/** * @return static */ public function withCartTotal(CartCalculatorInterface $cartCalculator) { $this->entityDTO->cartTotal = $this->dtoBuilderFactory->getCartTotalDTOBuilder($this->entity->getTotal($cartCalculator))->withAllData()->build(); return $this; }