Header   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 157
Duplicated Lines 0 %

Test Coverage

Coverage 71.43%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 28
c 1
b 0
f 0
dl 0
loc 157
ccs 25
cts 35
cp 0.7143
rs 10
wmc 11

11 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 15 1
A getCustomer() 0 3 1
A setOccurrence() 0 3 1
A getOccurrence() 0 3 1
A getSequence() 0 3 1
A getCreated() 0 3 1
A getDealership() 0 3 1
A setCreated() 0 3 1
A setSequence() 0 3 1
A setDealership() 0 3 1
A setCustomer() 0 3 1
1
<?php
2
namespace MrPrompt\Celesc\Received\Partial;
3
4
use DateTime;
5
use MrPrompt\ShipmentCommon\Base\Dealership;
6
use MrPrompt\ShipmentCommon\Base\Occurrence;
7
use MrPrompt\ShipmentCommon\Base\Customer;
8
use MrPrompt\ShipmentCommon\Base\Sequence;
9
10
/**
11
 * File header
12
 *
13
 * @author Thiago Paes <[email protected]>
14
 */
15
class Header
16
{
17
    /**
18
     * Type of register
19
     *
20
     * @const string
21
     */
22
    const TYPE = '1';
23
24
    /**
25
     * Sequencial line
26
     *
27
     * @const int
28
     */
29
    const LINE = 1;
30
31
    /**
32
     * Charge Code
33
     *
34
     * @const int
35
     */
36
    const CODE = 2;
37
38
    /**
39
     * Customer Code
40
     *
41
     * @var Customer
42
     */
43
    private $customer;
44
45
    /**
46
     * Dealership
47
     *
48
     * @var Dealership
49
     */
50
    private $dealership;
51
52
    /**
53
     * Occurrence
54
     *
55
     * @var Occurrence
56
     */
57
    private $occurrence;
58
59
    /**
60
     * File date creation
61
     *
62
     * @var DateTime
63
     */
64
    private $created;
65
66
    /**
67
     * Sequence number on file
68
     *
69
     * @var Sequence
70
     */
71
    private $sequence;
72
73
    /**
74
     * Constructor
75
     * @param string $row
76
     */
77 7
    public function __construct($row)
78
    {
79 7
        $this->customer = new Customer();
80 7
        $this->customer->setCode((int) substr($row, 1, 56));
81 7
        $this->customer->setName(substr($row, 83, 60));
82
83 7
        $this->dealership = new Dealership();
84 7
        $this->dealership->setCode((int) substr($row, 57, 2));
85
86 7
        $this->created  = DateTime::createFromFormat('dmY', substr($row, 61, 8));
87
88 7
        $this->occurrence = new Occurrence();
89 7
        $this->occurrence->setReturn((int) substr($row, 81, 2));
90
91 7
        $this->sequence = new Sequence((int) substr($row, 144, 6));
92 7
    }
93
94
    /**
95
     * @return Customer
96
     */
97 1
    public function getCustomer()
98
    {
99 1
        return $this->customer;
100
    }
101
102
    /**
103
     * @param Customer $customer
104
     */
105 1
    public function setCustomer(Customer $customer)
106
    {
107 1
        $this->customer = $customer;
108 1
    }
109
110
    /**
111
     * @return Dealership
112
     */
113
    public function getDealership()
114
    {
115
        return $this->dealership;
116
    }
117
118
    /**
119
     * @param Dealership $dealership
120
     */
121
    public function setDealership(Dealership $dealership)
122
    {
123
        $this->dealership = $dealership;
124
    }
125
126
    /**
127
     * @return DateTime
128
     */
129 1
    public function getCreated()
130
    {
131 1
        return $this->created;
132
    }
133
134
    /**
135
     * @param DateTime $created
136
     */
137 1
    public function setCreated(DateTime $created)
138
    {
139 1
        $this->created = $created;
140 1
    }
141
142
    /**
143
     * @return Occurrence
144
     */
145
    public function getOccurrence()
146
    {
147
        return $this->occurrence;
148
    }
149
150
    /**
151
     * @param Occurrence $occurrence
152
     */
153
    public function setOccurrence(Occurrence $occurrence)
154
    {
155
        $this->occurrence = $occurrence;
156
    }
157
158
    /**
159
     * @return Sequence
160
     */
161 1
    public function getSequence()
162
    {
163 1
        return $this->sequence;
164
    }
165
166
    /**
167
     * @param Sequence $sequence
168
     */
169 1
    public function setSequence(Sequence $sequence)
170
    {
171 1
        $this->sequence = $sequence;
172 1
    }
173
}
174