PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Domain / Factory / Booking / Appointment / CustomerBookingExtraFactory.php
ameliabooking / src / Domain / Factory / Booking / Appointment Last commit date
AppointmentFactory.php 1 year ago CustomerBookingExtraFactory.php 1 year ago CustomerBookingFactory.php 1 year ago
CustomerBookingExtraFactory.php
67 lines
1 <?php
2 /**
3 * @copyright © TMS-Plugins. All rights reserved.
4 * @licence See LICENCE.md for license details.
5 */
6
7 namespace AmeliaBooking\Domain\Factory\Booking\Appointment;
8
9 use AmeliaBooking\Domain\Entity\Booking\Appointment\CustomerBookingExtra;
10 use AmeliaBooking\Domain\ValueObjects\BooleanValueObject;
11 use AmeliaBooking\Domain\ValueObjects\Json;
12 use AmeliaBooking\Domain\ValueObjects\Number\Float\Price;
13 use AmeliaBooking\Domain\ValueObjects\Number\Integer\Id;
14 use AmeliaBooking\Domain\ValueObjects\Number\Integer\PositiveInteger;
15
16 /**
17 * Class CustomerBookingExtraFactory
18 *
19 * @package AmeliaBooking\Domain\Factory\Booking\Appointment
20 */
21 class CustomerBookingExtraFactory
22 {
23
24 /**
25 * @param $data
26 *
27 * @return CustomerBookingExtra
28 * @throws \AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException
29 */
30 public static function create($data)
31 {
32 $customerBookingExtra = new CustomerBookingExtra(
33 new Id($data['extraId'])
34 );
35
36 if (isset($data['quantity'])) {
37 $customerBookingExtra->setQuantity(new PositiveInteger($data['quantity']));
38 }
39
40 if (isset($data['id'])) {
41 $customerBookingExtra->setId(new Id($data['id']));
42 }
43
44 if (isset($data['customerBookingId'])) {
45 $customerBookingExtra->setCustomerBookingId(new Id($data['customerBookingId']));
46 }
47
48 if (isset($data['price'])) {
49 $customerBookingExtra->setPrice(new Price($data['price']));
50 }
51
52 if (isset($data['aggregatedPrice'])) {
53 $customerBookingExtra->setAggregatedPrice(new BooleanValueObject($data['aggregatedPrice']));
54 }
55
56 if (!empty($data['tax'])) {
57 if (is_string($data['tax'])) {
58 $customerBookingExtra->setTax(new Json($data['tax']));
59 } else if (json_encode($data['tax']) !== false) {
60 $customerBookingExtra->setTax(new Json(json_encode($data['tax'])));
61 }
62 }
63
64 return $customerBookingExtra;
65 }
66 }
67