Browse Source

Merge pull request #1 from TadaSoftware/master

Merge
pull/64/head
Flávyo Henrique 7 years ago
committed by GitHub
parent
commit
bfe7cfac83
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      pynfe/entidades/notafiscal.py
  2. 18
      pynfe/processamento/serializacao.py

17
pynfe/entidades/notafiscal.py

@ -355,6 +355,7 @@ class NotaFiscal(Entidade):
self.duplicatas = [] self.duplicatas = []
self.observacoes_contribuinte = [] self.observacoes_contribuinte = []
self.processos_referenciados = [] self.processos_referenciados = []
self.responsavel_tecnico = []
super(NotaFiscal, self).__init__(*args, **kwargs) super(NotaFiscal, self).__init__(*args, **kwargs)
@ -417,11 +418,17 @@ class NotaFiscal(Entidade):
return obj return obj
def adicionar_processo_referenciado(self, **kwargs): def adicionar_processo_referenciado(self, **kwargs):
u"""Adiciona uma instancia de Processo Referenciado"""
"""Adiciona uma instancia de Processo Referenciado"""
obj = NotaFiscalProcessoReferenciado(**kwargs) obj = NotaFiscalProcessoReferenciado(**kwargs)
self.processos_referenciados.append(obj) self.processos_referenciados.append(obj)
return obj return obj
def adicionar_responsavel_tecnico(self, **kwargs):
""" Adiciona uma instancia de Responsavel Tecnico """
obj = NotaFiscalResponsavelTecnico(**kwargs)
self.responsavel_tecnico.append(obj)
return obj
def _codigo_numerico_aleatorio(self): def _codigo_numerico_aleatorio(self):
self.codigo_numerico_aleatorio = str(random.randint(0, 99999999)).zfill(8) self.codigo_numerico_aleatorio = str(random.randint(0, 99999999)).zfill(8)
return self.codigo_numerico_aleatorio return self.codigo_numerico_aleatorio
@ -1003,3 +1010,11 @@ class NotaFiscalServico(Entidade):
def __str__(self): def __str__(self):
return ' '.join([str(self.identificador)]) return ' '.join([str(self.identificador)])
class NotaFiscalResponsavelTecnico(Entidade):
# NT 2018/003
cnpj = str()
contato = str()
email = str()
fone = str()
csrt = str()

18
pynfe/processamento/serializacao.py

@ -410,6 +410,18 @@ class SerializacaoXML(Serializacao):
else: else:
return raiz return raiz
def _serializar_responsavel_tecnico(self, responsavel_tecnico, tag_raiz='infRespTec', retorna_string=True):
raiz = etree.Element(tag_raiz)
etree.SubElement(raiz, 'CNPJ').text = responsavel_tecnico.cnpj
etree.SubElement(raiz, 'xContato').text = responsavel_tecnico.contato
etree.SubElement(raiz, 'email').text = responsavel_tecnico.email
etree.SubElement(raiz, 'fone').text = responsavel_tecnico.fone
if retorna_string:
return etree.tostring(raiz, encoding="unicode", pretty_print=True)
else:
return raiz
def _serializar_nota_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) raiz = etree.Element(tag_raiz, versao=self._versao)
@ -636,6 +648,12 @@ class SerializacaoXML(Serializacao):
if nota_fiscal.informacoes_complementares_interesse_contribuinte: if nota_fiscal.informacoes_complementares_interesse_contribuinte:
etree.SubElement(info_ad, 'infCpl').text = nota_fiscal.informacoes_complementares_interesse_contribuinte etree.SubElement(info_ad, 'infCpl').text = nota_fiscal.informacoes_complementares_interesse_contribuinte
# Responsavel Tecnico NT2018/003
if nota_fiscal.responsavel_tecnico:
raiz.append(self._serializar_responsavel_tecnico(
nota_fiscal.responsavel_tecnico[0], retorna_string=False))
if retorna_string: if retorna_string:
return etree.tostring(raiz, encoding="unicode", pretty_print=True) return etree.tostring(raiz, encoding="unicode", pretty_print=True)
else: else:

Loading…
Cancel
Save