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
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}