Completed
Push — master ( 833351...5fbac6 )
by Dieter
07:24
created

CheckEligibility   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 102
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 3
dl 0
loc 102
ccs 15
cts 15
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 14 2
A loadTicketNumbers() 0 6 2
1
<?php
2
/**
3
 * amadeus-ws-client
4
 *
5
 * Copyright 2015 Amadeus Benelux NV
6
 *
7
 * Licensed under the Apache License, Version 2.0 (the "License");
8
 * you may not use this file except in compliance with the License.
9
 * You may obtain a copy of the License at
10
 *
11
 * http://www.apache.org/licenses/LICENSE-2.0
12
 *
13
 * Unless required by applicable law or agreed to in writing, software
14
 * distributed under the License is distributed on an "AS IS" BASIS,
15
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
 * See the License for the specific language governing permissions and
17
 * limitations under the License.
18
 *
19
 * @package Amadeus
20
 * @license https://opensource.org/licenses/Apache-2.0 Apache 2.0
21
 */
22
23
namespace Amadeus\Client\Struct\Ticket;
24
25
use Amadeus\Client\RequestOptions\TicketCheckEligibilityOptions;
26
use Amadeus\Client\Struct\Fare\BaseMasterPricerMessage;
27
use Amadeus\Client\Struct\Fare\MasterPricer\FareFamilies;
28
use Amadeus\Client\Struct\Fare\MasterPricer\Itinerary;
29
use Amadeus\Client\Struct\Fare\MasterPricer\PriceToBeat;
30
use Amadeus\Client\Struct\Fare\MasterPricer\TravelFlightInfo;
31
use Amadeus\Client\Struct\Ticket\CheckEligibility\CombinationFareFamilies;
32
use Amadeus\Client\Struct\Ticket\CheckEligibility\CustomerRef;
33
use Amadeus\Client\Struct\Ticket\CheckEligibility\FeeOption;
34
use Amadeus\Client\Struct\Ticket\CheckEligibility\FormOfPaymentByPassenger;
35
use Amadeus\Client\Struct\Ticket\CheckEligibility\GlobalOptions;
36
use Amadeus\Client\Struct\Ticket\CheckEligibility\OfficeIdDetails;
37
use Amadeus\Client\Struct\Ticket\CheckEligibility\PassengerInfoGrp;
38
use Amadeus\Client\Struct\Ticket\CheckEligibility\SolutionFamily;
39
use Amadeus\Client\Struct\Ticket\CheckEligibility\TaxInfo;
40
use Amadeus\Client\Struct\Ticket\CheckEligibility\TicketChangeInfo;
41
42
/**
43
 * Ticket_CheckEligibility request structure
44
 *
45
 * @package Amadeus\Client\Struct\Ticket
46
 * @author Dieter Devlieghere <[email protected]>
47
 */
48
class CheckEligibility extends BaseMasterPricerMessage
49
{
50
    /**
51
     * @var GlobalOptions
52
     */
53
    public $globalOptions;
54
55
    /**
56
     * @var CustomerRef
57
     */
58
    public $customerRef;
59
60
    /**
61
     * @var FormOfPaymentByPassenger[]
62
     */
63
    public $formOfPaymentByPassenger = [];
64
65
    /**
66
     * @var SolutionFamily[]
67
     */
68
    public $solutionFamily = [];
69
70
    /**
71
     * @var PassengerInfoGrp[]
72
     */
73
    public $passengerInfoGrp = [];
74
75
    /**
76
     * @var FareFamilies[]
77
     */
78
    public $fareFamilies = [];
79
80
    /**
81
     * @var PriceToBeat
82
     */
83
    public $priceToBeat;
84
85
    /**
86
     * @var TaxInfo[]
87
     */
88
    public $taxInfo = [];
89
90
    /**
91
     * @var TravelFlightInfo
92
     */
93
    public $travelFlightInfo;
94
95
    /**
96
     * @var Itinerary[]
97
     */
98
    public $itinerary = [];
99
100
    /**
101
     * @var TicketChangeInfo
102
     */
103
    public $ticketChangeInfo;
104
105
    /**
106
     * @var CombinationFareFamilies[]
107
     */
108
    public $combinationFareFamilies = [];
109
110
    /**
111
     * @var FeeOption[]
112
     */
113
    public $feeOption = [];
114
115
    /**
116
     * @var OfficeIdDetails[]
117
     */
118
    public $officeIdDetails = [];
119
120
    /**
121
     * CheckEligibility constructor.
122
     *
123
     * @param TicketCheckEligibilityOptions $options
124
     */
125 2
    public function __construct(TicketCheckEligibilityOptions $options)
126
    {
127 2
        $this->loadNrOfPaxAndResults($options);
128
129 2
        $this->loadFareOptions($options);
130
131 2
        $passengerCounter = 1;
132 2
        $infantCounter = 1;
133 2
        foreach ($options->passengers as $passenger) {
134 2
            $this->loadPassenger($passenger, $passengerCounter, $infantCounter);
135 2
        }
136
137 2
        $this->loadTicketNumbers($options->ticketNumbers);
138 2
    }
139
140
    /**
141
     * @param string[] $ticketNumbers
142
     */
143 2
    protected function loadTicketNumbers($ticketNumbers)
144
    {
145 2
        if (!empty($ticketNumbers)) {
146 2
            $this->ticketChangeInfo = new TicketChangeInfo($ticketNumbers);
147 2
        }
148 2
    }
149
}
150