PluginProbe
Packeta / 2.3.1
Packeta v2.3.1
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 2.3.1, at src/Packetery/Core/Api/Soap/Request/CreatePacket.php

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