|
|
@ -18,6 +18,7 @@ class Serializacao(object): |
|
|
_fonte_dados = None |
|
|
_fonte_dados = None |
|
|
_ambiente = 1 # 1 = Produção, 2 = Homologação |
|
|
_ambiente = 1 # 1 = Produção, 2 = Homologação |
|
|
_contingencia = None # Justificativa da entrada em contingência (min 20, max 256 caracteres) |
|
|
_contingencia = None # Justificativa da entrada em contingência (min 20, max 256 caracteres) |
|
|
|
|
|
_so_cpf = False # Destinatário com apenas o cpf do cliente |
|
|
_nome_aplicacao = 'PyNFe' |
|
|
_nome_aplicacao = 'PyNFe' |
|
|
|
|
|
|
|
|
def __new__(cls, *args, **kwargs): |
|
|
def __new__(cls, *args, **kwargs): |
|
|
@ -26,10 +27,11 @@ class Serializacao(object): |
|
|
else: |
|
|
else: |
|
|
return super(Serializacao, cls).__new__(cls) |
|
|
return super(Serializacao, cls).__new__(cls) |
|
|
|
|
|
|
|
|
def __init__(self, fonte_dados, homologacao=False, contingencia=None): |
|
|
|
|
|
|
|
|
def __init__(self, fonte_dados, homologacao=False, contingencia=None, so_cpf=False): |
|
|
self._fonte_dados = fonte_dados |
|
|
self._fonte_dados = fonte_dados |
|
|
self._ambiente = homologacao and 2 or 1 |
|
|
self._ambiente = homologacao and 2 or 1 |
|
|
self._contingencia = contingencia |
|
|
self._contingencia = contingencia |
|
|
|
|
|
self._so_cpf = so_cpf |
|
|
|
|
|
|
|
|
def exportar(self, destino, **kwargs): |
|
|
def exportar(self, destino, **kwargs): |
|
|
"""Gera o(s) arquivo(s) de exportacao a partir da Nofa Fiscal eletronica |
|
|
"""Gera o(s) arquivo(s) de exportacao a partir da Nofa Fiscal eletronica |
|
|
@ -110,6 +112,7 @@ class SerializacaoXML(Serializacao): |
|
|
# Dados do cliente (distinatario) |
|
|
# Dados do cliente (distinatario) |
|
|
etree.SubElement(raiz, cliente.tipo_documento).text = so_numeros(cliente.numero_documento) |
|
|
etree.SubElement(raiz, cliente.tipo_documento).text = so_numeros(cliente.numero_documento) |
|
|
etree.SubElement(raiz, 'xNome').text = cliente.razao_social |
|
|
etree.SubElement(raiz, 'xNome').text = cliente.razao_social |
|
|
|
|
|
if not self._so_cpf: |
|
|
endereco = etree.SubElement(raiz, 'enderDest') |
|
|
endereco = etree.SubElement(raiz, 'enderDest') |
|
|
etree.SubElement(endereco, 'xLgr').text = cliente.endereco_logradouro |
|
|
etree.SubElement(endereco, 'xLgr').text = cliente.endereco_logradouro |
|
|
etree.SubElement(endereco, 'nro').text = cliente.endereco_numero |
|
|
etree.SubElement(endereco, 'nro').text = cliente.endereco_numero |
|
|
|