From 715ff36de4be9d63f56eb4bbf2cf359ce4f570ea Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Mon, 6 Aug 2018 15:52:02 -0300 Subject: [PATCH] =?UTF-8?q?[FIX]=20Certifica=20que=20vamos=20usar=20a=20op?= =?UTF-8?q?era=C3=A7=C3=A3o=20correta=20ao=20enviar=20a=20NFE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pytrustnfe/nfe/__init__.py | 28 ++-------------------------- setup.py | 2 +- 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/pytrustnfe/nfe/__init__.py b/pytrustnfe/nfe/__init__.py index 32841699..0f80937d 100644 --- a/pytrustnfe/nfe/__init__.py +++ b/pytrustnfe/nfe/__init__.py @@ -38,26 +38,6 @@ def _generate_nfe_id(**kwargs): item['infNFe']['ide']['cDV'] = chave_nfe[len(chave_nfe) - 1:] -def _add_required_node(elemTree): - ns = elemTree.nsmap - if None in ns: - ns['ns'] = ns[None] - ns.pop(None) - - prods = elemTree.findall('ns:NFe/ns:infNFe/ns:det/ns:prod', namespaces=ns) - for prod in prods: - element = prod.find('ns:cEAN', namespaces=ns) - if element is None: - cEan = etree.Element('cEAN') - prod.insert(1, cEan) - element = prod.find('ns:cEANTrib', namespaces=ns) - if element is None: - cEANTrib = etree.Element('cEANTrib') - vProd = prod.find('ns:vProd', namespaces=ns) - prod.insert(prod.index(vProd) + 1, cEANTrib) - return elemTree - - def _add_qrCode(xml, **kwargs): xml = etree.fromstring(xml) inf_nfe = kwargs['NFes'][0]['infNFe'] @@ -114,11 +94,6 @@ def _render(certificado, method, sign, **kwargs): modelo = modelo.text if modelo is not None else '55' if sign: - # Caso for autorização temos que adicionar algumas tags tipo - # cEan, cEANTrib porque o governo sempre complica e não segue padrão - if method == 'NfeAutorizacao': - xmlElem_send = _add_required_node(xmlElem_send) - signer = Assinatura(certificado.pfx, certificado.password) if method == 'NfeInutilizacao': xml_send = signer.assina_xml(xmlElem_send, kwargs['obj']['id']) @@ -158,7 +133,8 @@ def _send(certificado, method, **kwargs): client = Client(base_url, transport=transport) port = next(iter(client.wsdl.port_types)) - first_operation = next(iter(client.wsdl.port_types[port].operations)) + first_operation = [x for x in iter( + client.wsdl.port_types[port].operations) if "Zip" not in x][0] with client.settings(raw_response=True): response = client.service[first_operation](xml) response, obj = sanitize_response(response.text) diff --git a/setup.py b/setup.py index f0946851..a15e6cf0 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages -VERSION = "0.10.3" +VERSION = "0.10.4" setup(