Skip to content

Commit 71f7a06

Browse files
authored
Merge pull request #209 from leogregianin/consnsu-distribuicao
Adiciona método consNSU na DistribuicaoDFe
2 parents 3956b10 + e1823bd commit 71f7a06

1 file changed

Lines changed: 29 additions & 12 deletions

File tree

pynfe/processamento/comunicacao.py

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -166,19 +166,32 @@ def consulta_nota(self, modelo, chave, contingencia=False):
166166
xml = self._construir_xml_soap('NFeConsultaProtocolo4', raiz)
167167
return self._post(url, xml)
168168

169-
def consulta_distribuicao(self, cnpj=None, cpf=None, chave=None, nsu=0):
170-
"""
171-
O XML do pedido de distribuição suporta três tipos de consultas que são definidas de acordo com a tag
172-
informada no XML. As tags são distNSU, consNSU e consChNFe.
173-
a) distNSU – Distribuição de Conjunto de DF-e a Partir do NSU Informado
174-
b) consNSU – Consulta DF-e Vinculado ao NSU Informado
175-
c) consChNFe – Consulta de NF-e por Chave de Acesso Informada
169+
def consulta_distribuicao(self, cnpj=None, cpf=None, chave=None, nsu=0, consulta_nsu_especifico=False):
170+
"""
171+
O XML do pedido de distribuição suporta três tipos de consultas
172+
que são definidas de acordo com a tag informada no XML.
173+
174+
As tags são distNSU, consNSU e consChNFe:
175+
a) distNSU – Distribuição de Conjunto de DF-e a Partir do NSU Informado
176+
b) consNSU – Consulta DF-e Vinculado ao NSU Informado
177+
c) consChNFe – Consulta de NF-e por Chave de Acesso Informada
178+
176179
:param cnpj: CNPJ do interessado
177180
:param cpf: CPF do interessado
178181
:param chave: Chave da NF-e a ser consultada
179-
:param nsu: Ultimo nsu ou nsu específico para ser consultado.
180-
:return:
182+
:param nsu: Ultimo nsu ou nsu específico para ser consultado
183+
:param consulta_nsu_especifico:
184+
True para consulta por nsu específico
185+
False para consulta por nsu último
186+
:return: xml do resultado da consulta
187+
188+
Exemplos de usos:
189+
* consChNFe: consulta_distribuicao(cnpj=CNPJ, chave=CHAVE)
190+
* distNSU: consulta_distribuicao(cnpj=CNPJ, chave=None, nsu=0, consulta_nsu_especifico=False)
191+
* consNSU: consulta_distribuicao(cnpj=CNPJ, chave=None, nsu=10, consulta_nsu_especifico=True)
192+
181193
"""
194+
182195
# url
183196
url = self._get_url_an(consulta='DISTRIBUICAO')
184197
# Monta XML para envio da requisição
@@ -190,16 +203,20 @@ def consulta_distribuicao(self, cnpj=None, cpf=None, chave=None, nsu=0):
190203
etree.SubElement(raiz, 'CNPJ').text = cnpj
191204
else:
192205
etree.SubElement(raiz, 'CPF').text = cpf
193-
if not chave:
206+
207+
if not chave and not consulta_nsu_especifico:
194208
distNSU = etree.SubElement(raiz, 'distNSU')
195209
etree.SubElement(distNSU, 'ultNSU').text = str(nsu).zfill(15)
196210
if chave:
197211
consChNFe = etree.SubElement(raiz, 'consChNFe')
198212
etree.SubElement(consChNFe, 'chNFe').text = chave
199-
#Monta XML para envio da requisição
213+
if consulta_nsu_especifico:
214+
consNSU = etree.SubElement(raiz, 'consNSU')
215+
etree.SubElement(consNSU, 'NSU').text = str(nsu).zfill(15)
216+
217+
# Monta XML para envio da requisição
200218
xml = self._construir_xml_soap('NFeDistribuicaoDFe', raiz)
201219

202-
203220
return self._post(url, xml)
204221

205222
def consulta_cadastro(self, modelo, cnpj):

0 commit comments

Comments
 (0)