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 / checkin / paxfields / mrz / map / spain.php

spain.php in VikBooking Hotel Booking Engine & PMS 1.8.15, at admin/helpers/src/checkin/paxfields/mrz/map/spain.php

97 lines 2.2 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 Alessio Gaggii - E4J s.r.l.
6 * @copyright Copyright (C) 2026 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 * Pax fields MRZ mapper for "spain" data collector.
16 *
17 * @since 1.18.6 (J) - 1.8.6 (WP)
18 */
19 final class VBOCheckinPaxfieldsMrzMapSpain extends VBOCheckinPaxfieldsMrzMap
20 {
21 /**
22 * @inheritDoc
23 */
24 public function getKnownFields(array $propertyList)
25 {
26 // build the associative relation with the known and supported fields
27 $knownFields = [
28 'firstName' => [
29 'first_name',
30 ],
31 'lastName' => [
32 'last_name',
33 ],
34 'dateOfBirth' => [
35 'date_birth',
36 ],
37 'nationality' => [
38 'country',
39 ],
40 'sex' => [
41 'gender',
42 ],
43 'documentCode' => [
44 'doctype',
45 ],
46 'documentNumber' => [
47 'docnum',
48 ],
49 ];
50
51 // return the filtered list of supported pax fields from MRZ data detection
52 return array_filter($knownFields, function($prop) use ($propertyList) {
53 return in_array($prop, $propertyList);
54 }, ARRAY_FILTER_USE_KEY);
55 }
56
57 /**
58 * @inheritDoc
59 */
60 protected function mapDocumentCode(string $value)
61 {
62 $value = strtoupper($value);
63
64 switch ($value) {
65 case 'P':
66 return 'P';
67
68 case 'I':
69 return 'D';
70
71 case 'A':
72 return 'I';
73
74 case 'C':
75 return 'I';
76
77 case 'V':
78 return 'P';
79
80 default:
81 // do nothing
82 break;
83 }
84
85 // default to identity document
86 return 'I';
87 }
88
89 /**
90 * @inheritDoc
91 */
92 protected function mapGender(string $value)
93 {
94 return $value === '2' || strtoupper($value) === 'F' ? '2' : '1';
95 }
96 }
97