From 799b74ecf27300111360d0af8831586ce863ef0c Mon Sep 17 00:00:00 2001 From: Junior Tada Date: Thu, 9 Jul 2015 12:11:00 -0300 Subject: [PATCH] teste com a lib --- pynfe/processamento/serializacao.py | 17 +++++++++-------- pynfe/utils/flags.py | 2 +- test.py | 11 ++++++++--- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index 85b2244..0eab435 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -9,7 +9,7 @@ from pynfe.entidades import Emitente, Cliente, Produto, Transportadora, NotaFisc from pynfe.excecoes import NenhumObjetoEncontrado, MuitosObjetosEncontrados from pynfe.utils import etree, so_numeros, obter_municipio_por_codigo, \ obter_pais_por_codigo, obter_municipio_e_codigo, \ - formatar_decimal, safe_str, obter_uf_por_codigo + formatar_decimal, safe_str, obter_uf_por_codigo, obter_codigo_por_municipio from pynfe.utils.flags import CODIGOS_ESTADOS, VERSAO_PADRAO class Serializacao(object): @@ -48,7 +48,7 @@ class SerializacaoXML(Serializacao): _versao = VERSAO_PADRAO def exportar(self, destino=None, retorna_string=False, **kwargs): - """Gera o(s) arquivo(s) de Nofa Fiscal eletronica no padrao oficial da SEFAZ + """Gera o(s) arquivo(s) de Nota Fiscal eletronica no padrao oficial da SEFAZ e Receita Federal, para ser(em) enviado(s) para o webservice ou para ser(em) armazenado(s) em cache local.""" @@ -59,7 +59,7 @@ class SerializacaoXML(Serializacao): notas_fiscais = self._fonte_dados.obter_lista(_classe=NotaFiscal, **kwargs) for nf in notas_fiscais: - raiz.append(self._serializar_notas_fiscal(nf, retorna_string=False)) + raiz.append(self._serializar_nota_fiscal(nf, retorna_string=False)) if retorna_string: return etree.tostring(raiz, pretty_print=True) @@ -221,7 +221,7 @@ class SerializacaoXML(Serializacao): else: return raiz - def _serializar_notas_fiscal(self, nota_fiscal, tag_raiz='infNFe', retorna_string=True): + def _serializar_nota_fiscal(self, nota_fiscal, tag_raiz='infNFe', retorna_string=True): raiz = etree.Element(tag_raiz, versao=self._versao) # Dados da Nota Fiscal @@ -298,10 +298,11 @@ class SerializacaoXML(Serializacao): etree.SubElement(transp, 'modFrete').text = str(nota_fiscal.transporte_modalidade_frete) # Transportadora - transp.append(self._serializar_transportadora( - nota_fiscal.transporte_transportadora, - retorna_string=False, - )) + if nota_fiscal.transporte_transportadora: + transp.append(self._serializar_transportadora( + nota_fiscal.transporte_transportadora, + retorna_string=False, + )) # VeĆ­culo veiculo = etree.SubElement(transp, 'veicTransp') diff --git a/pynfe/utils/flags.py b/pynfe/utils/flags.py index 0c100d9..7a844bd 100644 --- a/pynfe/utils/flags.py +++ b/pynfe/utils/flags.py @@ -4,7 +4,7 @@ NAMESPACE_NFE = 'http://www.portalfiscal.inf.br/nfe' NAMESPACE_SIG = 'http://www.w3.org/2000/09/xmldsig#' NAMESPACE_SOAP = 'http://www.w3.org/2003/05/soap-envelope' -VERSAO_PADRAO = '1.01' +VERSAO_PADRAO = '3.10' TIPOS_DOCUMENTO = ( 'CNPJ', diff --git a/test.py b/test.py index 7a49de1..a88cfbf 100644 --- a/test.py +++ b/test.py @@ -8,11 +8,12 @@ from pynfe.entidades.cliente import Cliente from pynfe.entidades.emitente import Emitente from pynfe.entidades.notafiscal import NotaFiscal, NotaFiscalProduto from pynfe.entidades.fonte_dados import _fonte_dados -from pynfe.processamento.serializacao import SerializacaoPipes +from pynfe.processamento.serializacao import SerializacaoPipes, SerializacaoXML from pynfe.utils.flags import CODIGO_BRASIL import datetime -serializador = SerializacaoPipes(_fonte_dados, homologacao=True) +#serializador = SerializacaoPipes(_fonte_dados, homologacao=True) +serializador = SerializacaoXML(_fonte_dados, homologacao=True) emitente = Emitente( razao_social='Spring Publicacoes Ltda', @@ -95,4 +96,8 @@ nota_fiscal.adicionar_produto_servico(codigo='000328', # id do produto (000328 e cofins_aliquota_percentual=Decimal('3.00'), cofins_valor=Decimal('3.51')) -print serializador._serializar_nota_fiscal(nota_fiscal) +#print serializador._serializar_nota_fiscal(nota_fiscal) +#print serializador._serializar_nota_fiscal(nota_fiscal) +arquivo = file('teste.xml', 'w') +arquivo.write(serializador._serializar_nota_fiscal(nota_fiscal)) +arquivo.close() \ No newline at end of file