Browse Source

[FIX] Adicionada correção na tag idEstrangeiro quando a mesma não é preenchida no partner. Antes a tag era suprimida nestes casos gerando erro de schema quando na validação da invoice e geração de eDocs. Agora a tag é pertinente e quando não é preenchida.

pull/283/head
Jovani 6 years ago
parent
commit
8aa4d11368
  1. 5
      pytrustnfe/nfe/__init__.py
  2. 18
      pytrustnfe/nfe/danfe.py
  3. 8
      pytrustnfe/xml/__init__.py
  4. 2
      setup.py

5
pytrustnfe/nfe/__init__.py

@ -17,7 +17,7 @@ from requests.packages.urllib3.exceptions import InsecureRequestWarning
# Zeep
from requests import Session
from zeep import Client, Settings
from zeep import Client
from zeep.transports import Transport
@ -63,7 +63,6 @@ def _render(certificado, method, sign, **kwargs):
else:
xml_send = etree.tostring(xmlElem_send, encoding=str)
return xml_send
@ -72,8 +71,6 @@ def _get_session(certificado):
certificado.pfx, certificado.password)
cert, key = save_cert_key(cert, key)
# print('\nEntrei aqui no send do pytrust!!!\n\n\n\n')
session = Session()
session.cert = (cert, key)
session.verify = False

18
pytrustnfe/nfe/danfe.py

@ -462,13 +462,13 @@ class danfe(object):
'FATURA VENCIMENTO VALOR')
# Conteúdo campos
self.canvas.setFont('NimbusSanL-Bold', 5)
nLin = 6
self.canvas.setFont('NimbusSanL-Bold', 6)
nLin = 7
nPar = 1
nCol = 0
nAju = 0
line_iter = iter(oXML[1:16]) # Salta elemt 1 e considera os próximos 15
line_iter = iter(oXML[1:10]) # Salta elemt 1 e considera os próximos 9
for oXML_dup in line_iter:
cDt, cHr = getdateByTimezone(tagtext(oNode=oXML_dup, cTag='dVenc'),
@ -480,14 +480,14 @@ class danfe(object):
self.nLeft + nCol + 47, self.nlin + nLin,
format_number(tagtext(oNode=oXML_dup, cTag='vDup')))
if nPar == 5:
nLin = 6
if nPar == 3:
nLin = 7
nPar = 1
nCol += 47
nAju += 1
nCol += nAju * (0.3)
else:
nLin += 2
nLin += 3.3
nPar += 1
# Campos adicionais XML - Condicionados a existencia de financeiro
@ -762,9 +762,9 @@ obsCont[@xCampo='NomeVendedor']")
tagtext(oNode=el_prod, cTag='vUnCom')))
self.stringRight(nMr - 50.5, nLin, format_number(
tagtext(oNode=el_prod, cTag='vProd')))
self.stringRight(nMr - 38.5, nLin, format_number(vBC))
self.stringRight(nMr - 26.5, nLin, format_number(vICMS))
self.stringRight(nMr - 7.5, nLin, format_number(pICMS))
self.stringRight(nMr - 38.5, nLin, format_number(vBC or '0.00'))
self.stringRight(nMr - 26.5, nLin, format_number(vICMS or '0.00'))
self.stringRight(nMr - 7.5, nLin, format_number(pICMS or '0.00'))
self.stringRight(nMr - 14.5, nLin, format_number(vIPI or '0.00'))
self.stringRight(nMr - 0.5, nLin, format_number(pIPI or '0.00'))

8
pytrustnfe/xml/__init__.py

@ -7,7 +7,10 @@ from lxml import etree
from lxml import objectify
from jinja2 import Environment, FileSystemLoader
from . import filters
import re
# Constant for inclusion of the tag idEstrangeiro when we have to export product
# and the id/cpf/cnpj for the company or person is not filled
ID_ESTRANG = '{http://www.portalfiscal.inf.br/nfe}idEstrangeiro'
def recursively_empty(e):
if e.text:
@ -38,7 +41,7 @@ def render_xml(path, template_name, remove_empty, **nfe):
context = etree.iterwalk(root)
for dummy, elem in context:
parent = elem.getparent()
if recursively_empty(elem):
if recursively_empty(elem) and elem.tag != ID_ESTRANG:
parent.remove(elem)
return root
return etree.tostring(root, encoding=str)
@ -69,3 +72,4 @@ def recursively_normalize(vals):
for a in vals[item]:
recursively_normalize(a)
return vals

2
setup.py

@ -2,7 +2,7 @@
from setuptools import setup, find_packages
VERSION = "1.0.44"
VERSION = "1.0.45"
setup(

Loading…
Cancel
Save