Detail::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 46

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 36
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 46
ccs 36
cts 36
cp 1
rs 9.1781
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
namespace MrPrompt\Centercob\Received\Partial;
3
4
use MrPrompt\ShipmentCommon\Base\Client;
5
use MrPrompt\ShipmentCommon\Base\Parcel;
6
use MrPrompt\ShipmentCommon\Base\Document;
7
use MrPrompt\ShipmentCommon\Base\Sequence;
8
use MrPrompt\ShipmentCommon\Base\Purchaser;
9
use MrPrompt\ShipmentCommon\Base\Dealership;
10
use MrPrompt\ShipmentCommon\Base\Occurrence;
11
use MrPrompt\ShipmentCommon\Base\Authorization;
12
use MrPrompt\ShipmentCommon\Base\ConsumerUnity;
13
14
/**
15
 * File detail
16
 *
17
 * @author Thiago Paes <[email protected]>
18
 */
19
class Detail extends \stdClass
20
{
21
    /**
22
     * Type of register
23
     *
24
     * @var string
25
     */
26
    const TYPE = 'D';
27
28
    /**
29
     * @var ConsumerUnity
30
     */
31
    private $consumerUnity;
32
33
    /**
34
     * @var Occurrence
35
     */
36
    private $occurrence;
37
38
    /**
39
     * @var Parcel
40
     */
41
    private $parcel;
42
43
    /**
44
     * @var Authorization
45
     */
46
    private $authorization;
47
48
    /**
49
     * @var Dealership
50
     */
51
    private $dealership;
52
53
    /**
54
     * @var Client
55
     */
56
    private $client;
57
58
    /**
59
     * @var Sequence
60
     */
61
    private $sequence;
62
63
    /**
64
     * @var Purchaser
65
     */
66
    private $purchaser;
67
68
    /**
69
     * Constructor
70
     * @param string $row
71
     */
72 17
    public function __construct($row)
73
    {
74 17
        $consumerUnity = new ConsumerUnity();
75 17
        $consumerUnity->setNumber((int) substr($row, 1, 25));
76
77 17
        $date       = substr($row, 28, 8);
78 17
        $occurrence = new Occurrence();
79 17
        $occurrence->setReturn(substr($row, 26, 2));
80 17
        $occurrence->setDate(\DateTime::createFromFormat('dmY', $date));
0 ignored issues
show
Security Bug introduced by
It seems like \DateTime::createFromFormat('dmY', $date) targeting DateTime::createFromFormat() can also be of type false; however, MrPrompt\ShipmentCommon\Base\Occurrence::setDate() does only seem to accept object<DateTime>, did you maybe forget to handle an error condition?
Loading history...
81 17
        $occurrence->setDescription(substr($row, 200, 50));
82
83 17
        $date   = substr($row, 126, 8);
84 17
        $parcel = new Parcel();
85 17
        $parcel->setPrice(substr($row, 54, 10));
86 17
        $parcel->setKey((int) substr($row, 257, 2));
87 17
        $parcel->setMaturity(\DateTime::createFromFormat('dmY', $date));
0 ignored issues
show
Security Bug introduced by
It seems like \DateTime::createFromFormat('dmY', $date) targeting DateTime::createFromFormat() can also be of type false; however, MrPrompt\ShipmentCommon\Base\Parcel::setMaturity() does only seem to accept object<DateTime>, did you maybe forget to handle an error condition?
Loading history...
88
89 17
        $document = new Document();
90 17
        $document->setNumber(preg_replace('/[^[:digit:]]/', '', substr($row, 134, 20)));
91
92 17
        $authorization = new Authorization();
93 17
        $authorization->setNumber((int) substr($row, 154, 10));
94
95 17
        $dealership = new Dealership();
96 17
        $dealership->setCode(substr($row, 164, 6));
97 17
        $dealership->setName(substr($row, 170, 30));
98
99 17
        $client = new Client();
100 17
        $client->setCode((int) substr($row, 369, 25));
101
102 17
        $purchaser = new Purchaser();
103 17
        $purchaser->setName(substr($row, 76, 50));
104 17
        $purchaser->setDocument($document);
105 17
        $purchaser->setSalaried(substr($row, 404, 1));
106
107 17
        $sequence = new Sequence(substr($row, 500, 6));
108
109 17
        $this->consumerUnity    = $consumerUnity;
110 17
        $this->occurrence       = $occurrence;
111 17
        $this->parcel           = $parcel;
112 17
        $this->authorization    = $authorization;
113 17
        $this->dealership       = $dealership;
114 17
        $this->client           = $client;
115 17
        $this->sequence         = $sequence;
116 17
        $this->purchaser        = $purchaser;
117 17
    }
118
119
    /**
120
     * @return ConsumerUnity
121
     */
122 1
    public function getConsumerUnity()
123
    {
124 1
        return $this->consumerUnity;
125
    }
126
127
    /**
128
     * @param ConsumerUnity $consumerUnity
129
     */
130 1
    public function setConsumerUnity(ConsumerUnity $consumerUnity)
131
    {
132 1
        $this->consumerUnity = $consumerUnity;
133 1
    }
134
135
    /**
136
     * @return Occurrence
137
     */
138 1
    public function getOccurrence()
139
    {
140 1
        return $this->occurrence;
141
    }
142
143
    /**
144
     * @param Occurrence $occurrence
145
     */
146 1
    public function setOccurrence(Occurrence $occurrence)
147
    {
148 1
        $this->occurrence = $occurrence;
149 1
    }
150
151
    /**
152
     * @return Parcel
153
     */
154 1
    public function getParcel()
155
    {
156 1
        return $this->parcel;
157
    }
158
159
    /**
160
     * @param Parcel $parcel
161
     */
162 1
    public function setParcel(Parcel $parcel)
163
    {
164 1
        $this->parcel = $parcel;
165 1
    }
166
167
    /**
168
     * @return Authorization
169
     */
170 1
    public function getAuthorization()
171
    {
172 1
        return $this->authorization;
173
    }
174
175
    /**
176
     * @param Authorization $authorization
177
     */
178 1
    public function setAuthorization(Authorization $authorization)
179
    {
180 1
        $this->authorization = $authorization;
181 1
    }
182
183
    /**
184
     * @return Dealership
185
     */
186 1
    public function getDealership()
187
    {
188 1
        return $this->dealership;
189
    }
190
191
    /**
192
     * @param Dealership $dealership
193
     */
194 1
    public function setDealership(Dealership $dealership)
195
    {
196 1
        $this->dealership = $dealership;
197 1
    }
198
199
    /**
200
     * @return Client
201
     */
202 1
    public function getClient()
203
    {
204 1
        return $this->client;
205
    }
206
207
    /**
208
     * @param Client $client
209
     */
210 1
    public function setClient(Client $client)
211
    {
212 1
        $this->client = $client;
213 1
    }
214
215
    /**
216
     * @return Sequence
217
     */
218 1
    public function getSequence()
219
    {
220 1
        return $this->sequence;
221
    }
222
223
    /**
224
     * @param Sequence $sequence
225
     */
226 1
    public function setSequence(Sequence $sequence)
227
    {
228 1
        $this->sequence = $sequence;
229 1
    }
230
231
    /**
232
     * @return Purchaser
233
     */
234 1
    public function getPurchaser()
235
    {
236 1
        return $this->purchaser;
237
    }
238
239
    /**
240
     * @param Purchaser $purchaser
241
     */
242 1
    public function setPurchaser(Purchaser $purchaser)
243
    {
244 1
        $this->purchaser = $purchaser;
245 1
    }
246
}
247