GroupInfos::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 20
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 20
ccs 0
cts 20
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 18
nc 1
nop 17
crap 2

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
3
namespace Gueststream\PMS\IQWare\API;
4
5
class GroupInfos
6
{
7
8
    /**
9
     * @var int $ID_Account
10
     */
11
    protected $ID_Account = null;
12
13
    /**
14
     * @var string $GrpID
15
     */
16
    protected $GrpID = null;
17
18
    /**
19
     * @var int $ID_RateCodeTmpl
20
     */
21
    protected $ID_RateCodeTmpl = null;
22
23
    /**
24
     * @var \DateTime $StartDate
25
     */
26
    protected $StartDate = null;
27
28
    /**
29
     * @var \DateTime $EndDate
30
     */
31
    protected $EndDate = null;
32
33
    /**
34
     * @var int $AccountNo
35
     */
36
    protected $AccountNo = null;
37
38
    /**
39
     * @var string $AccountName
40
     */
41
    protected $AccountName = null;
42
43
    /**
44
     * @var int $ManualType
45
     */
46
    protected $ManualType = null;
47
48
    /**
49
     * @var string $RateName
50
     */
51
    protected $RateName = null;
52
53
    /**
54
     * @var string $ShortRateName
55
     */
56
    protected $ShortRateName = null;
57
58
    /**
59
     * @var int $ID_RateReason
60
     */
61
    protected $ID_RateReason = null;
62
63
    /**
64
     * @var boolean $IsDefinitif
65
     */
66
    protected $IsDefinitif = null;
67
68
    /**
69
     * @var string $RateDescription
70
     */
71
    protected $RateDescription = null;
72
73
    /**
74
     * @var int $RateCurrencyID
75
     */
76
    protected $RateCurrencyID = null;
77
78
    /**
79
     * @var GroupReservations $GroupReservations
80
     */
81
    protected $GroupReservations = null;
82
83
    /**
84
     * @var GroupBalances $GroupBalances
85
     */
86
    protected $GroupBalances = null;
87
88
    /**
89
     * @var GroupRates $GroupRates
90
     */
91
    protected $GroupRates = null;
92
93
    /**
94
     * @param int $ID_Account
95
     * @param string $GrpID
96
     * @param int $ID_RateCodeTmpl
97
     * @param \DateTime $StartDate
98
     * @param \DateTime $EndDate
99
     * @param int $AccountNo
100
     * @param string $AccountName
101
     * @param int $ManualType
102
     * @param string $RateName
103
     * @param string $ShortRateName
104
     * @param int $ID_RateReason
105
     * @param boolean $IsDefinitif
106
     * @param string $RateDescription
107
     * @param int $RateCurrencyID
108
     * @param GroupReservations $GroupReservations
109
     * @param GroupBalances $GroupBalances
110
     * @param GroupRates $GroupRates
111
     */
112
    public function __construct($ID_Account, $GrpID, $ID_RateCodeTmpl, \DateTime $StartDate, \DateTime $EndDate, $AccountNo, $AccountName, $ManualType, $RateName, $ShortRateName, $ID_RateReason, $IsDefinitif, $RateDescription, $RateCurrencyID, $GroupReservations, $GroupBalances, $GroupRates)
113
    {
114
        $this->ID_Account = $ID_Account;
115
        $this->GrpID = $GrpID;
116
        $this->ID_RateCodeTmpl = $ID_RateCodeTmpl;
117
        $this->StartDate = $StartDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $StartDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $StartDate.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
118
        $this->EndDate = $EndDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $EndDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $EndDate.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
119
        $this->AccountNo = $AccountNo;
120
        $this->AccountName = $AccountName;
121
        $this->ManualType = $ManualType;
122
        $this->RateName = $RateName;
123
        $this->ShortRateName = $ShortRateName;
124
        $this->ID_RateReason = $ID_RateReason;
125
        $this->IsDefinitif = $IsDefinitif;
126
        $this->RateDescription = $RateDescription;
127
        $this->RateCurrencyID = $RateCurrencyID;
128
        $this->GroupReservations = $GroupReservations;
129
        $this->GroupBalances = $GroupBalances;
130
        $this->GroupRates = $GroupRates;
131
    }
132
133
    /**
134
     * @return int
135
     */
136
    public function getID_Account()
137
    {
138
        return $this->ID_Account;
139
    }
140
141
    /**
142
     * @param int $ID_Account
143
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
144
     */
145
    public function setID_Account($ID_Account)
146
    {
147
        $this->ID_Account = $ID_Account;
148
        return $this;
149
    }
150
151
    /**
152
     * @return string
153
     */
154
    public function getGrpID()
155
    {
156
        return $this->GrpID;
157
    }
158
159
    /**
160
     * @param string $GrpID
161
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
162
     */
163
    public function setGrpID($GrpID)
164
    {
165
        $this->GrpID = $GrpID;
166
        return $this;
167
    }
168
169
    /**
170
     * @return int
171
     */
172
    public function getID_RateCodeTmpl()
173
    {
174
        return $this->ID_RateCodeTmpl;
175
    }
176
177
    /**
178
     * @param int $ID_RateCodeTmpl
179
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
180
     */
181
    public function setID_RateCodeTmpl($ID_RateCodeTmpl)
182
    {
183
        $this->ID_RateCodeTmpl = $ID_RateCodeTmpl;
184
        return $this;
185
    }
186
187
    /**
188
     * @return \DateTime
189
     */
190
    public function getStartDate()
191
    {
192
        if ($this->StartDate == null) {
193
            return null;
194
        } else {
195
            try {
196
                return new \DateTime($this->StartDate);
197
            } catch (\Exception $e) {
198
                return false;
199
            }
200
        }
201
    }
202
203
    /**
204
     * @param \DateTime $StartDate
205
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
206
     */
207
    public function setStartDate(\DateTime $StartDate)
208
    {
209
        $this->StartDate = $StartDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $StartDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $StartDate.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
210
        return $this;
211
    }
212
213
    /**
214
     * @return \DateTime
215
     */
216
    public function getEndDate()
217
    {
218
        if ($this->EndDate == null) {
219
            return null;
220
        } else {
221
            try {
222
                return new \DateTime($this->EndDate);
223
            } catch (\Exception $e) {
224
                return false;
225
            }
226
        }
227
    }
228
229
    /**
230
     * @param \DateTime $EndDate
231
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
232
     */
233
    public function setEndDate(\DateTime $EndDate)
234
    {
235
        $this->EndDate = $EndDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $EndDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $EndDate.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
236
        return $this;
237
    }
238
239
    /**
240
     * @return int
241
     */
242
    public function getAccountNo()
243
    {
244
        return $this->AccountNo;
245
    }
246
247
    /**
248
     * @param int $AccountNo
249
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
250
     */
251
    public function setAccountNo($AccountNo)
252
    {
253
        $this->AccountNo = $AccountNo;
254
        return $this;
255
    }
256
257
    /**
258
     * @return string
259
     */
260
    public function getAccountName()
261
    {
262
        return $this->AccountName;
263
    }
264
265
    /**
266
     * @param string $AccountName
267
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
268
     */
269
    public function setAccountName($AccountName)
270
    {
271
        $this->AccountName = $AccountName;
272
        return $this;
273
    }
274
275
    /**
276
     * @return int
277
     */
278
    public function getManualType()
279
    {
280
        return $this->ManualType;
281
    }
282
283
    /**
284
     * @param int $ManualType
285
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
286
     */
287
    public function setManualType($ManualType)
288
    {
289
        $this->ManualType = $ManualType;
290
        return $this;
291
    }
292
293
    /**
294
     * @return string
295
     */
296
    public function getRateName()
297
    {
298
        return $this->RateName;
299
    }
300
301
    /**
302
     * @param string $RateName
303
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
304
     */
305
    public function setRateName($RateName)
306
    {
307
        $this->RateName = $RateName;
308
        return $this;
309
    }
310
311
    /**
312
     * @return string
313
     */
314
    public function getShortRateName()
315
    {
316
        return $this->ShortRateName;
317
    }
318
319
    /**
320
     * @param string $ShortRateName
321
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
322
     */
323
    public function setShortRateName($ShortRateName)
324
    {
325
        $this->ShortRateName = $ShortRateName;
326
        return $this;
327
    }
328
329
    /**
330
     * @return int
331
     */
332
    public function getID_RateReason()
333
    {
334
        return $this->ID_RateReason;
335
    }
336
337
    /**
338
     * @param int $ID_RateReason
339
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
340
     */
341
    public function setID_RateReason($ID_RateReason)
342
    {
343
        $this->ID_RateReason = $ID_RateReason;
344
        return $this;
345
    }
346
347
    /**
348
     * @return boolean
349
     */
350
    public function getIsDefinitif()
351
    {
352
        return $this->IsDefinitif;
353
    }
354
355
    /**
356
     * @param boolean $IsDefinitif
357
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
358
     */
359
    public function setIsDefinitif($IsDefinitif)
360
    {
361
        $this->IsDefinitif = $IsDefinitif;
362
        return $this;
363
    }
364
365
    /**
366
     * @return string
367
     */
368
    public function getRateDescription()
369
    {
370
        return $this->RateDescription;
371
    }
372
373
    /**
374
     * @param string $RateDescription
375
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
376
     */
377
    public function setRateDescription($RateDescription)
378
    {
379
        $this->RateDescription = $RateDescription;
380
        return $this;
381
    }
382
383
    /**
384
     * @return int
385
     */
386
    public function getRateCurrencyID()
387
    {
388
        return $this->RateCurrencyID;
389
    }
390
391
    /**
392
     * @param int $RateCurrencyID
393
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
394
     */
395
    public function setRateCurrencyID($RateCurrencyID)
396
    {
397
        $this->RateCurrencyID = $RateCurrencyID;
398
        return $this;
399
    }
400
401
    /**
402
     * @return GroupReservations
403
     */
404
    public function getGroupReservations()
405
    {
406
        return $this->GroupReservations;
407
    }
408
409
    /**
410
     * @param GroupReservations $GroupReservations
411
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
412
     */
413
    public function setGroupReservations($GroupReservations)
414
    {
415
        $this->GroupReservations = $GroupReservations;
416
        return $this;
417
    }
418
419
    /**
420
     * @return GroupBalances
421
     */
422
    public function getGroupBalances()
423
    {
424
        return $this->GroupBalances;
425
    }
426
427
    /**
428
     * @param GroupBalances $GroupBalances
429
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
430
     */
431
    public function setGroupBalances($GroupBalances)
432
    {
433
        $this->GroupBalances = $GroupBalances;
434
        return $this;
435
    }
436
437
    /**
438
     * @return GroupRates
439
     */
440
    public function getGroupRates()
441
    {
442
        return $this->GroupRates;
443
    }
444
445
    /**
446
     * @param GroupRates $GroupRates
447
     * @return \Gueststream\PMS\IQWare\API\GroupInfos
448
     */
449
    public function setGroupRates($GroupRates)
450
    {
451
        $this->GroupRates = $GroupRates;
452
        return $this;
453
    }
454
}
455