PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.8.13
VikBooking Hotel Booking Engine & PMS v1.8.13
1.8.16 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 All 37 releases
vikbooking / admin / helpers / src / rms / pace / data / metric / nightlyrates.php

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

53 lines 1.6 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 Nightly Rates implementation.
16 *
17 * @since 1.18.6 (J) - 1.8.6 (WP)
18 */
19 final class VBORmsPaceDataMetricNightlyrates extends VBORmsPaceDataMetric
20 {
21 /**
22 * @inheritDoc
23 */
24 public function extract(VBORmsPaceDataperiod $paceDataPeriod, ?array $periodPaceMetrics = null)
25 {
26 $ratesRegistry = $paceDataPeriod->getRatesRegistry();
27
28 if (!$ratesRegistry) {
29 // registry is not available
30 return null;
31 }
32
33 // associative list of room nightly rates
34 $roomNightlyRates = [];
35
36 // iterate all listing IDs
37 foreach (array_keys($paceDataPeriod->getListings()) as $listingId) {
38 // get the latest rate set for this listing and period
39 $lastRate = $ratesRegistry->matchPeriodLastNightlyRate($paceDataPeriod->getPeriod(), $paceDataPeriod->getIntervalType(), $listingId);
40 if (!$lastRate) {
41 // no flow records available
42 continue;
43 }
44
45 // push listing latest nightly rate for this period
46 $roomNightlyRates[$listingId] = $lastRate;
47 }
48
49 // return the associative list of room nightly rates, or null
50 return $roomNightlyRates ?: null;
51 }
52 }
53