Complex classes like Nota often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use Nota, and based on these observations, apply Extract Interface, too.
1 | <?php |
||
47 | abstract class Nota implements Node |
||
48 | { |
||
49 | |||
50 | /** |
||
51 | * Versão da nota fiscal |
||
52 | */ |
||
53 | const VERSAO = '3.10'; |
||
54 | |||
55 | /** |
||
56 | * Versão do aplicativo gerador da nota |
||
57 | */ |
||
58 | const APP_VERSAO = '1.0'; |
||
59 | |||
60 | /** |
||
61 | * Portal da nota fiscal |
||
62 | */ |
||
63 | const PORTAL = 'http://www.portalfiscal.inf.br/nfe'; |
||
64 | |||
65 | /** |
||
66 | * Código do modelo do Documento Fiscal. 55 = NF-e; 65 = NFC-e. |
||
67 | */ |
||
68 | const MODELO_NFE = 'nfe'; |
||
69 | const MODELO_NFCE = 'nfce'; |
||
70 | |||
71 | /** |
||
72 | * Tipo do Documento Fiscal (0 - entrada; 1 - saída) |
||
73 | */ |
||
74 | const TIPO_ENTRADA = 'entrada'; |
||
75 | const TIPO_SAIDA = 'saida'; |
||
76 | |||
77 | /** |
||
78 | * Identificador de Local de destino da operação |
||
79 | * (1-Interna;2-Interestadual;3-Exterior) |
||
80 | */ |
||
81 | const DESTINO_INTERNA = 'interna'; |
||
82 | const DESTINO_INTERESTADUAL = 'interestadual'; |
||
83 | const DESTINO_EXTERIOR = 'exterior'; |
||
84 | |||
85 | /** |
||
86 | * Indicador da forma de pagamento: 0 – pagamento à vista; 1 – pagamento à |
||
87 | * prazo; 2 – outros. |
||
88 | */ |
||
89 | const INDICADOR_AVISTA = 'avista'; |
||
90 | const INDICADOR_APRAZO = 'aprazo'; |
||
91 | const INDICADOR_OUTROS = 'outros'; |
||
92 | |||
93 | /** |
||
94 | * Formato de impressão do DANFE (0-sem DANFE;1-DANFe Retrato; 2-DANFe |
||
95 | * Paisagem;3-DANFe Simplificado;4-DANFe NFC-e;5-DANFe NFC-e em mensagem |
||
96 | * eletrônica) |
||
97 | */ |
||
98 | const FORMATO_NENHUMA = 'nenhuma'; |
||
99 | const FORMATO_RETRATO = 'retrato'; |
||
100 | const FORMATO_PAISAGEM = 'paisagem'; |
||
101 | const FORMATO_SIMPLIFICADO = 'simplificado'; |
||
102 | const FORMATO_CONSUMIDOR = 'consumidor'; |
||
103 | const FORMATO_MENSAGEM = 'mensagem'; |
||
104 | |||
105 | /** |
||
106 | * Forma de emissão da NF-e |
||
107 | */ |
||
108 | const EMISSAO_NORMAL = 'normal'; |
||
109 | const EMISSAO_CONTINGENCIA = 'contingencia'; |
||
110 | |||
111 | /** |
||
112 | * Identificação do Ambiente: 1 - Produção, 2 - Homologação |
||
113 | */ |
||
114 | const AMBIENTE_PRODUCAO = 'producao'; |
||
115 | const AMBIENTE_HOMOLOGACAO = 'homologacao'; |
||
116 | |||
117 | /** |
||
118 | * Finalidade da emissão da NF-e: 1 - NFe normal, 2 - NFe complementar, 3 - |
||
119 | * NFe de ajuste, 4 - Devolução/Retorno |
||
120 | */ |
||
121 | const FINALIDADE_NORMAL = 'normal'; |
||
122 | const FINALIDADE_COMPLEMENTAR = 'complementar'; |
||
123 | const FINALIDADE_AJUSTE = 'ajuste'; |
||
124 | const FINALIDADE_RETORNO = 'retorno'; |
||
125 | |||
126 | /** |
||
127 | * Indicador de presença do comprador no estabelecimento comercial no |
||
128 | * momento da oepração (0-Não se aplica, ex.: Nota Fiscal complementar ou |
||
129 | * de ajuste;1-Operação presencial;2-Não presencial, internet;3-Não |
||
130 | * presencial, teleatendimento;4-NFC-e entrega em domicílio;9-Não |
||
131 | * presencial, outros) |
||
132 | */ |
||
133 | const PRESENCA_NENHUM = 'nenhum'; |
||
134 | const PRESENCA_PRESENCIAL = 'presencial'; |
||
135 | const PRESENCA_INTERNET = 'internet'; |
||
136 | const PRESENCA_TELEATENDIMENTO = 'teleatendimento'; |
||
137 | const PRESENCA_ENTREGA = 'entrega'; |
||
138 | const PRESENCA_OUTROS = 'outros'; |
||
139 | |||
140 | /** |
||
141 | * Chave da nota fiscal |
||
142 | */ |
||
143 | private $id; |
||
144 | /** |
||
145 | * Número do Documento Fiscal |
||
146 | */ |
||
147 | private $numero; |
||
148 | /** |
||
149 | * Emitente da nota fiscal |
||
150 | */ |
||
151 | private $emitente; |
||
152 | /** |
||
153 | * Destinatário que receberá os produtos |
||
154 | */ |
||
155 | private $destinatario; |
||
156 | /** |
||
157 | * Produtos adicionados na nota |
||
158 | */ |
||
159 | private $produtos; |
||
160 | /** |
||
161 | * Informações de trasnporte da mercadoria |
||
162 | */ |
||
163 | private $transporte; |
||
164 | /** |
||
165 | * Pagamentos realizados |
||
166 | */ |
||
167 | private $pagamentos; |
||
168 | /** |
||
169 | * Data e Hora da saída ou de entrada da mercadoria / produto |
||
170 | */ |
||
171 | private $data_movimentacao; |
||
172 | /** |
||
173 | * Informar a data e hora de entrada em contingência |
||
174 | */ |
||
175 | private $data_contingencia; |
||
176 | /** |
||
177 | * Informar a Justificativa da entrada em contingência |
||
178 | */ |
||
179 | private $justificativa; |
||
180 | /** |
||
181 | * Código do modelo do Documento Fiscal. 55 = NF-e; 65 = NFC-e. |
||
182 | */ |
||
183 | private $modelo; |
||
184 | /** |
||
185 | * Tipo do Documento Fiscal (0 - entrada; 1 - saída) |
||
186 | */ |
||
187 | private $tipo; |
||
188 | /** |
||
189 | * Identificador de Local de destino da operação |
||
190 | * (1-Interna;2-Interestadual;3-Exterior) |
||
191 | */ |
||
192 | private $destino; |
||
193 | /** |
||
194 | * Descrição da Natureza da Operação |
||
195 | */ |
||
196 | private $natureza; |
||
197 | /** |
||
198 | * Código numérico que compõe a Chave de Acesso. Número aleatório gerado |
||
199 | * pelo emitente para cada NF-e. |
||
200 | */ |
||
201 | private $codigo; |
||
202 | /** |
||
203 | * Indicador da forma de pagamento: 0 – pagamento à vista; 1 – pagamento à |
||
204 | * prazo; 2 – outros. |
||
205 | */ |
||
206 | private $indicador; |
||
207 | /** |
||
208 | * Data e Hora de emissão do Documento Fiscal |
||
209 | */ |
||
210 | private $data_emissao; |
||
211 | /** |
||
212 | * Série do Documento Fiscal: série normal 0-889, Avulsa Fisco 890-899, |
||
213 | * SCAN 900-999 |
||
214 | */ |
||
215 | private $serie; |
||
216 | /** |
||
217 | * Formato de impressão do DANFE (0-sem DANFE;1-DANFe Retrato; 2-DANFe |
||
218 | * Paisagem;3-DANFe Simplificado;4-DANFe NFC-e;5-DANFe NFC-e em mensagem |
||
219 | * eletrônica) |
||
220 | */ |
||
221 | private $formato; |
||
222 | /** |
||
223 | * Forma de emissão da NF-e |
||
224 | */ |
||
225 | private $emissao; |
||
226 | /** |
||
227 | * Digito Verificador da Chave de Acesso da NF-e |
||
228 | */ |
||
229 | private $digito_verificador; |
||
230 | /** |
||
231 | * Identificação do Ambiente: 1 - Produção, 2 - Homologação |
||
232 | */ |
||
233 | private $ambiente; |
||
234 | /** |
||
235 | * Finalidade da emissão da NF-e: 1 - NFe normal, 2 - NFe complementar, 3 - |
||
236 | * NFe de ajuste, 4 - Devolução/Retorno |
||
237 | */ |
||
238 | private $finalidade; |
||
239 | /** |
||
240 | * Indica operação com consumidor final (0-Não;1-Consumidor Final) |
||
241 | */ |
||
242 | private $consumidor_final; |
||
243 | /** |
||
244 | * Indicador de presença do comprador no estabelecimento comercial no |
||
245 | * momento da oepração (0-Não se aplica, ex.: Nota Fiscal complementar ou |
||
246 | * de ajuste;1-Operação presencial;2-Não presencial, internet;3-Não |
||
247 | * presencial, teleatendimento;4-NFC-e entrega em domicílio;9-Não |
||
248 | * presencial, outros) |
||
249 | */ |
||
250 | private $presenca; |
||
251 | /** |
||
252 | * Dados dos totais da NF-e |
||
253 | */ |
||
254 | private $total; |
||
255 | /** |
||
256 | * Informações adicionais de interesse do Fisco |
||
257 | */ |
||
258 | private $adicionais; |
||
259 | /** |
||
260 | * Campo de uso livre do contribuinte informar o nome do campo no atributo |
||
261 | * xCampo e o conteúdo do campo no xTexto |
||
262 | */ |
||
263 | private $observacoes; |
||
264 | /** |
||
265 | * Campo de uso exclusivo do Fisco informar o nome do campo no atributo |
||
266 | * xCampo e o conteúdo do campo no xTexto |
||
267 | */ |
||
268 | private $informacoes; |
||
269 | /** |
||
270 | * Protocolo de autorização da nota, informado apenas quando a nota for |
||
271 | * enviada e autorizada |
||
272 | */ |
||
273 | private $protocolo; |
||
274 | |||
275 | /** |
||
276 | * Constroi uma instância de Nota vazia |
||
277 | * @param array $nota Array contendo dados da Nota |
||
278 | */ |
||
279 | 7 | public function __construct($nota = array()) |
|
283 | |||
284 | /** |
||
285 | * Chave da nota fiscal |
||
286 | * @param boolean $normalize informa se o id deve estar no formato do XML |
||
287 | * @return mixed id da Nota |
||
288 | */ |
||
289 | 5 | public function getID($normalize = false) |
|
296 | |||
297 | /** |
||
298 | * Altera o valor do ID para o informado no parâmetro |
||
299 | * @param mixed $id novo valor para ID |
||
300 | * @return Nota A própria instância da classe |
||
301 | */ |
||
302 | 7 | public function setID($id) |
|
307 | |||
308 | /** |
||
309 | * Número do Documento Fiscal |
||
310 | * @param boolean $normalize informa se o numero deve estar no formato do XML |
||
311 | * @return mixed numero da Nota |
||
312 | */ |
||
313 | 5 | public function getNumero($normalize = false) |
|
320 | |||
321 | /** |
||
322 | * Altera o valor do Numero para o informado no parâmetro |
||
323 | * @param mixed $numero novo valor para Numero |
||
324 | * @return Nota A própria instância da classe |
||
325 | */ |
||
326 | 7 | public function setNumero($numero) |
|
331 | |||
332 | /** |
||
333 | * Emitente da nota fiscal |
||
334 | * @return mixed emitente da Nota |
||
335 | */ |
||
336 | 5 | public function getEmitente() |
|
340 | |||
341 | /** |
||
342 | * Altera o valor do Emitente para o informado no parâmetro |
||
343 | * @param mixed $emitente novo valor para Emitente |
||
344 | * @return Nota A própria instância da classe |
||
345 | */ |
||
346 | 7 | public function setEmitente($emitente) |
|
351 | |||
352 | /** |
||
353 | * Destinatário que receberá os produtos |
||
354 | * @return mixed destinatario da Nota |
||
355 | */ |
||
356 | 5 | public function getDestinatario() |
|
360 | |||
361 | /** |
||
362 | * Altera o valor do Destinatario para o informado no parâmetro |
||
363 | * @param mixed $destinatario novo valor para Destinatario |
||
364 | * @return Nota A própria instância da classe |
||
365 | */ |
||
366 | 7 | public function setDestinatario($destinatario) |
|
371 | |||
372 | /** |
||
373 | * Produtos adicionados na nota |
||
374 | * @return mixed produtos da Nota |
||
375 | */ |
||
376 | 5 | public function getProdutos() |
|
380 | |||
381 | /** |
||
382 | * Altera o valor do Produtos para o informado no parâmetro |
||
383 | * @param mixed $produtos novo valor para Produtos |
||
384 | * @return Nota A própria instância da classe |
||
385 | */ |
||
386 | 7 | public function setProdutos($produtos) |
|
391 | |||
392 | /** |
||
393 | * Adiciona um(a) Produto para a lista de produto |
||
394 | * @param Produto $produto Instância do Produto que será adicionada |
||
395 | * @return Nota A própria instância da classe |
||
396 | */ |
||
397 | 2 | public function addProduto($produto) |
|
402 | |||
403 | /** |
||
404 | * Informações de trasnporte da mercadoria |
||
405 | * @return mixed transporte da Nota |
||
406 | */ |
||
407 | 5 | public function getTransporte() |
|
411 | |||
412 | /** |
||
413 | * Altera o valor da Transporte para o informado no parâmetro |
||
414 | * @param mixed $transporte novo valor para Transporte |
||
415 | * @return Nota A própria instância da classe |
||
416 | */ |
||
417 | 7 | public function setTransporte($transporte) |
|
422 | |||
423 | /** |
||
424 | * Pagamentos realizados |
||
425 | * @return mixed pagamentos da Nota |
||
426 | */ |
||
427 | 5 | public function getPagamentos() |
|
431 | |||
432 | /** |
||
433 | * Altera o valor do Pagamentos para o informado no parâmetro |
||
434 | * @param mixed $pagamentos novo valor para Pagamentos |
||
435 | * @return Nota A própria instância da classe |
||
436 | */ |
||
437 | 7 | public function setPagamentos($pagamentos) |
|
442 | |||
443 | /** |
||
444 | * Adiciona um(a) Pagamento para a lista de pagamento |
||
445 | * @param Pagamento $pagamento Instância do Pagamento que será adicionada |
||
446 | * @return Nota A própria instância da classe |
||
447 | */ |
||
448 | 2 | public function addPagamento($pagamento) |
|
453 | |||
454 | /** |
||
455 | * Data e Hora da saída ou de entrada da mercadoria / produto |
||
456 | * @param boolean $normalize informa se a data_movimentacao deve estar no formato do XML |
||
457 | * @return mixed data_movimentacao da Nota |
||
458 | */ |
||
459 | 5 | public function getDataMovimentacao($normalize = false) |
|
466 | |||
467 | /** |
||
468 | * Altera o valor da DataMovimentacao para o informado no parâmetro |
||
469 | * @param mixed $data_movimentacao novo valor para DataMovimentacao |
||
470 | * @return Nota A própria instância da classe |
||
471 | */ |
||
472 | 7 | public function setDataMovimentacao($data_movimentacao) |
|
480 | |||
481 | /** |
||
482 | * Informar a data e hora de entrada em contingência |
||
483 | * @param boolean $normalize informa se a data_contingencia deve estar no formato do XML |
||
484 | * @return mixed data_contingencia da Nota |
||
485 | */ |
||
486 | 2 | public function getDataContingencia($normalize = false) |
|
493 | |||
494 | /** |
||
495 | * Altera o valor da DataContingencia para o informado no parâmetro |
||
496 | * @param mixed $data_contingencia novo valor para DataContingencia |
||
497 | * @return Nota A própria instância da classe |
||
498 | */ |
||
499 | 7 | public function setDataContingencia($data_contingencia) |
|
507 | |||
508 | /** |
||
509 | * Informar a Justificativa da entrada em contingência |
||
510 | * @param boolean $normalize informa se a justificativa deve estar no formato do XML |
||
511 | * @return mixed justificativa da Nota |
||
512 | */ |
||
513 | 2 | public function getJustificativa($normalize = false) |
|
520 | |||
521 | /** |
||
522 | * Altera o valor da Justificativa para o informado no parâmetro |
||
523 | * @param mixed $justificativa novo valor para Justificativa |
||
524 | * @return Nota A própria instância da classe |
||
525 | */ |
||
526 | 7 | public function setJustificativa($justificativa) |
|
531 | |||
532 | /** |
||
533 | * Código do modelo do Documento Fiscal. 55 = NF-e; 65 = NFC-e. |
||
534 | * @param boolean $normalize informa se o modelo deve estar no formato do XML |
||
535 | * @return mixed modelo da Nota |
||
536 | */ |
||
537 | 5 | public function getModelo($normalize = false) |
|
550 | |||
551 | /** |
||
552 | * Altera o valor do Modelo para o informado no parâmetro |
||
553 | * @param mixed $modelo novo valor para Modelo |
||
554 | * @return Nota A própria instância da classe |
||
555 | */ |
||
556 | 7 | public function setModelo($modelo) |
|
569 | |||
570 | /** |
||
571 | * Tipo do Documento Fiscal (0 - entrada; 1 - saída) |
||
572 | * @param boolean $normalize informa se o tipo deve estar no formato do XML |
||
573 | * @return mixed tipo da Nota |
||
574 | */ |
||
575 | 5 | public function getTipo($normalize = false) |
|
588 | |||
589 | /** |
||
590 | * Altera o valor do Tipo para o informado no parâmetro |
||
591 | * @param mixed $tipo novo valor para Tipo |
||
592 | * @return Nota A própria instância da classe |
||
593 | */ |
||
594 | 7 | public function setTipo($tipo) |
|
607 | |||
608 | /** |
||
609 | * Identificador de Local de destino da operação |
||
610 | * (1-Interna;2-Interestadual;3-Exterior) |
||
611 | * @param boolean $normalize informa se o destino deve estar no formato do XML |
||
612 | * @return mixed destino da Nota |
||
613 | */ |
||
614 | 5 | public function getDestino($normalize = false) |
|
629 | |||
630 | /** |
||
631 | * Altera o valor do Destino para o informado no parâmetro |
||
632 | * @param mixed $destino novo valor para Destino |
||
633 | * @return Nota A própria instância da classe |
||
634 | */ |
||
635 | 7 | public function setDestino($destino) |
|
651 | |||
652 | /** |
||
653 | * Descrição da Natureza da Operação |
||
654 | * @param boolean $normalize informa se a natureza deve estar no formato do XML |
||
655 | * @return mixed natureza da Nota |
||
656 | */ |
||
657 | 5 | public function getNatureza($normalize = false) |
|
664 | |||
665 | /** |
||
666 | * Altera o valor da Natureza para o informado no parâmetro |
||
667 | * @param mixed $natureza novo valor para Natureza |
||
668 | * @return Nota A própria instância da classe |
||
669 | */ |
||
670 | 7 | public function setNatureza($natureza) |
|
675 | |||
676 | /** |
||
677 | * Código numérico que compõe a Chave de Acesso. Número aleatório gerado |
||
678 | * pelo emitente para cada NF-e. |
||
679 | * @param boolean $normalize informa se o codigo deve estar no formato do XML |
||
680 | * @return mixed codigo da Nota |
||
681 | */ |
||
682 | 5 | public function getCodigo($normalize = false) |
|
689 | |||
690 | /** |
||
691 | * Altera o valor do Codigo para o informado no parâmetro |
||
692 | * @param mixed $codigo novo valor para Codigo |
||
693 | * @return Nota A própria instância da classe |
||
694 | */ |
||
695 | 7 | public function setCodigo($codigo) |
|
700 | |||
701 | /** |
||
702 | * Indicador da forma de pagamento: 0 – pagamento à vista; 1 – pagamento à |
||
703 | * prazo; 2 – outros. |
||
704 | * @param boolean $normalize informa se o indicador deve estar no formato do XML |
||
705 | * @return mixed indicador da Nota |
||
706 | */ |
||
707 | 5 | public function getIndicador($normalize = false) |
|
722 | |||
723 | /** |
||
724 | * Altera o valor do Indicador para o informado no parâmetro |
||
725 | * @param mixed $indicador novo valor para Indicador |
||
726 | * @return Nota A própria instância da classe |
||
727 | */ |
||
728 | 7 | public function setIndicador($indicador) |
|
744 | |||
745 | /** |
||
746 | * Data e Hora de emissão do Documento Fiscal |
||
747 | * @param boolean $normalize informa se o data_emissao deve estar no formato do XML |
||
748 | * @return mixed data_emissao da Nota |
||
749 | */ |
||
750 | 5 | public function getDataEmissao($normalize = false) |
|
757 | |||
758 | /** |
||
759 | * Altera o valor do DataEmissao para o informado no parâmetro |
||
760 | * @param mixed $data_emissao novo valor para DataEmissao |
||
761 | * @return Nota A própria instância da classe |
||
762 | */ |
||
763 | 7 | public function setDataEmissao($data_emissao) |
|
771 | |||
772 | /** |
||
773 | * Série do Documento Fiscal: série normal 0-889, Avulsa Fisco 890-899, |
||
774 | * SCAN 900-999 |
||
775 | * @param boolean $normalize informa se o serie deve estar no formato do XML |
||
776 | * @return mixed serie da Nota |
||
777 | */ |
||
778 | 5 | public function getSerie($normalize = false) |
|
785 | |||
786 | /** |
||
787 | * Altera o valor do Serie para o informado no parâmetro |
||
788 | * @param mixed $serie novo valor para Serie |
||
789 | * @return Nota A própria instância da classe |
||
790 | */ |
||
791 | 7 | public function setSerie($serie) |
|
796 | |||
797 | /** |
||
798 | * Formato de impressão do DANFE (0-sem DANFE;1-DANFe Retrato; 2-DANFe |
||
799 | * Paisagem;3-DANFe Simplificado;4-DANFe NFC-e;5-DANFe NFC-e em mensagem |
||
800 | * eletrônica) |
||
801 | * @param boolean $normalize informa se o formato deve estar no formato do XML |
||
802 | * @return mixed formato da Nota |
||
803 | */ |
||
804 | 5 | public function getFormato($normalize = false) |
|
825 | |||
826 | /** |
||
827 | * Altera o valor do Formato para o informado no parâmetro |
||
828 | * @param mixed $formato novo valor para Formato |
||
829 | * @return Nota A própria instância da classe |
||
830 | */ |
||
831 | 7 | public function setFormato($formato) |
|
856 | |||
857 | /** |
||
858 | * Forma de emissão da NF-e |
||
859 | * @param boolean $normalize informa se o emissao deve estar no formato do XML |
||
860 | * @return mixed emissao da Nota |
||
861 | */ |
||
862 | 5 | public function getEmissao($normalize = false) |
|
875 | |||
876 | /** |
||
877 | * Altera o valor do Emissao para o informado no parâmetro |
||
878 | * @param mixed $emissao novo valor para Emissao |
||
879 | * @return Nota A própria instância da classe |
||
880 | */ |
||
881 | 7 | public function setEmissao($emissao) |
|
894 | |||
895 | /** |
||
896 | * Digito Verificador da Chave de Acesso da NF-e |
||
897 | * @param boolean $normalize informa se o digito_verificador deve estar no formato do XML |
||
898 | * @return mixed digito_verificador da Nota |
||
899 | */ |
||
900 | 5 | public function getDigitoVerificador($normalize = false) |
|
907 | |||
908 | /** |
||
909 | * Altera o valor do DigitoVerificador para o informado no parâmetro |
||
910 | * @param mixed $digito_verificador novo valor para DigitoVerificador |
||
911 | * @return Nota A própria instância da classe |
||
912 | */ |
||
913 | 7 | public function setDigitoVerificador($digito_verificador) |
|
918 | |||
919 | /** |
||
920 | * Identificação do Ambiente: 1 - Produção, 2 - Homologação |
||
921 | * @param boolean $normalize informa se o ambiente deve estar no formato do XML |
||
922 | * @return mixed ambiente da Nota |
||
923 | */ |
||
924 | 5 | public function getAmbiente($normalize = false) |
|
937 | |||
938 | /** |
||
939 | * Altera o valor do Ambiente para o informado no parâmetro |
||
940 | * @param mixed $ambiente novo valor para Ambiente |
||
941 | * @return Nota A própria instância da classe |
||
942 | */ |
||
943 | 7 | public function setAmbiente($ambiente) |
|
956 | |||
957 | /** |
||
958 | * Finalidade da emissão da NF-e: 1 - NFe normal, 2 - NFe complementar, 3 - |
||
959 | * NFe de ajuste, 4 - Devolução/Retorno |
||
960 | * @param boolean $normalize informa se a finalidade deve estar no formato do XML |
||
961 | * @return mixed finalidade da Nota |
||
962 | */ |
||
963 | 5 | public function getFinalidade($normalize = false) |
|
980 | |||
981 | /** |
||
982 | * Altera o valor da Finalidade para o informado no parâmetro |
||
983 | * @param mixed $finalidade novo valor para Finalidade |
||
984 | * @return Nota A própria instância da classe |
||
985 | */ |
||
986 | 7 | public function setFinalidade($finalidade) |
|
1005 | |||
1006 | /** |
||
1007 | * Indica operação com consumidor final (0-Não;1-Consumidor Final) |
||
1008 | * @param boolean $normalize informa se o consumidor_final deve estar no formato do XML |
||
1009 | * @return mixed consumidor_final da Nota |
||
1010 | */ |
||
1011 | 5 | public function getConsumidorFinal($normalize = false) |
|
1024 | |||
1025 | /** |
||
1026 | * Indica operação com consumidor final (0-Não;1-Consumidor Final) |
||
1027 | * @return boolean informa se o ConsumidorFinal está habilitado |
||
1028 | */ |
||
1029 | public function isConsumidorFinal() |
||
1033 | |||
1034 | /** |
||
1035 | * Altera o valor do ConsumidorFinal para o informado no parâmetro |
||
1036 | * @param mixed $consumidor_final novo valor para ConsumidorFinal |
||
1037 | * @return Nota A própria instância da classe |
||
1038 | */ |
||
1039 | 7 | public function setConsumidorFinal($consumidor_final) |
|
1047 | |||
1048 | /** |
||
1049 | * Indicador de presença do comprador no estabelecimento comercial no |
||
1050 | * momento da oepração (0-Não se aplica, ex.: Nota Fiscal complementar ou |
||
1051 | * de ajuste;1-Operação presencial;2-Não presencial, internet;3-Não |
||
1052 | * presencial, teleatendimento;4-NFC-e entrega em domicílio;9-Não |
||
1053 | * presencial, outros) |
||
1054 | * @param boolean $normalize informa se a presenca deve estar no formato do XML |
||
1055 | * @return mixed presenca da Nota |
||
1056 | */ |
||
1057 | 5 | public function getPresenca($normalize = false) |
|
1078 | |||
1079 | /** |
||
1080 | * Altera o valor da Presenca para o informado no parâmetro |
||
1081 | * @param mixed $presenca novo valor para Presenca |
||
1082 | * @return Nota A própria instância da classe |
||
1083 | */ |
||
1084 | 7 | public function setPresenca($presenca) |
|
1109 | |||
1110 | /** |
||
1111 | * Dados dos totais da NF-e |
||
1112 | * @return mixed total da Nota |
||
1113 | */ |
||
1114 | 5 | public function getTotal() |
|
1118 | |||
1119 | /** |
||
1120 | * Altera o valor do Total para o informado no parâmetro |
||
1121 | * @param mixed $total novo valor para Total |
||
1122 | * @return Nota A própria instância da classe |
||
1123 | */ |
||
1124 | 7 | public function setTotal($total) |
|
1129 | |||
1130 | /** |
||
1131 | * Informações adicionais de interesse do Fisco |
||
1132 | * @param boolean $normalize informa se a adicionais deve estar no formato do XML |
||
1133 | * @return mixed adicionais da Nota |
||
1134 | */ |
||
1135 | 5 | public function getAdicionais($normalize = false) |
|
1142 | |||
1143 | /** |
||
1144 | * Altera o valor da Adicionais para o informado no parâmetro |
||
1145 | * @param mixed $adicionais novo valor para Adicionais |
||
1146 | * @return Nota A própria instância da classe |
||
1147 | */ |
||
1148 | 7 | public function setAdicionais($adicionais) |
|
1153 | |||
1154 | /** |
||
1155 | * Campo de uso livre do contribuinte informar o nome do campo no atributo |
||
1156 | * xCampo e o conteúdo do campo no xTexto |
||
1157 | * @return mixed observacoes da Nota |
||
1158 | */ |
||
1159 | 5 | public function getObservacoes() |
|
1163 | |||
1164 | /** |
||
1165 | * Altera o valor da Observacoes para o informado no parâmetro |
||
1166 | * @param mixed $observacoes novo valor para Observacoes |
||
1167 | * @return Nota A própria instância da classe |
||
1168 | */ |
||
1169 | 7 | public function setObservacoes($observacoes) |
|
1174 | |||
1175 | /** |
||
1176 | * Adiciona um(a) Observacao para a lista de observacao |
||
1177 | * @param Observacao $observacao Instância da Observacao que será adicionada |
||
1178 | * @return Nota A própria instância da classe |
||
1179 | */ |
||
1180 | 2 | public function addObservacao($campo, $observacao) |
|
1181 | { |
||
1182 | 2 | $this->observacoes[] = array('campo' => $campo, 'valor' => $observacao); |
|
1183 | 2 | return $this; |
|
1184 | } |
||
1185 | |||
1186 | /** |
||
1187 | * Campo de uso exclusivo do Fisco informar o nome do campo no atributo |
||
1188 | * xCampo e o conteúdo do campo no xTexto |
||
1189 | * @return mixed informacoes da Nota |
||
1190 | */ |
||
1191 | 5 | public function getInformacoes() |
|
1195 | |||
1196 | /** |
||
1197 | * Altera o valor da Informacoes para o informado no parâmetro |
||
1198 | * @param mixed $informacoes novo valor para Informacoes |
||
1199 | * @return Nota A própria instância da classe |
||
1200 | */ |
||
1201 | 7 | public function setInformacoes($informacoes) |
|
1206 | |||
1207 | /** |
||
1208 | * Adiciona um(a) Informacao para a lista de informacao |
||
1209 | * @param Informacao $informacao Instância da Informacao que será adicionada |
||
1210 | * @return Nota A própria instância da classe |
||
1211 | */ |
||
1212 | 2 | public function addInformacao($campo, $informacao) |
|
1213 | { |
||
1214 | 2 | $this->informacoes[] = array('campo' => $campo, 'valor' => $informacao); |
|
1215 | 2 | return $this; |
|
1216 | } |
||
1217 | |||
1218 | /** |
||
1219 | * Protocolo de autorização da nota, informado apenas quando a nota for |
||
1220 | * enviada e autorizada |
||
1221 | */ |
||
1222 | 3 | public function getProtocolo() |
|
1226 | |||
1227 | 7 | public function setProtocolo($protocolo) |
|
1232 | |||
1233 | 2 | public function toArray($recursive = false) |
|
1306 | |||
1307 | 7 | public function fromArray($nota = array()) |
|
1466 | |||
1467 | 5 | public function gerarID() |
|
1485 | |||
1486 | 5 | protected function getTotais() |
|
1487 | { |
||
1546 | |||
1547 | 5 | private function getNodeTotal($name = null) |
|
1580 | |||
1581 | 5 | public function getNode($name = null) |
|
1721 | |||
1722 | 3 | public function loadNode($element, $name = null) |
|
1966 | |||
1967 | /** |
||
1968 | * Carrega um arquivo XML e preenche a nota com as informações dele |
||
1969 | * @param string $filename caminho do arquivo |
||
1970 | * @return DOMDocument objeto do documento carregado |
||
1971 | */ |
||
1972 | 1 | public function load($filename) |
|
1982 | |||
1983 | /** |
||
1984 | * Assina o XML com a assinatura eletrônica do tipo A1 |
||
1985 | */ |
||
1986 | 3 | public function assinar($dom = null) |
|
2002 | |||
2003 | /** |
||
2004 | * Valida o documento após assinar |
||
2005 | */ |
||
2006 | 1 | public function validar($dom) |
|
2033 | |||
2034 | /** |
||
2035 | * Adiciona o protocolo no XML da nota |
||
2036 | */ |
||
2037 | public function addProtocolo($dom) |
||
2067 | } |
||
2068 |
The number of this metric differs depending on the chosen design (inheritance vs. composition). For inheritance, the number should generally be a bit lower.
A high number indicates a reusable class. It might also make the class harder to change without breaking other classes though.