PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.1
Booking for Appointments and Events Calendar – Amelia v2.1
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 6 months ago CustomerBookingEventTicketFactory.php 6 months ago EventFactory.php 6 months ago EventPeriodFactory.php 6 months ago EventTagFactory.php 6 months ago EventTicketFactory.php 6 months ago RecurringFactory.php 6 months ago
RecurringFactory.php
62 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\Event;
9
10 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
11 use AmeliaBooking\Domain\Services\DateTime\DateTimeService;
12 use AmeliaBooking\Domain\ValueObjects\DateTime\DateTimeValue;
13 use AmeliaBooking\Domain\ValueObjects\Number\Integer\WholeNumber;
14 use AmeliaBooking\Domain\ValueObjects\Recurring;
15 use AmeliaBooking\Domain\ValueObjects\String\Cycle;
16
17 /**
18 * Class RecurringFactory
19 *
20 * @package AmeliaBooking\Domain\Factory\Booking\Event
21 */
22 class RecurringFactory
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