Completed
Pull Request — master (#24)
by Antonio Oertel
02:26
created

NFCe   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

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

1 Method

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