Completed
Pull Request — master (#28)
by Antonio Oertel
02:19
created

NFe   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 2
dl 0
loc 45
ccs 6
cts 6
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A defaultModel() 0 4 1
A generate() 0 22 1
1
<?php
2
3
namespace Brazanation\Documents\Sped;
4
5
use Brazanation\Documents\Cnpj;
6
7
final class NFe extends AbstractAccessKey
8
{
9
    const LABEL = 'NFe';
10
11 5
    protected function defaultModel()
12
    {
13 5
        return Model::NFe();
14
    }
15
16
    /**
17
     * Generates a valid Sped Access Key.
18
     *
19
     * @param int          $state         IBGE state code.
20
     * @param \DateTime    $generatedAt   Year and month when invoice was created.
21
     * @param Cnpj         $cnpj          Cnpj from issuer.
22
     * @param int          $sequence      Invoice sequence.
23
     * @param int          $invoiceNumber Invoice number.
24
     * @param EmissionType $emissionType  Emission Type.
25
     * @param int          $controlNumber Control number.
26
     *
27
     * @return NFe
28
     */
29 1
    public static function generate(
30
        $state,
31
        \DateTime $generatedAt,
32
        Cnpj $cnpj,
33
        $sequence,
34
        $invoiceNumber,
35
        EmissionType $emissionType,
36
        $controlNumber
37
    ) {
38 1
        $accessKey = self::generateKey(
39
            $state,
40
            $generatedAt,
41
            $cnpj,
42 1
            Model::NFe(),
43
            $sequence,
44
            $invoiceNumber,
45
            $emissionType,
46
            $controlNumber
47
        );
48
49 1
        return new self("{$accessKey}");
50
    }
51
}
52