Code Duplication    Length = 98-98 lines in 2 locations

src/Amadeus/Client/Struct/Air/FlightDate.php 1 location

@@ 31-128 (lines=98) @@
28
 * @package Amadeus\Client\Struct\Air
29
 * @author dieter <[email protected]>
30
 */
31
class FlightDate
32
{
33
    /**
34
     * DDMMYY
35
     *
36
     * @var string
37
     */
38
    public $departureDate;
39
    /**
40
     * HHMM
41
     *
42
     * @var string
43
     */
44
    public $departureTime;
45
    /**
46
     * DDMMYY
47
     *
48
     * @var string
49
     */
50
    public $arrivalDate;
51
    /**
52
     * HHMM
53
     *
54
     * @var string
55
     */
56
    public $arrivalTime;
57
    /**
58
     * @var string|int
59
     */
60
    public $dateVariation;
61
62
    /**
63
     * FlightDate constructor.
64
     *
65
     * @param string|\DateTime|null $departureDate in format DDMMYY or \DateTime
66
     * @param \DateTime|null $arrivalDate
67
     * @param string|\DateTime|null $arrivalTime
68
     * @param int|null $dateVariation
69
     */
70
    public function __construct($departureDate, $arrivalDate = null, $arrivalTime = null, $dateVariation = null)
71
    {
72
        $this->loadDepartureDate($departureDate);
73
74
        $this->loadArrivalDate($arrivalDate, $arrivalTime);
75
76
        if (!is_null($dateVariation)) {
77
            $this->dateVariation = $dateVariation;
78
        }
79
    }
80
81
    /**
82
     * @param \DateTime|string|null $departureDate
83
     */
84
    protected function loadDepartureDate($departureDate)
85
    {
86
        if ($departureDate instanceof \DateTime) {
87
            $this->departureDate = ($departureDate->format('dmy') !== '000000') ? $departureDate->format('dmy') : null;
88
            $time = $departureDate->format('Hi');
89
            if ($time !== '0000') {
90
                $this->departureTime = $time;
91
            }
92
        } elseif (!empty($departureDate)) {
93
            $this->departureDate = $departureDate;
94
        }
95
    }
96
97
    /**
98
     * @param \DateTime|null $arrivalDate
99
     * @param string|\DateTime|null $arrivalTime
100
     */
101
    protected function loadArrivalDate($arrivalDate, $arrivalTime)
102
    {
103
        if ($arrivalDate instanceof \DateTime) {
104
            $this->setArrivalDate($arrivalDate);
105
        } elseif ($arrivalTime instanceof \DateTime) {
106
            $time = $arrivalTime->format('Hi');
107
            if ($time !== '0000') {
108
                $this->arrivalTime = $time;
109
            }
110
        } elseif (is_string($arrivalTime) && !empty($arrivalTime)) {
111
            $this->arrivalTime = $arrivalTime;
112
        }
113
    }
114
115
    /**
116
     * Load Arrival date info from \DateTime
117
     *
118
     * @param \DateTime $arrivalDate
119
     */
120
    public function setArrivalDate(\DateTime $arrivalDate)
121
    {
122
        $this->arrivalDate = ($arrivalDate->format('dmy') !== '000000') ? $arrivalDate->format('dmy') : null;
123
        $time = $arrivalDate->format('Hi');
124
        if ($time !== '0000') {
125
            $this->arrivalTime = $time;
126
        }
127
    }
128
}
129

src/Amadeus/Client/Struct/Fare/MasterPricer/FlightDate.php 1 location

@@ 31-128 (lines=98) @@
28
 * @package Amadeus\Client\Struct\Fare\MasterPricer
29
 * @author Mike Hernas <[email protected]>
30
 */
31
class FlightDate
32
{
33
    /**
34
     * DDMMYY
35
     *
36
     * @var string
37
     */
38
    public $departureDate;
39
    /**
40
     * HHMM
41
     *
42
     * @var string
43
     */
44
    public $departureTime;
45
    /**
46
     * DDMMYY
47
     *
48
     * @var string
49
     */
50
    public $arrivalDate;
51
    /**
52
     * HHMM
53
     *
54
     * @var string
55
     */
56
    public $arrivalTime;
57
    /**
58
     * @var string|int
59
     */
60
    public $dateVariation;
61
62
    /**
63
     * FlightDate constructor.
64
     *
65
     * @param string|\DateTime|null $departureDate in format DDMMYY or \DateTime
66
     * @param \DateTime|null $arrivalDate
67
     * @param string|\DateTime|null $arrivalTime
68
     * @param int|null $dateVariation
69
     */
70
    public function __construct($departureDate, $arrivalDate = null, $arrivalTime = null, $dateVariation = null)
71
    {
72
        $this->loadDepartureDate($departureDate);
73
74
        $this->loadArrivalDate($arrivalDate, $arrivalTime);
75
76
        if (!is_null($dateVariation)) {
77
            $this->dateVariation = $dateVariation;
78
        }
79
    }
80
81
    /**
82
     * @param \DateTime|string|null $departureDate
83
     */
84
    protected function loadDepartureDate($departureDate)
85
    {
86
        if ($departureDate instanceof \DateTime) {
87
            $this->departureDate = ($departureDate->format('dmy') !== '000000') ? $departureDate->format('Ymd') : null;
88
            $time = $departureDate->format('Hi');
89
            if ($time !== '0000') {
90
                $this->departureTime = $time;
91
            }
92
        } elseif (!empty($departureDate)) {
93
            $this->departureDate = $departureDate;
94
        }
95
    }
96
97
    /**
98
     * @param \DateTime|null $arrivalDate
99
     * @param string|\DateTime|null $arrivalTime
100
     */
101
    protected function loadArrivalDate($arrivalDate, $arrivalTime)
102
    {
103
        if ($arrivalDate instanceof \DateTime) {
104
            $this->setArrivalDate($arrivalDate);
105
        } elseif ($arrivalTime instanceof \DateTime) {
106
            $time = $arrivalTime->format('Hi');
107
            if ($time !== '0000') {
108
                $this->arrivalTime = $time;
109
            }
110
        } elseif (is_string($arrivalTime) && !empty($arrivalTime)) {
111
            $this->arrivalTime = $arrivalTime;
112
        }
113
    }
114
115
    /**
116
     * Load Arrival date info from \DateTime
117
     *
118
     * @param \DateTime $arrivalDate
119
     */
120
    public function setArrivalDate(\DateTime $arrivalDate)
121
    {
122
        $this->arrivalDate = ($arrivalDate->format('dmy') !== '000000') ? $arrivalDate->format('Ymd') : null;
123
        $time = $arrivalDate->format('Hi');
124
        if ($time !== '0000') {
125
            $this->arrivalTime = $time;
126
        }
127
    }
128
}
129