PluginProbe
Packeta / 1.4
Packeta v1.4
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / src / Packetery / Core / Api / Soap / Request / CreatePacket.php

CreatePacket.php in Packeta 1.4, at src/Packetery/Core/Api/Soap/Request/CreatePacket.php

216 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class CreatePacket.
4 *
5 * @package Packetery\Api\Soap\Request
6 */
7
8 declare( strict_types=1 );
9
10 namespace Packetery\Core\Api\Soap\Request;
11
12 use Packetery\Core\Entity;
13
14 /**
15 * Class CreatePacket.
16 *
17 * @package Packetery\Api\Soap\Request
18 */
19 class CreatePacket {
20
21 /**
22 * Order id.
23 *
24 * @var string
25 */
26 private $number;
27
28 /**
29 * Customer name.
30 *
31 * @var string
32 */
33 private $name;
34
35 /**
36 * Customer surname.
37 *
38 * @var string
39 */
40 private $surname;
41
42 /**
43 * Customer e-mail.
44 *
45 * @var string
46 */
47 private $email;
48
49 /**
50 * Customer phone.
51 *
52 * @var string
53 */
54 private $phone;
55
56 /**
57 * Pickup point or carrier id.
58 *
59 * @var int
60 */
61 private $addressId;
62
63 /**
64 * Order value.
65 *
66 * @var float
67 */
68 private $value;
69
70 /**
71 * Sender label.
72 *
73 * @var string
74 */
75 private $eshop;
76
77 /**
78 * Package weight.
79 *
80 * @var float|null
81 */
82 private $weight;
83
84 /**
85 * Customer street for address delivery.
86 *
87 * @var string
88 */
89 private $street;
90
91 /**
92 * Customer houseNumber for address delivery.
93 *
94 * @var string
95 */
96 private $houseNumber;
97
98 /**
99 * Customer city for address delivery.
100 *
101 * @var string
102 */
103 private $city;
104
105 /**
106 * Customer zip for address delivery.
107 *
108 * @var string
109 */
110 private $zip;
111
112 /**
113 * Cash on delivery value.
114 *
115 * @var float
116 */
117 private $cod;
118
119 /**
120 * Order money values currency.
121 *
122 * @var string
123 */
124 private $currency;
125
126 /**
127 * Carrier pickup point.
128 *
129 * @var string
130 */
131 private $carrierPickupPoint;
132
133 /**
134 * Package size.
135 *
136 * @var array
137 */
138 private $size;
139
140 /**
141 * Packet note.
142 *
143 * @var string
144 */
145 private $note;
146
147 /**
148 * Adult content presence flag.
149 *
150 * @var int
151 */
152 private $adultContent;
153
154 /**
155 * CreatePacket constructor.
156 *
157 * @param Entity\Order $order Order entity.
158 */
159 public function __construct( Entity\Order $order ) {
160 // Required attributes.
161 $this->number = ( $order->getCustomNumber() ?? $order->getNumber() );
162 $this->name = $order->getName();
163 $this->surname = $order->getSurname();
164 $this->value = $order->getValue();
165 $this->weight = $order->getFinalWeight();
166 $this->addressId = $order->getPickupPointOrCarrierId();
167 $this->eshop = $order->getEshop();
168 // Optional attributes.
169 $this->adultContent = (int) $order->containsAdultContent();
170 $this->cod = $order->getCod();
171 $this->currency = $order->getCurrency();
172 $this->email = $order->getEmail();
173 $this->note = $order->getNote();
174 $this->phone = $order->getPhone();
175
176 $pickupPoint = $order->getPickupPoint();
177 if ( null !== $pickupPoint && $order->isExternalCarrier() ) {
178 $this->carrierPickupPoint = $pickupPoint->getId();
179 }
180
181 if ( $order->isHomeDelivery() ) {
182 $address = $order->getDeliveryAddress();
183 if ( null !== $address ) {
184 $this->street = $address->getStreet();
185 $this->city = $address->getCity();
186 $this->zip = $address->getZip();
187 if ( $address->getHouseNumber() ) {
188 $this->houseNumber = $address->getHouseNumber();
189 }
190 }
191 }
192
193 $carrier = $order->getCarrier();
194 if ( null !== $carrier && $carrier->requiresSize() ) {
195 $size = $order->getSize();
196 if ( null !== $size ) {
197 $this->size = [
198 'length' => $size->getLength(),
199 'width' => $size->getWidth(),
200 'height' => $size->getHeight(),
201 ];
202 }
203 }
204 }
205
206 /**
207 * Gets submittable data.
208 *
209 * @return array
210 */
211 public function getSubmittableData(): array {
212 return array_filter( get_object_vars( $this ) );
213 }
214
215 }
216