本文整理汇总了Python中nfe.pysped.nfe.ProcessadorNFe.salvar_arquivos方法的典型用法代码示例。如果您正苦于以下问题:Python ProcessadorNFe.salvar_arquivos方法的具体用法?Python ProcessadorNFe.salvar_arquivos怎么用?Python ProcessadorNFe.salvar_arquivos使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nfe.pysped.nfe.ProcessadorNFe
的用法示例。
在下文中一共展示了ProcessadorNFe.salvar_arquivos方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: consultar_servidor
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def consultar_servidor(self,cert,key,versao=u'2.00',ambiente=2,estado=u'MG',scan=False):
"""
Este método verifica se o servidor está em operação
@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á a consulta do servidor,
@param scan: habilita a contigência SCAN.
@return: Dicionário com o status,envio,resposta e reason.
"""
p = ProcessadorNFe()
p.ambiente=ambiente
p.estado=estado
p.versao=versao
p.certificado.cert_str=cert
p.certificado.key_str=key
p.salvar_arquivos=False
p.contingencia_SCAN=scan
p.caminho = u''
processo = p.consultar_servico()
status=processo.resposta.cStat.valor
processo.envio.xml
processo.resposta.xml
processo.resposta.reason
return{'status':status,'envio':processo.envio.xml,'resposta':processo.resposta.xml,'reason':processo.resposta.reason}
示例2: processar_nfe
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def processar_nfe(self,xml_nfe,cert,key,versao=u'2.00',ambiente=2,estado=u'MG',scan=False):
"""
Este método realiza o processamento de validação, assinatura e transmissão da nfe.
@param xml_nfe:xml da nfe (string)
@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 a chave_nfe, protocolo, envio,resposta e reason.
"""
p = ProcessadorNFe()
p.ambiente=ambiente
p.estado=estado
p.certificado.cert_str=cert
p.certificado.key_str=key
p.salvar_arquivos=False
p.contingencia_SCAN=scan
p.caminho = u''
n = NFe_200()
n.infNFe.xml=xml_nfe
for processo in p.processar_notas([n]):
processo.envio.xml
processo.resposta.xml
processo.resposta.reason
return {'envio':processo.envio.xml,
'resposta':processo.resposta.xml,
'chave_nfe':n.chave,
'protocolo':processo.resposta.protNFe.infProt.nProt.valor,
'reason':processo.resposta.reason
}
示例3: cancelar_nota
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def cancelar_nota(self,chave,protocolo,justificativa,cert,key,versao=u'2.00',ambiente=2,estado=u'MG',scan=False):
"""
Realiza o cancelamento da nfe.
@param chave:chave da nfe
@param protocolo: protocolo do processamento da nfe
@param justificativa: justificativa do cancelamento
@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
p.ambiente=ambiente
p.certificado.cert_str=cert
p.certificado.key_str=key
processo = p.cancelar_nota(chave_nfe=chave,numero_protocolo=protocolo,justificativa=justificativa)
p.salvar_arquivos=False
p.contingencia_SCAN=scan
processo.envio.xml
processo.resposta.xml
processo.resposta.reason
return {'envio':processo.envio.xml,'resposta':processo.resposta.xml,'reason':processo.resposta.reason}
示例4: inutilizar_faixa_numeracao
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def inutilizar_faixa_numeracao(self,cnpj,serie,numero_inicial,numero_final,justificativa,cert,key,versao=u'2.00',ambiente=2,estado=u'MG',scan=False):
"""
Realiza a inutilização de faixa de numeração de nota fiscal
@param cnpj:cnpj do emitente
@param serie: série da nfe
@param numero_inicial: faixa inicial da nota que deseja inutilizar
@param numero_final: faixa final da nota que deseja inutilizar
@param justificativa: justificativa da inutilização
@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= u'2.00'
p.estado= u'MG'
p.ambiente= 2
p.certificado.cert_str=cert
p.certificado.key_str=key
p.salvar_arquivos=False
p.contingencia_SCAN=scan
p.caminho = u''
processo = p.inutilizar_nota(cnpj=cnpj,serie=serie,numero_inicial=numero_inicial,numero_final=numero_final,justificativa=justificativa)
processo.envio.xml
processo.resposta.xml
processo.resposta.reason
return {'envio':processo.envio.xml,'resposta':processo.resposta.xml,'reason':processo.resposta.reason}
示例5: download_xml
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def download_xml(self, cnpj, chave, cert, key, versao=u'2.00', ambiente=2, estado=u'MG', scan=False):
"""
Realiza a consulta do manifesto do destinatário
@param chave:chave da nfe
@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
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.download_nfe_xml(cnpj, ambiente, chave_nfe=chave)
vals = {'envio': processo.envio.xml,
'resposta': processo.resposta.xml,
'proc_xml':processo.resposta.original,
'status_resposta': processo.resposta.retNFe.cStat.valor,
'status_motivo': processo.resposta.retNFe.xMotivo.valor,
'reason': processo.resposta.reason}
return vals
示例6: emitir_carta_correcao
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def emitir_carta_correcao(self, chave, cnpj, texto_correcao, cert, key, sequencia=None,versao=u'2.00', ambiente=2, estado=u'MG', scan=False):
"""
@param chave:chave da nfe
@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
p.ambiente = ambiente
p.certificado.cert_str = cert
p.certificado.key_str = key
p.contingencia_SCAN = scan
p.salvar_arquivos = False
p.contingencia_SCAN = scan
processo = p.corrigir_nota(chave_nfe=chave, cnpj=cnpj, texto_correcao=texto_correcao, ambiente=ambiente,sequencia=sequencia)
processo.resposta.reason
vals = {'envio': processo.envio.xml,
'resposta': processo.processo_correcao_nfe.xml,
'status_resposta': processo.resposta.infEvento.cStat.valor,
'status_motivo': processo.resposta.infEvento.xMotivo.valor,
'reason': processo.resposta.reason}
if processo.resposta.infEvento.cStat.valor == '135':
vals['protocolo'] = processo.resposta.infEvento.nProt.valor
return vals
示例7: efetuar_manifesto
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def efetuar_manifesto(self, cnpj, tipo_evento, chave, cert, key, versao=u'2.00', ambiente=2, estado=u'MG', scan=False):
"""
Realiza o manifesto do destinatário
@param chave:chave da nfe
@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_manifesto_destinatario(cnpj, tipo_evento=tipo_evento, chave_nfe=chave)
vals = {'envio': processo.envio.xml,
'resposta': processo.processo_evento_nfe.xml,
'status_resposta': processo.resposta.infEvento.cStat.valor,
'status_motivo': processo.resposta.infEvento.xMotivo.valor,
'reason': processo.resposta.reason}
if processo.resposta.infEvento.cStat.valor == '135':
vals['protocolo'] = processo.resposta.infEvento.nProt.valor
return vals
示例8: consultar_nfe
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def consultar_nfe(self,chave, cert, key, versao=u'2.00', ambiente=2, estado=u'MG', scan=False):
"""
@param chave:chave da nfe
@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
p.ambiente = ambiente
p.certificado.cert_str = cert
p.certificado.key_str = key
p.contingencia_SCAN = scan
p.salvar_arquivos = False
processo, arquivos = p.consultar_nota(chave_nfe=chave)
vals = {'envio': processo.envio.xml,
'resposta': processo.resposta.xml,
'status_resposta': processo.resposta.cStat.valor,
'status_motivo': processo.resposta.xMotivo.valor,
'reason': processo.resposta.reason,
'arquivos':arquivos}
return vals
示例9: consultar_cadastro
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def consultar_cadastro(self, cpf_cnpj, inscricao_estadual, uf, cert, key, versao=u'2.00', ambiente=2, estado=u'MG', scan=False):
"""
@param chave:chave da nfe
@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
if uf in ('AC', 'RN', 'PB', 'SC', 'AC', 'AL', 'AP', 'DF', 'PB', 'RJ', 'RN', 'RO', 'RR', 'SC', 'SE', 'TO'):
SVRS[NFE_AMBIENTE_PRODUCAO][u'servidor'] = u'svp-ws.sefazvirtual.rs.gov.br'
if uf == 'RS':
UFRS[NFE_AMBIENTE_PRODUCAO][u'servidor'] = u'sef.sefaz.rs.gov.br'
p.ambiente = ambiente
p.certificado.cert_str = cert
p.certificado.key_str = key
p.contingencia_SCAN = scan
p.salvar_arquivos = False
processo = p.consultar_cadastro_contribuinte(cpf_cnpj=cpf_cnpj, inscricao_estadual=inscricao_estadual, uf=uf, ambiente=ambiente)
vals = {'envio': processo.envio.xml,
'resposta': processo.resposta.xml,
'status_resposta': processo.resposta.infCons.cStat.valor,
'status_motivo': processo.resposta.infCons.xMotivo.valor,
'reason': processo.resposta.reason}
return vals
示例10: cancelar_nota
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def cancelar_nota(self, cnpj, chave, protocolo, justificativa, cert, key, versao=u'2.00',
ambiente=2, estado=u'MG', tipo_contingencia=False):
"""
Realiza o cancelamento da nfe.
@param chave:chave da nfe
@param protocolo: protocolo do processamento da nfe
@param justificativa: justificativa do cancelamento
@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 tipo_contingencia: habilita a contigência .
@return: Dicionário com o envio,resposta e reason.
"""
p = ProcessadorNFe()
p.versao = versao
p.estado = estado
p.ambiente = ambiente
p.tipo_contingencia = tipo_contingencia
p.certificado.cert_str = cert
p.certificado.key_str = key
p.salvar_arquivos = False
processo = p.cancelar_nota(cnpj, chave_nfe=chave, numero_protocolo=protocolo,
justificativa=justificativa)
processo.resposta.reason
vals = {'envio': processo.envio.xml,
'resposta': processo.processo_cancelamento_nfe.xml,
'status_resposta': processo.resposta.infEvento.cStat.valor,
'status_motivo': processo.resposta.infEvento.xMotivo.valor,
'reason': processo.resposta.reason}
if processo.resposta.infEvento.cStat.valor == '135':
vals['protocolo'] = processo.resposta.infEvento.nProt.valor
return vals
示例11: inutilizar_nota
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def inutilizar_nota(self, cnpj, serie, numero, justificativa, cert, key, versao=u'2.00',
ambiente=2, estado=u'MG', tipo_contingencia=False):
"""
Realiza a inutilização do número de uma nota fiscal
@param cnpj:cnpj do emitente
@param serie: serie da nfe
@param numero: número da nota que deseja inutilizar
@param justificativa: justificativa da inutilização
@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 tipo_contingencia: habilita a contigência .
@return: Dicionário com o envio,resposta e reason.
"""
p = ProcessadorNFe()
p.versao = versao
p.estado = estado
p.ambiente = ambiente
p.certificado.cert_str = cert
p.certificado.key_str = key
p.salvar_arquivos = False
p.tipo_contingencia = tipo_contingencia
p.caminho = u''
processo = p.inutilizar_nota(cnpj=cnpj, serie=serie, numero_inicial=numero, justificativa=justificativa)
processo.envio.xml
processo.resposta.xml
processo.resposta.reason
vals = {'envio': processo.envio.xml,
'resposta': processo.resposta.xml,
'status_resposta': processo.resposta.infInut.cStat.valor,
'status_motivo': processo.resposta.infInut.xMotivo.valor,
'reason': processo.resposta.reason}
return vals
示例12: processar_nfe
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def processar_nfe(self, xml_nfe, cert, key, versao=u'2.00', ambiente=2, estado=u'MG',
tipo_contingencia=False):
"""
Este método realiza o processamento de validação, assinatura e transmissão da nfe.
@param xml_nfe:xml da nfe (string)
@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 tipo_contingencia: habilita a contigência .
@return: Dicionário com a chave_nfe, protocolo, envio, numero_lote, resposta, status_resposta,status_motivo e reason.
"""
p = ProcessadorNFe()
p.ambiente = ambiente
p.estado = estado
p.versao = versao
p.certificado.cert_str = cert
p.certificado.key_str = key
p.salvar_arquivos = True
p.tipo_contingencia = tipo_contingencia
p.caminho = u''
if versao == '3.10':
n = NFe_310()
else:
n = NFe_200()
n.infNFe.xml = xml_nfe
for processo in p.processar_notas([n]):
processo.envio.xml
processo.resposta.xml
processo.resposta.reason
vals = {'envio': processo.envio.xml,
'resposta': processo.resposta.xml,
'chave_nfe': n.chave,
'xml_pre_validado': n.xml,
'status_resposta': processo.resposta.cStat.valor,
'status_motivo': processo.resposta.xMotivo.valor,
'reason': processo.resposta.reason
}
try:
if processo.resposta.infProt.nProt.valor == '':
vals['protocolo'] = processo.resposta.protNFe.infProt.nProt.valor
except:
pass
for nome, proc in p.processos.iteritems():
for arquivo in proc[1]:
if arquivo[0] == 'numero_lote':
vals['numero_lote'] = arquivo[1]
if arquivo[0] == 'numero_protocolo':
vals['protocolo'] = arquivo[1]
vals['resposta'] = proc[1][1][1]
if arquivo[0] == 'status_resp':
vals['status_resposta'] = arquivo[1][0]
vals['status_motivo'] = arquivo[1][1]
return vals
示例13: processar_lote
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def processar_lote(self, lista_xml_nfe, cert, key, versao=u'2.00', ambiente=2, estado=u'MG',
tipo_contingencia=False):
"""
Este método realiza o processamento de validação, assinatura e transmissão da nfe.
@param lista_xml_nfe:lista nfe
@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 tipo_contingencia: habilita a contigência .
@return: Dicionário com o envio,resposta e reason.
"""
p = ProcessadorNFe()
p.ambiente = ambiente
p.estado = estado
p.versao=versao
p.tipo_contingencia = tipo_contingencia
p.certificado.cert_str = cert
p.certificado.key_str = key
p.salvar_arquivos = False
p.caminho = u''
if versao == '3.10':
n = NFe_310()
else:
n = NFe_200()
lista = []
if lista_xml_nfe:
for x in lista_xml_nfe:
n.infNFe.xml = x
lista.append(n)
for processo in p.processar_notas(lista):
processo.envio.xml
processo.resposta.xml
processo.resposta.reason
return {'envio': processo.envio.xml, 'resposta': processo.resposta.xml,
'reason': processo.resposta.reason}
示例14: download_xml
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [as 别名]
def download_xml(self, cnpj, lista_chaves, cert, key, ambiente_nacional=True, versao=u'2.00', ambiente=2, estado=u'MG',
tipo_contingencia=False):
"""
Realiza a consulta do manifesto do destinatário
@param lista_chaves: lista de até 10 chaves
@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 tipo_contingencia: habilita a contigência .
@return: Dicionário com o envio,resposta e reason.
"""
if len(lista_chaves)>10:
raise ValueError(u'Maximo de 10 Chaves de Acesso por lote.')
p = ProcessadorNFe()
p.versao = versao
p.estado = estado
if ambiente_nacional:
ESTADO_WS[estado] = SVAN
p.ambiente = ambiente
p.certificado.cert_str = cert
p.certificado.key_str = key
p.tipo_contingencia = tipo_contingencia
p.salvar_arquivos = False
processo = p.download_nfe_xml(cnpj, ambiente, lista_chaves=lista_chaves)
vals = {'envio': processo.envio.xml,
'resposta': processo.resposta.xml,
'proc_xml':processo.resposta.original,
#'status_resposta': processo.resposta.retNFe.cStat.valor,
#'status_motivo': processo.resposta.retNFe.xMotivo.valor,
'reason': processo.resposta.reason}
for i,ret in enumerate(processo.resposta.retNFe):
vals['status_resp_nota_' + str(i)] = ret.cStat.valor
vals['status_motivo_nota_' + str(i)] = ret.xMotivo.valor
return vals
示例15: consultar_nfe_destinatario
# 需要导入模块: from nfe.pysped.nfe import ProcessadorNFe [as 别名]
# 或者: from nfe.pysped.nfe.ProcessadorNFe import salvar_arquivos [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