Test Failed
Push — master ( ebf0dd...8dc6a9 )
by Esteban De La Fuente
05:48
created

AutorizacionDte   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Test Coverage

Coverage 26.67%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
dl 0
loc 49
ccs 4
cts 15
cp 0.2667
rs 10
c 1
b 0
f 0
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getNumeroResolucion() 0 3 1
A getAmbiente() 0 5 2
A getFechaResolucion() 0 3 1
A __construct() 0 4 1
A toArray() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * LibreDTE: Biblioteca PHP (Núcleo).
7
 * Copyright (C) LibreDTE <https://www.libredte.cl>
8
 *
9
 * Este programa es software libre: usted puede redistribuirlo y/o modificarlo
10
 * bajo los términos de la Licencia Pública General Affero de GNU publicada por
11
 * la Fundación para el Software Libre, ya sea la versión 3 de la Licencia, o
12
 * (a su elección) cualquier versión posterior de la misma.
13
 *
14
 * Este programa se distribuye con la esperanza de que sea útil, pero SIN
15
 * GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD
16
 * PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de la Licencia Pública
17
 * General Affero de GNU para obtener una información más detallada.
18
 *
19
 * Debería haber recibido una copia de la Licencia Pública General Affero de
20
 * GNU junto a este programa.
21
 *
22
 * En caso contrario, consulte <http://www.gnu.org/licenses/agpl.html>.
23
 */
24
25
namespace libredte\lib\Core\Package\Billing\Component\TradingParties\Entity;
26
27
use libredte\lib\Core\Package\Billing\Component\Integration\Entity\Ambiente;
28
use libredte\lib\Core\Package\Billing\Component\TradingParties\Contract\AutorizacionDteInterface;
29
30
/**
31
 * Entidad para representar la información de autorización que da el SII a un
32
 * contribuyente para ser emisor de documentos tributarios electrónicos.
33
 *
34
 * Cada contribuyente puede tener 2 autorizaciones, una por cada ambiente.
35
 */
36
class AutorizacionDte implements AutorizacionDteInterface
37
{
38
    /**
39
     * Constructor de la entidad.
40
     *
41
     * @param string $fechaResolucion Fecha asignada por SII a la resolución.
42
     * @param integer $numeroResolucion Número de resolución.
43
     */
44 1
    public function __construct(
45
        private string $fechaResolucion,
46
        private int $numeroResolucion = 0
47
    ) {
48 1
    }
49
50
    /**
51
     * {@inheritdoc}
52
     */
53 1
    public function getFechaResolucion(): string
54
    {
55 1
        return $this->fechaResolucion;
56
    }
57
58
    /**
59
     * {@inheritdoc}
60
     */
61
    public function getNumeroResolucion(): int
62
    {
63
        return $this->numeroResolucion;
64
    }
65
66
    /**
67
     * {@inheritdoc}
68
     */
69
    public function getAmbiente(): Ambiente
70
    {
71
        return $this->numeroResolucion === 0
72
            ? Ambiente::PRODUCCION
73
            : Ambiente::CERTIFICACION
74
        ;
75
    }
76
77
    /**
78
     * {@inheritdoc}
79
     */
80
    public function toArray(): array
81
    {
82
        return [
83
            'FchResol' => $this->getFechaResolucion(),
84
            'NroResol' => $this->getNumeroResolucion(),
85
        ];
86
    }
87
}
88