本文整理汇总了Python中nfe.pysped.nfe.ProcessadorNFe.consultar_notas_destinatario方法的典型用法代码示例。如果您正苦于以下问题:Python ProcessadorNFe.consultar_notas_destinatario方法的具体用法?Python ProcessadorNFe.consultar_notas_destinatario怎么用?Python ProcessadorNFe.consultar_notas_destinatario使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nfe.pysped.nfe.ProcessadorNFe
的用法示例。
在下文中一共展示了ProcessadorNFe.consultar_notas_destinatario方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: consultar_nfe_destinatario
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import consultar_notas_destinatario [as 别名]
def consultar_nfe_destinatario(self, cnpj, indnfe, indemi, cert, key, nsu='0', versao=u'2.00', ambiente=2, estado=u'MG', scan=False):
"""
Realiza a consulta do manifesto do destinatário
@param cert: string do certificado digital A1,
@param key: chave privada do certificado digital,
@param versao: versão da nfe,
@param ambiente: ambiente da consulta, pode ser 1 para o ambiente de produção e 2 para homologação,
@param estado: estado em que realizará o processamento,
@param scan: habilita a contigência SCAN.
@return: Dicionário com o envio,resposta e reason.
"""
p = ProcessadorNFe()
p.versao = versao
p.estado = estado
#Provisoriamente apontado para um estado que usa o webservice de ambiente nacional, pois em MG ainda não existe suporte ao Manifesto do Destinatário
ESTADO_WS[estado] = SVAN
p.ambiente = ambiente
p.certificado.cert_str = cert
p.certificado.key_str = key
p.contingencia_SCAN = scan
p.salvar_arquivos = False
processo = p.consultar_notas_destinatario(cnpj=cnpj, indnfe=indnfe, indemi=indemi, nsu=nsu)
resp = processo.resposta
lista_notas = []
if resp.cStat.valor == '138':#Documento localizado para o destinatário
for resp in resp.ret:
if resp.resNFe.xml:
dict_resnfe = {
'NSU': resp.resNFe.NSU.valor,
'chNFe': resp.resNFe.chNFe.valor,
'CNPJ': resp.resNFe.CNPJ.valor,
'CPF': resp.resNFe.CPF.valor,
'xNome': resp.resNFe.xNome.valor,
'IE': resp.resNFe.IE.valor,
'dEmi': resp.resNFe.dEmi.valor,
'tpNF': resp.resNFe.tpNF.valor,
'vNF': resp.resNFe.vNF.valor,
'digVal': resp.resNFe.digVal.valor,
'dhRecbto': resp.resNFe.dhRecbto.valor,
'cSitNFe': resp.resNFe.cSitNFe.valor,
'cSitConf': resp.resNFe.cSitConf.valor
}
lista_notas.append({'resNFe': dict_resnfe})
if resp.resCanc.xml:
dict_rescanc = {
'NSU': resp.resCanc.NSU.valor,
'chNFe': resp.resCanc.chNFe.valor,
'CNPJ': resp.resCanc.CNPJ.valor,
'CPF': resp.resCanc.CPF.valor,
'xNome': resp.resCanc.xNome.valor,
'IE': resp.resCanc.IE.valor,
'dEmi': resp.resCanc.dEmi.valor,
'tpNF': resp.resCanc.tpNF.valor,
'vNF': resp.resCanc.vNF.valor,
'digVal': resp.resCanc.digVal.valor,
'dhRecbto': resp.resCanc.dhRecbto.valor,
'cSitNFe': resp.resCanc.cSitNFe.valor,
'cSitConf': resp.resCanc.cSitConf.valor
}
lista_notas.append({'resCanc': dict_rescanc})
if resp.resCCe.xml:
dict_rescce = {
'NSU': resp.resCCe.NSU.valor,
'chNFe': resp.resCCe.chNFe.valor,
'dhEvento': resp.resCCe.dhEvento.valor,
'tpEvento': resp.resCCe.tpEvento.valor,
'nSeqEvento': resp.resCCe.nSeqEvento.valor,
'descEvento': resp.resCCe.descEvento.valor,
'xCorrecao': resp.resCCe.xCorrecao.valor,
'tpNF': resp.resCCe.tpNF.valor,
'dhRecbto': resp.resCCe.dhRecbto.valor
}
lista_notas.append({'resCCe': dict_rescce})
vals = {'envio':processo.envio.xml,
'resposta': processo.resposta.xml,
'status_resposta': processo.resposta.cStat.valor,
'status_motivo': processo.resposta.xMotivo.valor,
'lista_notas': lista_notas,
'reason': processo.resposta.reason}
return vals