Browse Source

Implementado limpar_dados da _fonte_dados

pull/1/head
Junior Tada 10 years ago
parent
commit
52da1116e1
  1. 3
      pynfe/entidades/fonte_dados.py
  2. 35
      pynfe/processamento/serializacao.py

3
pynfe/entidades/fonte_dados.py

@ -123,6 +123,9 @@ class FonteDados(object):
else: else:
return len(self._objetos) return len(self._objetos)
def limpar_dados(self):
self._objetos.clear()
# Instancia da fonte de dados default # Instancia da fonte de dados default
_fonte_dados = FonteDados() _fonte_dados = FonteDados()

35
pynfe/processamento/serializacao.py

@ -47,24 +47,33 @@ class Serializacao(object):
class SerializacaoXML(Serializacao): class SerializacaoXML(Serializacao):
_versao = VERSAO_PADRAO _versao = VERSAO_PADRAO
def exportar(self, destino=None, retorna_string=False, **kwargs):
def exportar(self, destino=None, retorna_string=False, limpar=True, **kwargs):
"""Gera o(s) arquivo(s) de Nota 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) e Receita Federal, para ser(em) enviado(s) para o webservice ou para ser(em)
armazenado(s) em cache local."""
# No raiz do XML de saida
raiz = etree.Element('NFe', xmlns=NAMESPACE_NFE)
armazenado(s) em cache local.
@param destino -
@param retorna_string - Retorna uma string para debug.
@param limpar - Limpa a fonte de dados para não gerar xml com dados duplicados.
"""
try:
# No raiz do XML de saida
raiz = etree.Element('NFe', xmlns=NAMESPACE_NFE)
# Carrega lista de Notas Fiscais
notas_fiscais = self._fonte_dados.obter_lista(_classe=NotaFiscal, **kwargs)
# Carrega lista de Notas Fiscais
notas_fiscais = self._fonte_dados.obter_lista(_classe=NotaFiscal, **kwargs)
for nf in notas_fiscais:
raiz.append(self._serializar_nota_fiscal(nf, retorna_string=False))
for nf in notas_fiscais:
raiz.append(self._serializar_nota_fiscal(nf, retorna_string=False))
if retorna_string:
return etree.tostring(raiz, encoding="unicode", pretty_print=False)
else:
return raiz
if retorna_string:
return etree.tostring(raiz, encoding="unicode", pretty_print=False)
else:
return raiz
except Exception as e:
raise e
finally:
if limpar:
self._fonte_dados.limpar_dados()
def importar(self, origem): def importar(self, origem):
"""Cria as instancias do PyNFe a partir de arquivos XML no formato padrao da """Cria as instancias do PyNFe a partir de arquivos XML no formato padrao da

Loading…
Cancel
Save