From 5396c42d60d61cf18ada242cd4d235ac53c7f7a5 Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Tue, 3 Jan 2017 08:57:21 -0200 Subject: [PATCH 1/7] =?UTF-8?q?Corre=C3=A7=C3=A3o=20da=20tag=20infAdProd?= =?UTF-8?q?=20(#18)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pytrustnfe/nfe/templates/NfeAutorizacao.xml | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pytrustnfe/nfe/templates/NfeAutorizacao.xml b/pytrustnfe/nfe/templates/NfeAutorizacao.xml index f457e78..ec4d1e5 100644 --- a/pytrustnfe/nfe/templates/NfeAutorizacao.xml +++ b/pytrustnfe/nfe/templates/NfeAutorizacao.xml @@ -623,7 +623,7 @@ {% endif %} {% if det.infAdProd %} - {{ det.infAdProd|normalize|escape }} + {{ det.infAdProd|normalize|escape }} {% endif %} {% set count = count + 1 %} diff --git a/setup.py b/setup.py index f52e9f8..cdb3acb 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ # coding=utf-8 from setuptools import setup, find_packages -VERSION = "0.1.16" +VERSION = "0.1.17" setup( name="PyTrustNFe", From f221e8e5141c42e9728301c2e95240ee56ccc5dd Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Thu, 5 Jan 2017 15:30:18 -0200 Subject: [PATCH 2/7] Tag para referenciar o CTe que estava faltando --- pytrustnfe/nfe/templates/NfeAutorizacao.xml | 4 +++- setup.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pytrustnfe/nfe/templates/NfeAutorizacao.xml b/pytrustnfe/nfe/templates/NfeAutorizacao.xml index ec4d1e5..20295b9 100644 --- a/pytrustnfe/nfe/templates/NfeAutorizacao.xml +++ b/pytrustnfe/nfe/templates/NfeAutorizacao.xml @@ -35,6 +35,9 @@ {% if ref.refNFe is defined -%} {{ ref.refNFe }} {% endif %} + {% if ref.refCTe is defined -%} + {{ ref.refCTe }} + {% endif %} {% if ref.refNF is defined -%} {{ ref.refNF.cUF }} @@ -55,7 +58,6 @@ {{ ref.refNFP.mod }} {{ ref.refNFP.serie }} {{ ref.refNFP.nNF }} - {{ ref.refNFP.nNF }} {% endif %} {% if ref.refECF is defined -%} diff --git a/setup.py b/setup.py index cdb3acb..96f3de8 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ # coding=utf-8 from setuptools import setup, find_packages -VERSION = "0.1.17" +VERSION = "0.1.18" setup( name="PyTrustNFe", From 483911c8cec10da15db0918bcb19b7861c139f1d Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Sat, 7 Jan 2017 07:55:49 -0200 Subject: [PATCH 3/7] =?UTF-8?q?FIX=20-=20Adicionando=20tag=20EAN=20apenas?= =?UTF-8?q?=20quando=20a=20mesma=20n=C3=A3o=20existir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pytrustnfe/nfe/__init__.py | 14 +++++++++----- pytrustnfe/nfe/assinatura.py | 3 ++- setup.py | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/pytrustnfe/nfe/__init__.py b/pytrustnfe/nfe/__init__.py index 0f1757e..4b8c0e5 100644 --- a/pytrustnfe/nfe/__init__.py +++ b/pytrustnfe/nfe/__init__.py @@ -55,11 +55,15 @@ def _add_required_node(elemTree): prods = elemTree.findall('ns:NFe/ns:infNFe/ns:det/ns:prod', namespaces=ns) for prod in prods: - cEan = etree.Element('cEAN') - cEANTrib = etree.Element('cEANTrib') - prod.insert(1, cEan) - vProd = prod.find('ns:vProd', namespaces=ns) - prod.insert(prod.index(vProd) + 1, cEANTrib) + 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 diff --git a/pytrustnfe/nfe/assinatura.py b/pytrustnfe/nfe/assinatura.py index 7104e9b..d4ef99c 100644 --- a/pytrustnfe/nfe/assinatura.py +++ b/pytrustnfe/nfe/assinatura.py @@ -36,7 +36,8 @@ class Assinatura(object): element_signed = signed_root.find(".//*[@Id='%s']" % reference) signature = signed_root.find( ".//{http://www.w3.org/2000/09/xmldsig#}Signature") - if element_signed and signature: + + if element_signed is not None and signature is not None: parent = element_signed.getparent() parent.append(signature) return etree.tostring(signed_root) diff --git a/setup.py b/setup.py index 96f3de8..43dcbf5 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ # coding=utf-8 from setuptools import setup, find_packages -VERSION = "0.1.18" +VERSION = "0.1.19" setup( name="PyTrustNFe", From 6e964a7ba1bae1bad31eee23ec053139c86e7009 Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Mon, 9 Jan 2017 18:36:32 -0200 Subject: [PATCH 4/7] Ajuste no loop do jinja - usando builtin variable (#22) --- pytrustnfe/nfe/templates/NfeAutorizacao.xml | 4 +--- setup.py | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/pytrustnfe/nfe/templates/NfeAutorizacao.xml b/pytrustnfe/nfe/templates/NfeAutorizacao.xml index 20295b9..304187a 100644 --- a/pytrustnfe/nfe/templates/NfeAutorizacao.xml +++ b/pytrustnfe/nfe/templates/NfeAutorizacao.xml @@ -170,9 +170,8 @@ {% endfor %} {% endif %} - {% set count = 1 %} {% for det in NFe.infNFe.detalhes %} - + {% with prod = det.prod %} {{ prod.cProd }} @@ -627,7 +626,6 @@ {% if det.infAdProd %} {{ det.infAdProd|normalize|escape }} {% endif %} - {% set count = count + 1 %} {% endfor %} diff --git a/setup.py b/setup.py index 43dcbf5..2581c0e 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ # coding=utf-8 from setuptools import setup, find_packages -VERSION = "0.1.19" +VERSION = "0.1.20" setup( name="PyTrustNFe", From 1d706eaa35eb5509543373ec00493725f1db5382 Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Wed, 11 Jan 2017 10:07:14 -0200 Subject: [PATCH 5/7] Realiza o escape de alguns campos que podem conter caracteres especiais --- pytrustnfe/nfe/templates/NfeAutorizacao.xml | 8 ++++---- setup.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pytrustnfe/nfe/templates/NfeAutorizacao.xml b/pytrustnfe/nfe/templates/NfeAutorizacao.xml index 304187a..7015ef1 100644 --- a/pytrustnfe/nfe/templates/NfeAutorizacao.xml +++ b/pytrustnfe/nfe/templates/NfeAutorizacao.xml @@ -687,9 +687,9 @@ {{ NFe.infNFe.transp.transporta.CNPJ }} {{ NFe.infNFe.transp.transporta.CPF }} - {{ NFe.infNFe.transp.transporta.xNome }} + {{ NFe.infNFe.transp.transporta.xNome|normalize|escape }} {{ NFe.infNFe.transp.transporta.IE }} - {{ NFe.infNFe.transp.transporta.xEnder }} + {{ NFe.infNFe.transp.transporta.xEnder|normalize|escape }} {{ NFe.infNFe.transp.transporta.xMun }} {{ NFe.infNFe.transp.transporta.UF }} @@ -782,8 +782,8 @@ {% if NFe.infNFe.exporta is defined %} {{ NFe.infNFe.exporta.UFSaidaPais }} - {{ NFe.infNFe.exporta.xLocExporta }} - {{ NFe.infNFe.exporta.xLocDespacho }} + {{ NFe.infNFe.exporta.xLocExporta|normalize|escape }} + {{ NFe.infNFe.exporta.xLocDespacho|normalize|escape }} {% endif %} {% if NFe.infNFe.compra is defined %} diff --git a/setup.py b/setup.py index 2581c0e..07be29e 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ # coding=utf-8 from setuptools import setup, find_packages -VERSION = "0.1.20" +VERSION = "0.1.21" setup( name="PyTrustNFe", From fcfd7d86377a5ca1974a374651ffeb6f05c9b8d1 Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Wed, 11 Jan 2017 13:04:36 -0200 Subject: [PATCH 6/7] =?UTF-8?q?Realiza=20o=20escape=20do=20texto=20em=20ev?= =?UTF-8?q?ento=20de=20cancelamento=20e=20carta=20de=20corre=C3=A7a=C3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pytrustnfe/nfe/templates/RecepcaoEventoCancelamento.xml | 2 +- pytrustnfe/nfe/templates/RecepcaoEventoCarta.xml | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pytrustnfe/nfe/templates/RecepcaoEventoCancelamento.xml b/pytrustnfe/nfe/templates/RecepcaoEventoCancelamento.xml index 4757cac..35d587e 100644 --- a/pytrustnfe/nfe/templates/RecepcaoEventoCancelamento.xml +++ b/pytrustnfe/nfe/templates/RecepcaoEventoCancelamento.xml @@ -14,7 +14,7 @@ Cancelamento {{ evento.nProt }} - {{ evento.xJust|normalize }} + {{ evento.xJust|normalize|escape }} diff --git a/pytrustnfe/nfe/templates/RecepcaoEventoCarta.xml b/pytrustnfe/nfe/templates/RecepcaoEventoCarta.xml index 185097e..377fb96 100644 --- a/pytrustnfe/nfe/templates/RecepcaoEventoCarta.xml +++ b/pytrustnfe/nfe/templates/RecepcaoEventoCarta.xml @@ -13,7 +13,7 @@ 1.00 Carta de Correção - {{ xCorrecao|normalize }} + {{ xCorrecao|normalize|escape }} A Carta de Correção é disciplinada pelo § 1º-A do art. 7º do Convênio S/N, de 15 de dezembro de 1970 e pode ser utilizada para regularização de erro ocorrido na emissão de documento fiscal, desde que o erro não esteja relacionado com: I - as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade, valor da operação ou da prestação; II - a correção de dados cadastrais que implique mudança do remetente ou do destinatário; III - a data de emissão ou de saída. diff --git a/setup.py b/setup.py index 07be29e..f882b9d 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ # coding=utf-8 from setuptools import setup, find_packages -VERSION = "0.1.21" +VERSION = "0.1.22" setup( name="PyTrustNFe", From 37eef2cb3872c7457e2ee4bf20bf600f19136696 Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Mon, 16 Jan 2017 08:03:15 -0200 Subject: [PATCH 7/7] =?UTF-8?q?Campo=20complemento=20endere=C3=A7o=20Trata?= =?UTF-8?q?ndo=20caracteres=20especiais=20endere=C3=A7o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pytrustnfe/nfe/templates/NfeAutorizacao.xml | 26 ++++++++++++++------------ setup.py | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/pytrustnfe/nfe/templates/NfeAutorizacao.xml b/pytrustnfe/nfe/templates/NfeAutorizacao.xml index 7015ef1..f3220b1 100644 --- a/pytrustnfe/nfe/templates/NfeAutorizacao.xml +++ b/pytrustnfe/nfe/templates/NfeAutorizacao.xml @@ -83,9 +83,10 @@ {{ emit.xNome|normalize|escape }} {{ emit.xFant|normalize|escape }} - {{ emit.enderEmit.xLgr|normalize }} + {{ emit.enderEmit.xLgr|normalize|escape }} {{ emit.enderEmit.nro }} - {{ emit.enderEmit.xBairro|normalize }} + {{ emit.enderEmit.xCpl|normalize|escape }} + {{ emit.enderEmit.xBairro|normalize|escape }} {{ emit.enderEmit.cMun }} {{ emit.enderEmit.xMun|normalize }} {{ emit.enderEmit.UF }} @@ -117,9 +118,10 @@ {% endif %} {{ dest.xNome|normalize|escape }} - {{ dest.enderDest.xLgr|normalize }} + {{ dest.enderDest.xLgr|normalize|escape }} {{ dest.enderDest.nro }} - {{ dest.enderDest.xBairro|normalize }} + {{ dest.enderDest.xCpl|normalize|escape }} + {{ dest.enderDest.xBairro|normalize|escape }} {{ dest.enderDest.cMun }} {{ dest.enderDest.xMun|normalize }} {{ dest.enderDest.UF }} @@ -140,12 +142,12 @@ {{ NFe.infNFe.retirada.CNPJ }} {{ NFe.infNFe.retirada.CPF }} - {{ NFe.infNFe.retirada.xLgr }} + {{ NFe.infNFe.retirada.xLgr|normalize|escape }} {{ NFe.infNFe.retirada.nro }} - {{ NFe.infNFe.retirada.xCpl }} - {{ NFe.infNFe.retirada.xBairro }} + {{ NFe.infNFe.retirada.xCpl|normalize|escape }} + {{ NFe.infNFe.retirada.xBairro|normalize|escape }} {{ NFe.infNFe.retirada.cMun }} - {{ NFe.infNFe.retirada.xMun }} + {{ NFe.infNFe.retirada.xMun|normalize }} {{ NFe.infNFe.retirada.UF }} {% endif %} @@ -153,10 +155,10 @@ {{ NFe.infNFe.entrega.CNPJ }} {{ NFe.infNFe.entrega.CPF }} - {{ NFe.infNFe.entrega.xLgr }} + {{ NFe.infNFe.entrega.xLgr|normalize|escape }} {{ NFe.infNFe.entrega.nro }} - {{ NFe.infNFe.entrega.xCpl }} - {{ NFe.infNFe.entrega.xBairro }} + {{ NFe.infNFe.entrega.xCpl|normalize|escape }} + {{ NFe.infNFe.entrega.xBairro|normalize|escape }} {{ NFe.infNFe.entrega.cMun }} {{ NFe.infNFe.entrega.xMun }} {{ NFe.infNFe.entrega.UF }} @@ -200,7 +202,7 @@ {{ di.nDI }} {{ di.dDI }} - {{ di.xLocDesemb }} + {{ di.xLocDesemb|normalize|escape }} {{ di.UFDesemb }} {{ di.dDesemb }} {{ di.tpViaTransp }} diff --git a/setup.py b/setup.py index f882b9d..6526fa4 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ # coding=utf-8 from setuptools import setup, find_packages -VERSION = "0.1.22" +VERSION = "0.1.23" setup( name="PyTrustNFe",