PluginProbe
Packeta / 1.2.4
Packeta v1.2.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 / Entity / Order.php

Order.php in Packeta 1.2.4, at src/Packetery/Core/Entity/Order.php

722 lines 11.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class Order
4 *
5 * @package Packetery\Order
6 */
7
8 declare( strict_types=1 );
9
10 namespace Packetery\Core\Entity;
11
12 /**
13 * Class Order
14 *
15 * @package Packetery\Order
16 */
17 class Order {
18
19 /**
20 * Order id.
21 *
22 * @var string
23 */
24 private $number;
25
26 /**
27 * Order carrier object.
28 *
29 * @var Carrier|null
30 */
31 private $carrier;
32
33 /**
34 * Order pickup point object.
35 *
36 * @var PickupPoint|null
37 */
38 private $pickupPoint;
39
40 /**
41 * Customer name.
42 *
43 * @var string|null
44 */
45 private $name;
46
47 /**
48 * Customer surname.
49 *
50 * @var string|null
51 */
52 private $surname;
53
54 /**
55 * Customer e-mail.
56 *
57 * @var string|null
58 */
59 private $email;
60
61 /**
62 * Customer phone.
63 *
64 * @var string|null
65 */
66 private $phone;
67
68 /**
69 * Order value.
70 *
71 * @var float|null
72 */
73 private $value;
74
75 /**
76 * Sender label.
77 *
78 * @var string|null
79 */
80 private $eshop;
81
82 /**
83 * Address.
84 *
85 * @var Address|null
86 */
87 private $address;
88
89 /**
90 * Size.
91 *
92 * @var Size|null
93 */
94 private $size;
95
96 /**
97 * Package weight.
98 *
99 * @var float|null
100 */
101 private $weight;
102
103 /**
104 * Cash on delivery value.
105 *
106 * @var float|null
107 */
108 private $cod;
109
110 /**
111 * Packet note.
112 *
113 * @var string|null
114 */
115 private $note;
116
117 /**
118 * Adult content presence flag.
119 *
120 * @var bool|null
121 */
122 private $adultContent;
123
124 /**
125 * Packet ID
126 *
127 * @var string|null
128 */
129 private $packetId;
130
131 /**
132 * Packet ID
133 *
134 * @var string|null
135 */
136 private $packetStatus;
137
138 /**
139 * Carrier id.
140 *
141 * @var string
142 */
143 private $carrierId;
144
145 /**
146 * Tells if is packet submitted.
147 *
148 * @var bool
149 */
150 private $isExported;
151
152 /**
153 * Tells if is packet submitted.
154 *
155 * @var bool
156 */
157 private $isLabelPrinted;
158
159 /**
160 * Packet currency.
161 *
162 * @var string
163 */
164 private $currency;
165
166 /**
167 * Carrier number..
168 *
169 * @var string|null
170 */
171 private $carrierNumber;
172
173 /**
174 * Address validated.
175 *
176 * @var bool
177 */
178 private $addressValidated;
179
180 /**
181 * Order entity constructor.
182 *
183 * @param string $number Order id.
184 * @param string $carrierId Sender label.
185 * @param bool $isExported Is exported.
186 * @param bool $isLabelPrinted Is label printed.
187 */
188 public function __construct(
189 string $number,
190 string $carrierId,
191 bool $isExported = false,
192 bool $isLabelPrinted = false
193 ) {
194 $this->number = $number;
195 $this->carrierId = $carrierId;
196 $this->isExported = $isExported;
197 $this->isLabelPrinted = $isLabelPrinted;
198 $this->addressValidated = false;
199 }
200
201 /**
202 * Is address validated?
203 *
204 * @return bool
205 */
206 public function isAddressValidated(): bool {
207 return $this->addressValidated;
208 }
209
210 /**
211 * Sets address validation flag.
212 *
213 * @param bool $addressValidated Address validated.
214 *
215 * @return void
216 */
217 public function setAddressValidated( bool $addressValidated ): void {
218 $this->addressValidated = $addressValidated;
219 }
220
221 /**
222 * Checks if is home delivery. In that case pointId is not set.
223 *
224 * @return bool
225 */
226 public function isHomeDelivery(): bool {
227 return ( null === $this->pickupPoint );
228 }
229
230 /**
231 * Tells if order has to be shipped to pickup point, run by Packeta or an external carrier.
232 *
233 * @return bool
234 */
235 public function isPickupPointDelivery(): bool {
236 return ( null !== $this->pickupPoint );
237 }
238
239 /**
240 * Checks if uses external carrier.
241 *
242 * @return bool
243 */
244 public function isExternalCarrier(): bool {
245 return ( Carrier::INTERNAL_PICKUP_POINTS_ID !== $this->getCarrierId() );
246 }
247
248 /**
249 * Gets pickup point/carrier id.
250 *
251 * @return int|null
252 */
253 public function getPickupPointOrCarrierId(): ?int {
254 if ( $this->isExternalCarrier() ) {
255 return (int) $this->getCarrierId();
256 }
257
258 if ( null === $this->pickupPoint ) {
259 return null;
260 }
261
262 // Typing to int is safe in case of internal pickup points.
263 return (int) $this->pickupPoint->getId();
264 }
265
266 /**
267 * Sets carrier.
268 *
269 * @param Carrier|null $carrier Carrier.
270 */
271 public function setCarrier( ?Carrier $carrier ): void {
272 $this->carrier = $carrier;
273 }
274
275 /**
276 * Sets pickup point.
277 *
278 * @param PickupPoint $pickupPoint Pickup point.
279 */
280 public function setPickupPoint( PickupPoint $pickupPoint ): void {
281 $this->pickupPoint = $pickupPoint;
282 }
283
284 /**
285 * Sets delivery address.
286 *
287 * @param Address $address Delivery address.
288 */
289 public function setDeliveryAddress( Address $address ): void {
290 $this->address = $address;
291 }
292
293 /**
294 * Sets packet size.
295 *
296 * @param Size $size Size.
297 */
298 public function setSize( Size $size ): void {
299 $this->size = $size;
300 }
301
302 /**
303 * Sets number.
304 *
305 * @param string $number Number.
306 */
307 public function setNumber( string $number ): void {
308 $this->number = $number;
309 }
310
311 /**
312 * Sets phone.
313 *
314 * @param string $name Name.
315 */
316 public function setName( string $name ): void {
317 $this->name = $name;
318 }
319
320 /**
321 * Sets surname.
322 *
323 * @param string $surname Surname.
324 */
325 public function setSurname( string $surname ): void {
326 $this->surname = $surname;
327 }
328
329 /**
330 * Sets e-mail.
331 *
332 * @param string $email E-mail.
333 */
334 public function setEmail( string $email ): void {
335 $this->email = $email;
336 }
337
338 /**
339 * Sets eshop.
340 *
341 * @param string|null $eshop Eshop.
342 *
343 * @return void
344 */
345 public function setEshop( ?string $eshop ): void {
346 $this->eshop = $eshop;
347 }
348
349 /**
350 * Sets phone.
351 *
352 * @param string $phone Phone.
353 */
354 public function setPhone( string $phone ): void {
355 $this->phone = $phone;
356 }
357
358 /**
359 * Sets value.
360 *
361 * @param float $value Value.
362 */
363 public function setValue( float $value ): void {
364 $this->value = $value;
365 }
366
367 /**
368 * Sets COD.
369 *
370 * @param float $cod COD.
371 */
372 public function setCod( float $cod ): void {
373 $this->cod = $cod;
374 }
375
376 /**
377 * Gets packet currency.
378 *
379 * @return string
380 */
381 public function getCurrency(): string {
382 return $this->currency;
383 }
384
385 /**
386 * Sets packet currency.
387 *
388 * @param string $currency Currency.
389 *
390 * @return void
391 */
392 public function setCurrency( string $currency ): void {
393 $this->currency = $currency;
394 }
395
396 /**
397 * Sets packet note.
398 *
399 * @param string $note Packet note.
400 */
401 public function setNote( string $note ): void {
402 $this->note = $note;
403 }
404
405 /**
406 * Sets adult content presence flag.
407 *
408 * @param bool $adultContent Adult content presence flag.
409 */
410 public function setAdultContent( bool $adultContent ): void {
411 $this->adultContent = $adultContent;
412 }
413
414 /**
415 * Sets carrier id.
416 *
417 * @param string|null $carrierId Carrier id.
418 */
419 public function setCarrierId( ?string $carrierId ): void {
420 $this->carrierId = $carrierId;
421 }
422
423 /**
424 * Sets packet id.
425 *
426 * @param string|null $packetId Packet id.
427 */
428 public function setPacketId( ?string $packetId ): void {
429 $this->packetId = $packetId;
430 }
431
432 /**
433 * Sets packet status.
434 *
435 * @param string|null $packetStatus Packet status.
436 *
437 * @return void
438 */
439 public function setPacketStatus( ?string $packetStatus ): void {
440 $this->packetStatus = $packetStatus;
441 }
442
443 /**
444 * Sets is exported flag.
445 *
446 * @param bool $isExported Packet id.
447 */
448 public function setIsExported( bool $isExported ): void {
449 $this->isExported = $isExported;
450 }
451
452 /**
453 * Sets flag of label print.
454 *
455 * @param bool $isLabelPrinted Is label printed.
456 *
457 * @return void
458 */
459 public function setIsLabelPrinted( bool $isLabelPrinted ): void {
460 $this->isLabelPrinted = $isLabelPrinted;
461 }
462
463 /**
464 * Sets carrier number.
465 *
466 * @param string|null $carrierNumber Carrier number.
467 *
468 * @return void
469 */
470 public function setCarrierNumber( ?string $carrierNumber ): void {
471 $this->carrierNumber = $carrierNumber;
472 }
473
474 /**
475 * Sets weight.
476 *
477 * @param float|null $weight Weight.
478 *
479 * @return void
480 */
481 public function setWeight( ?float $weight ): void {
482 $this->weight = $weight;
483 }
484
485 /**
486 * Gets carrier object.
487 *
488 * @return Carrier|null
489 */
490 public function getCarrier(): ?Carrier {
491 return $this->carrier;
492 }
493
494 /**
495 * Gets pickup point object.
496 *
497 * @return PickupPoint|null
498 */
499 public function getPickupPoint(): ?PickupPoint {
500 return $this->pickupPoint;
501 }
502
503 /**
504 * Gets delivery address object.
505 *
506 * @return Address|null
507 */
508 public function getDeliveryAddress(): ?Address {
509 return $this->address;
510 }
511
512 /**
513 * Gets validated delivery address object.
514 *
515 * @return Address|null
516 */
517 public function getValidatedDeliveryAddress(): ?Address {
518 return ( $this->addressValidated ? $this->address : null );
519 }
520
521 /**
522 * Gets size object.
523 *
524 * @return Size|null
525 */
526 public function getSize(): ?Size {
527 return $this->size;
528 }
529
530 /**
531 * Packet ID
532 *
533 * @return string|null
534 */
535 public function getPacketId(): ?string {
536 return $this->packetId;
537 }
538
539 /**
540 * Packet status.
541 *
542 * @return string|null
543 */
544 public function getPacketStatus(): ?string {
545 return $this->packetStatus;
546 }
547
548 /**
549 * Gets carrier id.
550 *
551 * @return string
552 */
553 public function getCarrierId(): string {
554 return $this->carrierId;
555 }
556
557 /**
558 * Tells if is packet submitted.
559 *
560 * @return bool
561 */
562 public function isExported(): ?bool {
563 return $this->isExported;
564 }
565
566 /**
567 * Gets weight.
568 *
569 * @return float|null
570 */
571 public function getWeight(): ?float {
572 return $this->weight;
573 }
574
575 /**
576 * Gets length.
577 *
578 * @return float|null
579 */
580 public function getLength(): ?float {
581 if ( empty( $this->size ) ) {
582 return null;
583 }
584
585 return $this->size->getLength();
586 }
587
588 /**
589 * Gets width.
590 *
591 * @return float|null
592 */
593 public function getWidth(): ?float {
594 if ( empty( $this->size ) ) {
595 return null;
596 }
597
598 return $this->size->getWidth();
599 }
600
601 /**
602 * Gets height.
603 *
604 * @return float|null
605 */
606 public function getHeight(): ?float {
607 if ( empty( $this->size ) ) {
608 return null;
609 }
610
611 return $this->size->getHeight();
612 }
613
614 /**
615 * Checks adult content presence.
616 *
617 * @return bool|null
618 */
619 public function containsAdultContent(): ?bool {
620 return $this->adultContent;
621 }
622
623 /**
624 * Gets order id.
625 *
626 * @return string|null
627 */
628 public function getNumber(): ?string {
629 return $this->number;
630 }
631
632 /**
633 * Gets customer name.
634 *
635 * @return string|null
636 */
637 public function getName(): ?string {
638 return $this->name;
639 }
640
641 /**
642 * Gets customer surname.
643 *
644 * @return string|null
645 */
646 public function getSurname(): ?string {
647 return $this->surname;
648 }
649
650 /**
651 * Gets order value.
652 *
653 * @return float|null
654 */
655 public function getValue(): ?float {
656 return $this->value;
657 }
658
659 /**
660 * Gets order COD value.
661 *
662 * @return float|null
663 */
664 public function getCod(): ?float {
665 return $this->cod;
666 }
667
668 /**
669 * Gets sender label.
670 *
671 * @return string|null
672 */
673 public function getEshop(): ?string {
674 return $this->eshop;
675 }
676
677 /**
678 * Gets customer e-mail.
679 *
680 * @return string|null
681 */
682 public function getEmail(): ?string {
683 return $this->email;
684 }
685
686 /**
687 * Gets delivery note.
688 *
689 * @return string|null
690 */
691 public function getNote(): ?string {
692 return $this->note;
693 }
694
695 /**
696 * Gets customer phone.
697 *
698 * @return string|null
699 */
700 public function getPhone(): ?string {
701 return $this->phone;
702 }
703
704 /**
705 * Is label printed?
706 *
707 * @return bool
708 */
709 public function isLabelPrinted(): bool {
710 return $this->isLabelPrinted;
711 }
712
713 /**
714 * Carrier number.
715 *
716 * @return string|null
717 */
718 public function getCarrierNumber(): ?string {
719 return $this->carrierNumber;
720 }
721 }
722