PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 2 weeks ago CustomerBookingExtraFactory.php 6 months ago CustomerBookingFactory.php 2 weeks ago
CustomerBookingExtraFactory.php
67 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. All rights reserved.
5 * @licence See LICENCE.md for license details.
6 */
7
8 namespace AmeliaBooking\Domain\Factory\Booking\Appointment;
9
10 use AmeliaBooking\Domain\Entity\Booking\Appointment\CustomerBookingExtra;
11 use AmeliaBooking\Domain\ValueObjects\BooleanValueObject;
12 use AmeliaBooking\Domain\ValueObjects\Json;
13 use AmeliaBooking\Domain\ValueObjects\Number\Float\Price;
14 use AmeliaBooking\Domain\ValueObjects\Number\Integer\Id;
15 use AmeliaBooking\Domain\ValueObjects\Number\Integer\PositiveInteger;
16
17 /**
18 * Class CustomerBookingExtraFactory
19 *
20 * @package AmeliaBooking\Domain\Factory\Booking\Appointment
21 */
22 class CustomerBookingExtraFactory
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 } elseif (json_encode($data['tax']) !== false) {
60 $customerBookingExtra->setTax(new Json(json_encode($data['tax'])));
61 }
62 }
63
64 return $customerBookingExtra;
65 }
66 }
67