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 / data / metric / ratevariationplus.php

ratevariationplus.php in VikBooking Hotel Booking Engine & PMS 1.8.15, at admin/helpers/src/rms/pace/data/metric/ratevariationplus.php

57 lines 1.5 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 Data Metric Rate Variation Plus implementation.
16 *
17 * @since 1.18.6 (J) - 1.8.6 (WP)
18 */
19 final class VBORmsPaceDataMetricRatevariationplus extends VBORmsPaceDataMetric
20 {
21 /**
22 * @inheritDoc
23 */
24 public function getID()
25 {
26 return 'ratevrplus';
27 }
28
29 /**
30 * @inheritDoc
31 */
32 public function extract(VBORmsPaceDataperiod $paceDataPeriod, ?array $periodPaceMetrics = null)
33 {
34 // this metric should run after "Rate Variation Date"
35 if (empty($periodPaceMetrics['ratevrdt']) || !($periodPaceMetrics['ratevrdt'] instanceof DateTimeInterface)) {
36 return 0;
37 }
38
39 // start counter for the new bookings received after a certain date
40 $plusCount = 0;
41
42 // get the last variation timestamp
43 $lastTs = $periodPaceMetrics['ratevrdt']->format('U');
44
45 // iterate all confirmed bookings affecting the current period
46 foreach ($paceDataPeriod as $booking) {
47 if (($booking['ts'] ?? 0) >= $lastTs) {
48 // increase counter
49 $plusCount++;
50 }
51 }
52
53 // return the number of new bookings after the last rate variation date
54 return $plusCount;
55 }
56 }
57