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 / Event / RecurringFactory.php
ameliabooking / src / Domain / Factory / Booking / Event Last commit date
CustomerBookingEventPeriodFactory.php 7 years ago CustomerBookingEventTicketFactory.php 1 year ago EventFactory.php 1 year ago EventPeriodFactory.php 1 year ago EventTagFactory.php 7 years ago EventTicketFactory.php 1 year ago RecurringFactory.php 4 years ago
RecurringFactory.php
62 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\Event;
8
9 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
10 use AmeliaBooking\Domain\Services\DateTime\DateTimeService;
11 use AmeliaBooking\Domain\ValueObjects\DateTime\DateTimeValue;
12 use AmeliaBooking\Domain\ValueObjects\Number\Integer\WholeNumber;
13 use AmeliaBooking\Domain\ValueObjects\Recurring;
14 use AmeliaBooking\Domain\ValueObjects\String\Cycle;
15
16 /**
17 * Class RecurringFactory
18 *
19 * @package AmeliaBooking\Domain\Factory\Booking\Event
20 */
21 class RecurringFactory
22 {
23
24 /**
25 * @param $data
26 *
27 * @return Recurring
28 * @throws InvalidArgumentException
29 */
30 public static function create($data)
31 {
32 $recurring = new Recurring(new Cycle($data['cycle']));
33
34 if (isset($data['order'])) {
35 $recurring->setOrder(new WholeNumber($data['order']));
36 }
37
38 if (isset($data['cycleInterval'])) {
39 $recurring->setCycleInterval(new WholeNumber($data['cycleInterval']));
40 }
41
42 if (isset($data['monthlyRepeat'])) {
43 $recurring->setMonthlyRepeat($data['monthlyRepeat']);
44 }
45
46 if (isset($data['monthlyOnRepeat']) && isset($data['monthlyOnDay'])) {
47 $recurring->setMonthlyOnRepeat(strtolower($data['monthlyOnRepeat']));
48 $recurring->setMonthlyOnDay(strtolower($data['monthlyOnDay']));
49 }
50
51 if (isset($data['monthDate'])) {
52 $recurring->setMonthDate($data['monthDate'] ? new DateTimeValue(DateTimeService::getCustomDateTimeObject($data['monthDate'])) : null);
53 }
54
55 if (isset($data['until'])) {
56 $recurring->setUntil(new DateTimeValue(DateTimeService::getCustomDateTimeObject($data['until'])));
57 }
58
59 return $recurring;
60 }
61 }
62