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 |
||
48 | abstract class Nota implements Node |
||
49 | { |
||
50 | |||
51 | /** |
||
52 | * Versão da nota fiscal |
||
53 | */ |
||
54 | const VERSAO = '4.00'; |
||
55 | |||
56 | /** |
||
57 | * Versão do aplicativo gerador da nota |
||
58 | */ |
||
59 | const APP_VERSAO = '1.0'; |
||
60 | |||
61 | /** |
||
62 | * Portal da nota fiscal |
||
63 | */ |
||
64 | const PORTAL = 'http://www.portalfiscal.inf.br/nfe'; |
||
65 | |||
66 | /** |
||
67 | * Código do modelo do Documento Fiscal. 55 = NF-e; 65 = NFC-e. |
||
68 | */ |
||
69 | const MODELO_NFE = 'nfe'; |
||
70 | const MODELO_NFCE = 'nfce'; |
||
71 | |||
72 | /** |
||
73 | * Tipo do Documento Fiscal (0 - entrada; 1 - saída) |
||
74 | */ |
||
75 | const TIPO_ENTRADA = 'entrada'; |
||
76 | const TIPO_SAIDA = 'saida'; |
||
77 | |||
78 | /** |
||
79 | * Identificador de Local de destino da operação |
||
80 | * (1-Interna;2-Interestadual;3-Exterior) |
||
81 | */ |
||
82 | const DESTINO_INTERNA = 'interna'; |
||
83 | const DESTINO_INTERESTADUAL = 'interestadual'; |
||
84 | const DESTINO_EXTERIOR = 'exterior'; |
||
85 | |||
86 | /** |
||
87 | * Formato de impressão do DANFE (0-sem DANFE;1-DANFe Retrato; 2-DANFe |
||
88 | * Paisagem;3-DANFe Simplificado;4-DANFe NFC-e;5-DANFe NFC-e em mensagem |
||
89 | * eletrônica) |
||
90 | */ |
||
91 | const FORMATO_NENHUMA = 'nenhuma'; |
||
92 | const FORMATO_RETRATO = 'retrato'; |
||
93 | const FORMATO_PAISAGEM = 'paisagem'; |
||
94 | const FORMATO_SIMPLIFICADO = 'simplificado'; |
||
95 | const FORMATO_CONSUMIDOR = 'consumidor'; |
||
96 | const FORMATO_MENSAGEM = 'mensagem'; |
||
97 | |||
98 | /** |
||
99 | * Forma de emissão da NF-e |
||
100 | */ |
||
101 | const EMISSAO_NORMAL = 'normal'; |
||
102 | const EMISSAO_CONTINGENCIA = 'contingencia'; |
||
103 | |||
104 | /** |
||
105 | * Identificação do Ambiente: 1 - Produção, 2 - Homologação |
||
106 | */ |
||
107 | const AMBIENTE_PRODUCAO = 'producao'; |
||
108 | const AMBIENTE_HOMOLOGACAO = 'homologacao'; |
||
109 | |||
110 | /** |
||
111 | * Finalidade da emissão da NF-e: 1 - NFe normal, 2 - NFe complementar, 3 - |
||
112 | * NFe de ajuste, 4 - Devolução/Retorno |
||
113 | */ |
||
114 | const FINALIDADE_NORMAL = 'normal'; |
||
115 | const FINALIDADE_COMPLEMENTAR = 'complementar'; |
||
116 | const FINALIDADE_AJUSTE = 'ajuste'; |
||
117 | const FINALIDADE_RETORNO = 'retorno'; |
||
118 | |||
119 | /** |
||
120 | * Indicador de presença do comprador no estabelecimento comercial no |
||
121 | * momento da operação (0-Não se aplica ex.: Nota Fiscal complementar ou de |
||
122 | * ajuste;1-Operação presencial;2-Não presencial, internet;3-Não |
||
123 | * presencial, teleatendimento;4-NFC-e entrega em domicílio;5-Operação |
||
124 | * presencial, fora do estabelecimento;9-Não presencial, outros) |
||
125 | */ |
||
126 | const PRESENCA_NENHUM = 'nenhum'; |
||
127 | const PRESENCA_PRESENCIAL = 'presencial'; |
||
128 | const PRESENCA_INTERNET = 'internet'; |
||
129 | const PRESENCA_TELEATENDIMENTO = 'teleatendimento'; |
||
130 | const PRESENCA_ENTREGA = 'entrega'; |
||
131 | const PRESENCA_AMBULANTE = 'ambulante'; |
||
132 | const PRESENCA_OUTROS = 'outros'; |
||
133 | |||
134 | /** |
||
135 | * Chave da nota fiscal |
||
136 | */ |
||
137 | private $id; |
||
138 | /** |
||
139 | * Número do Documento Fiscal |
||
140 | */ |
||
141 | private $numero; |
||
142 | /** |
||
143 | * Emitente da nota fiscal |
||
144 | */ |
||
145 | private $emitente; |
||
146 | /** |
||
147 | * Destinatário que receberá os produtos |
||
148 | */ |
||
149 | private $destinatario; |
||
150 | /** |
||
151 | * Grupo de informações do responsável técnico pelo sistema |
||
152 | */ |
||
153 | private $responsavel; |
||
154 | /** |
||
155 | * Produtos adicionados na nota |
||
156 | */ |
||
157 | private $produtos; |
||
158 | /** |
||
159 | * Informações de trasnporte da mercadoria |
||
160 | */ |
||
161 | private $transporte; |
||
162 | /** |
||
163 | * Pagamentos realizados |
||
164 | */ |
||
165 | private $pagamentos; |
||
166 | /** |
||
167 | * Data e Hora da saída ou de entrada da mercadoria / produto |
||
168 | */ |
||
169 | private $data_movimentacao; |
||
170 | /** |
||
171 | * Informar a data e hora de entrada em contingência |
||
172 | */ |
||
173 | private $data_contingencia; |
||
174 | /** |
||
175 | * Informar a Justificativa da entrada em contingência |
||
176 | */ |
||
177 | private $justificativa; |
||
178 | /** |
||
179 | * Código do modelo do Documento Fiscal. 55 = NF-e; 65 = NFC-e. |
||
180 | */ |
||
181 | private $modelo; |
||
182 | /** |
||
183 | * Tipo do Documento Fiscal (0 - entrada; 1 - saída) |
||
184 | */ |
||
185 | private $tipo; |
||
186 | /** |
||
187 | * Identificador de Local de destino da operação |
||
188 | * (1-Interna;2-Interestadual;3-Exterior) |
||
189 | */ |
||
190 | private $destino; |
||
191 | /** |
||
192 | * Descrição da Natureza da Operação |
||
193 | */ |
||
194 | private $natureza; |
||
195 | /** |
||
196 | * Código numérico que compõe a Chave de Acesso. Número aleatório gerado |
||
197 | * pelo emitente para cada NF-e. |
||
198 | */ |
||
199 | private $codigo; |
||
200 | /** |
||
201 | * Data e Hora de emissão do Documento Fiscal |
||
202 | */ |
||
203 | private $data_emissao; |
||
204 | /** |
||
205 | * Série do Documento Fiscal: série normal 0-889, Avulsa Fisco 890-899, |
||
206 | * SCAN 900-999 |
||
207 | */ |
||
208 | private $serie; |
||
209 | /** |
||
210 | * Formato de impressão do DANFE (0-sem DANFE;1-DANFe Retrato; 2-DANFe |
||
211 | * Paisagem;3-DANFe Simplificado;4-DANFe NFC-e;5-DANFe NFC-e em mensagem |
||
212 | * eletrônica) |
||
213 | */ |
||
214 | private $formato; |
||
215 | /** |
||
216 | * Forma de emissão da NF-e |
||
217 | */ |
||
218 | private $emissao; |
||
219 | /** |
||
220 | * Digito Verificador da Chave de Acesso da NF-e |
||
221 | */ |
||
222 | private $digito_verificador; |
||
223 | /** |
||
224 | * Identificação do Ambiente: 1 - Produção, 2 - Homologação |
||
225 | */ |
||
226 | private $ambiente; |
||
227 | /** |
||
228 | * Finalidade da emissão da NF-e: 1 - NFe normal, 2 - NFe complementar, 3 - |
||
229 | * NFe de ajuste, 4 - Devolução/Retorno |
||
230 | */ |
||
231 | private $finalidade; |
||
232 | /** |
||
233 | * Indica operação com consumidor final (0-Não;1-Consumidor Final) |
||
234 | */ |
||
235 | private $consumidor_final; |
||
236 | /** |
||
237 | * Indicador de presença do comprador no estabelecimento comercial no |
||
238 | * momento da oepração (0-Não se aplica, ex.: Nota Fiscal complementar ou |
||
239 | * de ajuste;1-Operação presencial;2-Não presencial, internet;3-Não |
||
240 | * presencial, teleatendimento;4-NFC-e entrega em domicílio;9-Não |
||
241 | * presencial, outros) |
||
242 | */ |
||
243 | private $presenca; |
||
244 | /** |
||
245 | * Dados dos totais da NF-e |
||
246 | */ |
||
247 | private $total; |
||
248 | /** |
||
249 | * Informações adicionais de interesse do Fisco |
||
250 | */ |
||
251 | private $adicionais; |
||
252 | /** |
||
253 | * Campo de uso livre do contribuinte informar o nome do campo no atributo |
||
254 | * xCampo e o conteúdo do campo no xTexto |
||
255 | */ |
||
256 | private $observacoes; |
||
257 | /** |
||
258 | * Campo de uso exclusivo do Fisco informar o nome do campo no atributo |
||
259 | * xCampo e o conteúdo do campo no xTexto |
||
260 | */ |
||
261 | private $informacoes; |
||
262 | /** |
||
263 | * Protocolo de autorização da nota, informado apenas quando a nota for |
||
264 | * enviada e autorizada |
||
265 | */ |
||
266 | private $protocolo; |
||
267 | |||
268 | /** |
||
269 | * Constroi uma instância de Nota vazia |
||
270 | * @param array $nota Array contendo dados da Nota |
||
271 | */ |
||
272 | 35 | public function __construct($nota = []) |
|
276 | |||
277 | /** |
||
278 | * Chave da nota fiscal |
||
279 | * @param boolean $normalize informa se o id deve estar no formato do XML |
||
280 | * @return mixed id da Nota |
||
281 | */ |
||
282 | 33 | public function getID($normalize = false) |
|
289 | |||
290 | /** |
||
291 | * Altera o valor do ID para o informado no parâmetro |
||
292 | * @param mixed $id novo valor para ID |
||
293 | * @return Nota A própria instância da classe |
||
294 | */ |
||
295 | 35 | public function setID($id) |
|
300 | |||
301 | /** |
||
302 | * Número do Documento Fiscal |
||
303 | * @param boolean $normalize informa se o numero deve estar no formato do XML |
||
304 | * @return mixed numero da Nota |
||
305 | */ |
||
306 | 33 | public function getNumero($normalize = false) |
|
313 | |||
314 | /** |
||
315 | * Altera o valor do Numero para o informado no parâmetro |
||
316 | * @param mixed $numero novo valor para Numero |
||
317 | * @return Nota A própria instância da classe |
||
318 | */ |
||
319 | 35 | public function setNumero($numero) |
|
324 | |||
325 | /** |
||
326 | * Emitente da nota fiscal |
||
327 | * @return mixed emitente da Nota |
||
328 | */ |
||
329 | 33 | public function getEmitente() |
|
333 | |||
334 | /** |
||
335 | * Altera o valor do Emitente para o informado no parâmetro |
||
336 | * @param mixed $emitente novo valor para Emitente |
||
337 | * @return Nota A própria instância da classe |
||
338 | */ |
||
339 | 35 | public function setEmitente($emitente) |
|
344 | |||
345 | /** |
||
346 | * Destinatário que receberá os produtos |
||
347 | * @return mixed destinatario da Nota |
||
348 | */ |
||
349 | 33 | public function getDestinatario() |
|
353 | |||
354 | /** |
||
355 | * Altera o valor do Destinatario para o informado no parâmetro |
||
356 | * @param mixed $destinatario novo valor para Destinatario |
||
357 | * @return Nota A própria instância da classe |
||
358 | */ |
||
359 | 35 | public function setDestinatario($destinatario) |
|
364 | |||
365 | /** |
||
366 | * Grupo de informações do responsável técnico pelo sistema |
||
367 | * @return mixed responsável da Nota |
||
368 | */ |
||
369 | 33 | public function getResponsavel() |
|
373 | |||
374 | /** |
||
375 | * Altera o valor do grupo de informações do responsável técnico pelo sistema |
||
376 | * @param mixed $responsavel novo valor para grupo de informações do responsável |
||
377 | * @return Nota A própria instância da classe |
||
378 | */ |
||
379 | 35 | public function setResponsavel($responsavel) |
|
384 | |||
385 | /** |
||
386 | * Produtos adicionados na nota |
||
387 | * @return \NFe\Entity\Produto[] produtos da Nota |
||
388 | */ |
||
389 | 33 | public function getProdutos() |
|
393 | |||
394 | /** |
||
395 | * Altera o valor do Produtos para o informado no parâmetro |
||
396 | * @param mixed $produtos novo valor para Produtos |
||
397 | * @return Nota A própria instância da classe |
||
398 | */ |
||
399 | 35 | public function setProdutos($produtos) |
|
404 | |||
405 | /** |
||
406 | * Adiciona um(a) Produto para a lista de produto |
||
407 | * @param Produto $produto Instância do Produto que será adicionada |
||
408 | * @return Nota A própria instância da classe |
||
409 | */ |
||
410 | 6 | public function addProduto($produto) |
|
415 | |||
416 | /** |
||
417 | * Informações de trasnporte da mercadoria |
||
418 | * @return mixed transporte da Nota |
||
419 | */ |
||
420 | 33 | public function getTransporte() |
|
424 | |||
425 | /** |
||
426 | * Altera o valor da Transporte para o informado no parâmetro |
||
427 | * @param mixed $transporte novo valor para Transporte |
||
428 | * @return Nota A própria instância da classe |
||
429 | */ |
||
430 | 35 | public function setTransporte($transporte) |
|
435 | |||
436 | /** |
||
437 | * Pagamentos realizados |
||
438 | * @return mixed pagamentos da Nota |
||
439 | */ |
||
440 | 33 | public function getPagamentos() |
|
444 | |||
445 | /** |
||
446 | * Altera o valor do Pagamentos para o informado no parâmetro |
||
447 | * @param mixed $pagamentos novo valor para Pagamentos |
||
448 | * @return Nota A própria instância da classe |
||
449 | */ |
||
450 | 35 | public function setPagamentos($pagamentos) |
|
455 | |||
456 | /** |
||
457 | * Adiciona um(a) Pagamento para a lista de pagamento |
||
458 | * @param Pagamento $pagamento Instância do Pagamento que será adicionada |
||
459 | * @return Nota A própria instância da classe |
||
460 | */ |
||
461 | 5 | public function addPagamento($pagamento) |
|
466 | |||
467 | /** |
||
468 | * Data e Hora da saída ou de entrada da mercadoria / produto |
||
469 | * @param boolean $normalize informa se a data_movimentacao deve estar no formato do XML |
||
470 | * @return mixed data_movimentacao da Nota |
||
471 | */ |
||
472 | 33 | public function getDataMovimentacao($normalize = false) |
|
479 | |||
480 | /** |
||
481 | * Altera o valor da DataMovimentacao para o informado no parâmetro |
||
482 | * @param mixed $data_movimentacao novo valor para DataMovimentacao |
||
483 | * @return Nota A própria instância da classe |
||
484 | */ |
||
485 | 35 | public function setDataMovimentacao($data_movimentacao) |
|
493 | |||
494 | /** |
||
495 | * Informar a data e hora de entrada em contingência |
||
496 | * @param boolean $normalize informa se a data_contingencia deve estar no formato do XML |
||
497 | * @return mixed data_contingencia da Nota |
||
498 | */ |
||
499 | 8 | public function getDataContingencia($normalize = false) |
|
506 | |||
507 | /** |
||
508 | * Altera o valor da DataContingencia para o informado no parâmetro |
||
509 | * @param mixed $data_contingencia novo valor para DataContingencia |
||
510 | * @return Nota A própria instância da classe |
||
511 | */ |
||
512 | 35 | public function setDataContingencia($data_contingencia) |
|
520 | |||
521 | /** |
||
522 | * Informar a Justificativa da entrada em contingência |
||
523 | * @param boolean $normalize informa se a justificativa deve estar no formato do XML |
||
524 | * @return mixed justificativa da Nota |
||
525 | */ |
||
526 | 10 | public function getJustificativa($normalize = false) |
|
533 | |||
534 | /** |
||
535 | * Altera o valor da Justificativa para o informado no parâmetro |
||
536 | * @param mixed $justificativa novo valor para Justificativa |
||
537 | * @return Nota A própria instância da classe |
||
538 | */ |
||
539 | 35 | public function setJustificativa($justificativa) |
|
544 | |||
545 | /** |
||
546 | * Código do modelo do Documento Fiscal. 55 = NF-e; 65 = NFC-e. |
||
547 | * @param boolean $normalize informa se o modelo deve estar no formato do XML |
||
548 | * @return mixed modelo da Nota |
||
549 | */ |
||
550 | 33 | public function getModelo($normalize = false) |
|
563 | |||
564 | /** |
||
565 | * Altera o valor do Modelo para o informado no parâmetro |
||
566 | * @param mixed $modelo novo valor para Modelo |
||
567 | * @return Nota A própria instância da classe |
||
568 | */ |
||
569 | 35 | public function setModelo($modelo) |
|
582 | |||
583 | /** |
||
584 | * Tipo do Documento Fiscal (0 - entrada; 1 - saída) |
||
585 | * @param boolean $normalize informa se o tipo deve estar no formato do XML |
||
586 | * @return mixed tipo da Nota |
||
587 | */ |
||
588 | 33 | public function getTipo($normalize = false) |
|
601 | |||
602 | /** |
||
603 | * Altera o valor do Tipo para o informado no parâmetro |
||
604 | * @param mixed $tipo novo valor para Tipo |
||
605 | * @return Nota A própria instância da classe |
||
606 | */ |
||
607 | 35 | public function setTipo($tipo) |
|
620 | |||
621 | /** |
||
622 | * Identificador de Local de destino da operação |
||
623 | * (1-Interna;2-Interestadual;3-Exterior) |
||
624 | * @param boolean $normalize informa se o destino deve estar no formato do XML |
||
625 | * @return mixed destino da Nota |
||
626 | */ |
||
627 | 33 | public function getDestino($normalize = false) |
|
642 | |||
643 | /** |
||
644 | * Altera o valor do Destino para o informado no parâmetro |
||
645 | * @param mixed $destino novo valor para Destino |
||
646 | * @return Nota A própria instância da classe |
||
647 | */ |
||
648 | 35 | public function setDestino($destino) |
|
664 | |||
665 | /** |
||
666 | * Descrição da Natureza da Operação |
||
667 | * @param boolean $normalize informa se a natureza deve estar no formato do XML |
||
668 | * @return mixed natureza da Nota |
||
669 | */ |
||
670 | 33 | public function getNatureza($normalize = false) |
|
677 | |||
678 | /** |
||
679 | * Altera o valor da Natureza para o informado no parâmetro |
||
680 | * @param mixed $natureza novo valor para Natureza |
||
681 | * @return Nota A própria instância da classe |
||
682 | */ |
||
683 | 35 | public function setNatureza($natureza) |
|
688 | |||
689 | /** |
||
690 | * Código numérico que compõe a Chave de Acesso. Número aleatório gerado |
||
691 | * pelo emitente para cada NF-e. |
||
692 | * @param boolean $normalize informa se o codigo deve estar no formato do XML |
||
693 | * @return mixed codigo da Nota |
||
694 | */ |
||
695 | 33 | public function getCodigo($normalize = false) |
|
702 | |||
703 | /** |
||
704 | * Altera o valor do Codigo para o informado no parâmetro |
||
705 | * @param mixed $codigo novo valor para Codigo |
||
706 | * @return Nota A própria instância da classe |
||
707 | */ |
||
708 | 35 | public function setCodigo($codigo) |
|
713 | |||
714 | /** |
||
715 | * Data e Hora de emissão do Documento Fiscal |
||
716 | * @param boolean $normalize informa se o data_emissao deve estar no formato do XML |
||
717 | * @return mixed data_emissao da Nota |
||
718 | */ |
||
719 | 33 | public function getDataEmissao($normalize = false) |
|
726 | |||
727 | /** |
||
728 | * Altera o valor do DataEmissao para o informado no parâmetro |
||
729 | * @param mixed $data_emissao novo valor para DataEmissao |
||
730 | * @return Nota A própria instância da classe |
||
731 | */ |
||
732 | 35 | public function setDataEmissao($data_emissao) |
|
740 | |||
741 | /** |
||
742 | * Série do Documento Fiscal: série normal 0-889, Avulsa Fisco 890-899, |
||
743 | * SCAN 900-999 |
||
744 | * @param boolean $normalize informa se o serie deve estar no formato do XML |
||
745 | * @return mixed serie da Nota |
||
746 | */ |
||
747 | 33 | public function getSerie($normalize = false) |
|
754 | |||
755 | /** |
||
756 | * Altera o valor do Serie para o informado no parâmetro |
||
757 | * @param mixed $serie novo valor para Serie |
||
758 | * @return Nota A própria instância da classe |
||
759 | */ |
||
760 | 35 | public function setSerie($serie) |
|
765 | |||
766 | /** |
||
767 | * Formato de impressão do DANFE (0-sem DANFE;1-DANFe Retrato; 2-DANFe |
||
768 | * Paisagem;3-DANFe Simplificado;4-DANFe NFC-e;5-DANFe NFC-e em mensagem |
||
769 | * eletrônica) |
||
770 | * @param boolean $normalize informa se o formato deve estar no formato do XML |
||
771 | * @return mixed formato da Nota |
||
772 | */ |
||
773 | 33 | public function getFormato($normalize = false) |
|
794 | |||
795 | /** |
||
796 | * Altera o valor do Formato para o informado no parâmetro |
||
797 | * @param mixed $formato novo valor para Formato |
||
798 | * @return Nota A própria instância da classe |
||
799 | */ |
||
800 | 35 | public function setFormato($formato) |
|
825 | |||
826 | /** |
||
827 | * Forma de emissão da NF-e |
||
828 | * @param boolean $normalize informa se o emissao deve estar no formato do XML |
||
829 | * @return mixed emissao da Nota |
||
830 | */ |
||
831 | 33 | public function getEmissao($normalize = false) |
|
844 | |||
845 | /** |
||
846 | * Altera o valor do Emissao para o informado no parâmetro |
||
847 | * @param mixed $emissao novo valor para Emissao |
||
848 | * @return Nota A própria instância da classe |
||
849 | */ |
||
850 | 35 | public function setEmissao($emissao) |
|
863 | |||
864 | /** |
||
865 | * Digito Verificador da Chave de Acesso da NF-e |
||
866 | * @param boolean $normalize informa se o digito_verificador deve estar no formato do XML |
||
867 | * @return mixed digito_verificador da Nota |
||
868 | */ |
||
869 | 33 | public function getDigitoVerificador($normalize = false) |
|
876 | |||
877 | /** |
||
878 | * Altera o valor do DigitoVerificador para o informado no parâmetro |
||
879 | * @param mixed $digito_verificador novo valor para DigitoVerificador |
||
880 | * @return Nota A própria instância da classe |
||
881 | */ |
||
882 | 35 | public function setDigitoVerificador($digito_verificador) |
|
887 | |||
888 | /** |
||
889 | * Identificação do Ambiente: 1 - Produção, 2 - Homologação |
||
890 | * @param boolean $normalize informa se o ambiente deve estar no formato do XML |
||
891 | * @return mixed ambiente da Nota |
||
892 | */ |
||
893 | 33 | public function getAmbiente($normalize = false) |
|
906 | |||
907 | /** |
||
908 | * Altera o valor do Ambiente para o informado no parâmetro |
||
909 | * @param mixed $ambiente novo valor para Ambiente |
||
910 | * @return Nota A própria instância da classe |
||
911 | */ |
||
912 | 35 | public function setAmbiente($ambiente) |
|
925 | |||
926 | /** |
||
927 | * Finalidade da emissão da NF-e: 1 - NFe normal, 2 - NFe complementar, 3 - |
||
928 | * NFe de ajuste, 4 - Devolução/Retorno |
||
929 | * @param boolean $normalize informa se a finalidade deve estar no formato do XML |
||
930 | * @return mixed finalidade da Nota |
||
931 | */ |
||
932 | 33 | public function getFinalidade($normalize = false) |
|
949 | |||
950 | /** |
||
951 | * Altera o valor da Finalidade para o informado no parâmetro |
||
952 | * @param mixed $finalidade novo valor para Finalidade |
||
953 | * @return Nota A própria instância da classe |
||
954 | */ |
||
955 | 35 | public function setFinalidade($finalidade) |
|
974 | |||
975 | /** |
||
976 | * Indica operação com consumidor final (0-Não;1-Consumidor Final) |
||
977 | * @param boolean $normalize informa se o consumidor_final deve estar no formato do XML |
||
978 | * @return mixed consumidor_final da Nota |
||
979 | */ |
||
980 | 33 | public function getConsumidorFinal($normalize = false) |
|
993 | |||
994 | /** |
||
995 | * Indica operação com consumidor final (0-Não;1-Consumidor Final) |
||
996 | * @return boolean informa se o ConsumidorFinal está habilitado |
||
997 | */ |
||
998 | public function isConsumidorFinal() |
||
1002 | |||
1003 | /** |
||
1004 | * Altera o valor do ConsumidorFinal para o informado no parâmetro |
||
1005 | * @param mixed $consumidor_final novo valor para ConsumidorFinal |
||
1006 | * @return Nota A própria instância da classe |
||
1007 | */ |
||
1008 | 35 | public function setConsumidorFinal($consumidor_final) |
|
1016 | |||
1017 | /** |
||
1018 | * Indicador de presença do comprador no estabelecimento comercial no |
||
1019 | * momento da oepração (0-Não se aplica (ex.: Nota Fiscal complementar ou |
||
1020 | * de ajuste;1-Operação presencial;2-Não presencial, internet; |
||
1021 | * 3-Não presencial, teleatendimento;4-NFC-e entrega em domicílio; |
||
1022 | * 5-Operação presencial, fora do estabelecimento;9-Não presencial, outros) |
||
1023 | * @param boolean $normalize informa se a presenca deve estar no formato do XML |
||
1024 | * @return mixed presenca da Nota |
||
1025 | */ |
||
1026 | 33 | public function getPresenca($normalize = false) |
|
1049 | |||
1050 | /** |
||
1051 | * Altera o valor da Presenca para o informado no parâmetro |
||
1052 | * @param mixed $presenca novo valor para Presenca |
||
1053 | * @return Nota A própria instância da classe |
||
1054 | */ |
||
1055 | 35 | public function setPresenca($presenca) |
|
1083 | |||
1084 | /** |
||
1085 | * Dados dos totais da NF-e |
||
1086 | * @return mixed total da Nota |
||
1087 | */ |
||
1088 | 33 | public function getTotal() |
|
1092 | |||
1093 | /** |
||
1094 | * Altera o valor do Total para o informado no parâmetro |
||
1095 | * @param mixed $total novo valor para Total |
||
1096 | * @return Nota A própria instância da classe |
||
1097 | */ |
||
1098 | 35 | public function setTotal($total) |
|
1103 | |||
1104 | /** |
||
1105 | * Informações adicionais de interesse do Fisco |
||
1106 | * @param boolean $normalize informa se a adicionais deve estar no formato do XML |
||
1107 | * @return mixed adicionais da Nota |
||
1108 | */ |
||
1109 | 33 | public function getAdicionais($normalize = false) |
|
1116 | |||
1117 | /** |
||
1118 | * Altera o valor da Adicionais para o informado no parâmetro |
||
1119 | * @param mixed $adicionais novo valor para Adicionais |
||
1120 | * @return Nota A própria instância da classe |
||
1121 | */ |
||
1122 | 35 | public function setAdicionais($adicionais) |
|
1127 | |||
1128 | /** |
||
1129 | * Campo de uso livre do contribuinte informar o nome do campo no atributo |
||
1130 | * xCampo e o conteúdo do campo no xTexto |
||
1131 | * @return mixed observacoes da Nota |
||
1132 | */ |
||
1133 | 33 | public function getObservacoes() |
|
1137 | |||
1138 | /** |
||
1139 | * Altera o valor da Observacoes para o informado no parâmetro |
||
1140 | * @param mixed $observacoes novo valor para Observacoes |
||
1141 | * @return Nota A própria instância da classe |
||
1142 | */ |
||
1143 | 35 | public function setObservacoes($observacoes) |
|
1148 | |||
1149 | /** |
||
1150 | * Adiciona um(a) Observacao para a lista de observacao |
||
1151 | * @param Observacao $observacao Instância da Observacao que será adicionada |
||
1152 | * @return Nota A própria instância da classe |
||
1153 | */ |
||
1154 | 6 | public function addObservacao($campo, $observacao) |
|
1159 | |||
1160 | /** |
||
1161 | * Campo de uso exclusivo do Fisco informar o nome do campo no atributo |
||
1162 | * xCampo e o conteúdo do campo no xTexto |
||
1163 | * @return mixed informacoes da Nota |
||
1164 | */ |
||
1165 | 33 | public function getInformacoes() |
|
1169 | |||
1170 | /** |
||
1171 | * Altera o valor da Informacoes para o informado no parâmetro |
||
1172 | * @param mixed $informacoes novo valor para Informacoes |
||
1173 | * @return Nota A própria instância da classe |
||
1174 | */ |
||
1175 | 35 | public function setInformacoes($informacoes) |
|
1180 | |||
1181 | /** |
||
1182 | * Adiciona um(a) Informacao para a lista de informacao |
||
1183 | * @param Informacao $informacao Instância da Informacao que será adicionada |
||
1184 | * @return Nota A própria instância da classe |
||
1185 | */ |
||
1186 | 6 | public function addInformacao($campo, $informacao) |
|
1191 | |||
1192 | /** |
||
1193 | * Protocolo de autorização da nota, informado apenas quando a nota for |
||
1194 | * enviada e autorizada |
||
1195 | */ |
||
1196 | 31 | public function getProtocolo() |
|
1200 | |||
1201 | 35 | public function setProtocolo($protocolo) |
|
1206 | |||
1207 | 8 | public function toArray($recursive = false) |
|
1284 | |||
1285 | 35 | public function fromArray($nota = []) |
|
1424 | |||
1425 | 32 | public function gerarID() |
|
1443 | |||
1444 | 32 | public function getTotais() |
|
1519 | |||
1520 | 32 | private function getNodeTotal($name = null) |
|
1557 | |||
1558 | 32 | public function getNode($name = null) |
|
1700 | |||
1701 | 27 | public function loadNode($element, $name = null) |
|
1959 | |||
1960 | /** |
||
1961 | * Carrega um arquivo XML e preenche a nota com as informações dele |
||
1962 | * @param string $filename caminho do arquivo |
||
1963 | * @return DOMDocument objeto do documento carregado |
||
1964 | */ |
||
1965 | 27 | public function load($filename) |
|
1975 | |||
1976 | /** |
||
1977 | * Assina o XML com a assinatura eletrônica do tipo A1 |
||
1978 | */ |
||
1979 | 29 | public function assinar($dom = null) |
|
1996 | |||
1997 | /** |
||
1998 | * Valida o documento após assinar |
||
1999 | */ |
||
2000 | 27 | public function validar($dom) |
|
2027 | |||
2028 | /** |
||
2029 | * Adiciona o protocolo no XML da nota |
||
2030 | */ |
||
2031 | 4 | public function addProtocolo($dom) |
|
2061 | } |
||
2062 |
Really long classes often contain too much logic and violate the single responsibility principle.
We suggest to take a look at the “Code” section for options on how to refactor this code.