ChequeDetail::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 12
ccs 0
cts 12
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 10
nc 1
nop 9
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 ChequeDetail
6
{
7
8
    /**
9
     * @var int $TrnNo
10
     */
11
    protected $TrnNo = null;
12
13
    /**
14
     * @var int $ID_Currency
15
     */
16
    protected $ID_Currency = null;
17
18
    /**
19
     * @var string $Name
20
     */
21
    protected $Name = null;
22
23
    /**
24
     * @var string $Reference
25
     */
26
    protected $Reference = null;
27
28
    /**
29
     * @var string $Comment
30
     */
31
    protected $Comment = null;
32
33
    /**
34
     * @var \DateTime $PostingDate
35
     */
36
    protected $PostingDate = null;
37
38
    /**
39
     * @var \DateTime $AccountingDate
40
     */
41
    protected $AccountingDate = null;
42
43
    /**
44
     * @var float $Amount
45
     */
46
    protected $Amount = null;
47
48
    /**
49
     * @var float $AmountMemo
50
     */
51
    protected $AmountMemo = null;
52
53
    /**
54
     * @param int $TrnNo
55
     * @param int $ID_Currency
56
     * @param string $Name
57
     * @param string $Reference
58
     * @param string $Comment
59
     * @param \DateTime $PostingDate
60
     * @param \DateTime $AccountingDate
61
     * @param float $Amount
62
     * @param float $AmountMemo
63
     */
64
    public function __construct($TrnNo, $ID_Currency, $Name, $Reference, $Comment, \DateTime $PostingDate, \DateTime $AccountingDate, $Amount, $AmountMemo)
65
    {
66
        $this->TrnNo = $TrnNo;
67
        $this->ID_Currency = $ID_Currency;
68
        $this->Name = $Name;
69
        $this->Reference = $Reference;
70
        $this->Comment = $Comment;
71
        $this->PostingDate = $PostingDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $PostingDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $PostingDate.

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...
72
        $this->AccountingDate = $AccountingDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $AccountingDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $AccountingDate.

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...
73
        $this->Amount = $Amount;
74
        $this->AmountMemo = $AmountMemo;
75
    }
76
77
    /**
78
     * @return int
79
     */
80
    public function getTrnNo()
81
    {
82
        return $this->TrnNo;
83
    }
84
85
    /**
86
     * @param int $TrnNo
87
     * @return \Gueststream\PMS\IQWare\API\ChequeDetail
88
     */
89
    public function setTrnNo($TrnNo)
90
    {
91
        $this->TrnNo = $TrnNo;
92
        return $this;
93
    }
94
95
    /**
96
     * @return int
97
     */
98
    public function getID_Currency()
99
    {
100
        return $this->ID_Currency;
101
    }
102
103
    /**
104
     * @param int $ID_Currency
105
     * @return \Gueststream\PMS\IQWare\API\ChequeDetail
106
     */
107
    public function setID_Currency($ID_Currency)
108
    {
109
        $this->ID_Currency = $ID_Currency;
110
        return $this;
111
    }
112
113
    /**
114
     * @return string
115
     */
116
    public function getName()
117
    {
118
        return $this->Name;
119
    }
120
121
    /**
122
     * @param string $Name
123
     * @return \Gueststream\PMS\IQWare\API\ChequeDetail
124
     */
125
    public function setName($Name)
126
    {
127
        $this->Name = $Name;
128
        return $this;
129
    }
130
131
    /**
132
     * @return string
133
     */
134
    public function getReference()
135
    {
136
        return $this->Reference;
137
    }
138
139
    /**
140
     * @param string $Reference
141
     * @return \Gueststream\PMS\IQWare\API\ChequeDetail
142
     */
143
    public function setReference($Reference)
144
    {
145
        $this->Reference = $Reference;
146
        return $this;
147
    }
148
149
    /**
150
     * @return string
151
     */
152
    public function getComment()
153
    {
154
        return $this->Comment;
155
    }
156
157
    /**
158
     * @param string $Comment
159
     * @return \Gueststream\PMS\IQWare\API\ChequeDetail
160
     */
161
    public function setComment($Comment)
162
    {
163
        $this->Comment = $Comment;
164
        return $this;
165
    }
166
167
    /**
168
     * @return \DateTime
169
     */
170
    public function getPostingDate()
171
    {
172
        if ($this->PostingDate == null) {
173
            return null;
174
        } else {
175
            try {
176
                return new \DateTime($this->PostingDate);
177
            } catch (\Exception $e) {
178
                return false;
179
            }
180
        }
181
    }
182
183
    /**
184
     * @param \DateTime $PostingDate
185
     * @return \Gueststream\PMS\IQWare\API\ChequeDetail
186
     */
187
    public function setPostingDate(\DateTime $PostingDate)
188
    {
189
        $this->PostingDate = $PostingDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $PostingDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $PostingDate.

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...
190
        return $this;
191
    }
192
193
    /**
194
     * @return \DateTime
195
     */
196
    public function getAccountingDate()
197
    {
198
        if ($this->AccountingDate == null) {
199
            return null;
200
        } else {
201
            try {
202
                return new \DateTime($this->AccountingDate);
203
            } catch (\Exception $e) {
204
                return false;
205
            }
206
        }
207
    }
208
209
    /**
210
     * @param \DateTime $AccountingDate
211
     * @return \Gueststream\PMS\IQWare\API\ChequeDetail
212
     */
213
    public function setAccountingDate(\DateTime $AccountingDate)
214
    {
215
        $this->AccountingDate = $AccountingDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $AccountingDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $AccountingDate.

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...
216
        return $this;
217
    }
218
219
    /**
220
     * @return float
221
     */
222
    public function getAmount()
223
    {
224
        return $this->Amount;
225
    }
226
227
    /**
228
     * @param float $Amount
229
     * @return \Gueststream\PMS\IQWare\API\ChequeDetail
230
     */
231
    public function setAmount($Amount)
232
    {
233
        $this->Amount = $Amount;
234
        return $this;
235
    }
236
237
    /**
238
     * @return float
239
     */
240
    public function getAmountMemo()
241
    {
242
        return $this->AmountMemo;
243
    }
244
245
    /**
246
     * @param float $AmountMemo
247
     * @return \Gueststream\PMS\IQWare\API\ChequeDetail
248
     */
249
    public function setAmountMemo($AmountMemo)
250
    {
251
        $this->AmountMemo = $AmountMemo;
252
        return $this;
253
    }
254
}
255