1 | <?php |
||
34 | class Situacao extends Retorno |
||
35 | { |
||
36 | |||
37 | private $chave; |
||
38 | private $modelo; |
||
39 | |||
40 | const TAG_RETORNO = 'retConsSitNFe'; |
||
41 | |||
42 | 7 | public function __construct($situacao = array()) |
|
46 | |||
47 | /** |
||
48 | * Chaves de acesso da NF-e, compostas por: UF do emitente, AAMM da emissão |
||
49 | * da NFe, CNPJ do emitente, modelo, série e número da NF-e e código |
||
50 | * numérico+DV. |
||
51 | */ |
||
52 | 6 | public function getChave($normalize = false) |
|
59 | |||
60 | 7 | public function setChave($chave) |
|
65 | |||
66 | /** |
||
67 | * Código do modelo do Documento Fiscal. 55 = NF-e; 65 = NFC-e. |
||
68 | * @param boolean $normalize informa se o modelo deve estar no formato do XML |
||
69 | * @return mixed modelo do Envio |
||
70 | */ |
||
71 | 5 | public function getModelo($normalize = false) |
|
72 | { |
||
73 | 5 | if (!$normalize) { |
|
74 | 5 | return $this->modelo; |
|
75 | } |
||
76 | switch ($this->modelo) { |
||
77 | case Nota::MODELO_NFE: |
||
78 | return '55'; |
||
79 | case Nota::MODELO_NFCE: |
||
80 | return '65'; |
||
81 | } |
||
82 | return $this->modelo; |
||
83 | } |
||
84 | |||
85 | /** |
||
86 | * Altera o valor do Modelo para o informado no parâmetro |
||
87 | * @param mixed $modelo novo valor para Modelo |
||
88 | * @return Envio A própria instância da classe |
||
89 | */ |
||
90 | 7 | public function setModelo($modelo) |
|
103 | |||
104 | 2 | public function toArray($recursive = false) |
|
111 | |||
112 | 7 | public function fromArray($situacao = array()) |
|
113 | { |
||
114 | 7 | if ($situacao instanceof Situacao) { |
|
115 | 1 | $situacao = $situacao->toArray(); |
|
116 | 7 | } elseif (!is_array($situacao)) { |
|
117 | 1 | return $this; |
|
118 | } |
||
119 | 7 | parent::fromArray($situacao); |
|
120 | 7 | if (isset($situacao['chave'])) { |
|
121 | 1 | $this->setChave($situacao['chave']); |
|
122 | } else { |
||
123 | 7 | $this->setChave(null); |
|
124 | } |
||
125 | 7 | if (isset($situacao['modelo'])) { |
|
126 | 1 | $this->setModelo($situacao['modelo']); |
|
127 | } else { |
||
128 | 7 | $this->setModelo(null); |
|
129 | } |
||
130 | 7 | return $this; |
|
131 | } |
||
132 | |||
133 | 5 | public function envia($dom) |
|
155 | |||
156 | 6 | public function consulta($nota = null) |
|
157 | { |
||
158 | 6 | if (!is_null($nota)) { |
|
159 | 6 | $this->setChave($nota->getID()); |
|
160 | 6 | $this->setAmbiente($nota->getAmbiente()); |
|
161 | 6 | $this->setModelo($nota->getModelo()); |
|
162 | } |
||
163 | 6 | $dom = $this->getNode()->ownerDocument; |
|
164 | 6 | $dom = $this->validar($dom); |
|
165 | 5 | $retorno = $this->envia($dom); |
|
166 | 5 | if ($retorno instanceof Protocolo && $retorno->isAutorizado() && !is_null($nota)) { |
|
167 | 2 | $nota->setProtocolo($retorno); |
|
168 | } |
||
169 | 5 | return $retorno; |
|
170 | } |
||
171 | |||
172 | 6 | public function getNode($name = null) |
|
187 | |||
188 | 5 | public function loadNode($element, $name = null) |
|
195 | |||
196 | /** |
||
197 | * Valida o documento após assinar |
||
198 | */ |
||
199 | 6 | public function validar($dom) |
|
222 | } |
||
223 |