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

CTe   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\AbstractDocument;
6
use Brazanation\Documents\Cnpj;
7
use Brazanation\Documents\SpedAccessKey;
8
9
final class CTe extends AbstractAccessKey
10
{
11
    const LABEL = 'CTeAccessKey';
12
13
    /**
14
     * Generates a valid Sped Access Key.
15
     *
16
     * @param int       $state         IBGE state code.
17
     * @param \DateTime $generatedAt   Year and month when invoice was created.
18
     * @param Cnpj      $cnpj          Cnpj from issuer.
19
     * @param int       $sequence      Invoice sequence.
20
     * @param int       $invoiceNumber Invoice number.
21
     * @param int       $controlNumber Control number.
22
     *
23
     * @return NFe
24
     */
25 1
    public static function generate(
26
        $state,
27
        \DateTime $generatedAt,
28
        Cnpj $cnpj,
29
        $sequence,
30
        $invoiceNumber,
31
        $controlNumber
32
    ) {
33 1
        $accessKey = self::generateKey(
34
            $state,
35
            $generatedAt,
36
            $cnpj,
37 1
            Model::CTe(),
38
            $sequence,
39
            $invoiceNumber,
40
            $controlNumber
41
        );
42
43 1
        return new self("{$accessKey}");
44
    }
45
}
46