PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.8.15
VikBooking Hotel Booking Engine & PMS v1.8.15
1.8.15 1.8.14 1.8.13 1.8.12 1.8.11 1.8.10 1.8.9 1.8.6 1.8.7 1.8.8 trunk 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 All 36 releases
vikbooking / admin / helpers / src / rms / pace / booking / dataperiod.php

dataperiod.php in VikBooking Hotel Booking Engine & PMS 1.8.15, at admin/helpers/src/rms/pace/booking/dataperiod.php

92 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package VikBooking
4 * @subpackage core
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2025 E4J s.r.l. All Rights Reserved.
7 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 * @link https://vikwp.com
9 */
10
11 // No direct access
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 /**
15 * RMS Pace Booking Data-period implementation.
16 *
17 * @since 1.18.6 (J) - 1.8.6 (WP)
18 */
19 final class VBORmsPaceBookingDataperiod extends VBORmsPaceDataperiod
20 {
21 /**
22 * @var array
23 */
24 private array $pickupData = [];
25
26 /**
27 * @var int
28 */
29 private int $pickupBookingsCount = 0;
30
31 /**
32 * Constucts the object by binding pickup data information and calls parent's constructor.
33 *
34 * @param int $baseCount The number of bookings before current pickup period.
35 * @param array $bookings The period eligible bookings to iterate.
36 * @param DateTimeInterface $period The data period under evaluation.
37 * @param ?DateInterval $interval The date evaluation interval.
38 *
39 * @throws InvalidArgumentException
40 */
41 public function __construct(int $baseCount, array $bookings, DateTimeInterface $period, ?DateInterval $interval = null)
42 {
43 // bind bookings count at current pickup
44 $this->pickupBookingsCount = $baseCount;
45
46 // call parent constructor
47 parent::__construct($bookings, $period, $interval);
48 }
49
50 /**
51 * Increases the number of "on the books" bookings at current pickup period.
52 *
53 * @param int $count The number of new bookings to register.
54 *
55 * @return int The total number of "on the books" bookings at current pickup.
56 */
57 public function registerNewBooking(int $count = 1): int
58 {
59 // increase counter
60 $this->pickupBookingsCount += $count;
61
62 // return the updated counter
63 return $this->pickupBookingsCount;
64 }
65
66 /**
67 * Decreases the number of "on the books" bookings at current pickup period.
68 *
69 * @param int $count The number of booking cancellations to register.
70 *
71 * @return int The total number of "on the books" bookings at current pickup.
72 */
73 public function registerBookingCancellation(int $count = 1): int
74 {
75 // decrease counter
76 $this->pickupBookingsCount -= $count;
77
78 // return the updated counter
79 return $this->pickupBookingsCount;
80 }
81
82 /**
83 * Returns the starting bookings counter at the current pickup period.
84 *
85 * @return int
86 */
87 public function getPickupStartingBookings(): int
88 {
89 return $this->pickupBookingsCount;
90 }
91 }
92