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
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}
def inutilizar_faixa_numeracao(self, cnpj, serie, numero_inicial, numero_final, justificativa, cert, key, versao=u'2.00', ambiente=2, estado=u'MG', tipo_contingencia=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 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_inicial, numero_final=numero_final, 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 } if processo.resposta.infInut.cStat.valor == '102': vals['protocolo'] = processo.resposta.infInut.nProt.valor return vals