*/ private $size; /** * Packet note. * * @var ?string */ private $note; /** * Adult content presence flag. * * @var int */ private $adultContent; /** * CreatePacket constructor. * * @param Entity\Order $order Order entity. */ public function __construct( Entity\Order $order ) { // Required attributes. $this->number = $order->getCustomNumberOrNumber(); $this->name = $order->getName(); $this->surname = $order->getSurname(); $this->value = $order->getFinalValue(); $this->weight = $order->getFinalWeight(); $this->addressId = $order->getPickupPointOrCarrierId(); $this->eshop = $order->getEshop(); // Optional attributes. $this->adultContent = (int) $order->containsAdultContent(); $this->cod = $order->getFinalCod(); $this->currency = $order->getCurrency(); $this->email = $order->getEmail(); $this->note = $order->getNote(); $this->phone = $order->getPhone(); $pickupPoint = $order->getPickupPoint(); if ( $pickupPoint !== null && $order->isExternalCarrier() ) { $this->carrierPickupPoint = $pickupPoint->getId(); } if ( $order->isHomeDelivery() || $order->isCarDelivery() ) { $address = $order->getDeliveryAddress(); if ( $address !== null ) { $this->street = $address->getStreet(); $this->city = $address->getCity(); $this->zip = $address->getZip(); if ( $address->getHouseNumber() !== null ) { $this->houseNumber = $address->getHouseNumber(); } } } $carrier = $order->getCarrier(); if ( $carrier->requiresSize() ) { $size = $order->getSize(); if ( $size !== null ) { $this->size = [ 'length' => $size->getLength(), 'width' => $size->getWidth(), 'height' => $size->getHeight(), ]; } } } /** * Gets submittable data. * * @return array */ public function getSubmittableData(): array { return array_filter( get_object_vars( $this ) ); } }